Fix bugs, add LOADPKG.
This commit is contained in:
parent
6c06a553b6
commit
440475d7c4
@ -240,4 +240,5 @@ FORTH
|
|||||||
: ON SET-CHANNEL S" on" SEND ;
|
: ON SET-CHANNEL S" on" SEND ;
|
||||||
: OFF SET-CHANNEL S" off" SEND ;
|
: OFF SET-CHANNEL S" off" SEND ;
|
||||||
: IO@ RECEIVE 3 < ;
|
: IO@ RECEIVE 3 < ;
|
||||||
|
: LOADPKG 0 0x11e C! 0x11a 2! BEGIN 0x11a 2@ SET-CHANNEL 0x11e 1 SEND 0x11e C@ 1+ 0x11e C! 0x11a 2@ 16 RECEIVE-AT 16 C@ WHILE 16 SWAP EVALUATE REPEAT DROP ;
|
||||||
: COLD 82 EMIT 101 EMIT 97 EMIT 100 EMIT 121 EMIT QUIT ;
|
: COLD 82 EMIT 101 EMIT 97 EMIT 100 EMIT 121 EMIT QUIT ;
|
||||||
|
File diff suppressed because one or more lines are too long
13
init.lua
13
init.lua
@ -195,6 +195,8 @@ end
|
|||||||
local function send_message(pos, cptr, maddr, mlen)
|
local function send_message(pos, cptr, maddr, mlen)
|
||||||
local msg = string_at(cptr, maddr, mlen)
|
local msg = string_at(cptr, maddr, mlen)
|
||||||
cptr.digiline_events[cptr.channel] = msg
|
cptr.digiline_events[cptr.channel] = msg
|
||||||
|
--print(cptr.channel)
|
||||||
|
--print(msg)
|
||||||
digiline:receptor_send(pos, digiline.rules.default, cptr.channel, msg)
|
digiline:receptor_send(pos, digiline.rules.default, cptr.channel, msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -413,6 +415,7 @@ minetest.register_node("forth_computer:computer",{
|
|||||||
cptrs[hashpos(pos)] = {pos=pos, cptr=create_cptr()}
|
cptrs[hashpos(pos)] = {pos=pos, cptr=create_cptr()}
|
||||||
end,
|
end,
|
||||||
on_destruct = function(pos)
|
on_destruct = function(pos)
|
||||||
|
if cptrs[hashpos(pos)] == nil then return end
|
||||||
if cptrs[hashpos(pos)].swapping then
|
if cptrs[hashpos(pos)].swapping then
|
||||||
cptrs[hashpos(pos)].swapping = nil
|
cptrs[hashpos(pos)].swapping = nil
|
||||||
return
|
return
|
||||||
@ -420,9 +423,10 @@ minetest.register_node("forth_computer:computer",{
|
|||||||
cptrs[hashpos(pos)] = nil
|
cptrs[hashpos(pos)] = nil
|
||||||
end,
|
end,
|
||||||
on_punch = function(pos, node, puncher)
|
on_punch = function(pos, node, puncher)
|
||||||
|
if cptrs[hashpos(pos)] == nil then return end
|
||||||
local cptr = cptrs[hashpos(pos)].cptr
|
local cptr = cptrs[hashpos(pos)].cptr
|
||||||
cptr.stopped = true
|
cptr.stopped = true
|
||||||
cptr.swapping = true
|
cptrs[hashpos(pos)].swapping = true
|
||||||
hacky_swap_node(pos, "forth_computer:computer_off")
|
hacky_swap_node(pos, "forth_computer:computer_off")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
@ -443,6 +447,7 @@ minetest.register_node("forth_computer:computer_off",{
|
|||||||
cptrs[hashpos(pos)] = {pos=pos, cptr=create_cptr()}
|
cptrs[hashpos(pos)] = {pos=pos, cptr=create_cptr()}
|
||||||
end,
|
end,
|
||||||
on_destruct = function(pos)
|
on_destruct = function(pos)
|
||||||
|
if cptrs[hashpos(pos)] == nil then return end
|
||||||
if cptrs[hashpos(pos)].swapping then
|
if cptrs[hashpos(pos)].swapping then
|
||||||
cptrs[hashpos(pos)].swapping = nil
|
cptrs[hashpos(pos)].swapping = nil
|
||||||
return
|
return
|
||||||
@ -450,9 +455,10 @@ minetest.register_node("forth_computer:computer_off",{
|
|||||||
cptrs[hashpos(pos)] = nil
|
cptrs[hashpos(pos)] = nil
|
||||||
end,
|
end,
|
||||||
on_punch = function(pos, node, puncher)
|
on_punch = function(pos, node, puncher)
|
||||||
|
if cptrs[hashpos(pos)] == nil then return end
|
||||||
local cptr = cptrs[hashpos(pos)].cptr
|
local cptr = cptrs[hashpos(pos)].cptr
|
||||||
cptr.stopped = false
|
cptr.stopped = false
|
||||||
cptr.swapping = true
|
cptrs[hashpos(pos)].swapping = true
|
||||||
hacky_swap_node(pos, "forth_computer:computer")
|
hacky_swap_node(pos, "forth_computer:computer")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
@ -570,7 +576,8 @@ minetest.register_node("forth_computer:disk",{
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local progs = {["Empty"] = string.rep(string.char(0), 16536), ["Forth Boot Disk"] = create_forth_floppy()}
|
local progs = {["Empty"] = string.rep(string.char(0), 16536),
|
||||||
|
["Forth Boot Disk"] = create_forth_floppy(),}
|
||||||
minetest.register_node("forth_computer:floppy_programmator",{
|
minetest.register_node("forth_computer:floppy_programmator",{
|
||||||
description = "Floppy disk programmator",
|
description = "Floppy disk programmator",
|
||||||
tiles = {"programmator.png"},
|
tiles = {"programmator.png"},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user