Giter VIP home page Giter VIP logo

keydb_z80's Introduction

NoSQL For 8-bit Microcomputers

For when DBase just won't do!

What is this?

The NoSQL database craze has made waves on the mainframe and large computer markets, but so far no software package has been made available for the home hobbyist.

Based upon its bigger brother, KeyDB 8-bit edition brings the power of NoSQL to Z80 microcomputers. Supporting a whopping 240 keys, and a diverse command set of PING, SET, and GET KeyDB 8-bit is sure to satisfy your NoSQL needs.

Does it actually work?

It may be hard to believe but we have indeed fit the power of KeyDB in an 8-bit package. Needing just 32KB of RAM this server supports both get and set commands! Best of all as a NoSQL database, you won't have to type a line of that nasty SQL.

KeyDB 8-bit is able to achieve a whopping 10 queries per second on our 4Mhz Z80!

How do I use it?

KeyDB 8-bit is compiled on a much larger UNIX or Linux machine. For convenience instructions are provided for Debian and Ubuntu distributions. Contact your UNIX vendor for additional information.

Add Dependencies

% sudo apt install z80asm z80ex-dev

Building

The compilation step will assemble both KeyDB itself, and the emulator for local testing. Simply run:

% make

Testing

KeyDB 8-bit works with the tools of its larger brother KeyDB and Redis. Running make run will launch an emulated server on the default port. After which you will be able to connect with redis-cli, or even redis-benchmark

% make run

Then on a different terminal:

% ./redis-cli

OR

% ./redis-benchmark -t get -c 1

LICENSE

KeyDB 8-bit is licensed under the Bill Gates License. For more details see the LICENSE file.

Porting

KeyDB is designed for our specific IMSAI with its upgraded Z80 CPU card, but porting is trivial for any machine with an 8250. Simply change the ioport at the top of keydb.asm to the base address of your 80250 compatible UART. For more complex machines all IO is routed through the getch and putch routines which can be modified to suit your needs.

Note that KeyDB expects the UART to be initialized before it is started. KeyDB will not modify your baud rate and other settings.

Adding new commands

All new commands are listed in the command table in commands.asm. Be sure to follow the format of other commands. In the table you will add the jump vector for your new routine which you can write in keydb.asm. Your command enters with HL pointing to the argument string. Your command must parse it with validate_arg or strtok.

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.