Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Search the Community

Showing results for tags 'bios'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • OpenComputers
    • Announcements
    • Feedback
    • IRC
  • Code Central
    • Support
    • Showcase
    • Tutorials
  • Addons & More
    • Addons Mods
    • Architectures
    • OpenEngineering Task Force
  • General
    • Lounge
    • Forum Games
    • Showcase
    • Servers
  • Archives
    • Public Archives

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Minecraft


GitHub


IRC


Fediverse ID


Location


Interests

Found 11 results

  1. BrightYC

    Cyan BIOS

    The world as I knew it had a problem. A plenty of bootloaders had already existed, and they'd all shared the same flaw: it wasn't me who made them. I've decided to put an end to that. Cyan is a multi-bootloader and a replacement for the plain Lua BIOS. The features it encompasses include: a whitelist to prevent random strangers from tampering with the computer a Lua interpreter to test your sudden ideas support for hot-plugging filesystems if you've forgot to insert a floppy the ability to format or label a filesystem, while we're at it loading the boot payload from the internet when you can't afford an HDD and a gorgeous, minimalistic design Pictures: To install on OpenOS, run the following: wget -fq https://raw.githubusercontent.com/BrightYC/Cyan/master/installer.lua && installer.lua Or, if you're a MineOS user, look for the program (bearing the same name) at your local AppMarket. Here's how the whitelist works. You add trusted users to the list when the installer asks you. Then the bootloader will ignore any signals from other people. That's it. Oh, and you can also choose a less restrictive option: the Cyan BIOS can wait for input from a trusted user. Before that an authorized person can't access the bootloader. Lastly, a couple of words about the Lua interpreter. It doesn't wrap the output, and the input command must be less than the screen width. The last restriction can be circumvented by copy-pasting the command. In addition to that, the bootloader defines the following functions: os.sleep([timeout: number]) proxy(componentName: string): table or nil — returns a component proxy by its name (cf. component.proxy, which takes an address) read(lastInput: string or nil): string or nil — a primitive io.read() print(...) The source code for the curious: https://github.com/BrightYC/Cyan P. S. Big thanks to @Fingercomp for his lecture about string escapes and writing this text.
  2. Ok!!! Hello! So... I was going along. Coding more for the OpenComputer RFTools Dialing Program when I found out about DRONES! I immediately went and checked them out, and found out there "Basically the microcontrollers of robots." Witch I was sorta sad that you cant have a hard drive on them and so forth, Plus you only have a limited space in the bios that the drone runs on. Anyway, I wanted to find a way to run all the stuff remotely so the drone wouldn't have to do any of the processing. Like a separate computer would tell the drone what to do over a wireless network, but because I wanted it to work at whatever distance I then just used linked cards. This is the bios I use to run the drone: local d = component.proxy(component.list("drone")()) local t = component.proxy(component.list("tunnel")()) while true do local evt,_,sender,_,_,name,cmd,a,b,c = computer.pullSignal() if evt == "modem_message" and name == d.name() then if cmd == "gst" then t.send(d.name(),"gst",d.getStatusText()) end if cmd == "sst" then t.send(d.name(),"sst",d.setStatusText(a)) end if cmd == "mov" then d.move(a,b,c) end if cmd == "gos" then t.send(d.name(),"gos",d.getOffset()) end if cmd == "gve" then t.send(d.name(),"gv",d.getVelocity()) end if cmd == "gmv" then t.send(d.name(),"gmv",d.getMaxVelocity()) end if cmd == "gac" then t.send(d.name(),"ga",d.getAcceleration()) end if cmd == "sac" then d.setAcceleration(a) end if cmd == "glc" then t.send(d.name(),"glc",d.getLightColor()) end if cmd == "slc" then d.setLightColor(a) end if cmd == "dct" then local b, s = d.detect(a) t.send(d.name(),"dct",b,s) end if cmd == "cmp" then t.send(d.name(),"c",d.compare(a)) end end end LINK TO PASTEBIN: https://pastebin.com/cfgsdmQJ So you would run and create the programs on a separate computer or tablet. This made it much easier for me to code it plus I get to use all my APIs! Here is the start of a drone control program: local t = require("component").tunnel --or modem if thats what you use local event = require("event") function doDrone(dronename,dronecommand,arg1,arg2,arg3) t.send(dronename,dronecommand,arg1,arg2,arg3) _, _, _, _, _, name, command, respond1, respond2 = event.pull("modem_message") return {name, command, respond1, respond2} end doDrone("DAVE","mov",0,3,0) --this would make it move up there blocks! All the commands, like "mov", and what arguments they need, and how they respond are in the drone control bios above! (One above the one above, so like two above) I plan on adding support for all the drop components like navigation and such, Or you could do that yourself!
  3. dear god this was painful to get working Zorya NEO Zorya has returned! Yeah, I finally did it. I finally updated Zorya. With this major upgrade, the game has completely changed. Zorya is now much more modular. Configurations are no longer static JSON files. They're now Lua scripts. Modules are also now compressed and the entire thing loads from an initial ram filesystem. I've also included utilities for configuring and managing your Zorya NEO install. Here's a rundown of the features of Zorya NEO: Multithreading - For when you want to do a lot in the bootloader. Networking support - Minitel, here and now. A fancy GUI - It's discount GRUB. Compressed modules - Less space used! Virtual components - Now you can expose that neat vdev to any OS! Virtual BIOSes - MineOS in Zorya is now possible. Full OEFIv1 and v2 support Modular design - Only loads modules when required. You may be asking yourself, where do I get this godawful wonderful kit of software? Well, just go to the Github and go to releases! Grab the latest release and install. The installer doesn't even require an internet connection. It's self extracting!
  4. Zorya BIOS Zorya BIOS is an extendable and configurable BIOS and bootloader, capable of booting any OS with the right extensions. It's similar to GRUB. (sorry in advance for bios.lua) All you need to install the BIOS is to flash bios.lua to a blank EEPROM, insert a blank floppy, then reboot. Note: This has only been tested on Tier 3 hardware and Lua 5.3. requires an Internet card. Github repo PRs are welcome! Future plans: Ability to load from non-managed disks (like disks formatted with msdosfs, etc) Make it easier to extend Clean up code! Ability to edit options from bootloader Automatically load an OS after n seconds
  5. Ok!!! So I have been working my butt off to get this to work. It is a wirelessly controlled microcontroller! And if you have a look at the code you might notice that it DOES NOT HAVE SPACING! I RAN OUT OF EEPROM SPACE OK!!! DO NOT COMMENT ABOUT THAT!!! Ok... This took a long time to work all this out but I think its great! FEATURES: Network Cards (not sure about computronics spoofing card though) Wireless Network Cards (both tiers) Linked Cards (my personal favorite) Names Passwords Ports SUPER EASY!!! USES: Remote Door Control Remote Redstone Control Remote ANYTHING WITH A MICROCONTROLLER Control TUTORIAL: Step One - Set up a pc that can edit EEPROMs (I use the flash command) Step Two - Download the Pastebin file using this command: pastebin get BrhTgvET RCMICROBIOS Step There - Upload it to the EEPROM. I use this command: flash RCMICROBIOS Step Four - Make a Microcontroller: Must include these things 1. A Modem of any kind 2. A sign upgrade 3. The EEPROM that you just made Step Five - Place down the Microcontroller where you want then fill out a sign on ITS FACE like this: LINE1 = name of microcontroller LINE2 = password LINE3 = port (nothing if using a linked card) EXAMPLES SENDS: A. component.modem.broadcast(217,"DOOR A", "password123", "component.proxy(component.list(\"redstone\")()).setOutput(2,1)") --Yes you most call components this way on a EEPROM B. component.tunnel.send("DOOR A", "password123", "local R = component.proxy(component.list(\"redstone\")())") --But you can just save them as variables C. component.modem.broadcast(217,"DOOR A","password123","return R.getInput(2)") --it can even return data to you in a SERIALIZED packet! YAY! LINKS: https://pastebin.com/BrhTgvET And that's about it. If you have any suggestions just say so! I'll try to make this as great as possible!
  6. Drone Tree Farmer - Introduction - This is an automatic tree farmer script for drones harvesting spruce wood in king size (2x2). Just place a chest next to the drone and 8 or more saplings in the first slot and it should be be able to go on forever. No coal is needed, no charge pads, the solar panel upgrade will power the drone. This is not the fastest way to get wood, but it's pretty cheap, easy setup and doesn't need maintenance. Built for: OpenComputers-MC1.10.2-1.6.2.7, Lua 5.2. Also works on OpenComputers-MC1.7.10-1.6.2.12-universal, Lua 5.2, other than the beep sound is weird. Should work for newer versions too! - Requirements - * A working computer of any tier, to flash EEPROMs. * A drone (tier 1) with: cpu, ram, solar and inventory upgrade. * 8 or more Spruce saplings. Jungle trees are partly supported, it could work but branches will be left alone. * A chest or similar is recommended. * An empty EEPROM. - Usage - Part A - Flashing 1. Start up a computer with an internet card in it. 2. Replace the Lua EEPROM with an empty one. 3. Right click the computer screen and type (or paste): pastebin get kSjuz992 bios && flash bios 4. Follow the instructions and when done - take out your newly flashed EEPROM. Part B - Making the drone 1. Grab a Drone Case Tier 1 and place it in the Assembler. 2. Add T1 cpu, ram, solar upgrade and inventory upgrade. 3. Add the flashed EEPROM. (You can also change roms later if you want) 4. Assemble away! Part C - Actual work. 1. Find a flat area of dirt or grass. Remove any tall grass. 2. Place the drone so it got at least 10 blocks to the WEST of it. (Press F3 to find out where west is.) 3. Place a chest next to the drone, NORTHERN side (again F3 to find out). 4. Place 8 or more spruce saplings in the top left slot. 5. Start the drone. It should say ROM OK and get to work. 6. Grab a cup of Joe to celebrate. Source code: https://pastebin.com/kSjuz992 Disclaimer: This is my first lua script that I ever release so my code is far from good. Also, I am not a programmer, just started with this. This also got a lot of debug code in it, lack of loops, extra sleeps and what not. Thanks to irc chat for the sleep function!
  7. Ok!!! Hello! So... I was going along. Coding more for the OpenComputer RFTools Dialing Program when I found out about DRONES! I immediately went and checked them out, and found out there "Basically the microcontrollers of robots." Witch I was sorta sad that you cant have a hard drive on them and so forth, Plus you only have a limited space in the bios that the drone runs on. Anyway, I wanted to find a way to run all the stuff remotely so the drone wouldn't have to do any of the processing. Like a separate computer would tell the drone what to do over a wireless network, but because I wanted it to work at whatever distance I then just used linked cards. This is the bios I use to run the drone: local d = component.proxy(component.list("drone")()) local t = component.proxy(component.list("tunnel")()) while true do local evt,_,sender,_,_,name,cmd,a,b,c = computer.pullSignal() if evt == "modem_message" and name == d.name() then if cmd == "gst" then t.send(d.name(),"gst",d.getStatusText()) end if cmd == "sst" then t.send(d.name(),"sst",d.setStatusText(a)) end if cmd == "mov" then d.move(a,b,c) end if cmd == "gos" then t.send(d.name(),"gos",d.getOffset()) end if cmd == "gve" then t.send(d.name(),"gv",d.getVelocity()) end if cmd == "gmv" then t.send(d.name(),"gmv",d.getMaxVelocity()) end if cmd == "gac" then t.send(d.name(),"ga",d.getAcceleration()) end if cmd == "sac" then d.setAcceleration(a) end if cmd == "glc" then t.send(d.name(),"glc",d.getLightColor()) end if cmd == "slc" then d.setLightColor(a) end if cmd == "dct" then local b, s = d.detect(a) t.send(d.name(),"dct",b,s) end if cmd == "cmp" then t.send(d.name(),"c",d.compare(a)) end end end LINK TO PASTEBIN: https://pastebin.com/cfgsdmQJ So you would run and create the programs on a separate computer or tablet. This made it much easier for me to code it plus I get to use all my APIs! Here is the start of a drone control program: local t = require("component").tunnel --or modem if thats what you use local event = require("event") function doDrone(dronename,dronecommand,arg1,arg2,arg3) t.send(dronename,dronecommand,arg1,arg2,arg3) _, _, _, _, _, name, command, respond1, respond2 = event.pull("modem_message") return {name, command, respond1, respond2} end doDrone("DAVE","mov",0,3,0) --this would make it move up there blocks! All the commands, like "mov", and what arguments they need, and how they respond are in the drone control bios above! (One above the one above, so like two above) I plan on adding support for all the drop components like navigation and such, Or you could do that yourself!
  8. So, basically I'm trying to do this thing where I have a microcontroller and I want it always receiving, and when it receives a certain message, I want it to output redstone. I've got all the right components, and it doesn't crash on boot, but when it receives a message, it crashes. The code is simple, and yes I'm doing the component.proxy() thing. Full code: local modem = component.proxy(component.list("modem")()) local redstone = component.proxy(component.list("redstone")()) modem.open(123) local name, _, from, port, _, message = computer.pullSignal("modem_message") if message == "hi" then redstone.setOutput(1,10) else redstone.setOutput(1,0) end
  9. I've been working on robots that don't have interfaces - and instead commune by wireless means. Part of programming these robots has involved writing on an EEPROM My problem lies with getting certain APIs. I've previously encountered things such as modem = component.proxy(component.list("modem")()) to get to an API, but FileSystem doesn't work this way. The program here (ran on a computer) wouldn't work as I put fs = require("component").filesystem Where I should have put fs = require("filesystem") If I make this change, the program works. But if I comment out the require statements, uncomment the proxy statements, write to an EEPROM and then insert into a robot, it doesn't work over there. So what's the BIOS way to get the filesystem API? (If you're wondering, the program is a recursive function designed to inform other devices of what's on the robot's filesystem)
  10. Introduction imagine you are programming a drone or a microcontroller... And then you are hitting the EEPROM limits - 4KiB isn't a lot of space. Now you could start writing ugly code but there is a better solution: Crunch! Crunch is a program that compresses Lua source files. Depending on the input file size and the amount of memory available it is able to utilize a variety of methods to keep the output size small. That is starting with simple token based whitespace reduction and reaching to full parsing and scoping rules to replace local variables with shorter names. For even better compression it is also able to do a kind of lossy compression when replacing long globals with short local variables. When using crunch you can focus on a more commented and nice looking code instead of worrying too much about keeping names short. Even code that has been written with being small in mind can profit from it: Skex has been reduced from 3990 bytes to 2357 bytes. More than 40% reduction! Man Page Depencencies Software All required libraries are included in the download. Hardware RAM: min. 512 KiB1, recommended: 1 MiB for small files, 2 MiB for big files2 Note 1: That needs removing the library "parser.lualr" from file system and only allows token based compression. Note 2: Full parsing is quite demanding because it is using bottom up parsing which requires the whole tree structure to be in memory. Installation Simply download the tar archive and extract it into the root directory. All files should then be there where they should be. Download (last update: 13.04.17) github Ingame: cd / wget 'https://raw.githubusercontent.com/mpmxyz/ocprograms/master/tars/crunch.tar' tar -xf crunch.tar OR oppm install crunch Known Issues The 'lossy' global-to-local compression cannot be used if a global variable is used with side effects to other files. Blacklist those globals to avoid errors. (example: "--blacklist=require" when compressing the default "Lua BIOS")
  11. Hey im having a problem with the BIOS i am wiriting im doing it as a project to get me familiar with the OC system i must note i am very experienced with computercraft but the problem is that when loading component.list("filesystem") the result is always empty and i cant figue it out the code is here http://pastebin.com/mJyUiBde thanks for any help you can give
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.