Nemo
b0aa03980c
[10] Finishes compiler implementation
2020-07-07 03:23:06 +05:30
Nemo
02cb984fec
Fix empty expression tags, and add directory support
2020-07-06 21:44:22 +05:30
Nemo
a274797e58
Fixes <statements> opening after first statement
2020-07-06 21:15:19 +05:30
Nemo
d25f7407da
Got most of the Compilation Engine working
...
- Expressions aren't tested
- Some issues with xml ordering and empty tags
2020-07-06 21:12:00 +05:30
Nemo
19f0d670ac
[10] Tokenizer works on all files correctly
2020-06-16 02:43:01 +05:30
Nemo
c54e5ccaa4
[10] Adds XML output support
2020-06-16 02:05:33 +05:30
Nemo
43f982f06f
[09] Wrote a Tic-Tac-Toe (2player) implementation
2020-06-10 02:01:57 +05:30
Nemo
23324814bd
Compiled pre-programs
2020-06-10 02:01:46 +05:30
Nemo
7be5183fd0
Adds symlinks to the provided standard library for now
2020-06-09 01:08:03 +05:30
Nemo
aed6f0a372
[08] Finishes VM Implementation
...
Lots of different changes:
- modular code with lots of helper methods
- fixed the return jump address getting overridden bug
2020-06-08 23:56:54 +05:30
Nemo
286df5b147
[08] Finishes call/init implementation
...
Found 2 bugs:
0. ic+=10 is incorrect jump for the boolean compare methods
1. Another bug was in the write() method, which was increasing the instruction
counter even for label commands, which aren't supposed to do that.
Another minor issue in my interpretation of the "call" to `Sys.init`
which I was so far just doing via a jump. Changed that to a proper call
2020-06-04 15:48:49 +05:30
Nemo
4fdc98bb72
[08] Implemented call, but it is breaking somewhere
2020-06-04 15:48:44 +05:30
Nemo
5160559eff
[08] Optimized function starts a little
2020-06-04 15:48:41 +05:30
Nemo
6bdbec501a
[08] Init Use LC=300, ARG=400 as standard values for now
2020-06-04 15:48:38 +05:30
Nemo
91b8ef006e
[08] Fixes frame restoration, so return works properly now
2020-06-04 15:48:35 +05:30
Nemo
b052ab617c
[08] Implement Return/Function/Init
...
Return isn't functional (yet)
Init isn't called (yet)
2020-06-04 15:48:32 +05:30
Nemo
2fbdba0cf2
[08] Goto is functional.
...
Wasted 15 minutes stepping through the assembly, only to find out I was
missing a $ in $globalLabel
2020-06-04 15:48:27 +05:30
Nemo
b61d4c4339
[08] Adds support for label and if-goto commands
2020-06-04 15:48:20 +05:30
Nemo
4e49913808
[07/Static] Implements static push/pop memory segment
2020-06-02 17:28:20 +05:30
Nemo
67b4e2653e
[07/Pointers] Implemented pointer segment push/pop
2020-06-02 17:04:51 +05:30
Nemo
16e830851e
Remove unused tests
2020-06-02 04:16:57 +05:30
Nemo
c46f739aed
Was missing an indirect lookup on segment pushes
2020-06-02 04:16:13 +05:30
Nemo
32242242cb
I think the bug is somewhere in segment based pushes
2020-06-02 04:00:35 +05:30
Nemo
777523c24f
Write Limited tests for segment pops
2020-06-02 03:51:40 +05:30
Nemo
551546c953
Break into multiple files for easier navigation
2020-06-02 03:19:28 +05:30
Nemo
9782ba7e4d
[07] Almost done with BasicTest implementation
2020-06-02 01:42:15 +05:30
Nemo
3fa5a5c07a
[07] StackTest passes
2020-06-02 00:12:41 +05:30
Nemo
be69ac321d
Reduce stack manipulation (use M instead of A)
2020-06-01 23:05:42 +05:30
Nemo
b186ee7df1
[07/SimpleAdd] Partial working implementation
...
Implemented right now:
- push constant
- add
2020-06-01 21:47:50 +05:30
Nemo
c1cac6ad6f
[07] Initial work on VM Translator
2020-06-01 19:49:55 +05:30
Nemo
f15f5e6906
Assemble all test programs
2020-05-30 01:22:22 +05:30
Nemo
fbad268db5
[05/Computer] My computer can run Hack instructions now
2020-05-28 21:28:20 +05:30
Nemo
79aaca88af
[05] Ran the CPU-external tests as well
2020-05-28 21:18:36 +05:30
Nemo
3dbb04035c
[05/CPU] CPU is done.
...
I prefered using Nands here, wherever possible.
2020-05-28 21:13:25 +05:30
Nemo
e7d72b1020
[05/CPU] Implements most of the CPU
...
This includes:
- Handling of data i/o (for A/D/M)
- Handling the ALU properly (all 28 computations)
- Basic incremental PC (i/o)
- PC reset
- read/write to M
What's missing:
- Handling jumps
2020-05-28 19:58:12 +05:30
Nemo
69a32190dc
05/Memory
2020-05-28 18:10:51 +05:30
Nemo
ae35d75d17
My Keyboard based fill is just +2 of manualfill
2020-05-28 16:48:24 +05:30
Nemo
e85ff27425
[04/fill] Done with Automated screen fill
...
Updated NOTES
2020-05-28 16:45:38 +05:30
Nemo
25e828ec9d
Initial work on Fill.asm
...
Scrapped everything I did yesterday, basing it on scratch
from what I wrote in manual-fill.asm
2020-05-28 15:59:49 +05:30
Nemo
90526cc036
Fixes RAM16K. I was using too many registers and the addressing was
...
wrong
2020-05-28 15:04:07 +05:30
Nemo
37c0f41a4a
[04/mult] Multiply is possible
2020-05-27 19:44:39 +05:30
Nemo
56eb3699a4
Added the sum program from Fig 4.2
2020-05-27 19:43:50 +05:30
Nemo
64c2f79409
Note cost for ALU
2020-05-21 01:59:59 +05:30
Nemo
f20e8b082c
[03] Program Counter
2020-05-21 01:06:50 +05:30
Nemo
cbd6834f07
[03] RAM16K
2020-05-20 19:35:39 +05:30
Nemo
e54a23fc3c
[03] RAM4K + RAM512
2020-05-20 19:31:35 +05:30
Nemo
09182a661f
[03] Adds RAM64
2020-05-20 19:22:54 +05:30
Nemo
93d6273201
[03] RAM8
2020-05-20 19:13:01 +05:30
Nemo
9a28b2f33f
[03] Register
2020-05-20 18:59:22 +05:30
Nemo
bb7a45e03f
[03] Bit
2020-05-20 18:56:05 +05:30