tsByClassName("cpu");

		// initialize state of each cpu
		for (const c of cpus)
		{
			c.tabIndex = 0;
			c.dataset.active = "false"; // XXX : these will be strings anyway
			c.dataset.isPanning = "false";
			c.dataset.hasHud = "false";
			viewport_reset(c);

			// this is really fucked up... all members get converted to strings,
			// no matter what
			//
			//console.log(`a=${c.dataset.active} ta=${typeof(c.dataset.active)}`);
			//const foo = 1.2;
			//c.dataset.offsetX = foo;
			//console.log(`x = ${fo