forked from njm64/zawk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmem.awk
More file actions
36 lines (29 loc) · 666 Bytes
/
mem.awk
File metadata and controls
36 lines (29 loc) · 666 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function mem_init() {
for(i = 1; i <= 65536; i++) {
mem_rest[i] = mem[i]
}
}
function mem_read_u8(addr) {
return mem[addr]
}
function mem_write_u8(addr, val) {
mem[addr] = val
}
function mem_read_u16(addr) {
return mem[addr] * 256 + mem[addr+1]
}
function mem_write_u16(addr, val) {
mem[addr] = int(val / 256)
mem[addr+1] = val % 256
}
function mem_write_string(addr, s, i) {
for(i = 0; i < length(s); i++) {
mem_write_u8(addr + i + 1, ord[substr(s, i + 1, 1)])
}
mem_write_u8(addr + length(s) + 1, 0)
}
function mem_restore() {
for(i = 1; i <= 65536; i++) {
mem[i] = mem_rest[i]
}
}