local ogPrint = print
function print(...)
term.clearLine()
ogPrint(...)
end
local args = {...}
local modem = peripheral.find("modem")
if (not modem) then return end
modem.closeAll()
term.clear()
term.setCursorPos(1,1)
local modemLimit = 128
local bandLimit = 256
local band = tonumber(args[1]) or 1
local startRange = modemLimit * (band - 1)
local endRange = modemLimit * band
local i = startRange
while i < endRange do
modem.open(i)
i = i + 1
end
while true do
term.setCursorPos(1,1)
print("Band: "..band)
print("Range: "..startRange.." - "..endRange - 1)
local event, modemSide, senderChannel,
replyChannel, message, senderDistance = os.pullEvent()
if (event == "modem_message") then
term.clear()
print("Received a message from channel: "..senderChannel)
print("They expect a reply on channel: "..replyChannel)
print("The message was: "..message)
elseif (event == "key") then
if (modemSide == keys.down or modemSide == keys.up) then
if (modemSide == keys.up and band < bandLimit) then
band = band + 1
elseif (band > 1) then
band = band - 1
end
local x = 0
modem.closeAll()
startRange = modemLimit * (band - 1)
endRange = (modemLimit * band)
x = startRange
while x < endRange do
modem.open(x)
x = x + 1
end
end
end
end
Comments