(???) !DOCTYPE HTML>
(???) html>
(???) <head>
(???) <meta charset="utf-8">
(???) <title>VIC-II experiments</title>
(???) <link href="../css/candy.css" rel="stylesheet">
(???) <link href="../style.css" rel="stylesheet">
(???) </head>
(???) <body class="candy greasy-green">
(???) <h1>VIC-II experiments</h1>
(???) <canvas class="c64" width="404" height="284" style="width: 100%; border: 1px solid gray">
(???) o soup for you :-(
(???) </canvas>
(???) <script>
(???) var memory = new Uint8Array(0x10000)
(???) var C64 = {
(???) memory: memory
(???) }
(???) // foreground and background colors
(???) memory[0xd020] = 14
(???) memory[0xd021] = 6
(???) for(var i = 0; i < 256; i++) {
(???) memory[0x0400 + i] = i
(???) }
(???) // color ram
(???) memory[0xd800 + 12 * 40 + 17] = 1
(???) memory[0xd800 + 12 * 40 + 22] = 1
(???) // sprite at 100,100
(???) memory[0xd000] = 100
(???) memory[0xd001] = 100
(???) memory[0xd016] = 1 // sprite enable
(???) memory[0x400 + 1016] = 255 // sprite pointer (255 * 64 = address 16320)
(???) memory[16320] = 0x55 // dots
(???) </script>
(???) <details open>
(???) <summary title="Click to open/close">Log messages</summary>
(???) <pre class="log"><tt></tt></pre>
(???) </details>
(???) <script src="log.js"></script>
(???) <script src="vic.js"></script>
(???) <script>
(???) var request = new XMLHttpRequest()
(???) request.open('GET', '../roms/chargen', true)
(???) request.responseType = 'arraybuffer'
(???) request.onload = function() {
(???) if(this.status == 200) {
(???) var program = new Uint8Array(this.response)
(???) C64.memory.set(program, 0x1000)
(???)
(???) // charset
(???) memory[0x1000] = parseInt('00111100', 2)
(???) memory[0x1001] = parseInt('01000010', 2)
(???) memory[0x1002] = parseInt('10100101', 2)
(???) memory[0x1003] = parseInt('10000001', 2)
(???) memory[0x1004] = parseInt('10100101', 2)
(???) memory[0x1005] = parseInt('10011001', 2)
(???) memory[0x1006] = parseInt('01000010', 2)
(???) memory[0x1007] = parseInt('00111100', 2)
(???) var start = performance.now()
(???) while(!C64.vic.tick()) {
(???) memory[0xd020] = memory[0xd012] % 16
(???) }
(???) C64.vic.draw()
(???) Log.writeline('frame rendered in ', (performance.now() - start).toFixed(1), ' ms')
(???) }
(???) }
(???) request.send()
(???) </script>
(???) </body>
(???) /html>