Git Product home page Git Product logo

neotron-desktop-bios's Introduction

Neotron Desktop BIOS

This is the Neotron BIOS that lets you run the Neotron OS as a Linux, macOS or Windows application!

Build Status

Format Status

Compatibility

This BIOS uses pix-engine, so should run on any platform that pix-engine supports.

If you have a Mac, run:

brew install sdl2
brew install sdl2_mixer
brew install sdl2_image
export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix)/lib" 

You will need to re-run the export command before you re-build the application.

Building on Linux

Build and run this BIOS (and use it to boot Neotron OS) with...

~ $ git checkout https://github.com/neotron-compute/Neotron-Desktop-BIOS.git
~ $ cd Neotron-Desktop-BIOS
~/Neotron-Desktop-BIOS $ gunzip -c disk.img.gz > disk.img
~/Neotron-Desktop-BIOS $ RUST_LOG=debug cargo run -- --nvram=./nvram.dat --os=./libneotron_os.so --disk=./disk.img

In the OS run the shutdown command to quit.

The file libneotron_os.so is not supplied. You can build it with:

~ $ git checkout https://github.com/neotron-compute/neotron-os.git
~ $ cd neotron-os
~/neotron-os $ cargo build --release --lib
~/neotron-os $ ls ./target/release/*.so
./target/release/libneotron_os.so
~/neotron-os $ cp ./target/release/libneotron_os.so ~/Neotron-Desktop-BIOS

Building on Windows

  1. Install and bootstrap vcpkg

  2. Install the SDL2 libraries with vcpkg:

    C:\Users\user\Documents\vcpkg> ./vcpkg.exe install sdl2-ttf:x64-windows sdl2:x64-windows sdl2-mixer:x64-windows sdl2-gfx:x64-windows sdl2-ttf:x64-windows sdl2-image:x64-windows
  3. Set your PATH, INCLUDE and LIB to include the directories in your vcpkg install folder:

    C:\Users\user\Documents> set PATH=%PATH%;C:\Users\user\Documents\vcpkg\installed\x64-windows\bin
    C:\Users\user\Documents> set INCLUDE=%INCLUDE%;C:\Users\user\Documents\vcpkg\installed\x64-windows\include
    C:\Users\user\Documents> set LIB=%LIB%;C:\Users\user\Documents\vcpkg\installed\x64-windows\lib
  4. Build as usual:

    C:\Users\user\Documents\neotron-desktop-bios> cargo run --release -- --nvram=.\nvram.dat --os=.\neotron_os.dll

    Sorry, if you want to use the disk image you'll need a Windows version of gunzip to unpack it. Git Bash might work.

    In the OS run the shutdown command to quit.

    The file neotron_os.dll is not supplied. You can build it with:

    C:\Users\user\Documents> git checkout https://github.com/neotron-compute/neotron-os.git
    C:\Users\user\Documents> cd neotron-os
    C:\Users\user\Documents\neotron-os> cargo build --release --lib
    C:\Users\user\Documents\neotron-os> copy .\target\release\neotron_os.dll ..\Neotron-Desktop-BIOS

Features

  • GUI window with pixel-perfect video rendering
  • Block device support
  • Keyboard support
  • Power-off support
  • Config file support
  • TODO: Audio support
  • TODO: UART support

Changelog

Unreleased Changes (Source)

  • Added config get/set

v0.1.0 (Source)

  • First release
  • Works with OS 0.5.0
  • Fix colour palette to match Pico BIOS

Licence

Neotron-Desktop-BIOS Copyright (c) Jonathan 'theJPster' Pallant, 2023

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.

neotron-desktop-bios's People

Contributors

thejpster avatar jonathanpallant avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.