<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>TEST</title>
</head>
<style type="text/css">
a {color: #9f9; text-decoration: none}
a:hover {color: #0f0}
hr {color: #0f0}
html,table,body,textarea,input,form
{
font-family: "Courier New", Courier, mono; 
font-size: 8pt; 
color: #0c0;
background-color: #020;
margin:0;
padding:0;
border:0;
}
input { background-color: #010; }
textarea {
border-width:1;
border-style:solid;
border-color:#0c0;
padding:3;
margin:3;
}
</style>
<script>
var foo="" +
" 123456789012345678901234567890123456789012345 789012345678901234567890123456789"+
"0 2345678901234567890123456789012345678901234 6 89012345678901234567890123456789"+
"01 34567890123456789012345678901234567890123 567 9012345678901234567890123456789"+
"012 456789012345678901234567890123456789012 45678 012345678901234567890123456789"+
"0123 5678901234567890123456789012345678901 3456789 12345678901234567890123456789"+
"01234 67890123456789012345678901234567890 234567890 2345678901234567890123456789"+
"012345 789012345678901234567890123456789 12345678901 345678901234567890123456789"+
"0123456 8901234567890123456789012345678 0123456789012 45678901234567890123456789"+
"01234567 90123456789012345678901234567 901234567890123 5678901234567890123456789"+
"012345678 012345678901234567890123456 89012345678901234 678901234567890123456789"+
"0123456789 1234567890123456789012345 7890123456789012345 78901234567890123456789"+
"01234567890 23456789012345678901234 678901234567890123456 8901234567890123456789"+
"012345678901 345678901234567890123 56789012345678901234567 901234567890123456789"+
"0123456789012 4567890123456789012 4567890123456789012345678 0123456789012345678 "+
"01234567890123 56789012345678901 345678901234567890123456789 12345678901234567 9"+
"012345678901234 678901234567890 23456789012  567  01234567890 234567890123456 89"+
"0123456789012345 7890123456789 123457789012  567  012345678901 3456789012345 789"+
"01234567890123456 89012345678 012345678901234567890123456789012 45678901234 6789"+
"012345678901234567 901234567 90123456789 12345678901 34567890123 567890123 56789"+
"0123456789012345678 0123456 8901234567890  3456789  2345678901234 6789012 456789"+
"01234567890123456789 12345 7890123456789012       0123456789012345 78901 3456789"+
"012345678901234567890 234 67890123456789012345678901234567890123456 890 23456789"+
"0123456789012345678901 3 5678901234567890123456789012345678901234567 9 123456789"+
"01234567890123456789012 456789012345678901234567890123456789012345678 0123456789";
function start2()
{
    // get the reference for the body
    //var mybody = document.getElementsByTagName("body")[0];
    var mybody = document.getElementById("replace_me");
    var myroot = document.getElementById("a_parent");
    mytable = document.createElement("table");
    mytablebody = document.createElement("tbody");
    mytable.setAttribute("border","0");
    mytable.setAttribute("cellspacing","0");
    mytable.setAttribute("cellpadding","0");
    for(var j = 0; j < 24; j++)
    {
        mycurrent_row = document.createElement("tr");
        for(var i = 0; i < 80; i++)
        {
            mycurrent_cell = document.createElement("td");
            offset = (j*80)+i;
            currenttext = document.createTextNode(foo.substring(offset,offset+1));
            mycurrent_cell.appendChild(currenttext);
            mycurrent_row.appendChild(mycurrent_cell);
        }
        mytablebody.appendChild(mycurrent_row);
    }
    mytable.appendChild(mytablebody);
    myroot.replaceChild(mytable,mybody);
    //mybody.appendChild(mytable);
}
</script>
<body onload="start2();">
<table align="LEFT" border="0" cellspacing="0" cellpadding="0">
<div id="a_parent">
<span id="replace_me">
<tr align="left" valign="left">
    <td>/</td>
    <td>h</td>
    <td>o</td>
    <td>m</td>
    <td>e</td>
    <td>/</td>
    <td>n</td>
    <td>o</td>
    <td>a</td>
    <td>h</td>
    <td>/</td>
    <td>&nbsp;</td>
</tr>
</table>
</span>
</div>
</body>
</html>