Skip to main content

Pepp

CI Status GitHub file size in bytes Discord Invite Lines of Code

Table of Contents

  1. Building for Source
  2. Previous Works
  3. Pep/9 and /10 Virtual Machines
  4. Project Features
  5. Contributing
  6. Making Modifications

Build from Sources

When cloning this project, use --recurse-submodules to install relevant source code dependencies.

Required Build Tools Reason
Qt 6.11 or later Required for cross-platform GUIs. Under "Additional libraries", install Qt WebEngine and Qt WebView
CMake 3.24 or later Required build system; usually bundled with Qt
git lfs Required for binary assets, such as images an icons
Python 3.12+ Required for python bindings and compile-time changelog. Must be on your path.

While not required, the following tools enable additional features in built applications:

Optional Build Tools Reason
Qt Creator 14 or later Preferred IDE for this project
QT IFW 4.7 or later Creates Windows installers

It is recommended to build the application from within Qt Creator.

Starting in recent versions of Qt Creator (>19), we recommend disabling the following settings (also pictured below):

  • package manager auto setup

    Package manager auto setup injects additional cmake scripts which break builds on Windows as of 2026-06-09.

  • Qt online installer dependency provider

    The dependency provider flood the cmake generation step with verbose messages for packages we already installed with the above steps. Settings location of auto-setup and dependency provider

Additional Windows Build Steps

On Windows, the default build process does not set QML plugin search paths correctly. In most cases, this prevents the application from being run in Qt Creator or from the command line.

This is fixed with a custom build step. This build step must be added to each build configuration (e.g., build, release).

Line Value Description
Command <QT_ROOT>/bin/windeployqt6.exe On my PC, <QT_ROOT> is C:/Qt/6.9.1/msvc2022_64
Arguments %{buildDir}\output\pepp.exe --qmldir %{sourceDir} --qmldir is required for discovery of our dependencies
Working Directory (blank) This value does not matter and is unused

Relation to Pep9Suite

This project is a continuation of the Pep/9 computer's associated software suite, Pep9Suite.

When complete, this project will contain assembler and microcode simulators for Pep/8, Pep/9, and Pep/10, and we will deprecate older repos.

The goal for this new project is to reduce cross-generation maintenance, improve reliability, and reduce turn-around time for new features.

What are Pep/10 and Pep/9

Pep/10

The Pep/10 computer is a 16-bit complex instruction set computer (CISC). It is designed to teach computer architecture, assembly language programming, and computer organization principles as described in a future book. Pep/10 instructions are based on an expanding opcode and are either unary (one byte) or nonunary (three bytes). The eight addressing modes and six dot commands are designed for straightforward translation from C to assembly language.

It includes macros facilities to ease translation from C to assembly language.

Pep/9

The Pep/9 computer is a 16-bit complex instruction set computer (CISC). It is designed to teach computer architecture, assembly language programming, and computer organization principles as described in the text Computer Systems, J. Stanley Warford, 5th edition. Pep/9 instructions are based on an expanding opcode and are either unary (one byte) or nonunary (three bytes). The eight addressing modes and eight dot commands are designed for straightforward translation from C to assembly language.

What is Pepp?

The Pep project consists of many iterations of a 16-bit complex instruction set computer . Within this repository, the Pep/10 version (and soon the Pep/8 and Pep/9 versions) are represented across multiple levels of abstraction.

The project now consists of a single download for all virtual machines at all levels of abstraction. The terminal version was previously a stand-alone executable and is now part of the main download.

Assembler

Our Pepp IDE features an integrated text editor, error messages in red type that are inserted within the source code at the place where the error is detected, student-friendly machine language object code in hexadecimal format, the ability to code directly in machine language, bypassing the assembler.

The Pep/9 computer features the ability to redefine the mnemonics for the unimplemented opcodes that trigger synchronous traps.

The Pep/10 computer features the ability to define custom macros.

ISA

The simulator features simulated ROM that is not altered by store instructions, a small operating system burned into simulated ROM that includes a loader and a trap handler system, an integrated debugger that allows for break points, single and multi step execution, CPU tracing, and memory tracing, the option to trace an application, the loader, or the operating system, the ability to recover from endless loops, and the ability to modify the operating system by designing new trap handlers for the unimplemented opcodes.

Microcode

The CPU mode is a simulator allowing users to interact with the data sections of the Pep/9 and Pep/10 CPUs.

It contains two versions of the Pep/9 CPU data section – one with a one-byte wide data bus and another with a two-byte wide data bus. Using a GUI, students are able to set the control signals to direct the flow of data and change the state of the CPU. Alternatively, the Microcode IDE allows students to write microprogram code fragments to perform useful computations. An integrated unit test facility allows users to write pre- and post-conditions to verify correct behavior of arbitrary microprograms.

While debugging a microprogram fragment, the CPU simulator performs graphical tracing of data paths through the CPU. Using breakpoints, students may skip over previously debugged microstatments and resume debugging at a later point in the program.

ISA / Microcode Interface

Contained within IDE is a fully microcoded implementation of the Pep/9 and Pep/10 virtual machines. These extensions to their respective textbooks is dubbed PepMicro PepMicro adds a control section, missing in Pep9CPU, and extends the microcode language to allow conditional microcode branches. It integrates all the programming features of Pep/9 and the graphical CPU interaction of Pep9CPU to simulate the complete execution of assembly language programs.

  • Extend the assembler and CPU simulator so that complete assembly language programs can be executed at the microcode level spanning four levels of system abstraction – the assembly level, the operating system level, the ISA level, and the microcode level.
  • Runs both memory aligned and nonaligned programs. Assembly language programs that do not use optimal .ALIGN directives still execute correctly but slower.
  • Provides performance statistics in the form of statement execution counts at the microcode level and the ISA level. Students can measure the performance differences between aligned and nonaligned programs.
  • Retains the unit tests of the original Pep/9 CPU IDE so that students can write microcode fragments with the extended microinstruction format.
  • Supports new debugging features like step-into, step-out, and step-over so students can trace assembly programs more efficiently.

Terminal Support

The IDE includes a command-line version of the Pep/9 and Pep/10 virtual machine.s It uses the assembler from the PepIDE application to create a .pepo file, and the simulator to execute the .pepo file.

Teachers can script PepTerm to batch test assembly language homework submissions.

Contributing

Please see our Contribution Guidelines before contributing to this project.

Debugging WASM

Install the following plugin into chrome. See Qt help for aditional settings

Metadata

Release files for pypepp 0.16.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypepp 0.16.4
File Size Uploaded Provenance Actions
pypepp-0.16.4.tar.gz 5.7 MB With provenance Details for pypepp-0.16.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pypepp 0.16.4
File Actions
pypepp-0.16.4-cp312-abi3-win_arm64.whl CPython 3.12 abi3 Windows ARM64 Details for pypepp-0.16.4-cp312-abi3-win_arm64.whl
pypepp-0.16.4-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details for pypepp-0.16.4-cp312-abi3-win_amd64.whl
pypepp-0.16.4-cp312-abi3-musllinux_1_2_x86_64.whl CPython 3.12 abi3 Linux musl 1.2+ x86-64 Details for pypepp-0.16.4-cp312-abi3-musllinux_1_2_x86_64.whl
pypepp-0.16.4-cp312-abi3-musllinux_1_2_aarch64.whl CPython 3.12 abi3 Linux musl 1.2+ ARM64 Details for pypepp-0.16.4-cp312-abi3-musllinux_1_2_aarch64.whl
pypepp-0.16.4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for pypepp-0.16.4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
pypepp-0.16.4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details for pypepp-0.16.4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
pypepp-0.16.4-cp312-abi3-macosx_11_0_x86_64.whl CPython 3.12 abi3 macOS 11.0+ x86-64 Details for pypepp-0.16.4-cp312-abi3-macosx_11_0_x86_64.whl
pypepp-0.16.4-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details for pypepp-0.16.4-cp312-abi3-macosx_11_0_arm64.whl

Total release size: 6.3 MB

Release files / pypepp-0.16.4.tar.gz

Download URL pypepp-0.16.4.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
9af5de8207f7a146e0cb378f0756ba630aa1afaede1236830daf589f52c5f0a7
BLAKE2b-256 checksum
How to use checksums
027055415b288782344ff45f94883afef9e700922668b3fc568fac9c9c894dfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-win_arm64.whl

Download URL pypepp-0.16.4-cp312-abi3-win_arm64.whl
Size 47.6 kB
Tags CPython 3.12 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
41f87a00966921e0250f2cb5db6f4b9fa0cd7c1af6a51d381c14ec9c6b710a1d
BLAKE2b-256 checksum
How to use checksums
099fb5e1d8dbfe49916fd7c0c318502a2bce95a48f8b44da764fa11ee42db032
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-win_amd64.whl

Download URL pypepp-0.16.4-cp312-abi3-win_amd64.whl
Size 49.4 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1c5ce9cca1e2b8fd10a92206a0072ad9ea05bd8b89cb3cc192af1ecc40a84095
BLAKE2b-256 checksum
How to use checksums
0d0e6971d310949040ca276522345ba2f7e81ba6e5e94a37b9099b7b85675730
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-musllinux_1_2_x86_64.whl

Download URL pypepp-0.16.4-cp312-abi3-musllinux_1_2_x86_64.whl
Size 150.5 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
67bda38557908a2d9a8b091b4091127ae07124811d03b6f16e8b4adea1c717cd
BLAKE2b-256 checksum
How to use checksums
12646749533d24e6499da3ed1da727b74ddab64031b57e71311b5bd8e34378d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-musllinux_1_2_aarch64.whl

Download URL pypepp-0.16.4-cp312-abi3-musllinux_1_2_aarch64.whl
Size 146.1 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
06a74dab6eff0483fd97dcb78921cdbe30101d966387f117fc298c22dd467f66
BLAKE2b-256 checksum
How to use checksums
b6ac14a75be565511c0b73691a844f4af99da961040df1bc5b12f6d50b27ed9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pypepp-0.16.4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 52.3 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
6a4b067fd5b34cc878740fb5ffec03c1ed8f6a8042e5e9cc4da9b121203ffaf0
BLAKE2b-256 checksum
How to use checksums
01c80731d614d7add2043ae78af1e40e2fc3cc47cce808d5f4f8c97ebf08524d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL pypepp-0.16.4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 49.4 kB
Tags CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
07d7fc4fc4bb3a6d61f51b35c893e84935194072cf0e1b52177dc1c659480a9a
BLAKE2b-256 checksum
How to use checksums
d327b1d443751c6b0ed2ee4b77c793f45df54c8dee4ebd75869801b182ff307f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-macosx_11_0_x86_64.whl

Download URL pypepp-0.16.4-cp312-abi3-macosx_11_0_x86_64.whl
Size 46.6 kB
Tags CPython 3.12 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
4c7143c62e7659120e9ab0a04013d5516d8efdc4fac5b1a5a3d14ba625fdb3f9
BLAKE2b-256 checksum
How to use checksums
a9d386c3ac4e0216929d2e7c0ae050b36377b99e2658393272e7bd63b2c317ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / pypepp-0.16.4-cp312-abi3-macosx_11_0_arm64.whl

Download URL pypepp-0.16.4-cp312-abi3-macosx_11_0_arm64.whl
Size 44.0 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
21f1d4ff505f00e10835cea7735d9c6a029668e49c70371220d5451dd1fcf283
BLAKE2b-256 checksum
How to use checksums
f077ff40dc2a2cad6e91646851f27ad6979f00e9d417cb6b14ae35383ea8c6c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Security for pypepp 0.16.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for pypepp-0.16.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page