From d8a2bfd90645d0be8f252930b0b1eee87ffc1fde Mon Sep 17 00:00:00 2001 From: dogeystamp Date: Sat, 20 Jan 2024 12:58:35 -0500 Subject: [PATCH] added extras - TODO.txt - programs/boys.obj - programs/rogue.obj --- TODO.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ programs/boys.obj | Bin 0 -> 80 bytes programs/rogue.obj | Bin 0 -> 762 bytes 3 files changed, 44 insertions(+) create mode 100644 TODO.txt create mode 100644 programs/boys.obj create mode 100644 programs/rogue.obj diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..6ac8cfe --- /dev/null +++ b/TODO.txt @@ -0,0 +1,44 @@ +https://www.jmeiners.com/lc3-vm/ +https://www.jmeiners.com/lc3-vm/supplies/lc3-isa.pdf +https://www.rodrigoaraujo.me/posts/lets-build-an-lc-3-virtual-machine/ + +[x] opcode enum +[x] register getter/setter +[x] condition flags enum +[x] function to update the condition flags based on a register +[x] memory getter/setter +[x] read file as big-endian 2-byte instructions into memory +[x] fetch-execute loop +[x] implement execute + [x] function: get opcode from instruction + [x] match opcode to function +[x] implement opcodes + [x] LEA + [x] ADD (reg) + [x] ADD (immediate) + [x] AND (reg) + [x] AND (immediate) + [x] BR + [x] JMP + [x] JSR + [x] JSRR + [x] LD + [x] LDI + [x] LDR + [x] LEA + [x] NOT + [x] RET + [!] RTI + [x] ST + [x] STI + [x] STR + [x] TRAP (see jmeiners article) + [x] getc + [x] out + [x] puts + [x] in + [x] putsp + [x] halt +[x] keyboard mem-mapped i/o + [x] KBSR + [x] KBDR diff --git a/programs/boys.obj b/programs/boys.obj new file mode 100644 index 0000000000000000000000000000000000000000..c23fa84b2d6a20e360e0c2c08dc2f13755c75efd GIT binary patch literal 80 zcmXqDc);{Q>4PdmB||<#DT4w-4nrnGHbW|qRR&}gF_ZvB6TzZYKz<%WI#4DFsJ4=! Q7|2Qivhsjx6rlPU0PV04(*OVf literal 0 HcmV?d00001 diff --git a/programs/rogue.obj b/programs/rogue.obj new file mode 100644 index 0000000000000000000000000000000000000000..8cd4737434261d44ff22ffe63d010d82f9309cc5 GIT binary patch literal 762 zcmY*WK}^$N6n>)>2F6)xvpAL}|5`U7AR$Z+gu{js)1XP`Ko-Jf&6v0#n^Gr?VLF&5 zdf*_QOiUD`o=CW}v37|jCM4br@ir5$CN*9(K7rT9)x;_;h-wqts-CUz z6>032LDO9w?hiC0uZjEqeQ9KhEE&l{VwHa*4Nnn|uw(@H2KQtYbKlS>Ib%JwURmqb zOY2b6dA+mLUFxaSI!qxE{@%{5#tWv;tGF%dH)%C}om-v|^^4G^FH_(*s|KDE0TIG* z4etoR3)3(FWA!N2F^DU;r{^m9U9HTQJD<6$=U>xw&lC4YR65EO=2lZ{N|AqCHSFER z75~a)&Hb(C;bPdUuo`tJs+>;!kpkjf=`u&6artXwhSXrHJLw6%2zh+0B7dHaFB>W< zNbS)$n~-{$5LcMkPM}NKST;IFTYq?GmW^ZA_E|0N=F0h!w!`lT=PtBI2-AeS9SJVR zA)JXg`klwlW{b&3iO2l=s