#assembly #emulator

nightly app lprsemu

Emulator, debugger and assembler for LPRS1 ISA & CPU

5 releases

0.4.4 Dec 11, 2023
0.4.2 Jan 23, 2023
0.4.1 Jan 21, 2023
0.4.0 Jan 14, 2023
0.3.0 Jan 8, 2023

#319 in Emulators

MIT license

66KB
2K SLoC

About

LPRSemu is an interactive emulator and debugger for LPRS1 ISA & CPU.
LPRSasm is an assembler for the reference VHDL imlpementation of the CPU.

Emulation example

Registers
| R0:    30 | R1:     5 | R2:     0 | R3:     0 |
| R4:     0 | R5:     0 | R6:     0 | R7:     0 |
Flags [ zero: true  ] [ sign: false ] [ carry: false ]
Program counter: 7
Runtime counter: 22
Data memory
|   0 |     0
|   1 |     5
|   2 |     6
| ··· |     0
Program memory
|     | main:
|   0 |     inc   R0, R0
|   1 |     ld    R1, R0
|   2 |     inc   R0, R0
|   3 |     ld    R2, R0
|   4 |     sub   R0, R0, R0
|     | loop:
|   5 |     add   R0, R0, R1
|   6 |     dec   R2, R2
|   7 |     jmpnz 5 (loop) <=
|   8 |     st    R0, R2
|     | shift:
|   9 |     shr   R0, R0 (*)
|  10 |     jmpnz 9 (shift)
|     | divide:
|  11 |     shl   R1, R1
|  12 |     jmpnz 11 (divide)
| ··· | nop

lprsemu >>

Usage

  1. Download latest stabe binaries for your platform

  2. Run the emulator with your assembly code file as the first argument

    ./lprsemu example.asm
    
  3. Type h into the prompt to list all commands
    Note: Empty command defaults to step.

  4. Test and debug your program

  5. Optional: Assemble it into VHDL using LPRSasm

    ./lprsasm example.asm
    

Dependencies

~6–16MB
~225K SLoC