User manual

This is the full user manual for the Bedrock computer system.

This manual is aimed at people who are learning about or writing programs for the Bedrock system. For people who are implementing the system from scratch, the specification will provide more relevant information.

Overview

Bedrock is a portable 8-bit computer system that can run on a wide variety of computer architectures and form factors. The Bedrock system is straightforward to implement and use, and the simplicity and stability of the system allows programs to continue to work forever without modifications or maintenance.

Programs are distributed as binary files, with each program being no larger than 64 kilobytes.

Sections

The user manual is divided into multiple pages for readability.

Device manuals

Devices are not guaranteed to be available on all Bedrock systems. Refer to the individual instruction manual of your Bedrock system to see which devices are available, or check the connected devices port of the system device.

Reference tables

Terminology

Byte

A byte is an 8 bit value, written as a pair of hexadecimal digits.

Bedrock generally treats bytes as unsigned values, where the values 00 to FF represent the positive numbers 0 to 255. Some devices will treat bytes as signed values, where the values 00 to 7F represent the positive numbers 0 to 127 and the values FF to 80 represent the negative numbers -1 to -128.

Double

A double (or ‘double-width value’) is a 16 bit value stored as a pair of bytes, with the first byte representing the higher bits and the second byte representing the lower bits (big-endian byte order). The bytes making up a double are treated like any other byte when stored in memory or on the stack, and can be freely broken apart and recombined.

Bedrock generally treats doubles as unsigned values, where the values 0000 to FFFF represent the positive numbers 0 to 65535. Some devices will treat doubles as signed values, where the values 0000 to 7FFF represent the positive numbers 0 to 32767 and the values FFFF to 8000 represent the negative numbers -1 to -32768.

Port group

A port group is a group of device ports that acts as a single larger port, and is used to access a larger value. Ports belonging to a group have the name ‘grouped’ in the port table, and are owned by the previous port in the table.

Port alias

A port alias is a device port that acts as a copy of the previous port in the port table. Port aliases have the name ‘aliased’ in the port table.