XiPU_v2 has been released
A second iteration of the XiPU project is here. It is just named XiPU_v2.
All binaries and documentations are now available in the download section. The source codes are available to download on the git page.
In the near future, I will add new version of articles to describe fully changes and new features in the XiPU_v2.
The list of changes and new features:
- 64 KB of flat memory space. The memory is no longer split to ROM and RAM space.
- ROM is now split into BIOS and OS. The BIOS is stored in a 2 KB EEPROM and contains a bootloader and basic API for IO operations. The OS is loaded from the external memory on the IO Board. That architecture allows for more flexibility with the OS features in the future.
- Increased stack size from 256 bytes to 4 KB.
- The stack now has a dedicated Base Pointer register to store the Frame Pointer of the current function. It allows supporting features needed by higher-level languages like C.
- It is possible now to allocate more than 1 byte at once on the stack. It could be used to pass additional parameters to a called function or store temporal local variables.
- Add/sub/inc/dec operations can be made on 16-bit numbers using a Y:X pair of registers.
- It is possible now to use additional offset in the memory access instruction to get or set a value by the pointer stored in Y:X pair of registers. It simplifies work with arrays and structs.
- The XiPU has two flag registers. The one external where the change of the C and Z flag values should be visible for next instruction. And the second one is used only for internal purposes of executing instruction and does not affect the values of the external flag register.
All those changes speed up the XiPU_v2 and add more flexibility in creating software for it. The base clock of the XiPU_v2 is still 1 MHz, but the software execution speeds up because the code doing the same thing can be shorter. The changes in the memory layout and stack access allows using much less complicated calculations on pointers.
Below you can see photos of the assembled XiPU_v2 and XiPC_v2 in two types of cases:
Hardware articles have been added
And it happens! I added the last long-awaited hardware articles.
You can see there how the PCBs and the case are designed and made. I added so many images with schematics and descriptions for all parts of the XiPU and the XiPC. I did not forget to add a list of parts. I hope you will be interested in that kind of stuff.
The list of added articles:
- Design of the XiPU
- Design of the IO Board
- Design of the keyboard
- Case project
Software articles have been added
I added all the necessary articles needed to understand the logic and design of the software. Now it will be much easier for you to start working with the assembler code, debugging the IO Data Bus, adding new features, and making some changes in the code on your own.
I hope these articles will be helpful for you. In the near future, I will add a similar bunch of articles to the hardware section of this site.
The list of added articles:
- Design of the uROM
- Description of the assembler language
- Design of the IO Data BUS
- Design of the OS
- Using the emulator
IO Board firmware has been added
I finally added the source code for the IO Board firmware. You can download it from the git or the download page.
Now all project files and source file have added to my repository, and you can build everything by yourself and run it on the XiPC.
In the future, I will make some changes in the project:
- Clean up the IO request function in the emulator and the firmware. I will split it a little to be more readable.
- Change ROM size to 2 KB and insert there a bootloader. The OS will be downloaded from a file system stored on IO Board.
- Remove the flash read commands from assembler because everything will be accessible by RAM. Only the bootloader will be stored in ROM.
- Add option to read and write to the Stack Pointer. It will be resized from 256 bytes to 4 KB. It is a needed step to be able to make a simple C like language for the XiPU.
I made photos of beta version of the XiPC. The current available project version has some changes with positions of some connectors for future purposes, but functionality is the same as the beta version of the one. Please take a look at it:
PCB designs have been added
PCB designs and Gerbers have added for:
- XiPU - It is a project of CPU Board
- IO Board - It is a project of Input/Output Motherboard based on STM32F0
- Keyboard - It is a project of mechanical keyboard
Case for the XiPC has updated too. You can download them from the Download page or the GIT repository.
It is a great day of my project, because using Gerbers and project of the case you can build your own working copy of XiPC.
XiPC Emulator and File System have been added
A great milestone achieved! Now is possible to run XiPC Emulator and see how the computer based on XIPU works.
The emulator uses the same uROM and ROM files like the real hardware. You can compile and run the own application.
What added:
- XiPU Emulator
- File System with basic applications
ROM and Assembler Compiler have been added
I made a break from the project, maybe too long, but I have started working on it again!
I added ROM sources and documentation to the git repository. ROM contains two important parts of the OS:
- Simple terminal to run applications
- IO API as a bridge between hardware and applications
I added Assembler Compilator sources and documentation to the git repository. Own instruction set needs own Assembler Compiler, it is necessary for compiling ROM and applications for the XiPU.
The next in queue to add is an emulator of the whole XiPC. Stay tuned and wait for it!
Let us make a CPU! The page has been launched.
Hi everyone!
My name is Paweł. I made my own CPU and a PC based on the one. I will show you how the CPU works and how you can build it by yourself.
The XiPU is loosely based on MOS 6502. It was my starting point of design my own CPU. For now the XiPU has many differences and it is so much simpler.
Designing and testing took me a year and half. For now I am focused on creating this page and reviewing my own code before publishing.
Some information about the processor:
- The name of the CPU is XiPU. This is a shorter name of the "XiRX Processor Unit".
- The XiPU is an 8-bit processor and it has 32 KB of ROM and 64 KB of RAM.
- The base frequency is 1 MHz.
- It is full made by using 7400-series TTL chips. I used HCT version of the chips to reduce the power consumption.
- For communication is used a 16-bit data bus. 8 bits for the input and 8 bits for the output.
Some information about the computer:
- The PC based on XiPU is named XiPC. This is a shorter name of the "XiRX Personal Computer".
- XiPC uses the STM32F072 microprocessor as an IO chip for LCD screen, rs232, speaker, RTC clock and keyboard.
- The LCD screen can show 40 chars in one line. There are 30 lines. It support 16 colors for foreground and 16 colors for background.
- The speaker can play a simple melody with one sound at a time.
- The rs232 supports 1200 baud.
- The RTC clock is build-in the STM32F072 microprocessor with external battery backup.
- The keyboard is mechanical and specially designed for the XiPC.
In every month I will add more content at this page. A contact to me you can find in "Author" section of this page. I will be grateful for any suggestions and good words about the project.
The XiPU and XiPC projects are fully free to use. You should only leave information about me as the original author.