How can I create a master archive?

to accomplish that, this what I did for my blog:
(1) create a page template, say “masterarcive”
(2) add the code in that page.
(3) this code also include pagination

Here is my entire page template with the complete code I use in it:

<?php
/**
 * @package WordPress
 * @subpackage Default_Theme
 */
/*
Template Name: masterarchive
*/


get_header(); ?>

<div id="container">
            <div id="content" role="main">

<?php
$args=array(
  //'category__in' => array(1),
  'post_type' => 'post',
  'post_status' => 'publish',
  'showposts' => -1,
  'caller_get_posts'=> 1
);
$poststocount=get_posts($args);
echo '<h2>Alphabetic Index of All '. count($poststocount). ' Posts:</h2>';

$args = array('type' => 'alpha', 'echo' => 0, 'after' => '~');
$archivestring = wp_get_archives($args);
$archives = preg_split('/[~]/',$archivestring);
if ($archives) :
   $limit = 60;
   if (isset($_GET['page'])) {
      $page = $_GET['page'];
   } else {
      $page = 1;
   }
   $start = ($page - 1) * $limit;
   $range = 5;
   echo '<h2></h2>';
   echo '<ul>';
   for ($i=$start;$i<($start + $limit);++$i) {
      if ($i < sizeof($archives)) {
         echo $archives[$i];
      }
   }
   echo '<br /><br />'; // remove <br /><br />
   echo _YOUR_paginate(sizeof($archives),$limit,$range);
   echo '</ul>';    // remove </li></ul>
else:
   echo '<h2></h2>';
   echo 'There are no Archives to list';
endif;?>
</div></div> <!-- added one </div> -->
<?php get_sidebar(); ?>

<?php get_footer(); ?>

<?php function _YOUR_paginate($numrows,$limit=10,$range=7) {

    $pagelinks = "";  
   if(isset($_GET['page'])){
      $page = $_GET['page'];
   } else {
      $page = 1;
   }
   // If query_string exists, use &page=, else use ?page= .
   $currpage = $_SERVER['REQUEST_URI'];
   $qstring = preg_replace('/page=\d+/','',$_SERVER['QUERY_STRING']);  // Get rid of previous page=
   if ($qstring) {
      $paramsep = '&amp;';
   } else {
      $paramsep = '?';
   }
    if ($numrows > $limit) {
        //$currpage = str_replace("&page=".$page,"",$currpage); // Use this for non-pretty permalink
        $currpage = str_replace("?page=".$page,"",$currpage); // Use this for pretty permalink
        if($page == 1){
            $pagelinks .= "<span class=\"pageprevdead\">&laquo; PREV </span>";
        }else{
            $pageprev = $page - 1;
            $pagelinks .= "<a class=\"pageprevlink\" href=\"" . $currpage .
                    "{$paramsep}page=" . $pageprev . "\">&laquo; PREV </a>";
        }
        $numofpages = ceil($numrows / $limit);
        if ($range == "" or $range == 0) $range = 7;
        $lrange = max(1,$page-(($range-1)/2));
        $rrange = min($numofpages,$page+(($range-1)/2));
        if (($rrange - $lrange) < ($range - 1)) {
            if ($lrange == 1) {
                $rrange = min($lrange + ($range-1), $numofpages);
            } else {
                $lrange = max($rrange - ($range-1), 0);
            }
        }
        if ($lrange > 1) {
            $pagelinks .= "<a class=\"pagenumlink\" " .
                "href=\"" . $currpage . "{$paramsep}page=" . 1 . 
                "\"> [1] </a>";
            if ($lrange > 2) $pagelinks .= "&nbsp;...&nbsp;";
        } else {
            $pagelinks .= "&nbsp;&nbsp;";
        }
        for($i = 1; $i <= $numofpages; $i++){
            if ($i == $page) {
                $pagelinks .= "<span class=\"pagenumon\"> [$i] </span>";
            } else {
                if ($lrange <= $i and $i <= $rrange) {
                    $pagelinks .= "<a class=\"pagenumlink\" " .
                        "href=\"" . $currpage . "{$paramsep}page=" . $i . 
                        "\"> [" . $i . "] </a>";
                }
            }
        }
        if ($rrange < $numofpages) {
            if ($rrange < $numofpages - 1) $pagelinks .= "&nbsp;...&nbsp;";
                $pagelinks .= "<a class=\"pagenumlink\" " .
                    "href=\"" . $currpage . "{$paramsep}page=" . $numofpages . 
                    "\"> [" . $numofpages . "] </a>";
        } else {
            $pagelinks .= "&nbsp;&nbsp;";
        }
        if(($numrows - ($limit * $page)) > 0){
            $pagenext = $page + 1;
            $pagelinks .= "<a class=\"pagenextlink\" href=\"" . $currpage .
                    "{$paramsep}page=" . $pagenext . "\"> NEXT &raquo;</a>";
        } else {
            $pagelinks .= "<span class=\"pagenextdead\"> NEXT &raquo;</span>";
        }

   }

return $pagelinks;
}
?>