Try that again:
<?php
$postslist = get_posts('category=-39,-15&numberposts=-1&order=ASC&orderby=title');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<ul>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to '<?php the_title(); ?>'"><?php the_title(); ?></a> (<?php the_date(); ?>)</li>
</ul>
<?php endforeach; ?>
For me get_posts() worked fine for a simple (non-paged) list. I just put a – before the category numbers I wanted to exclude, something like:
<?php
$postslist = get_posts(‘category=-39,-15&numberposts=-1&order=ASC&orderby=title’);
foreach ($postslist as $post) :
setup_postdata($post);
?>
<?php endforeach; ?>
My example lists all posts not in category 39 or in category 15, sorted by title.
To sort by date, most recent first, I use something like ‘category=-39,-15&orderby=date&order=DESC’.