diff --git a/docs/GettingStartedVS.html b/docs/GettingStartedVS.html
new file mode 100644
index 0000000..de0b1fb
--- /dev/null
+++ b/docs/GettingStartedVS.html
@@ -0,0 +1,433 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                      "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>Getting Started with LLVM System for Microsoft Visual Studio</title>
+  <link rel="stylesheet" href="llvm.css" type="text/css">
+</head>
+<body>
+
+<div class="doc_title">
+  Getting Started with the LLVM System using Microsoft Visual Studio
+</div>
+
+<ul>
+  <li><a href="#overview">Overview</a>
+  <li><a href="#quickstart">Getting Started Quickly (A Summary)</a>
+  <li><a href="#requirements">Requirements</a>
+    <ol>
+      <li><a href="#hardware">Hardware</a>
+      <li><a href="#software">Software</a>
+    </ol></li>
+
+  <li><a href="#starting">Getting Started with LLVM</a>
+    <ol>
+      <li><a href="#terminology">Terminology and Notation</a>
+      <li><a href="#unpack">Unpacking the LLVM Archives</a>
+      <li><a href="#checkout">Checkout LLVM from CVS</a>
+      <li><a href="#objfiles">The Location of LLVM Object Files</a>
+    </ol></li>
+
+  <li><a href="#tutorial">An Example Using the LLVM Tool Chain</a>
+  <li><a href="#problems">Common Problems</a>
+  <li><a href="#links">Links</a>
+</ul>
+
+<div class="doc_author">
+  <p>Written by: 
+    <a href="mailto:jeffc@jolt-lang.org">Jeff Cohen</a>, 
+  </p>
+</div>
+
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="overview"><b>Overview</b></a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+  <p>The Visual Studio port at this time is experimental.  It is suitable for
+  use only if you are writing your own compiler front end or otherwise have a
+  need to dynamically generate machine code.  The JIT and interpreter are
+  functional, but it is currently not possible to directly generate an
+  executable file.  You can do so indirectly by using the C back end.</p>
+
+  <p>To emphasize, there is no C/C++ front end currently available.  llvm-gcc
+  is based on GCC, which cannot be bootstrapped using VC++.  Eventually there
+  should be a llvm-gcc based on Cygwin or Mingw that is usable.  There is also
+  the option of generating bytecode files on Unix and copying them over to
+  Windows.  But be aware the odds of linking C++ code compiled with llvm-gcc
+  with code compiled with VC++ is essentially zero.</p>
+
+  <p>The LLVM test suite cannot be run on the Visual Studio port at this
+  time.</p>
+
+  <p>Most of the tools build and work.  <tt>llvm-db</tt> does not build at this
+  time.  <tt>bugpoint</tt> does build, but does not work.
+
+  <p>Additional information about the LLVM directory structure and tool chain
+  can be found on the main <a href="GettingStarted.html">Getting Started</a>
+  page.</P>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="quickstart"><b>Getting Started Quickly (A Summary)</b></a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>Here's the short story for getting up and running quickly with LLVM:</p>
+
+<ol>
+  <li>Read the documentation.</li>
+  <li>Read the documentation.</li>
+  <li>Remember that you were warned twice about reading the documentation.</li>
+
+  <li>Get the Source Code
+  <ul>
+    <li>With the distributed files:
+    <ol>
+      <li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
+      <li><tt>gunzip --stdout llvm-<i>version</i>.tar.gz | tar -xvf -</tt>
+      <i>or use WinZip</i>
+      <li><tt>cd llvm</tt></li>
+    </ol></li>
+
+    <li>With anonymous CVS access (or use a <a href="#mirror">mirror</a>):
+    <ol>
+      <li><tt>cd <i>where-you-want-llvm-to-live</i></tt></li>
+      <li><tt>cvs -d
+          :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login</tt></li>
+      <li>Hit the return key when prompted for the password.
+      <li><tt>cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm 
+          co llvm</tt></li>
+      <li><tt>cd llvm</tt></li>
+      <li><tt>cvs up -P -d</tt></li>
+    </ol></li>
+  </ul></li>
+
+  <li>Start Visual Studio
+  <ol>
+    <li>Simply double click on the solution file <tt>llvm/win32/llvm.sln</tt>.
+    </li>
+  </ol></li>
+
+  <li>Build the LLVM Suite:
+  <ol>
+    <li>Simply build the solution.</li>
+    <li>The Fibonacci project is a sample program that uses the JIT.  Modify
+    the project's debugging properties to provide a numeric command line
+    argument.  The program will print the corresponding fibonacci value.</li>
+  </ol></li>
+
+</ol>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="requirements"><b>Requirements</b></a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+  <p>Before you begin to use the LLVM system, review the requirements given
+  below.  This may save you some trouble by knowing ahead of time what hardware
+  and software you will need.</p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="hardware"><b>Hardware</b></a>
+</div>
+
+<div class="doc_text">
+
+  <p>Any system that can adequately run Visual Studio .NET 2003 is fine.  The
+  LLVM source tree and object files, libraries and executables will consume
+  approximately 3GB.</p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection"><a name="software"><b>Software</b></a></div>
+<div class="doc_text">
+
+  <p>You will need Visual Studio .NET 2003.  Earlier versions cannot open the
+  solution/project files.  The VS 2005 beta can, but will migrate these files
+  to its own format in the process.  While it should work with the VS 2005
+  beta, there are no guarantees and there is no support for it at this time.</p>
+
+  <p>You will also need several open source packages:  bison, flex, and sed.
+  These must be installed in <tt>llvm/win32/tools</tt>.  These can be found at
+  <a href="http://gnuwin32.sourceforge.net/">http://gnuwin32.sourceforge.net/
+  </a>.  Bison prefers that m4 be in the path.  You must add it to the Visual
+  Studio configuration under the menu Options -&gt; Projects -&gt; VC++
+  Directories.  Alternatively, you can set the environment variable <tt>M4</tt>
+  to point to <tt>m4</tt> executable.</p>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="starting"><b>Getting Started with LLVM</b></a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>The remainder of this guide is meant to get you up and running with
+LLVM using Visual Studio and to give you some basic information about the LLVM
+environment.</p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="terminology">Terminology and Notation</a>
+</div>
+
+<div class="doc_text">
+
+<p>Throughout this manual, the following names are used to denote paths
+specific to the local system and working environment.  <i>These are not
+environment variables you need to set but just strings used in the rest
+of this document below</i>.  In any of the examples below, simply replace
+each of these names with the appropriate pathname on your local system.
+All these paths are absolute:</p>
+
+<dl>
+    <dt>SRC_ROOT
+    <dd>
+    This is the top level directory of the LLVM source tree.
+    <p>
+
+    <dt>OBJ_ROOT
+    <dd>
+    This is the top level directory of the LLVM object tree (i.e. the
+    tree where object files and compiled programs will be placed.  It
+    is fixed at SRC_ROOT/win32).
+    <p>
+</dl>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="unpack">Unpacking the LLVM Archives</a>
+</div>
+
+<div class="doc_text">
+
+<p>
+If you have the LLVM distribution, you will need to unpack it before you
+can begin to compile it.  LLVM is distributed as a set of two files: the LLVM
+suite and the LLVM GCC front end compiled for your platform.  There is an
+additional test suite that is optional.  Each file is a TAR archive that is
+compressed with the gzip program.  The WinZip program can also unpack this
+archive.  Only the LLVM suite is usable with Visual Studio.
+</p>
+
+<p> The files are as follows:
+<dl>
+  <dt><tt>llvm-1.4.tar.gz</tt></dt>
+  <dd>This is the source code for the LLVM libraries and tools.<br/></dd>
+</dl>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="checkout">Checkout LLVM from CVS</a>
+</div>
+
+<div class="doc_text">
+
+<p>If you have access to our CVS repository, you can get a fresh copy of
+the entire source code.  Note that significant progress has been made on the
+Visual Studio port since 1.4 was released.  All you need to do is check it out
+from CVS as follows:</p>
+
+<ul>
+<li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
+  <li><tt>cvs -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login</tt>
+  <li>Hit the return key when prompted for the password.
+  <li><tt>cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm co
+      llvm</tt>
+</ul>
+
+<p>This will create an '<tt>llvm</tt>' directory in the current
+directory and fully populate it with the LLVM source code, Makefiles,
+test directories, and local copies of documentation files.</p>
+
+<p>If you want to get a specific release (as opposed to the most recent
+revision), you can specify a label.  The following releases have the following
+label:</p>
+
+<ul>
+<li>Release 1.4: <b>RELEASE_14</b></li>
+<li>Release 1.3: <b>RELEASE_13</b></li>
+<li>Release 1.2: <b>RELEASE_12</b></li>
+<li>Release 1.1: <b>RELEASE_11</b></li>
+<li>Release 1.0: <b>RELEASE_1</b></li>
+</ul>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsubsection">
+  <a name="mirrors">LLVM CVS Mirrors</a>
+</div>
+
+<div class="doc_text">
+
+<p>If the main CVS server is overloaded or inaccessible, you can try one of
+these user-hosted mirrors:</p>
+
+<ul>
+<li><a href="http://llvm.x10sys.com/">Mirror hosted by eXtensible Systems
+Inc.</a></li>
+</ul>
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="objfiles">The Location of LLVM Object Files</a>
+</div>
+
+<div class="doc_text">
+
+  <p>The object files are placed under <tt>OBJ_ROOT/Debug</tt> for debug builds
+  and <tt>OBJ_ROOT/Release</tt> for release (optimized) builds.  These include
+  both executables and libararies that your application can link against.
+
+  <p>The files that <tt>configure</tt> would create when building on Unix are
+  created by the <tt>Configure</tt> project and placed in
+  <tt>OBJ_ROOT/llvm</tt>.  You application must have OBJ_ROOT in its include
+  search path just before <tt>SRC_ROOT/include</tt>.
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="tutorial">An Example Using the LLVM Tool Chain</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<ol>
+  <li>First, create a simple C file, name it 'hello.c':
+       <pre>
+   #include &lt;stdio.h&gt;
+   int main() {
+     printf("hello world\n");
+     return 0;
+   }
+       </pre></li>
+
+  <li><p>Next, compile the C file into a LLVM bytecode file:</p>
+      <p><tt>% llvm-gcc hello.c -o hello</tt></p>
+
+      <p>Note that you should have already built the tools and they have to be
+      in your path, at least <tt>gccas</tt> and <tt>gccld</tt>.</p>
+
+      <p>This will create two result files: <tt>hello</tt> and
+      <tt>hello.bc</tt>. The <tt>hello.bc</tt> is the LLVM bytecode that
+      corresponds the the compiled program and the library facilities that it
+      required.  <tt>hello</tt> is a simple shell script that runs the bytecode
+      file with <tt>lli</tt>, making the result directly executable.  Note that
+      all LLVM optimizations are enabled by default, so there is no need for a 
+      "-O3" switch.</p>
+      
+      <p><b>Note: while you cannot do this step on Windows, you can do it on a
+        Unix system and transfer <tt>hello.bc</tt> to Windows.</b></p></li>
+
+  <li><p>Run the program. To make sure the program ran, execute the
+      following command:</p>
+      
+      <p><tt>% lli hello.bc</tt></p></li>
+
+  <li><p>Use the <tt>llvm-dis</tt> utility to take a look at the LLVM assembly
+      code:</p>
+
+      <p><tt>% llvm-dis &lt; hello.bc | less</tt><p></li>
+
+  <li><p>Compile the program to native assembly using the LLC code
+      generator:</p>
+
+      <p><tt>% llc hello.bc -o hello.s</tt></p>
+
+  <li><p>Assemble the native assembly language file into a program:</p>
+
+  <p><b>Not currently possible, but eventually will use <tt>NASMW</tt>.</b></p>
+
+  <li><p>Execute the native code program:</p>
+
+      <p><tt>% ./hello.native</tt></p></li>
+
+</ol>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="problems">Common Problems</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>If you are having problems building or using LLVM, or if you have any other
+general questions about LLVM, please consult the <a href="FAQ.html">Frequently
+Asked Questions</a> page.</p>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="links">Links</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>This document is just an <b>introduction</b> to how to use LLVM to do
+some simple things... there are many more interesting and complicated things
+that you can do that aren't documented here (but we'll gladly accept a patch
+if you want to write something up!).  For more information about LLVM, check
+out:</p>
+
+<ul>
+  <li><a href="http://llvm.cs.uiuc.edu/">LLVM homepage</a></li>
+  <li><a href="http://llvm.cs.uiuc.edu/doxygen/">LLVM doxygen tree</a></li>
+  <li><a href="http://llvm.cs.uiuc.edu/docs/Projects.html">Starting a Project
+  that Uses LLVM</a></li>
+</ul>
+
+</div>
+
+<!-- *********************************************************************** -->
+
+<hr>
+<address>
+  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+  <a href="http://validator.w3.org/check/referer"><img
+  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
+
+  <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
+  <a href="http://llvm.x10sys.com/rspencer/">Reid Spencer</a><br>
+  <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
+  Last modified: $Date$
+</address>
+</body>
+</html>
