Close
0%
0%

SANX-I MICROCOMPUTER

Design, programming & implementation.

Public Chat
Similar projects worth following
SANX-I microcomputer is an open-source educational resource kit conceived to help students and enthusiasts learn and practice computer architecture, machine language programming, digital electronics and physical computing. The kit includes:

- Learning and training documentation.
- Digital logic circuits (Logisim).
- Trainer board (no soldering required) .
- Arduino Nano microcontroller and sketch.
- Trainer app.

YouTube:
https://www.youtube.com/playlist?list=PLIos1eMgRASbJumE4JSFyxjSdt5r6fzoe

Twitter:
https://twitter.com/microsanx1

INITIAL PROTOTYPE

The first prototype of the SANX-I microcomputer trainer board was built and tested using 4 x TM1638 based off-the-shelf boards controlled by an Arduino Nano on a breadboard.


CUSTOM PCB

The SANX-1 microcomputer trainer board is driven by 4 x TM1638 controlled by an Arduino Nano.

STRUCTURE & ORGANIZATION

INSTRUCTION SET ARCHITECTURE

DIGITAL LOGIC CIRCUIT


MACHINE CODE PROGRAMMING EXAMPLES

TRAINER APP

Adobe Portable Document Format - 1.59 MB - 11/12/2018 at 13:57

Preview
Download

  • Division by 0

    Mr. Piay08/26/2019 at 10:30 0 comments

    Division by 0 is not infinite, but it takes infinite time to find the quotient when it's performed implementing the repeated subtractions algorithm (unless you prevent it).

  • New ISA

    Mr. Piay07/26/2019 at 00:12 0 comments

    I designed and successfully implemented a new Instruction Set Architecture (ISA) for the SANX-I CPU.

    In the previous and original ISA, the memory address of the data/address to be read or written is formed by adding F0 (1111 0000) to the instruction operand (lowest 4 bits), so the RAM memory address space for data and jump addresses is limited to the last 16 bytes (from F0 to FF).

    Whilst 16 bytes of RAM memory storage is enough to write programs intended to learn and understand how microcomputers work, get you started with machine language programming (using hexadecimal numbers or bytecodes, not assembly language) as well as to create interesting and cool coding projects (some examples are available on the SANX-I YouTube playlist), I realized 240 bytes (from 00 to EF) was too large a storage for instructions, leading to an underused memory in most cases.

    The new ISA allows utilization of the whole RAM memory (256 bytes) for storing both instructions and data, like in a pure von Neumann architecture.

    Its implementation requires just a slight modification, if compared with the original ISA, consisting of adding a new 4-bit register (IOH) and a new 8-bit instruction (F9) -recall that the original ISA still allows six extra instructions, from F9 to FE.

    In SANX-I original ISA, the high nibble of the data address is set either to 1 or to 0.

    The new instruction F9 copies the low nibble of the accumulator into register IOH. This nibble, along with the low nibble corresponding to the operand of the next instruction copied into the 8-bit IOL register will form the new memory address to be used in the second step of the machine cycle (fetch data/address and execute instruction). As you’ve probably already noticed, loading first the accumulator with the value 0F and then executing instruction F9 turns the new ISA into the previous and original one.

    IOH register included in the new ISA.

    A very useful application of this new ISA is the utilization of the memory to store different programs (each one with its own space for instructions and data/addresses). The image below shows a utility program template that creates three consecutive blocks in memory to write such programs. When the utility program starts, the user can select which program to run by pressing an input key in the microcomputer trainer. In this template, the three programs output its number (1, 2 or 3).

  • I feel happy, proud & grateful

    Mr. Piay07/25/2019 at 14:42 0 comments

    I'm pleased to share with you that SANX-I MICROCOMPUTER has been awarded the 3th prize in the Ultimate Arduino Challenge global contest. A huge thanks to the organizers, the sponsor and the judging panel.

  • MACHINE CODE PROGRAMMING

    Mr. Piay12/23/2018 at 13:10 0 comments

    Learn & practice machine code programming with SANX-I microcomputer trainer board & trainer app.

  • SANX-I TRAINING KIT

    Mr. Piay12/23/2018 at 02:51 0 comments

View all 5 project logs

Enjoy this project?

Share

Discussions

Yann Guidon / YGDES wrote 10/29/2020 at 07:36 point

I come late to the party but I appreciate the nice work :-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates