mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-10 15:04:03 +09:00
renaming system.maxmem to sys.maxmem
This commit is contained in:
@@ -515,12 +515,6 @@ con.poll_keys = function() {
|
|||||||
return [-41,-42,-43,-44,-45,-46,-47,-48].map(it => sys.peek(it));
|
return [-41,-42,-43,-44,-45,-46,-47,-48].map(it => sys.peek(it));
|
||||||
};
|
};
|
||||||
Object.freeze(con);
|
Object.freeze(con);
|
||||||
// system management function
|
|
||||||
var system = {};
|
|
||||||
system.maxmem = function() {
|
|
||||||
return sys.peek(-65) | (sys.peek(-66) << 8) | (sys.peek(-67) << 16) | (sys.peek(-68) << 24);
|
|
||||||
};
|
|
||||||
Object.freeze(system);
|
|
||||||
// some utilities functions
|
// some utilities functions
|
||||||
|
|
||||||
// TypedArray re-implementation
|
// TypedArray re-implementation
|
||||||
|
|||||||
4262
assets/bios/basic.js
Normal file
4262
assets/bios/basic.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
println("Main RAM:"+(system.maxmem() >> 10)+" KBytes");
|
println("Main RAM:"+(sys.maxmem() >> 10)+" KBytes");
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
println("TERRAN Megatrends inc.");
|
println("TERRAN Megatrends inc.");
|
||||||
//println("Main RAM:"+(system.maxmem() >> 10)+" KBytes");
|
//println("Main RAM:"+(sys.maxmem() >> 10)+" KBytes");
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ function printSysInfo() {
|
|||||||
print(`System uptime ${uh}h${um}m${us}s`)
|
print(`System uptime ${uh}h${um}m${us}s`)
|
||||||
|
|
||||||
con.move(6,configContentsX)
|
con.move(6,configContentsX)
|
||||||
print(` User RAM ${system.maxmem()>>>10} Kbytes`)
|
print(` User RAM ${sys.maxmem()>>>10} Kbytes`)
|
||||||
con.move(7,configContentsX)
|
con.move(7,configContentsX)
|
||||||
print(`Video RAM ${256*sys.peek(-131084)} Kbytes`)
|
print(`Video RAM ${256*sys.peek(-131084)} Kbytes`)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ let DBGON = (!PROD) && true
|
|||||||
let DATA_CURSOR = 0
|
let DATA_CURSOR = 0
|
||||||
let DATA_CONSTS = []
|
let DATA_CONSTS = []
|
||||||
|
|
||||||
let vmemsize = system.maxmem()
|
let vmemsize = sys.maxmem()
|
||||||
|
|
||||||
let cmdbuf = [] // index: line number
|
let cmdbuf = [] // index: line number
|
||||||
let gotoLabels = {}
|
let gotoLabels = {}
|
||||||
|
|||||||
4131
assets/bios/pip_basic_loader_source2.js
Normal file
4131
assets/bios/pip_basic_loader_source2.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
con.curs_set(0)
|
con.curs_set(0)
|
||||||
con.clear()
|
con.clear()
|
||||||
let t=`${system.maxmem()>>>10} Kbytes System`
|
let t=`${sys.maxmem()>>>10} Kbytes System`
|
||||||
let imageBits = gzip.decomp(base64.atob(
|
let imageBits = gzip.decomp(base64.atob(
|
||||||
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
|
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
|
||||||
))
|
))
|
||||||
@@ -15,7 +15,7 @@ for (let y = 0; y < 40; y++) {
|
|||||||
con.move(8,1+(40-t.length>>1))
|
con.move(8,1+(40-t.length>>1))
|
||||||
print(t)
|
print(t)
|
||||||
// wait arbitrary time
|
// wait arbitrary time
|
||||||
for (let b=0;b<system.maxmem()*10;b++) {
|
for (let b=0;b<sys.maxmem()*10;b++) {
|
||||||
sys.poke(0,(Math.random()*255)|0)
|
sys.poke(0,(Math.random()*255)|0)
|
||||||
sys.poke(0,0)
|
sys.poke(0,0)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ graphics.setFramebufferScroll(0,-((1.0-tdiff/tlen)*164)|0);}
|
|||||||
// show how much ram is there
|
// show how much ram is there
|
||||||
con.color_pair(239,14);
|
con.color_pair(239,14);
|
||||||
let vramstr=`VIDEO RAM : ${256 * sys.peek(-131084)} Kbytes`;
|
let vramstr=`VIDEO RAM : ${256 * sys.peek(-131084)} Kbytes`;
|
||||||
let uramstr=` USER RAM : ${system.maxmem()>>>10} Kbytes`;
|
let uramstr=` USER RAM : ${sys.maxmem()>>>10} Kbytes`;
|
||||||
con.move(20,(80-vramstr.length)/2);println(vramstr);
|
con.move(20,(80-vramstr.length)/2);println(vramstr);
|
||||||
con.move(21,(80-uramstr.length)/2);println(uramstr);
|
con.move(21,(80-uramstr.length)/2);println(uramstr);
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const COL_CARET_ROW = 81
|
|||||||
const BIG_STRIDE = 999
|
const BIG_STRIDE = 999
|
||||||
const TAB_SIZE = 4
|
const TAB_SIZE = 4
|
||||||
const PAINT_START_Y = 3
|
const PAINT_START_Y = 3
|
||||||
const MEM = system.maxmem()
|
const MEM = sys.maxmem()
|
||||||
|
|
||||||
const TYPESET_DEBUG_PRINT = true
|
const TYPESET_DEBUG_PRINT = true
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
let len = 560*448
|
let len = 560*448
|
||||||
let pcnt = (system.maxmem() / len)|0
|
let pcnt = (sys.maxmem() / len)|0
|
||||||
if (pcnt < 2) {
|
if (pcnt < 2) {
|
||||||
printerrln("Not enought RAM on the system to test!")
|
printerrln("Not enought RAM on the system to test!")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// exec_args: bf.js input_file optional_memsize
|
// exec_args: bf.js input_file optional_memsize
|
||||||
let memsize = exec_args[2]|0;
|
let memsize = exec_args[2]|0;
|
||||||
if (memsize <= 0) memsize = (system.maxmem() < 30000) ? system.maxmem()-256 : 30000;
|
if (memsize <= 0) memsize = (sys.maxmem() < 30000) ? sys.maxmem()-256 : 30000;
|
||||||
let nativePtr = undefined;
|
let nativePtr = undefined;
|
||||||
try {
|
try {
|
||||||
nativePtr = sys.malloc(memsize);
|
nativePtr = sys.malloc(memsize);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
con.curs_set(0)
|
con.curs_set(0)
|
||||||
con.clear()
|
con.clear()
|
||||||
let t=`${system.maxmem()>>>10} Kbytes System`
|
let t=`${sys.maxmem()>>>10} Kbytes System`
|
||||||
let imageBits = gzip.decomp(base64.atob(
|
let imageBits = gzip.decomp(base64.atob(
|
||||||
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
|
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -42,12 +42,12 @@ let DATA_CURSOR = 0
|
|||||||
let DATA_CONSTS = []
|
let DATA_CONSTS = []
|
||||||
const BASIC_HOME_PATH = "/home/basic/"
|
const BASIC_HOME_PATH = "/home/basic/"
|
||||||
|
|
||||||
if (system.maxmem() < 8192) {
|
if (sys.maxmem() < 8192) {
|
||||||
println("Out of memory. BASIC requires 8K or more User RAM")
|
println("Out of memory. BASIC requires 8K or more User RAM")
|
||||||
throw Error("Out of memory")
|
throw Error("Out of memory")
|
||||||
}
|
}
|
||||||
|
|
||||||
let vmemsize = system.maxmem()
|
let vmemsize = sys.maxmem()
|
||||||
|
|
||||||
let cmdbuf = [] // index: line number
|
let cmdbuf = [] // index: line number
|
||||||
let gotoLabels = {}
|
let gotoLabels = {}
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class TVDOSFileDescriptor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
return if (!this.isDirectory) undefined else this.driver.listFiles(this)
|
return (!this.isDirectory) ? undefined : this.driver.listFiles(this)
|
||||||
}
|
}
|
||||||
/** When the file does not exist, mkfile() will be called; if you want to make a directory, use mkdir() */
|
/** When the file does not exist, mkfile() will be called; if you want to make a directory, use mkdir() */
|
||||||
touch() {
|
touch() {
|
||||||
|
|||||||
@@ -178,6 +178,9 @@ class VMJSR223Delegate(val vm: VM) {
|
|||||||
vm.sysrqDown = false
|
vm.sysrqDown = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun maxmem(): Int {
|
||||||
|
return vm.memsize.toInt()
|
||||||
|
}
|
||||||
fun getMallocStatus(): IntArray {
|
fun getMallocStatus(): IntArray {
|
||||||
return intArrayOf(vm.MALLOC_UNIT, vm.allocatedBlockCount)
|
return intArrayOf(vm.MALLOC_UNIT, vm.allocatedBlockCount)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user