Skip to content

Commit

Permalink
Modifying README.md and initial commit docs
Browse files Browse the repository at this point in the history
  • Loading branch information
ifilot committed Jan 16, 2025
1 parent 860082a commit 6518396
Show file tree
Hide file tree
Showing 11 changed files with 194 additions and 16 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Build and Deploy Sphinx Documentation

on:
push:
branches:
- master
pull_request:
branches:
- master

permissions:
contents: write # Grants write access to the repository contents

jobs:
build:
name: Build and Deploy Sphinx Documentation
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.13.1

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install sphinx-rtd-theme \
sphinxcontrib-tikz \
pydata-sphinx-theme \
sphinx_design \
sphinx_subfigure \
myst_parser
- name: Build Documentation
run: |
cd docs
make html
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/html
26 changes: 10 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ compactness.
with different configurations and expand the system to suit specific needs or
projects.

## Technical specifications

- 8 bit program counter
- 256 bytes of RAM and 256 bytes of program ROM
- 256 configurable programs via a dip switch
- Three general-purpose register: A, B and T
- Simple ALU allowing for addition and subtraction
- EEPROM-configurable instruction decoder
- Custom assembly language including Python-based assembler

## Goals of the Project

The project aims to:
Expand All @@ -39,22 +49,6 @@ The project aims to:
effectively in hobbyist and educational projects to save space while
maintaining functionality.

## Design Overview

The computer consists of several interconnected modules:
- **Arithmetic Logic Unit (ALU)**: Handles basic arithmetic and logical
operations.
- **Instruction Decoder**: Handles control lines based on machine code
instructions.
- **Registers**: Temporary storage for data and instructions during operation.
- **Control Logic**: Directs the flow of data and controls the execution of
instructions.
- **Memory**: Stores programs and data, using a simple addressing scheme.
- **Output**: Facilitates communication with the user.

Each module is implemented with a combination of SMD-type TTL ICs, emphasizing
straightforward design while keeping the size compact.

## Why SMD Components?

SMD components offer several advantages:
Expand Down
1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/*
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.https://www.sphinx-doc.org/
exit /b 1
)

if "%1" == "" goto help

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
Binary file added docs/source/_static/img/favicon.ico
Binary file not shown.
Binary file added docs/source/_static/img/sap-smd-128px.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/sap-smd-32px.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/sap-smd-512px.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 65 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'SAP-SMD'
copyright = '2025, Ivo Filot'
author = 'Ivo Filot'
release = '1.0.0'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = [
'sphinx.ext.mathjax',
'sphinx_rtd_theme',
'sphinx.ext.autodoc',
'sphinx_design',
'sphinx_subfigure',
'myst_parser'
]

templates_path = ['_templates']
exclude_patterns = []

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'pydata_sphinx_theme'

html_theme_options = {
"navbar_start": ["navbar-logo"],
"navbar_center": ["navbar-nav"],
"navbar_align": "content",
"navbar_end": ["navbar-icon-links"],
"navbar_persistent": ["search-button"],
"logo": {
"text": "SAP-SMD",
"image_light": "_static/img/sap-smd-32px.png",
"image_dark": "_static/img/sap-smd-32px.png",
}
}

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
master_doc = 'index'
html_static_path = ['_static']
html_logo = "_static/img/sap-smd-32px.png"
html_favicon = "_static/img/favicon.ico"
html_css_files = [
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css",
"css/custom.css"
]

# other options
html_show_sourcelink = False

# myst options
myst_heading_anchors = 3
numfig_secnum_depth = 1
numfig = True
17 changes: 17 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.. SAP-SMD documentation master file, created by
sphinx-quickstart on Thu Jan 16 15:52:38 2025.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
SAP-SMD documentation
=====================

Add your content using ``reStructuredText`` syntax. See the
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
documentation for details.


.. toctree::
:maxdepth: 2
:caption: Contents:

0 comments on commit 6518396

Please sign in to comment.