Mermaid diagram for classes
This commit is contained in:
parent
209050446d
commit
9f3b5f17b9
1 changed files with 82 additions and 0 deletions
82
README.md
Normal file
82
README.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
# HateLace - A Simple Computer
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Computer {
|
||||
- Memory memory
|
||||
- Program program
|
||||
+ Computer(Memory Memory)
|
||||
+ void load(Program program)
|
||||
+ void run()
|
||||
}
|
||||
class Memory {
|
||||
+ abstract Word read(Address address)
|
||||
+ abstract int size()
|
||||
+ abstract void write(Address address, Word data)
|
||||
+ abstract void dump()
|
||||
}
|
||||
class ProgramCounter {
|
||||
- int PC
|
||||
- int SysTick
|
||||
- boolean haltFlag
|
||||
+ ProgramCounter()
|
||||
+ ProgramCounter(int PC)
|
||||
+ int getPC()
|
||||
+ int getSysTicks()
|
||||
+ int incPC()
|
||||
+ int setPC(int PC)
|
||||
+ boolean halted()
|
||||
+ void halt()
|
||||
}
|
||||
class Program
|
||||
class Instruction {
|
||||
+ abstract void execute(Memory memory, ProgramCounter pc)
|
||||
# abstract String opcode()
|
||||
# abstract Object[] operands()
|
||||
+ abstract String toString()
|
||||
}
|
||||
class ArrayList
|
||||
class Word {
|
||||
+ abstract <T> T getValue()
|
||||
+ abstract Word add(Word other)
|
||||
+ abstract Word subtract(Word other)
|
||||
+ abstract Word multiply(Word other)
|
||||
+ abstract Word divide(Word other)
|
||||
+ abstract String toString()
|
||||
+ abstract boolean equals(Object other)
|
||||
}
|
||||
class Address {
|
||||
- int address
|
||||
+ Address(int address)
|
||||
+ int getAddress()
|
||||
+ String toString()
|
||||
}
|
||||
class LongWord {
|
||||
- Long value
|
||||
+ LongWord(Long value)
|
||||
+ Long getValue()
|
||||
+ Word add(Word other)
|
||||
+ Word subtract(Word other)
|
||||
+ Word multiply(Word other)
|
||||
+ Word divide(Word other)
|
||||
+ String toString()
|
||||
+ boolean equals(Object other)
|
||||
}
|
||||
class LongMemory {
|
||||
- long[] memory
|
||||
+ LongMemory()
|
||||
+ LongMemory(int size)
|
||||
+ Word read(Address address)
|
||||
+ int size()
|
||||
+ void write(Address address, Word data)
|
||||
+ void dump()
|
||||
}
|
||||
Memory <|-- LongMemory
|
||||
Word <|-- LongWord
|
||||
Program <-- ArrayList
|
||||
Program --|> Instruction
|
||||
Program : +toString()
|
||||
Computer --> Memory
|
||||
Computer --> Program
|
||||
Computer --> ProgramCounter
|
||||
```
|
Loading…
Reference in a new issue