println("TERRAN Megatrends inc."); //println("Main RAM:"+(system.maxmem() >> 10)+" KBytes"); /////////////////////////////////////////////////////////////////////////////// // Perform memtest let memptr = 0; const memtestptn = [ // Overclockers will LOVE this! //[0x00,0x00,0x00,0x00 , 0xFF,0xFF,0xFF,0xFF , 0x00,0x00,0x00,0x00 , 0xFF,0xFF,0xFF,0xFF], //[0xAA,0x55,0xAA,0x55 , 0xAA,0x55,0xAA,0x55 , 0xAA,0x55,0xAA,0x55 , 0xAA,0x55,0xAA,0x55], //[0x00,0xFF,0x00,0xFF , 0xFF,0x00,0xFF,0x00 , 0x00,0xFF,0x00,0xFF , 0xFF,0x00,0xFF,0x00], //[0x69,0x69,0x69,0x69 , 0xA5,0xA5,0xA5,0xA5 , 0x69,0x69,0x69,0x69 , 0xA5,0xA5,0xA5,0xA5], //[0x0F,0x0F,0x0F,0x0F , 0x1E,0x1E,0x1E,0x1E , 0x3C,0x3C,0x3C,0x3C , 0x78,0x78,0x78,0x78], //[0xC7,0x1C,0x71,0xC7 , 0x8E,0x38,0xE3,0x8E , 0x1C,0x71,0xC7,0x1C , 0x38,0xE3,0x8E,0x38], //[0x71,0xC7,0x1C,0x71 , 0xE3,0x8E,0x38,0xE3 , 0x01,0x02,0x04,0x08 , 0x10,0x20,0x40,0x80], //[0x00,0x00,0xFF,0xFF , 0x00,0x00,0xFF,0xFF , 0x00,0x01,0xFF,0xFE , 0x00,0x01,0xFF,0xFE], //[0x00,0x03,0xFF,0xFC , 0x00,0x03,0xFF,0xFC , 0x00,0x07,0xFF,0xF8 , 0x00,0x07,0xFF,0xF8], //[0x00,0x0F,0xFF,0xF0 , 0x00,0x0F,0xFF,0xF0 , 0x00,0x1F,0xFF,0xE0 , 0x00,0x1F,0xFF,0xE0], //[0x00,0x3F,0xFF,0xC0 , 0x00,0x3F,0xFF,0xC0 , 0x00,0x7F,0xFF,0x80 , 0x00,0x7F,0xFF,0x80], //[0x00,0xFF,0xFF,0x00 , 0x00,0xFF,0xFF,0x00 , 0x01,0xFF,0xFE,0x00 , 0x01,0xFF,0xFE,0x00], //[0x03,0xFF,0xFC,0x00 , 0x03,0xFF,0xFC,0x00 , 0x07,0xFF,0xF8,0x00 , 0x07,0xFF,0xF8,0x00], //[0x0F,0xFF,0xF0,0x00 , 0x0F,0xFF,0xF0,0x00 , 0x1F,0xFF,0xE0,0x00 , 0x1F,0xFF,0xE0,0x00], //[0x3F,0xFF,0xC0,0x00 , 0x3F,0xFF,0xC0,0x00 , 0x7F,0xFF,0x80,0x00 , 0x7F,0xFF,0x80,0x00], [0x00,0xFF,0xAA,0x55 , 0x69,0x0F,0xA5,0x1E , 0xC7,0x71,0x8E,0xE3 , 0xCA,0xFE,0xBA,0xBE], [0xFF,0xFF,0xFF,0xFF , 0xFF,0xFF,0xFF,0xFF , 0xFF,0xFF,0xFF,0xFF , 0xFF,0xFF,0xFF,0xFF] ]; con.move(2,1); print("000 KB OK") try { while (memptr < (8 << 20)) { // just print a number con.move(2,1); var memptrtext = ""+((memptr + 1) >> 10); print((memptrtext < 10) ? "00"+memptrtext : (memptrtext < 100) ? "0"+memptrtext : memptrtext); // perform memory test for (var ptn = 0; ptn < memtestptn.length; ptn++) { for (var bi = 0; bi < memtestptn[ptn].length; bi++) { sys.poke(memptr + bi, memtestptn[ptn][bi]); if (memtestptn[ptn][bi] != sys.peek(memptr + bi)) throw "Memory Error"; } for (var bi = 0; bi < memtestptn[ptn].length; bi++) { sys.poke(memptr + bi, 255 - memtestptn[ptn][bi]); if (255 - memtestptn[ptn][bi] != sys.peek(memptr + bi)) throw "Memory Error"; } } memptr += memtestptn[0].length; } } catch (e) { if (e == "Memory Error") { println(" Memory Error"); } else { println(" KB OK!"); } } /////////////////////////////////////////////////////////////////////////////// // probe bootable device var _BIOS = {}; // Syntax: [Port, Drive-number] // Port #0-3: Serial port 1-4 // #4+ : Left for future extension // Drive-number always starts at 1 _BIOS.FIRST_BOOTABLE_PORT = [0,1]; // ah screw it Object.freeze(_BIOS); /////////////////////////////////////////////////////////////////////////////// con.move(4,1);