From d3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Sat, 20 Jan 2018 15:41:49 +0100 Subject: rearranged the dir for github - removed tools and pdfs - rearranged the projects dirs - added md files - other minor changes --- tools/.DS_Store | Bin 8196 -> 0 bytes tools/Assembler.bat | 27 - tools/Assembler.sh | 32 - tools/CPUEmulator.bat | 29 - tools/CPUEmulator.sh | 33 - tools/HardwareSimulator.bat | 30 - tools/HardwareSimulator.sh | 34 - tools/JackCompiler.bat | 26 - tools/JackCompiler.sh | 35 - tools/OS/Array.vm | 23 - tools/OS/Keyboard.vm | 102 -- tools/OS/Math.vm | 408 ------ tools/OS/Memory.vm | 279 ---- tools/OS/Output.vm | 1852 ------------------------- tools/OS/Screen.vm | 806 ----------- tools/OS/String.vm | 393 ------ tools/OS/Sys.vm | 84 -- tools/TextComparer.bat | 29 - tools/TextComparer.sh | 36 - tools/VMEmulator.bat | 29 - tools/VMEmulator.sh | 33 - tools/bin/classes/CPUEmulatorMain.class | Bin 1084 -> 0 bytes tools/bin/classes/HackAssemblerMain.class | Bin 1098 -> 0 bytes tools/bin/classes/HardwareSimulatorMain.class | Bin 1182 -> 0 bytes tools/bin/classes/TextComparer.class | Bin 1739 -> 0 bytes tools/bin/classes/VMEmulatorMain.class | Bin 1073 -> 0 bytes tools/bin/help/asmAbout.html | 96 -- tools/bin/help/asmUsage.html | 115 -- tools/bin/help/compiler.txt | 9 - tools/bin/help/cpuAbout.html | 96 -- tools/bin/help/cpuUsage.html | 115 -- tools/bin/help/hwAbout.html | 96 -- tools/bin/help/hwUsage.html | 115 -- tools/bin/help/vmAbout.html | 110 -- tools/bin/help/vmUsage.html | 115 -- tools/bin/images/arrow2.gif | Bin 1073 -> 0 bytes tools/bin/images/calculator2.gif | Bin 302 -> 0 bytes tools/bin/images/cancel.gif | Bin 1133 -> 0 bytes tools/bin/images/chip.gif | Bin 1078 -> 0 bytes tools/bin/images/clock2.gif | Bin 1138 -> 0 bytes tools/bin/images/equal.gif | Bin 1042 -> 0 bytes tools/bin/images/find.gif | Bin 1014 -> 0 bytes tools/bin/images/hex.gif | Bin 1422 -> 0 bytes tools/bin/images/keyboard.gif | Bin 1017 -> 0 bytes tools/bin/images/ok.gif | Bin 988 -> 0 bytes tools/bin/images/ok2.gif | Bin 920 -> 0 bytes tools/bin/images/open.gif | Bin 930 -> 0 bytes tools/bin/images/open2.gif | Bin 969 -> 0 bytes tools/bin/images/opendoc.gif | Bin 1094 -> 0 bytes tools/bin/images/redflag.gif | Bin 1100 -> 0 bytes tools/bin/images/save.gif | Bin 1257 -> 0 bytes tools/bin/images/scroll.gif | Bin 949 -> 0 bytes tools/bin/images/smallcancel.gif | Bin 946 -> 0 bytes tools/bin/images/smallequal.gif | Bin 898 -> 0 bytes tools/bin/images/smallminus.gif | Bin 863 -> 0 bytes tools/bin/images/smallnew.gif | Bin 1000 -> 0 bytes tools/bin/images/smallok.gif | Bin 925 -> 0 bytes tools/bin/images/smallplus.gif | Bin 873 -> 0 bytes tools/bin/images/vcrfastforward.gif | Bin 1122 -> 0 bytes tools/bin/images/vcrforward.gif | Bin 1021 -> 0 bytes tools/bin/images/vcrrewind.gif | Bin 1122 -> 0 bytes tools/bin/images/vcrstop.gif | Bin 972 -> 0 bytes tools/bin/lib/AssemblerGUI.jar | Bin 4470 -> 0 bytes tools/bin/lib/Compilers.jar | Bin 27094 -> 0 bytes tools/bin/lib/Hack.jar | Bin 59364 -> 0 bytes tools/bin/lib/HackGUI.jar | Bin 96666 -> 0 bytes tools/bin/lib/Simulators.jar | Bin 81810 -> 0 bytes tools/bin/lib/SimulatorsGUI.jar | Bin 68492 -> 0 bytes tools/bin/lib/TranslatorsGUI.jar | Bin 13643 -> 0 bytes tools/bin/scripts/defaultCPU.txt | 3 - tools/bin/scripts/defaultHW.txt | 4 - tools/bin/scripts/defaultVM.txt | 3 - tools/builtInChips/ALU.class | Bin 1754 -> 0 bytes tools/builtInChips/ALU.hdl | 55 - tools/builtInChips/ARegister.class | Bin 337 -> 0 bytes tools/builtInChips/ARegister.hdl | 24 - tools/builtInChips/Add16.class | Bin 343 -> 0 bytes tools/builtInChips/Add16.hdl | 18 - tools/builtInChips/And.class | Bin 341 -> 0 bytes tools/builtInChips/And.hdl | 16 - tools/builtInChips/And16.hdl | 17 - tools/builtInChips/Bit.class | Bin 416 -> 0 bytes tools/builtInChips/Bit.hdl | 19 - tools/builtInChips/DFF.class | Bin 401 -> 0 bytes tools/builtInChips/DFF.hdl | 18 - tools/builtInChips/DMux.class | Bin 365 -> 0 bytes tools/builtInChips/DMux.hdl | 20 - tools/builtInChips/DMux4Way.class | Bin 408 -> 0 bytes tools/builtInChips/DMux4Way.hdl | 22 - tools/builtInChips/DMux8Way.class | Bin 488 -> 0 bytes tools/builtInChips/DMux8Way.hdl | 22 - tools/builtInChips/DRegister.class | Bin 339 -> 0 bytes tools/builtInChips/DRegister.hdl | 24 - tools/builtInChips/FullAdder.class | Bin 380 -> 0 bytes tools/builtInChips/FullAdder.hdl | 19 - tools/builtInChips/HalfAdder.class | Bin 360 -> 0 bytes tools/builtInChips/HalfAdder.hdl | 18 - tools/builtInChips/Inc16.class | Bin 333 -> 0 bytes tools/builtInChips/Inc16.hdl | 18 - tools/builtInChips/Keyboard.class | Bin 1709 -> 0 bytes tools/builtInChips/Keyboard.hdl | 23 - tools/builtInChips/Mux.class | Bin 356 -> 0 bytes tools/builtInChips/Mux.hdl | 16 - tools/builtInChips/Mux16.hdl | 16 - tools/builtInChips/Mux4Way16.class | Bin 435 -> 0 bytes tools/builtInChips/Mux4Way16.hdl | 21 - tools/builtInChips/Mux8Way16.class | Bin 527 -> 0 bytes tools/builtInChips/Mux8Way16.hdl | 24 - tools/builtInChips/Nand.class | Bin 344 -> 0 bytes tools/builtInChips/Nand.hdl | 16 - tools/builtInChips/Not.class | Bin 331 -> 0 bytes tools/builtInChips/Not.hdl | 16 - tools/builtInChips/Not16.class | Bin 327 -> 0 bytes tools/builtInChips/Not16.hdl | 16 - tools/builtInChips/Or.class | Bin 340 -> 0 bytes tools/builtInChips/Or.hdl | 16 - tools/builtInChips/Or16.hdl | 16 - tools/builtInChips/Or8Way.class | Bin 340 -> 0 bytes tools/builtInChips/Or8Way.hdl | 16 - tools/builtInChips/PC.class | Bin 1899 -> 0 bytes tools/builtInChips/PC.hdl | 22 - tools/builtInChips/RAM.class | Bin 1928 -> 0 bytes tools/builtInChips/RAM16K.class | Bin 390 -> 0 bytes tools/builtInChips/RAM16K.hdl | 24 - tools/builtInChips/RAM4K.class | Bin 309 -> 0 bytes tools/builtInChips/RAM4K.hdl | 24 - tools/builtInChips/RAM512.class | Bin 311 -> 0 bytes tools/builtInChips/RAM512.hdl | 24 - tools/builtInChips/RAM64.class | Bin 308 -> 0 bytes tools/builtInChips/RAM64.hdl | 24 - tools/builtInChips/RAM8.class | Bin 306 -> 0 bytes tools/builtInChips/RAM8.hdl | 24 - tools/builtInChips/ROM32K.class | Bin 3469 -> 0 bytes tools/builtInChips/ROM32K.hdl | 30 - tools/builtInChips/Register.class | Bin 423 -> 0 bytes tools/builtInChips/Register.hdl | 19 - tools/builtInChips/RegisterWithGUI.class | Bin 1769 -> 0 bytes tools/builtInChips/Screen.class | Bin 1322 -> 0 bytes tools/builtInChips/Screen.hdl | 35 - tools/builtInChips/Xor.class | Bin 341 -> 0 bytes tools/builtInChips/Xor.hdl | 16 - tools/builtInVMCode/Array.class | Bin 436 -> 0 bytes tools/builtInVMCode/JackOSClass.class | Bin 1782 -> 0 bytes tools/builtInVMCode/Keyboard.class | Bin 1362 -> 0 bytes tools/builtInVMCode/Math.class | Bin 650 -> 0 bytes tools/builtInVMCode/Memory.class | Bin 788 -> 0 bytes tools/builtInVMCode/Output.class | Bin 4264 -> 0 bytes tools/builtInVMCode/Screen.class | Bin 1921 -> 0 bytes tools/builtInVMCode/String.class | Bin 1630 -> 0 bytes tools/builtInVMCode/Sys.class | Bin 1885 -> 0 bytes 150 files changed, 5945 deletions(-) delete mode 100644 tools/.DS_Store delete mode 100644 tools/Assembler.bat delete mode 100755 tools/Assembler.sh delete mode 100644 tools/CPUEmulator.bat delete mode 100755 tools/CPUEmulator.sh delete mode 100644 tools/HardwareSimulator.bat delete mode 100755 tools/HardwareSimulator.sh delete mode 100644 tools/JackCompiler.bat delete mode 100755 tools/JackCompiler.sh delete mode 100644 tools/OS/Array.vm delete mode 100644 tools/OS/Keyboard.vm delete mode 100644 tools/OS/Math.vm delete mode 100644 tools/OS/Memory.vm delete mode 100644 tools/OS/Output.vm delete mode 100644 tools/OS/Screen.vm delete mode 100644 tools/OS/String.vm delete mode 100644 tools/OS/Sys.vm delete mode 100644 tools/TextComparer.bat delete mode 100755 tools/TextComparer.sh delete mode 100644 tools/VMEmulator.bat delete mode 100755 tools/VMEmulator.sh delete mode 100644 tools/bin/classes/CPUEmulatorMain.class delete mode 100644 tools/bin/classes/HackAssemblerMain.class delete mode 100644 tools/bin/classes/HardwareSimulatorMain.class delete mode 100644 tools/bin/classes/TextComparer.class delete mode 100644 tools/bin/classes/VMEmulatorMain.class delete mode 100644 tools/bin/help/asmAbout.html delete mode 100644 tools/bin/help/asmUsage.html delete mode 100644 tools/bin/help/compiler.txt delete mode 100644 tools/bin/help/cpuAbout.html delete mode 100644 tools/bin/help/cpuUsage.html delete mode 100644 tools/bin/help/hwAbout.html delete mode 100644 tools/bin/help/hwUsage.html delete mode 100644 tools/bin/help/vmAbout.html delete mode 100644 tools/bin/help/vmUsage.html delete mode 100644 tools/bin/images/arrow2.gif delete mode 100644 tools/bin/images/calculator2.gif delete mode 100644 tools/bin/images/cancel.gif delete mode 100644 tools/bin/images/chip.gif delete mode 100644 tools/bin/images/clock2.gif delete mode 100644 tools/bin/images/equal.gif delete mode 100644 tools/bin/images/find.gif delete mode 100644 tools/bin/images/hex.gif delete mode 100644 tools/bin/images/keyboard.gif delete mode 100644 tools/bin/images/ok.gif delete mode 100644 tools/bin/images/ok2.gif delete mode 100644 tools/bin/images/open.gif delete mode 100644 tools/bin/images/open2.gif delete mode 100644 tools/bin/images/opendoc.gif delete mode 100644 tools/bin/images/redflag.gif delete mode 100644 tools/bin/images/save.gif delete mode 100644 tools/bin/images/scroll.gif delete mode 100644 tools/bin/images/smallcancel.gif delete mode 100644 tools/bin/images/smallequal.gif delete mode 100644 tools/bin/images/smallminus.gif delete mode 100644 tools/bin/images/smallnew.gif delete mode 100644 tools/bin/images/smallok.gif delete mode 100644 tools/bin/images/smallplus.gif delete mode 100644 tools/bin/images/vcrfastforward.gif delete mode 100644 tools/bin/images/vcrforward.gif delete mode 100644 tools/bin/images/vcrrewind.gif delete mode 100644 tools/bin/images/vcrstop.gif delete mode 100644 tools/bin/lib/AssemblerGUI.jar delete mode 100644 tools/bin/lib/Compilers.jar delete mode 100644 tools/bin/lib/Hack.jar delete mode 100644 tools/bin/lib/HackGUI.jar delete mode 100644 tools/bin/lib/Simulators.jar delete mode 100644 tools/bin/lib/SimulatorsGUI.jar delete mode 100644 tools/bin/lib/TranslatorsGUI.jar delete mode 100644 tools/bin/scripts/defaultCPU.txt delete mode 100644 tools/bin/scripts/defaultHW.txt delete mode 100644 tools/bin/scripts/defaultVM.txt delete mode 100644 tools/builtInChips/ALU.class delete mode 100644 tools/builtInChips/ALU.hdl delete mode 100644 tools/builtInChips/ARegister.class delete mode 100644 tools/builtInChips/ARegister.hdl delete mode 100644 tools/builtInChips/Add16.class delete mode 100644 tools/builtInChips/Add16.hdl delete mode 100644 tools/builtInChips/And.class delete mode 100644 tools/builtInChips/And.hdl delete mode 100644 tools/builtInChips/And16.hdl delete mode 100644 tools/builtInChips/Bit.class delete mode 100644 tools/builtInChips/Bit.hdl delete mode 100644 tools/builtInChips/DFF.class delete mode 100644 tools/builtInChips/DFF.hdl delete mode 100644 tools/builtInChips/DMux.class delete mode 100644 tools/builtInChips/DMux.hdl delete mode 100644 tools/builtInChips/DMux4Way.class delete mode 100644 tools/builtInChips/DMux4Way.hdl delete mode 100644 tools/builtInChips/DMux8Way.class delete mode 100644 tools/builtInChips/DMux8Way.hdl delete mode 100644 tools/builtInChips/DRegister.class delete mode 100644 tools/builtInChips/DRegister.hdl delete mode 100644 tools/builtInChips/FullAdder.class delete mode 100644 tools/builtInChips/FullAdder.hdl delete mode 100644 tools/builtInChips/HalfAdder.class delete mode 100644 tools/builtInChips/HalfAdder.hdl delete mode 100644 tools/builtInChips/Inc16.class delete mode 100644 tools/builtInChips/Inc16.hdl delete mode 100644 tools/builtInChips/Keyboard.class delete mode 100644 tools/builtInChips/Keyboard.hdl delete mode 100644 tools/builtInChips/Mux.class delete mode 100644 tools/builtInChips/Mux.hdl delete mode 100644 tools/builtInChips/Mux16.hdl delete mode 100644 tools/builtInChips/Mux4Way16.class delete mode 100644 tools/builtInChips/Mux4Way16.hdl delete mode 100644 tools/builtInChips/Mux8Way16.class delete mode 100644 tools/builtInChips/Mux8Way16.hdl delete mode 100644 tools/builtInChips/Nand.class delete mode 100644 tools/builtInChips/Nand.hdl delete mode 100644 tools/builtInChips/Not.class delete mode 100644 tools/builtInChips/Not.hdl delete mode 100644 tools/builtInChips/Not16.class delete mode 100644 tools/builtInChips/Not16.hdl delete mode 100644 tools/builtInChips/Or.class delete mode 100644 tools/builtInChips/Or.hdl delete mode 100644 tools/builtInChips/Or16.hdl delete mode 100644 tools/builtInChips/Or8Way.class delete mode 100644 tools/builtInChips/Or8Way.hdl delete mode 100644 tools/builtInChips/PC.class delete mode 100644 tools/builtInChips/PC.hdl delete mode 100644 tools/builtInChips/RAM.class delete mode 100644 tools/builtInChips/RAM16K.class delete mode 100644 tools/builtInChips/RAM16K.hdl delete mode 100644 tools/builtInChips/RAM4K.class delete mode 100644 tools/builtInChips/RAM4K.hdl delete mode 100644 tools/builtInChips/RAM512.class delete mode 100644 tools/builtInChips/RAM512.hdl delete mode 100644 tools/builtInChips/RAM64.class delete mode 100644 tools/builtInChips/RAM64.hdl delete mode 100644 tools/builtInChips/RAM8.class delete mode 100644 tools/builtInChips/RAM8.hdl delete mode 100644 tools/builtInChips/ROM32K.class delete mode 100644 tools/builtInChips/ROM32K.hdl delete mode 100644 tools/builtInChips/Register.class delete mode 100644 tools/builtInChips/Register.hdl delete mode 100644 tools/builtInChips/RegisterWithGUI.class delete mode 100644 tools/builtInChips/Screen.class delete mode 100644 tools/builtInChips/Screen.hdl delete mode 100644 tools/builtInChips/Xor.class delete mode 100644 tools/builtInChips/Xor.hdl delete mode 100644 tools/builtInVMCode/Array.class delete mode 100644 tools/builtInVMCode/JackOSClass.class delete mode 100644 tools/builtInVMCode/Keyboard.class delete mode 100644 tools/builtInVMCode/Math.class delete mode 100644 tools/builtInVMCode/Memory.class delete mode 100644 tools/builtInVMCode/Output.class delete mode 100644 tools/builtInVMCode/Screen.class delete mode 100644 tools/builtInVMCode/String.class delete mode 100644 tools/builtInVMCode/Sys.class (limited to 'tools') diff --git a/tools/.DS_Store b/tools/.DS_Store deleted file mode 100644 index 80fb89e..0000000 Binary files a/tools/.DS_Store and /dev/null differ diff --git a/tools/Assembler.bat b/tools/Assembler.bat deleted file mode 100644 index 93260ec..0000000 --- a/tools/Assembler.bat +++ /dev/null @@ -1,27 +0,0 @@ -@echo off - -rem $Id: Assembler.bat,v 1.2 2014/05/10 00:52:43 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%2"=="" goto :USAGE -if "%~1"=="/?" ( -:USAGE - echo Usage: - echo Assembler Starts the assembler in interactive mode. - echo Assembler FILE[.asm] Assembles FILE.asm to FILE.hack. - exit -b -) -if not "%~1"=="" ( - set "_arg1=%~f1" -) -pushd "%~dp0" -if "%~1"=="" ( - start javaw -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Compilers.jar;bin/lib/AssemblerGUI.jar;bin/lib/TranslatorsGUI.jar" ^ - HackAssemblerMain -) else ( - echo Assembling "%_arg1%" - java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Compilers.jar;bin/lib/AssemblerGUI.jar;bin/lib/TranslatorsGUI.jar" ^ - HackAssemblerMain "%_arg1%" -) -popd diff --git a/tools/Assembler.sh b/tools/Assembler.sh deleted file mode 100755 index 70db569..0000000 --- a/tools/Assembler.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env sh - -# $Id: Assembler.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - echo "Usage:" - echo " `basename "$0"` Starts the assembler in interactive mode." - echo " `basename "$0"` FILE[.asm] Assembles FILE.asm to FILE.hack." -elif [ $# -eq 0 ] -then - # Run assembler in interactive mode - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Compilers.jar:bin/lib/AssemblerGUI.jar:bin/lib/TranslatorsGUI.jar" HackAssemblerMain & -else - # Convert arg1 to an absolute path and run assembler with arg1. - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="${dir}/$1" - fi - echo Assembling "$arg1" - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Compilers.jar:bin/lib/AssemblerGUI.jar:bin/lib/TranslatorsGUI.jar" HackAssemblerMain "$arg1" -fi - diff --git a/tools/CPUEmulator.bat b/tools/CPUEmulator.bat deleted file mode 100644 index f92cf40..0000000 --- a/tools/CPUEmulator.bat +++ /dev/null @@ -1,29 +0,0 @@ -@echo off - -rem $Id: CPUEmulator.bat,v 1.3 2014/05/10 00:52:43 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%2"=="" goto :USAGE -if "%~1"=="/?" ( -:USAGE - echo Usage: - echo CPUEmulator Starts the CPU Emulator in interactive mode. - echo CPUEmulator FILE.tst Starts the CPU Emulator and runs the FILE.tst - echo test script. The success/failure message - echo is printed to the command console. - exit -b -) -if not "%~1"=="" ( - set "_arg1=%~f1" -) -pushd "%~dp0" -if "%~1"=="" ( - start javaw -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - CPUEmulatorMain -) else ( -rem echo Running "%_arg1%" - java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - CPUEmulatorMain "%_arg1%" -) -popd diff --git a/tools/CPUEmulator.sh b/tools/CPUEmulator.sh deleted file mode 100755 index 033d9d7..0000000 --- a/tools/CPUEmulator.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env sh - -# $Id: CPUEmulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - echo "Usage:" - echo " `basename "$0"` Starts the CPU Emulator in interactive mode." - echo " `basename "$0"` FILE.tst Starts the CPU Emulator and runs the File.tst" - echo " test script. The success/failure message" - echo " is printed to the command console." -elif [ $# -eq 0 ] -then - # Run CPU emulator in interactive mode - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" CPUEmulatorMain & -else - # Convert arg1 to an absolute path and run CPU emulator with arg1 - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="${dir}/$1" - fi -# echo Running "$arg1" - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" CPUEmulatorMain "$arg1" -fi diff --git a/tools/HardwareSimulator.bat b/tools/HardwareSimulator.bat deleted file mode 100644 index 76baa31..0000000 --- a/tools/HardwareSimulator.bat +++ /dev/null @@ -1,30 +0,0 @@ -@echo off - -rem $Id: HardwareSimulator.bat,v 1.3 2014/05/10 00:52:43 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%2"=="" goto :USAGE -if "%~1"=="/?" ( -:USAGE - echo Usage: - echo HardwareSimulator Starts the Hardware Simulator in - echo interactive mode. - echo HardwareSimulator FILE.tst Starts the Hardware Simulator and runs the - echo FILE.tst test script. The success/failure - echo message is printed to the command console. - exit -b -) -if not "%~1"=="" ( - set "_arg1=%~f1" -) -pushd "%~dp0" -if "%~1"=="" ( - start javaw -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - HardwareSimulatorMain -) else ( -rem echo Running "%_arg1%" - java -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - HardwareSimulatorMain "%_arg1%" -) -popd diff --git a/tools/HardwareSimulator.sh b/tools/HardwareSimulator.sh deleted file mode 100755 index 47e7482..0000000 --- a/tools/HardwareSimulator.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env sh - -# $Id: HardwareSimulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - echo "Usage:" - echo " `basename "$0"` Starts the Hardware Simulator in" - echo " interactive mode." - echo " `basename "$0"` FILE.tst Starts the Hardware Simulator and runs the" - echo " FILE.tst test script. The success/failure" - echo " message is printed to the command console." -elif [ $# -eq 0 ] -then - # Run hardware simulator in interactive mode - java -classpath "${CLASSPATH}:bin/classes:BuiltIn:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" HardwareSimulatorMain & -else - # Convert arg1 to an absolute path and run hardware simulator with arg1 - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="${dir}/$1" - fi -# echo Running "$arg1" - java -classpath "${CLASSPATH}:bin/classes:BuiltIn:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" HardwareSimulatorMain "$arg1" -fi diff --git a/tools/JackCompiler.bat b/tools/JackCompiler.bat deleted file mode 100644 index 9399b94..0000000 --- a/tools/JackCompiler.bat +++ /dev/null @@ -1,26 +0,0 @@ -@echo off - -rem $Id: JackCompiler.bat,v 1.2 2014/05/10 00:52:43 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%2"=="" goto :USAGE -if "%~1"=="/?" ( -:USAGE - echo Usage: - echo JackCompiler Compiles all .jack files in the current - echo working directory. - echo JackCompiler DIRECTORY Compiles all .jack files in DIRECTORY. - echo JackCompiler FILE.jack Compiles FILE.jack to FILE.vm. - exit -b -) -if not "%~1"=="" ( - set "_arg1=%~f1" -) else ( - set "_arg1=%CD%" -) -pushd "%~dp0" -echo Compiling "%_arg1%" -java -classpath "%CLASSPATH%;bin/classes;bin/lib/Hack.jar;bin/lib/Compilers.jar" ^ - Hack.Compiler.JackCompiler "%_arg1%" -popd diff --git a/tools/JackCompiler.sh b/tools/JackCompiler.sh deleted file mode 100755 index 699dfb8..0000000 --- a/tools/JackCompiler.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env sh - -# $Id: JackCompiler.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - echo "Usage:" - echo " `basename "$0"` Compiles all .jack files in the current" - echo " working directory." - echo " `basename "$0"` DIRECTORY Compiles all .jack files in DIRECTORY." - echo " `basename "$0"` FILE.jack Compiles FILE.jack to FILE.vm." -else - if [ $# -eq 0 ] - then - # Use current directory as arg1 - arg1="$dir" - else - # Convert arg1 to an absolute path - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="$dir/$1" - fi - fi - echo Compiling "$arg1" - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/Compilers.jar" Hack.Compiler.JackCompiler "$arg1" -fi diff --git a/tools/OS/Array.vm b/tools/OS/Array.vm deleted file mode 100644 index aa4c9e8..0000000 --- a/tools/OS/Array.vm +++ /dev/null @@ -1,23 +0,0 @@ -function Array.new 0 -push argument 0 -push constant 0 -gt -not -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 2 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -call Memory.alloc 1 -return -function Array.dispose 0 -push argument 0 -pop pointer 0 -push pointer 0 -call Memory.deAlloc 1 -pop temp 0 -push constant 0 -return diff --git a/tools/OS/Keyboard.vm b/tools/OS/Keyboard.vm deleted file mode 100644 index a806c4e..0000000 --- a/tools/OS/Keyboard.vm +++ /dev/null @@ -1,102 +0,0 @@ -function Keyboard.init 0 -push constant 0 -return -function Keyboard.keyPressed 0 -push constant 24576 -call Memory.peek 1 -return -function Keyboard.readChar 2 -push constant 0 -call Output.printChar 1 -pop temp 0 -label WHILE_EXP0 -push local 1 -push constant 0 -eq -push local 0 -push constant 0 -gt -or -not -if-goto WHILE_END0 -call Keyboard.keyPressed 0 -pop local 0 -push local 0 -push constant 0 -gt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push local 0 -pop local 1 -label IF_FALSE0 -goto WHILE_EXP0 -label WHILE_END0 -call String.backSpace 0 -call Output.printChar 1 -pop temp 0 -push local 1 -call Output.printChar 1 -pop temp 0 -push local 1 -return -function Keyboard.readLine 5 -push constant 80 -call String.new 1 -pop local 3 -push argument 0 -call Output.printString 1 -pop temp 0 -call String.newLine 0 -pop local 1 -call String.backSpace 0 -pop local 2 -label WHILE_EXP0 -push local 4 -not -not -if-goto WHILE_END0 -call Keyboard.readChar 0 -pop local 0 -push local 0 -push local 1 -eq -pop local 4 -push local 4 -not -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push local 0 -push local 2 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 3 -call String.eraseLastChar 1 -pop temp 0 -goto IF_END1 -label IF_FALSE1 -push local 3 -push local 0 -call String.appendChar 2 -pop local 3 -label IF_END1 -label IF_FALSE0 -goto WHILE_EXP0 -label WHILE_END0 -push local 3 -return -function Keyboard.readInt 2 -push argument 0 -call Keyboard.readLine 1 -pop local 0 -push local 0 -call String.intValue 1 -pop local 1 -push local 0 -call String.dispose 1 -pop temp 0 -push local 1 -return diff --git a/tools/OS/Math.vm b/tools/OS/Math.vm deleted file mode 100644 index b660688..0000000 --- a/tools/OS/Math.vm +++ /dev/null @@ -1,408 +0,0 @@ -function Math.init 1 -push constant 16 -call Array.new 1 -pop static 1 -push constant 16 -call Array.new 1 -pop static 0 -push constant 0 -push static 0 -add -push constant 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label WHILE_EXP0 -push local 0 -push constant 15 -lt -not -if-goto WHILE_END0 -push local 0 -push constant 1 -add -pop local 0 -push local 0 -push static 0 -add -push local 0 -push constant 1 -sub -push static 0 -add -pop pointer 1 -push that 0 -push local 0 -push constant 1 -sub -push static 0 -add -pop pointer 1 -push that 0 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Math.abs 0 -push argument 0 -push constant 0 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 0 -neg -pop argument 0 -label IF_FALSE0 -push argument 0 -return -function Math.multiply 5 -push argument 0 -push constant 0 -lt -push argument 1 -push constant 0 -gt -and -push argument 0 -push constant 0 -gt -push argument 1 -push constant 0 -lt -and -or -pop local 4 -push argument 0 -call Math.abs 1 -pop argument 0 -push argument 1 -call Math.abs 1 -pop argument 1 -push argument 0 -push argument 1 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 0 -pop local 1 -push argument 1 -pop argument 0 -push local 1 -pop argument 1 -label IF_FALSE0 -label WHILE_EXP0 -push local 2 -push constant 1 -sub -push argument 1 -push constant 1 -sub -lt -not -if-goto WHILE_END0 -push local 3 -push static 0 -add -pop pointer 1 -push that 0 -push argument 1 -and -push constant 0 -eq -not -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 0 -push argument 0 -add -pop local 0 -push local 2 -push local 3 -push static 0 -add -pop pointer 1 -push that 0 -add -pop local 2 -label IF_FALSE1 -push argument 0 -push argument 0 -add -pop argument 0 -push local 3 -push constant 1 -add -pop local 3 -goto WHILE_EXP0 -label WHILE_END0 -push local 4 -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 0 -neg -pop local 0 -label IF_FALSE2 -push local 0 -return -function Math.divide 4 -push argument 1 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 3 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -push constant 0 -lt -push argument 1 -push constant 0 -gt -and -push argument 0 -push constant 0 -gt -push argument 1 -push constant 0 -lt -and -or -pop local 2 -push constant 0 -push static 1 -add -push argument 1 -call Math.abs 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push argument 0 -call Math.abs 1 -pop argument 0 -label WHILE_EXP0 -push local 0 -push constant 15 -lt -push local 3 -not -and -not -if-goto WHILE_END0 -push constant 32767 -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push constant 1 -sub -sub -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push constant 1 -sub -lt -pop local 3 -push local 3 -not -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 0 -push constant 1 -add -push static 1 -add -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 1 -add -push static 1 -add -pop pointer 1 -push that 0 -push constant 1 -sub -push argument 0 -push constant 1 -sub -gt -pop local 3 -push local 3 -not -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 0 -push constant 1 -add -pop local 0 -label IF_FALSE2 -label IF_FALSE1 -goto WHILE_EXP0 -label WHILE_END0 -label WHILE_EXP1 -push local 0 -push constant 1 -neg -gt -not -if-goto WHILE_END1 -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push constant 1 -sub -push argument 0 -push constant 1 -sub -gt -not -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push local 1 -push local 0 -push static 0 -add -pop pointer 1 -push that 0 -add -pop local 1 -push argument 0 -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -sub -pop argument 0 -label IF_FALSE3 -push local 0 -push constant 1 -sub -pop local 0 -goto WHILE_EXP1 -label WHILE_END1 -push local 2 -if-goto IF_TRUE4 -goto IF_FALSE4 -label IF_TRUE4 -push local 1 -neg -pop local 1 -label IF_FALSE4 -push local 1 -return -function Math.sqrt 4 -push argument 0 -push constant 0 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 4 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push constant 7 -pop local 0 -label WHILE_EXP0 -push local 0 -push constant 1 -neg -gt -not -if-goto WHILE_END0 -push local 3 -push local 0 -push static 0 -add -pop pointer 1 -push that 0 -add -pop local 1 -push local 1 -push local 1 -call Math.multiply 2 -pop local 2 -push local 2 -push argument 0 -gt -not -push local 2 -push constant 0 -lt -not -and -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 1 -pop local 3 -label IF_FALSE1 -push local 0 -push constant 1 -sub -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push local 3 -return -function Math.max 0 -push argument 0 -push argument 1 -gt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 0 -pop argument 1 -label IF_FALSE0 -push argument 1 -return -function Math.min 0 -push argument 0 -push argument 1 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 0 -pop argument 1 -label IF_FALSE0 -push argument 1 -return diff --git a/tools/OS/Memory.vm b/tools/OS/Memory.vm deleted file mode 100644 index 5d42aad..0000000 --- a/tools/OS/Memory.vm +++ /dev/null @@ -1,279 +0,0 @@ -function Memory.init 0 -push constant 0 -pop static 0 -push constant 2048 -push static 0 -add -push constant 14334 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 2049 -push static 0 -add -push constant 2050 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -return -function Memory.peek 0 -push argument 0 -push static 0 -add -pop pointer 1 -push that 0 -return -function Memory.poke 0 -push argument 0 -push static 0 -add -push argument 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -return -function Memory.alloc 1 -push argument 0 -push constant 1 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 5 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push constant 2048 -pop local 0 -label WHILE_EXP0 -push constant 0 -push local 0 -add -pop pointer 1 -push that 0 -push argument 0 -lt -not -if-goto WHILE_END0 -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push local 0 -push argument 0 -add -push constant 16379 -gt -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 6 -call Sys.error 1 -pop temp 0 -label IF_FALSE1 -push constant 0 -push local 0 -add -pop pointer 1 -push that 0 -push argument 0 -push constant 2 -add -gt -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push argument 0 -push constant 2 -add -push local 0 -add -push constant 0 -push local 0 -add -pop pointer 1 -push that 0 -push argument 0 -sub -push constant 2 -sub -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -push local 0 -push constant 2 -add -eq -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push argument 0 -push constant 3 -add -push local 0 -add -push local 0 -push argument 0 -add -push constant 4 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto IF_END3 -label IF_FALSE3 -push argument 0 -push constant 3 -add -push local 0 -add -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label IF_END3 -push constant 1 -push local 0 -add -push local 0 -push argument 0 -add -push constant 2 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label IF_FALSE2 -push constant 0 -push local 0 -add -push constant 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 2 -add -return -function Memory.deAlloc 2 -push argument 0 -push constant 2 -sub -pop local 0 -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -pop local 1 -push constant 0 -push local 1 -add -pop pointer 1 -push that 0 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 0 -push local 0 -add -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -push local 0 -sub -push constant 2 -sub -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto IF_END0 -label IF_FALSE0 -push constant 0 -push local 0 -add -push constant 1 -push local 0 -add -pop pointer 1 -push that 0 -push local 0 -sub -push constant 0 -push local 1 -add -pop pointer 1 -push that 0 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 1 -push local 1 -add -pop pointer 1 -push that 0 -push local 1 -push constant 2 -add -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 1 -push local 0 -add -push local 0 -push constant 2 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto IF_END1 -label IF_FALSE1 -push constant 1 -push local 0 -add -push constant 1 -push local 1 -add -pop pointer 1 -push that 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label IF_END1 -label IF_END0 -push constant 0 -return diff --git a/tools/OS/Output.vm b/tools/OS/Output.vm deleted file mode 100644 index b8addd7..0000000 --- a/tools/OS/Output.vm +++ /dev/null @@ -1,1852 +0,0 @@ -function Output.init 0 -push constant 16384 -pop static 4 -push constant 0 -not -pop static 2 -push constant 32 -pop static 1 -push constant 0 -pop static 0 -push constant 6 -call String.new 1 -pop static 3 -call Output.initMap 0 -pop temp 0 -call Output.createShiftedMap 0 -pop temp 0 -push constant 0 -return -function Output.initMap 0 -push constant 127 -call Array.new 1 -pop static 5 -push constant 0 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 32 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 33 -push constant 12 -push constant 30 -push constant 30 -push constant 30 -push constant 12 -push constant 12 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 34 -push constant 54 -push constant 54 -push constant 20 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 35 -push constant 0 -push constant 18 -push constant 18 -push constant 63 -push constant 18 -push constant 18 -push constant 63 -push constant 18 -push constant 18 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 36 -push constant 12 -push constant 30 -push constant 51 -push constant 3 -push constant 30 -push constant 48 -push constant 51 -push constant 30 -push constant 12 -push constant 12 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 37 -push constant 0 -push constant 0 -push constant 35 -push constant 51 -push constant 24 -push constant 12 -push constant 6 -push constant 51 -push constant 49 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 38 -push constant 12 -push constant 30 -push constant 30 -push constant 12 -push constant 54 -push constant 27 -push constant 27 -push constant 27 -push constant 54 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 39 -push constant 12 -push constant 12 -push constant 6 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 40 -push constant 24 -push constant 12 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 12 -push constant 24 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 41 -push constant 6 -push constant 12 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 12 -push constant 6 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 42 -push constant 0 -push constant 0 -push constant 0 -push constant 51 -push constant 30 -push constant 63 -push constant 30 -push constant 51 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 43 -push constant 0 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 63 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 44 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 6 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 45 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 63 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 46 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 47 -push constant 0 -push constant 0 -push constant 32 -push constant 48 -push constant 24 -push constant 12 -push constant 6 -push constant 3 -push constant 1 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 48 -push constant 12 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 49 -push constant 12 -push constant 14 -push constant 15 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 50 -push constant 30 -push constant 51 -push constant 48 -push constant 24 -push constant 12 -push constant 6 -push constant 3 -push constant 51 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 51 -push constant 30 -push constant 51 -push constant 48 -push constant 48 -push constant 28 -push constant 48 -push constant 48 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 52 -push constant 16 -push constant 24 -push constant 28 -push constant 26 -push constant 25 -push constant 63 -push constant 24 -push constant 24 -push constant 60 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 53 -push constant 63 -push constant 3 -push constant 3 -push constant 31 -push constant 48 -push constant 48 -push constant 48 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 54 -push constant 28 -push constant 6 -push constant 3 -push constant 3 -push constant 31 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 55 -push constant 63 -push constant 49 -push constant 48 -push constant 48 -push constant 24 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 56 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 57 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 62 -push constant 48 -push constant 48 -push constant 24 -push constant 14 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 58 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 59 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -push constant 12 -push constant 12 -push constant 6 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 60 -push constant 0 -push constant 0 -push constant 24 -push constant 12 -push constant 6 -push constant 3 -push constant 6 -push constant 12 -push constant 24 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 61 -push constant 0 -push constant 0 -push constant 0 -push constant 63 -push constant 0 -push constant 0 -push constant 63 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 62 -push constant 0 -push constant 0 -push constant 3 -push constant 6 -push constant 12 -push constant 24 -push constant 12 -push constant 6 -push constant 3 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 64 -push constant 30 -push constant 51 -push constant 51 -push constant 59 -push constant 59 -push constant 59 -push constant 27 -push constant 3 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 63 -push constant 30 -push constant 51 -push constant 51 -push constant 24 -push constant 12 -push constant 12 -push constant 0 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 65 -push constant 12 -push constant 30 -push constant 51 -push constant 51 -push constant 63 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 66 -push constant 31 -push constant 51 -push constant 51 -push constant 51 -push constant 31 -push constant 51 -push constant 51 -push constant 51 -push constant 31 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 67 -push constant 28 -push constant 54 -push constant 35 -push constant 3 -push constant 3 -push constant 3 -push constant 35 -push constant 54 -push constant 28 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 68 -push constant 15 -push constant 27 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 27 -push constant 15 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 69 -push constant 63 -push constant 51 -push constant 35 -push constant 11 -push constant 15 -push constant 11 -push constant 35 -push constant 51 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 70 -push constant 63 -push constant 51 -push constant 35 -push constant 11 -push constant 15 -push constant 11 -push constant 3 -push constant 3 -push constant 3 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 71 -push constant 28 -push constant 54 -push constant 35 -push constant 3 -push constant 59 -push constant 51 -push constant 51 -push constant 54 -push constant 44 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 72 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 63 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 73 -push constant 30 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 74 -push constant 60 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 27 -push constant 27 -push constant 14 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 75 -push constant 51 -push constant 51 -push constant 51 -push constant 27 -push constant 15 -push constant 27 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 76 -push constant 3 -push constant 3 -push constant 3 -push constant 3 -push constant 3 -push constant 3 -push constant 35 -push constant 51 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 77 -push constant 33 -push constant 51 -push constant 63 -push constant 63 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 78 -push constant 51 -push constant 51 -push constant 55 -push constant 55 -push constant 63 -push constant 59 -push constant 59 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 79 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 80 -push constant 31 -push constant 51 -push constant 51 -push constant 51 -push constant 31 -push constant 3 -push constant 3 -push constant 3 -push constant 3 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 81 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 63 -push constant 59 -push constant 30 -push constant 48 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 82 -push constant 31 -push constant 51 -push constant 51 -push constant 51 -push constant 31 -push constant 27 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 83 -push constant 30 -push constant 51 -push constant 51 -push constant 6 -push constant 28 -push constant 48 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 84 -push constant 63 -push constant 63 -push constant 45 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 85 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 86 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 30 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 87 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 63 -push constant 63 -push constant 63 -push constant 18 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 88 -push constant 51 -push constant 51 -push constant 30 -push constant 30 -push constant 12 -push constant 30 -push constant 30 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 89 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 12 -push constant 12 -push constant 12 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 90 -push constant 63 -push constant 51 -push constant 49 -push constant 24 -push constant 12 -push constant 6 -push constant 35 -push constant 51 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 91 -push constant 30 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 6 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 92 -push constant 0 -push constant 0 -push constant 1 -push constant 3 -push constant 6 -push constant 12 -push constant 24 -push constant 48 -push constant 32 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 93 -push constant 30 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 24 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 94 -push constant 8 -push constant 28 -push constant 54 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 95 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 63 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 96 -push constant 6 -push constant 12 -push constant 24 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 97 -push constant 0 -push constant 0 -push constant 0 -push constant 14 -push constant 24 -push constant 30 -push constant 27 -push constant 27 -push constant 54 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 98 -push constant 3 -push constant 3 -push constant 3 -push constant 15 -push constant 27 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 99 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 3 -push constant 3 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 100 -push constant 48 -push constant 48 -push constant 48 -push constant 60 -push constant 54 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 101 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 63 -push constant 3 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 102 -push constant 28 -push constant 54 -push constant 38 -push constant 6 -push constant 15 -push constant 6 -push constant 6 -push constant 6 -push constant 15 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 103 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 62 -push constant 48 -push constant 51 -push constant 30 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 104 -push constant 3 -push constant 3 -push constant 3 -push constant 27 -push constant 55 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 105 -push constant 12 -push constant 12 -push constant 0 -push constant 14 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 106 -push constant 48 -push constant 48 -push constant 0 -push constant 56 -push constant 48 -push constant 48 -push constant 48 -push constant 48 -push constant 51 -push constant 30 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 107 -push constant 3 -push constant 3 -push constant 3 -push constant 51 -push constant 27 -push constant 15 -push constant 15 -push constant 27 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 108 -push constant 14 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 109 -push constant 0 -push constant 0 -push constant 0 -push constant 29 -push constant 63 -push constant 43 -push constant 43 -push constant 43 -push constant 43 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 110 -push constant 0 -push constant 0 -push constant 0 -push constant 29 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 111 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 112 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 31 -push constant 3 -push constant 3 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 113 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 51 -push constant 51 -push constant 62 -push constant 48 -push constant 48 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 114 -push constant 0 -push constant 0 -push constant 0 -push constant 29 -push constant 55 -push constant 51 -push constant 3 -push constant 3 -push constant 7 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 115 -push constant 0 -push constant 0 -push constant 0 -push constant 30 -push constant 51 -push constant 6 -push constant 24 -push constant 51 -push constant 30 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 116 -push constant 4 -push constant 6 -push constant 6 -push constant 15 -push constant 6 -push constant 6 -push constant 6 -push constant 54 -push constant 28 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 117 -push constant 0 -push constant 0 -push constant 0 -push constant 27 -push constant 27 -push constant 27 -push constant 27 -push constant 27 -push constant 54 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 118 -push constant 0 -push constant 0 -push constant 0 -push constant 51 -push constant 51 -push constant 51 -push constant 51 -push constant 30 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 119 -push constant 0 -push constant 0 -push constant 0 -push constant 51 -push constant 51 -push constant 51 -push constant 63 -push constant 63 -push constant 18 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 120 -push constant 0 -push constant 0 -push constant 0 -push constant 51 -push constant 30 -push constant 12 -push constant 12 -push constant 30 -push constant 51 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 121 -push constant 0 -push constant 0 -push constant 0 -push constant 51 -push constant 51 -push constant 51 -push constant 62 -push constant 48 -push constant 24 -push constant 15 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 122 -push constant 0 -push constant 0 -push constant 0 -push constant 63 -push constant 27 -push constant 12 -push constant 6 -push constant 51 -push constant 63 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 123 -push constant 56 -push constant 12 -push constant 12 -push constant 12 -push constant 7 -push constant 12 -push constant 12 -push constant 12 -push constant 56 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 124 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 12 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 125 -push constant 7 -push constant 12 -push constant 12 -push constant 12 -push constant 56 -push constant 12 -push constant 12 -push constant 12 -push constant 7 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 126 -push constant 38 -push constant 45 -push constant 25 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -push constant 0 -call Output.create 12 -pop temp 0 -push constant 0 -return -function Output.create 1 -push constant 11 -call Array.new 1 -pop local 0 -push argument 0 -push static 5 -add -push local 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -push local 0 -add -push argument 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 1 -push local 0 -add -push argument 2 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 2 -push local 0 -add -push argument 3 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 3 -push local 0 -add -push argument 4 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 4 -push local 0 -add -push argument 5 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 5 -push local 0 -add -push argument 6 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 6 -push local 0 -add -push argument 7 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 7 -push local 0 -add -push argument 8 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 8 -push local 0 -add -push argument 9 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 9 -push local 0 -add -push argument 10 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 10 -push local 0 -add -push argument 11 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -return -function Output.createShiftedMap 4 -push constant 127 -call Array.new 1 -pop static 6 -push constant 0 -pop local 2 -label WHILE_EXP0 -push local 2 -push constant 127 -lt -not -if-goto WHILE_END0 -push local 2 -push static 5 -add -pop pointer 1 -push that 0 -pop local 0 -push constant 11 -call Array.new 1 -pop local 1 -push local 2 -push static 6 -add -push local 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -pop local 3 -label WHILE_EXP1 -push local 3 -push constant 11 -lt -not -if-goto WHILE_END1 -push local 3 -push local 1 -add -push local 3 -push local 0 -add -pop pointer 1 -push that 0 -push constant 256 -call Math.multiply 2 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 3 -push constant 1 -add -pop local 3 -goto WHILE_EXP1 -label WHILE_END1 -push local 2 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 32 -pop local 2 -goto IF_END0 -label IF_FALSE0 -push local 2 -push constant 1 -add -pop local 2 -label IF_END0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Output.getMap 1 -push argument 0 -push constant 32 -lt -push argument 0 -push constant 126 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 0 -pop argument 0 -label IF_FALSE0 -push static 2 -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push argument 0 -push static 5 -add -pop pointer 1 -push that 0 -pop local 0 -goto IF_END1 -label IF_FALSE1 -push argument 0 -push static 6 -add -pop pointer 1 -push that 0 -pop local 0 -label IF_END1 -push local 0 -return -function Output.drawChar 4 -push argument 0 -call Output.getMap 1 -pop local 2 -push static 1 -pop local 0 -label WHILE_EXP0 -push local 1 -push constant 11 -lt -not -if-goto WHILE_END0 -push static 2 -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push local 0 -push static 4 -add -pop pointer 1 -push that 0 -push constant 256 -neg -and -pop local 3 -goto IF_END0 -label IF_FALSE0 -push local 0 -push static 4 -add -pop pointer 1 -push that 0 -push constant 255 -and -pop local 3 -label IF_END0 -push local 0 -push static 4 -add -push local 1 -push local 2 -add -pop pointer 1 -push that 0 -push local 3 -or -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 32 -add -pop local 0 -push local 1 -push constant 1 -add -pop local 1 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Output.moveCursor 0 -push argument 0 -push constant 0 -lt -push argument 0 -push constant 22 -gt -or -push argument 1 -push constant 0 -lt -or -push argument 1 -push constant 63 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 20 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 1 -push constant 2 -call Math.divide 2 -pop static 0 -push constant 32 -push argument 0 -push constant 352 -call Math.multiply 2 -add -push static 0 -add -pop static 1 -push argument 1 -push static 0 -push constant 2 -call Math.multiply 2 -eq -pop static 2 -push constant 32 -call Output.drawChar 1 -pop temp 0 -push constant 0 -return -function Output.printChar 0 -push argument 0 -call String.newLine 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -call Output.println 0 -pop temp 0 -goto IF_END0 -label IF_FALSE0 -push argument 0 -call String.backSpace 0 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -call Output.backSpace 0 -pop temp 0 -goto IF_END1 -label IF_FALSE1 -push argument 0 -call Output.drawChar 1 -pop temp 0 -push static 2 -not -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push static 0 -push constant 1 -add -pop static 0 -push static 1 -push constant 1 -add -pop static 1 -label IF_FALSE2 -push static 0 -push constant 32 -eq -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -call Output.println 0 -pop temp 0 -goto IF_END3 -label IF_FALSE3 -push static 2 -not -pop static 2 -label IF_END3 -label IF_END1 -label IF_END0 -push constant 0 -return -function Output.printString 2 -push argument 0 -call String.length 1 -pop local 1 -label WHILE_EXP0 -push local 0 -push local 1 -lt -not -if-goto WHILE_END0 -push argument 0 -push local 0 -call String.charAt 2 -call Output.printChar 1 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Output.printInt 0 -push static 3 -push argument 0 -call String.setInt 2 -pop temp 0 -push static 3 -call Output.printString 1 -pop temp 0 -push constant 0 -return -function Output.println 0 -push static 1 -push constant 352 -add -push static 0 -sub -pop static 1 -push constant 0 -pop static 0 -push constant 0 -not -pop static 2 -push static 1 -push constant 8128 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 32 -pop static 1 -label IF_FALSE0 -push constant 0 -return -function Output.backSpace 0 -push static 2 -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push static 0 -push constant 0 -gt -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push static 0 -push constant 1 -sub -pop static 0 -push static 1 -push constant 1 -sub -pop static 1 -goto IF_END1 -label IF_FALSE1 -push constant 31 -pop static 0 -push static 1 -push constant 32 -eq -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push constant 8128 -pop static 1 -label IF_FALSE2 -push static 1 -push constant 321 -sub -pop static 1 -label IF_END1 -push constant 0 -pop static 2 -goto IF_END0 -label IF_FALSE0 -push constant 0 -not -pop static 2 -label IF_END0 -push constant 32 -call Output.drawChar 1 -pop temp 0 -push constant 0 -return diff --git a/tools/OS/Screen.vm b/tools/OS/Screen.vm deleted file mode 100644 index fccafb5..0000000 --- a/tools/OS/Screen.vm +++ /dev/null @@ -1,806 +0,0 @@ -function Screen.init 1 -push constant 16384 -pop static 1 -push constant 0 -not -pop static 2 -push constant 17 -call Array.new 1 -pop static 0 -push constant 0 -push static 0 -add -push constant 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label WHILE_EXP0 -push local 0 -push constant 16 -lt -not -if-goto WHILE_END0 -push local 0 -push constant 1 -add -pop local 0 -push local 0 -push static 0 -add -push local 0 -push constant 1 -sub -push static 0 -add -pop pointer 1 -push that 0 -push local 0 -push constant 1 -sub -push static 0 -add -pop pointer 1 -push that 0 -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.clearScreen 1 -label WHILE_EXP0 -push local 0 -push constant 8192 -lt -not -if-goto WHILE_END0 -push local 0 -push static 1 -add -push constant 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.updateLocation 0 -push static 2 -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 0 -push static 1 -add -push argument 0 -push static 1 -add -pop pointer 1 -push that 0 -push argument 1 -or -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto IF_END0 -label IF_FALSE0 -push argument 0 -push static 1 -add -push argument 0 -push static 1 -add -pop pointer 1 -push that 0 -push argument 1 -not -and -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label IF_END0 -push constant 0 -return -function Screen.setColor 0 -push argument 0 -pop static 2 -push constant 0 -return -function Screen.drawPixel 3 -push argument 0 -push constant 0 -lt -push argument 0 -push constant 511 -gt -or -push argument 1 -push constant 0 -lt -or -push argument 1 -push constant 255 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 7 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -push constant 16 -call Math.divide 2 -pop local 0 -push argument 0 -push local 0 -push constant 16 -call Math.multiply 2 -sub -pop local 1 -push argument 1 -push constant 32 -call Math.multiply 2 -push local 0 -add -pop local 2 -push local 2 -push local 1 -push static 0 -add -pop pointer 1 -push that 0 -call Screen.updateLocation 2 -pop temp 0 -push constant 0 -return -function Screen.drawConditional 0 -push argument 2 -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 1 -push argument 0 -call Screen.drawPixel 2 -pop temp 0 -goto IF_END0 -label IF_FALSE0 -push argument 0 -push argument 1 -call Screen.drawPixel 2 -pop temp 0 -label IF_END0 -push constant 0 -return -function Screen.drawLine 11 -push argument 0 -push constant 0 -lt -push argument 2 -push constant 511 -gt -or -push argument 1 -push constant 0 -lt -or -push argument 3 -push constant 255 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 8 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 2 -push argument 0 -sub -call Math.abs 1 -pop local 3 -push argument 3 -push argument 1 -sub -call Math.abs 1 -pop local 2 -push local 3 -push local 2 -lt -pop local 6 -push local 6 -push argument 3 -push argument 1 -lt -and -push local 6 -not -push argument 2 -push argument 0 -lt -and -or -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push argument 0 -pop local 4 -push argument 2 -pop argument 0 -push local 4 -pop argument 2 -push argument 1 -pop local 4 -push argument 3 -pop argument 1 -push local 4 -pop argument 3 -label IF_FALSE1 -push local 6 -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 3 -pop local 4 -push local 2 -pop local 3 -push local 4 -pop local 2 -push argument 1 -pop local 1 -push argument 0 -pop local 0 -push argument 3 -pop local 8 -push argument 0 -push argument 2 -gt -pop local 7 -goto IF_END2 -label IF_FALSE2 -push argument 0 -pop local 1 -push argument 1 -pop local 0 -push argument 2 -pop local 8 -push argument 1 -push argument 3 -gt -pop local 7 -label IF_END2 -push constant 2 -push local 2 -call Math.multiply 2 -push local 3 -sub -pop local 5 -push constant 2 -push local 2 -call Math.multiply 2 -pop local 9 -push constant 2 -push local 2 -push local 3 -sub -call Math.multiply 2 -pop local 10 -push local 1 -push local 0 -push local 6 -call Screen.drawConditional 3 -pop temp 0 -label WHILE_EXP0 -push local 1 -push local 8 -lt -not -if-goto WHILE_END0 -push local 5 -push constant 0 -lt -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push local 5 -push local 9 -add -pop local 5 -goto IF_END3 -label IF_FALSE3 -push local 5 -push local 10 -add -pop local 5 -push local 7 -if-goto IF_TRUE4 -goto IF_FALSE4 -label IF_TRUE4 -push local 0 -push constant 1 -sub -pop local 0 -goto IF_END4 -label IF_FALSE4 -push local 0 -push constant 1 -add -pop local 0 -label IF_END4 -label IF_END3 -push local 1 -push constant 1 -add -pop local 1 -push local 1 -push local 0 -push local 6 -call Screen.drawConditional 3 -pop temp 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.drawRectangle 9 -push argument 0 -push argument 2 -gt -push argument 1 -push argument 3 -gt -or -push argument 0 -push constant 0 -lt -or -push argument 2 -push constant 511 -gt -or -push argument 1 -push constant 0 -lt -or -push argument 3 -push constant 255 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 9 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -push constant 16 -call Math.divide 2 -pop local 3 -push argument 0 -push local 3 -push constant 16 -call Math.multiply 2 -sub -pop local 7 -push argument 2 -push constant 16 -call Math.divide 2 -pop local 4 -push argument 2 -push local 4 -push constant 16 -call Math.multiply 2 -sub -pop local 8 -push local 7 -push static 0 -add -pop pointer 1 -push that 0 -push constant 1 -sub -not -pop local 6 -push local 8 -push constant 1 -add -push static 0 -add -pop pointer 1 -push that 0 -push constant 1 -sub -pop local 5 -push argument 1 -push constant 32 -call Math.multiply 2 -push local 3 -add -pop local 0 -push local 4 -push local 3 -sub -pop local 2 -label WHILE_EXP0 -push argument 1 -push argument 3 -gt -not -not -if-goto WHILE_END0 -push local 0 -push local 2 -add -pop local 1 -push local 2 -push constant 0 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 0 -push local 5 -push local 6 -and -call Screen.updateLocation 2 -pop temp 0 -goto IF_END1 -label IF_FALSE1 -push local 0 -push local 6 -call Screen.updateLocation 2 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -label WHILE_EXP1 -push local 0 -push local 1 -lt -not -if-goto WHILE_END1 -push local 0 -push constant 1 -neg -call Screen.updateLocation 2 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP1 -label WHILE_END1 -push local 1 -push local 5 -call Screen.updateLocation 2 -pop temp 0 -label IF_END1 -push argument 1 -push constant 1 -add -pop argument 1 -push local 1 -push constant 32 -add -push local 2 -sub -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.drawHorizontal 11 -push argument 1 -push argument 2 -call Math.min 2 -pop local 7 -push argument 1 -push argument 2 -call Math.max 2 -pop local 8 -push argument 0 -push constant 1 -neg -gt -push argument 0 -push constant 256 -lt -and -push local 7 -push constant 512 -lt -and -push local 8 -push constant 1 -neg -gt -and -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push local 7 -push constant 0 -call Math.max 2 -pop local 7 -push local 8 -push constant 511 -call Math.min 2 -pop local 8 -push local 7 -push constant 16 -call Math.divide 2 -pop local 1 -push local 7 -push local 1 -push constant 16 -call Math.multiply 2 -sub -pop local 9 -push local 8 -push constant 16 -call Math.divide 2 -pop local 2 -push local 8 -push local 2 -push constant 16 -call Math.multiply 2 -sub -pop local 10 -push local 9 -push static 0 -add -pop pointer 1 -push that 0 -push constant 1 -sub -not -pop local 5 -push local 10 -push constant 1 -add -push static 0 -add -pop pointer 1 -push that 0 -push constant 1 -sub -pop local 4 -push argument 0 -push constant 32 -call Math.multiply 2 -push local 1 -add -pop local 0 -push local 2 -push local 1 -sub -pop local 6 -push local 0 -push local 6 -add -pop local 3 -push local 6 -push constant 0 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 0 -push local 4 -push local 5 -and -call Screen.updateLocation 2 -pop temp 0 -goto IF_END1 -label IF_FALSE1 -push local 0 -push local 5 -call Screen.updateLocation 2 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -label WHILE_EXP0 -push local 0 -push local 3 -lt -not -if-goto WHILE_END0 -push local 0 -push constant 1 -neg -call Screen.updateLocation 2 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push local 3 -push local 4 -call Screen.updateLocation 2 -pop temp 0 -label IF_END1 -label IF_FALSE0 -push constant 0 -return -function Screen.drawSymetric 0 -push argument 1 -push argument 3 -sub -push argument 0 -push argument 2 -add -push argument 0 -push argument 2 -sub -call Screen.drawHorizontal 3 -pop temp 0 -push argument 1 -push argument 3 -add -push argument 0 -push argument 2 -add -push argument 0 -push argument 2 -sub -call Screen.drawHorizontal 3 -pop temp 0 -push argument 1 -push argument 2 -sub -push argument 0 -push argument 3 -sub -push argument 0 -push argument 3 -add -call Screen.drawHorizontal 3 -pop temp 0 -push argument 1 -push argument 2 -add -push argument 0 -push argument 3 -sub -push argument 0 -push argument 3 -add -call Screen.drawHorizontal 3 -pop temp 0 -push constant 0 -return -function Screen.drawCircle 3 -push argument 0 -push constant 0 -lt -push argument 0 -push constant 511 -gt -or -push argument 1 -push constant 0 -lt -or -push argument 1 -push constant 255 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 12 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -push argument 2 -sub -push constant 0 -lt -push argument 0 -push argument 2 -add -push constant 511 -gt -or -push argument 1 -push argument 2 -sub -push constant 0 -lt -or -push argument 1 -push argument 2 -add -push constant 255 -gt -or -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 13 -call Sys.error 1 -pop temp 0 -label IF_FALSE1 -push argument 2 -pop local 1 -push constant 1 -push argument 2 -sub -pop local 2 -push argument 0 -push argument 1 -push local 0 -push local 1 -call Screen.drawSymetric 4 -pop temp 0 -label WHILE_EXP0 -push local 1 -push local 0 -gt -not -if-goto WHILE_END0 -push local 2 -push constant 0 -lt -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 2 -push constant 2 -push local 0 -call Math.multiply 2 -add -push constant 3 -add -pop local 2 -goto IF_END2 -label IF_FALSE2 -push local 2 -push constant 2 -push local 0 -push local 1 -sub -call Math.multiply 2 -add -push constant 5 -add -pop local 2 -push local 1 -push constant 1 -sub -pop local 1 -label IF_END2 -push local 0 -push constant 1 -add -pop local 0 -push argument 0 -push argument 1 -push local 0 -push local 1 -call Screen.drawSymetric 4 -pop temp 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return diff --git a/tools/OS/String.vm b/tools/OS/String.vm deleted file mode 100644 index 9b7577e..0000000 --- a/tools/OS/String.vm +++ /dev/null @@ -1,393 +0,0 @@ -function String.new 0 -push constant 3 -call Memory.alloc 1 -pop pointer 0 -push argument 0 -push constant 0 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 14 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 0 -push constant 0 -gt -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push argument 0 -call Array.new 1 -pop this 1 -label IF_FALSE1 -push argument 0 -pop this 0 -push constant 0 -pop this 2 -push pointer 0 -return -function String.dispose 0 -push argument 0 -pop pointer 0 -push this 0 -push constant 0 -gt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push this 1 -call Array.dispose 1 -pop temp 0 -label IF_FALSE0 -push pointer 0 -call Memory.deAlloc 1 -pop temp 0 -push constant 0 -return -function String.length 0 -push argument 0 -pop pointer 0 -push this 2 -return -function String.charAt 0 -push argument 0 -pop pointer 0 -push argument 1 -push constant 0 -lt -push argument 1 -push this 2 -gt -or -push argument 1 -push this 2 -eq -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 15 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 1 -push this 1 -add -pop pointer 1 -push that 0 -return -function String.setCharAt 0 -push argument 0 -pop pointer 0 -push argument 1 -push constant 0 -lt -push argument 1 -push this 2 -gt -or -push argument 1 -push this 2 -eq -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 16 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push argument 1 -push this 1 -add -push argument 2 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 0 -return -function String.appendChar 0 -push argument 0 -pop pointer 0 -push this 2 -push this 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 17 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push this 2 -push this 1 -add -push argument 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push this 2 -push constant 1 -add -pop this 2 -push pointer 0 -return -function String.eraseLastChar 0 -push argument 0 -pop pointer 0 -push this 2 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 18 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push this 2 -push constant 1 -sub -pop this 2 -push constant 0 -return -function String.intValue 5 -push argument 0 -pop pointer 0 -push this 2 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 0 -return -label IF_FALSE0 -push constant 0 -not -pop local 3 -push constant 0 -push this 1 -add -pop pointer 1 -push that 0 -push constant 45 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 0 -not -pop local 4 -push constant 1 -pop local 0 -label IF_FALSE1 -label WHILE_EXP0 -push local 0 -push this 2 -lt -push local 3 -and -not -if-goto WHILE_END0 -push local 0 -push this 1 -add -pop pointer 1 -push that 0 -push constant 48 -sub -pop local 2 -push local 2 -push constant 0 -lt -push local 2 -push constant 9 -gt -or -not -pop local 3 -push local 3 -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 1 -push constant 10 -call Math.multiply 2 -push local 2 -add -pop local 1 -push local 0 -push constant 1 -add -pop local 0 -label IF_FALSE2 -goto WHILE_EXP0 -label WHILE_END0 -push local 4 -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push local 1 -neg -pop local 1 -label IF_FALSE3 -push local 1 -return -function String.setInt 4 -push argument 0 -pop pointer 0 -push this 0 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 19 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -push constant 6 -call Array.new 1 -pop local 2 -push argument 1 -push constant 0 -lt -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 0 -not -pop local 3 -push argument 1 -neg -pop argument 1 -label IF_FALSE1 -push argument 1 -pop local 1 -label WHILE_EXP0 -push local 1 -push constant 0 -gt -not -if-goto WHILE_END0 -push argument 1 -push constant 10 -call Math.divide 2 -pop local 1 -push local 0 -push local 2 -add -push constant 48 -push argument 1 -push local 1 -push constant 10 -call Math.multiply 2 -sub -add -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 1 -add -pop local 0 -push local 1 -pop argument 1 -goto WHILE_EXP0 -label WHILE_END0 -push local 3 -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push local 0 -push local 2 -add -push constant 45 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 0 -push constant 1 -add -pop local 0 -label IF_FALSE2 -push this 0 -push local 0 -lt -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push constant 19 -call Sys.error 1 -pop temp 0 -label IF_FALSE3 -push local 0 -push constant 0 -eq -if-goto IF_TRUE4 -goto IF_FALSE4 -label IF_TRUE4 -push constant 0 -push this 1 -add -push constant 48 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push constant 1 -pop this 2 -goto IF_END4 -label IF_FALSE4 -push constant 0 -pop this 2 -label WHILE_EXP1 -push this 2 -push local 0 -lt -not -if-goto WHILE_END1 -push this 2 -push this 1 -add -push local 0 -push this 2 -push constant 1 -add -sub -push local 2 -add -pop pointer 1 -push that 0 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push this 2 -push constant 1 -add -pop this 2 -goto WHILE_EXP1 -label WHILE_END1 -label IF_END4 -push local 2 -call Array.dispose 1 -pop temp 0 -push constant 0 -return -function String.newLine 0 -push constant 128 -return -function String.backSpace 0 -push constant 129 -return -function String.doubleQuote 0 -push constant 34 -return diff --git a/tools/OS/Sys.vm b/tools/OS/Sys.vm deleted file mode 100644 index 3ed7c0c..0000000 --- a/tools/OS/Sys.vm +++ /dev/null @@ -1,84 +0,0 @@ -function Sys.init 0 -call Memory.init 0 -pop temp 0 -call Math.init 0 -pop temp 0 -call Screen.init 0 -pop temp 0 -call Output.init 0 -pop temp 0 -call Keyboard.init 0 -pop temp 0 -call Main.main 0 -pop temp 0 -call Sys.halt 0 -pop temp 0 -push constant 0 -return -function Sys.halt 0 -label WHILE_EXP0 -push constant 0 -not -not -if-goto WHILE_END0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Sys.wait 1 -push argument 0 -push constant 0 -lt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 1 -call Sys.error 1 -pop temp 0 -label IF_FALSE0 -label WHILE_EXP0 -push argument 0 -push constant 0 -gt -not -if-goto WHILE_END0 -push constant 50 -pop local 0 -label WHILE_EXP1 -push local 0 -push constant 0 -gt -not -if-goto WHILE_END1 -push local 0 -push constant 1 -sub -pop local 0 -goto WHILE_EXP1 -label WHILE_END1 -push argument 0 -push constant 1 -sub -pop argument 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Sys.error 0 -push constant 3 -call String.new 1 -push constant 69 -call String.appendChar 2 -push constant 82 -call String.appendChar 2 -push constant 82 -call String.appendChar 2 -call Output.printString 1 -pop temp 0 -push argument 0 -call Output.printInt 1 -pop temp 0 -call Sys.halt 0 -pop temp 0 -push constant 0 -return diff --git a/tools/TextComparer.bat b/tools/TextComparer.bat deleted file mode 100644 index a036d00..0000000 --- a/tools/TextComparer.bat +++ /dev/null @@ -1,29 +0,0 @@ -@echo off - -rem $Id: TextComparer.bat,v 1.2 2014/05/10 00:52:43 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%3"=="" goto :USAGE -if "%1"=="/?" goto :USAGE -if not "%~1"=="" ( - set "_arg1=%~f1" -) -if not "%~2"=="" ( - set "_arg2=%~f2" -) -pushd "%~dp0" -if NOT "%~1"=="" ( - if NOT "%~2"=="" ( - java -classpath "%CLASSPATH%;bin/classes" TextComparer ^ - "%_arg1%" "%_arg2%" - popd - exit /B - ) -) -:USAGE -echo Usage: -echo TextComparer FILE1 FILE2 Compares FILE1 and FILE2. The success -echo message or the first miscompared line -echo is printed to the command console. -popd diff --git a/tools/TextComparer.sh b/tools/TextComparer.sh deleted file mode 100755 index c8b08af..0000000 --- a/tools/TextComparer.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env sh - -# $Id: TextComparer.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -ne 2 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - # print usage - echo "Usage:" - echo " `basename "$0"` FILE1 FILE2 Compares FILE1 and FILE2. The success" - echo " message or the first miscompared line" - echo " is printed to the command console." -else - # Convert arg1 to an absolute path - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="$dir/$1" - fi - # Convert arg2 to an absolute path - if [ `echo "$2" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg2="$2" - else - arg2="$dir/$2" - fi -# echo Comparing "$arg1" "$arg2" - java -classpath "${CLASSPATH}:bin/classes" TextComparer "$arg1" "$arg2" -fi diff --git a/tools/VMEmulator.bat b/tools/VMEmulator.bat deleted file mode 100644 index 1b15b72..0000000 --- a/tools/VMEmulator.bat +++ /dev/null @@ -1,29 +0,0 @@ -@echo off - -rem $Id: VMEmulator.bat,v 1.3 2014/05/10 00:51:55 marka Exp $ -rem mark.armbrust@pobox.com - -setlocal -if not "%2"=="" goto :USAGE -if "%~1"=="/?" ( -:USAGE - echo Usage: - echo VMEmulator Starts the VM Emulator in interactive mode. - echo VMEmulator FILE.tst Starts the VM Emulator and runs the FILE.tst test - echo script. The success/failure message is - echo printed to the command console. - exit -b -) -if not "%~1"=="" ( - set "_arg1=%~f1" -) -pushd "%~dp0" -if "%~1"=="" ( - start javaw -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - VMEmulatorMain -) else ( -rem echo Running "%_arg1%" - java -classpath "%CLASSPATH%;.;bin/classes;bin/lib/Hack.jar;bin/lib/HackGUI.jar;bin/lib/Simulators.jar;bin/lib/SimulatorsGUI.jar;bin/lib/Compilers.jar" ^ - VMEmulatorMain "%_arg1%" -) -popd diff --git a/tools/VMEmulator.sh b/tools/VMEmulator.sh deleted file mode 100755 index 48f4f0f..0000000 --- a/tools/VMEmulator.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env sh - -# $Id: VMEmulator.sh,v 1.1 2014/06/17 21:14:01 marka Exp $ -# mark.armbrust@pobox.com - -# User's CDPATH can interfere with cd in this script -unset CDPATH -# Get the true name of this script -script="`test -L "$0" && readlink -n "$0" || echo "$0"`" -dir="$PWD" -cd "`dirname "$script"`" -if [ \( $# -gt 1 \) -o \( "$1" = "-h" \) -o \( "$1" = "--help" \) ] -then - echo "Usage:" - echo " `basename "$0"` Starts the VM Emulator in interactive mode." - echo " `basename "$0"` FILE.tst Starts the VM Emulator and runs the FILE.tst test" - echo " script. The success/failure message is" - echo " printed to the command console." -elif [ $# -eq 0 ] -then - # Run VM emulator in interactive mode - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" VMEmulatorMain & -else - # Convert arg1 to an absolute path and run VM emulator with arg1 - if [ `echo "$1" | sed -e "s/\(.\).*/\1/"` = / ] - then - arg1="$1" - else - arg1="${dir}/$1" - fi -# echo Running "$arg1" - java -classpath "${CLASSPATH}:bin/classes:bin/lib/Hack.jar:bin/lib/HackGUI.jar:bin/lib/Simulators.jar:bin/lib/SimulatorsGUI.jar:bin/lib/Compilers.jar" VMEmulatorMain "$arg1" -fi diff --git a/tools/bin/classes/CPUEmulatorMain.class b/tools/bin/classes/CPUEmulatorMain.class deleted file mode 100644 index 2c5b68f..0000000 Binary files a/tools/bin/classes/CPUEmulatorMain.class and /dev/null differ diff --git a/tools/bin/classes/HackAssemblerMain.class b/tools/bin/classes/HackAssemblerMain.class deleted file mode 100644 index b912391..0000000 Binary files a/tools/bin/classes/HackAssemblerMain.class and /dev/null differ diff --git a/tools/bin/classes/HardwareSimulatorMain.class b/tools/bin/classes/HardwareSimulatorMain.class deleted file mode 100644 index 5786077..0000000 Binary files a/tools/bin/classes/HardwareSimulatorMain.class and /dev/null differ diff --git a/tools/bin/classes/TextComparer.class b/tools/bin/classes/TextComparer.class deleted file mode 100644 index f2e076e..0000000 Binary files a/tools/bin/classes/TextComparer.class and /dev/null differ diff --git a/tools/bin/classes/VMEmulatorMain.class b/tools/bin/classes/VMEmulatorMain.class deleted file mode 100644 index aa6b7ff..0000000 Binary files a/tools/bin/classes/VMEmulatorMain.class and /dev/null differ diff --git a/tools/bin/help/asmAbout.html b/tools/bin/help/asmAbout.html deleted file mode 100644 index 919e539..0000000 --- a/tools/bin/help/asmAbout.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - -About Assembler - - - - - - - -
- -

Assembler, Version 2.5

- -

 

- -

This program is -part of www.nand2tetris.org

- -

and -the book "The Elements of Computing Systems"

- -

by -Nisan and Schocken, MIT Press.

- -

 

- -

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

- -

 

- -
- - - - diff --git a/tools/bin/help/asmUsage.html b/tools/bin/help/asmUsage.html deleted file mode 100644 index 1e18db2..0000000 --- a/tools/bin/help/asmUsage.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - -Usage instruction and tips can be found in: - - - - - - - -
- -

Usage instruction and tips can be found in:

- -

 

- -

The Assembler Tutorial

- -

 

- -

Available in www.nand2tetris.org

- -

 

- -

And in relevant book chapters from

- -

The Elements of Computing Systems,

- -

by Noam Nisan and Shimon Schocken

- -

MIT Press

- -

 

- -
- - - - diff --git a/tools/bin/help/compiler.txt b/tools/bin/help/compiler.txt deleted file mode 100644 index 07bbba9..0000000 --- a/tools/bin/help/compiler.txt +++ /dev/null @@ -1,9 +0,0 @@ -Jack Compiler, Version 2.5 - -This program is part of www.nand2tetris.org -and the book "The Elements of Computing Systems" -by Nisan and Schocken, MIT Press. - -Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski - -Usage instruction and tips can be found in the relevant book chapters. diff --git a/tools/bin/help/cpuAbout.html b/tools/bin/help/cpuAbout.html deleted file mode 100644 index f806d5e..0000000 --- a/tools/bin/help/cpuAbout.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - -About CPU Emulator - - - - - - - -
- -

CPU Emulator, Version 2.5

- -

 

- -

This program is -part of www.nand2tetris.org

- -

and -the book "The Elements of Computing Systems"

- -

by -Nisan and Schocken, MIT Press.

- -

 

- -

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

- -

 

- -
- - - - diff --git a/tools/bin/help/cpuUsage.html b/tools/bin/help/cpuUsage.html deleted file mode 100644 index 7e69482..0000000 --- a/tools/bin/help/cpuUsage.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - -Usage instruction and tips can be found in: - - - - - - - -
- -

Usage instruction and tips can be found in:

- -

 

- -

The CPU Emulator Tutorial

- -

 

- -

Available in www.nand2tetris.org

- -

 

- -

And in relevant book chapters from

- -

The Elements of Computing Systems,

- -

by Noam Nisan and Shimon Schocken

- -

MIT Press

- -

 

- -
- - - - diff --git a/tools/bin/help/hwAbout.html b/tools/bin/help/hwAbout.html deleted file mode 100644 index 67ad89b..0000000 --- a/tools/bin/help/hwAbout.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - -About Hardware Simulator - - - - - - - -
- -

Hardware Simulator, Version 2.5

- -

 

- -

This program is -part of www.nand2tetris.org

- -

and -the book "The Elements of Computing Systems"

- -

by -Nisan and Schocken, MIT Press.

- -

 

- -

Software Architects: Yaron Ukrainitz and Yannai A. Gonczarowski

- -

 

- -
- - - - diff --git a/tools/bin/help/hwUsage.html b/tools/bin/help/hwUsage.html deleted file mode 100644 index 4663f53..0000000 --- a/tools/bin/help/hwUsage.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - -Usage instruction and tips can be found in: - - - - - - - -
- -

Usage instruction and tips can be found in:

- -

 

- -

The Hardware Simulator Tutorial

- -

 

- -

Available in www.nand2tetris.org

- -

 

- -

And in relevant book chapters from

- -

The Elements of Computing Systems,

- -

by Noam Nisan and Shimon Schocken

- -

MIT Press

- -

 

- -
- - - - diff --git a/tools/bin/help/vmAbout.html b/tools/bin/help/vmAbout.html deleted file mode 100644 index c5b296a..0000000 --- a/tools/bin/help/vmAbout.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - -About Virtual Machine Emulator - - - - - - - -
- -

Virtual Machine Emulator, Version 2.5

- -

 

- -

This program is -part of www.nand2tetris.org

- -

and -the book "The Elements of Computing Systems"

- -

by -Nisan and Schocken, MIT Press.

- -

 

- -

Software Architects: Yaron Ukrainitz and Yannai A. -Gonczarowski

- -

 

- -
- - - - diff --git a/tools/bin/help/vmUsage.html b/tools/bin/help/vmUsage.html deleted file mode 100644 index 611662b..0000000 --- a/tools/bin/help/vmUsage.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - -Usage instruction and tips can be found in: - - - - - - - -
- -

Usage instruction and tips can be found in:

- -

 

- -

The VM Emulator Tutorial

- -

 

- -

Available in www.nand2tetris.org

- -

 

- -

And in relevant book chapters from

- -

The Elements of Computing Systems,

- -

by Noam Nisan and Shimon Schocken

- -

MIT Press

- -

 

- -
- - - - diff --git a/tools/bin/images/arrow2.gif b/tools/bin/images/arrow2.gif deleted file mode 100644 index c744eab..0000000 Binary files a/tools/bin/images/arrow2.gif and /dev/null differ diff --git a/tools/bin/images/calculator2.gif b/tools/bin/images/calculator2.gif deleted file mode 100644 index 834cb05..0000000 Binary files a/tools/bin/images/calculator2.gif and /dev/null differ diff --git a/tools/bin/images/cancel.gif b/tools/bin/images/cancel.gif deleted file mode 100644 index a8509fa..0000000 Binary files a/tools/bin/images/cancel.gif and /dev/null differ diff --git a/tools/bin/images/chip.gif b/tools/bin/images/chip.gif deleted file mode 100644 index fbfbb02..0000000 Binary files a/tools/bin/images/chip.gif and /dev/null differ diff --git a/tools/bin/images/clock2.gif b/tools/bin/images/clock2.gif deleted file mode 100644 index addcf78..0000000 Binary files a/tools/bin/images/clock2.gif and /dev/null differ diff --git a/tools/bin/images/equal.gif b/tools/bin/images/equal.gif deleted file mode 100644 index 3402556..0000000 Binary files a/tools/bin/images/equal.gif and /dev/null differ diff --git a/tools/bin/images/find.gif b/tools/bin/images/find.gif deleted file mode 100644 index e3f4c9d..0000000 Binary files a/tools/bin/images/find.gif and /dev/null differ diff --git a/tools/bin/images/hex.gif b/tools/bin/images/hex.gif deleted file mode 100644 index 68a851b..0000000 Binary files a/tools/bin/images/hex.gif and /dev/null differ diff --git a/tools/bin/images/keyboard.gif b/tools/bin/images/keyboard.gif deleted file mode 100644 index 823aaf8..0000000 Binary files a/tools/bin/images/keyboard.gif and /dev/null differ diff --git a/tools/bin/images/ok.gif b/tools/bin/images/ok.gif deleted file mode 100644 index fe6ed8d..0000000 Binary files a/tools/bin/images/ok.gif and /dev/null differ diff --git a/tools/bin/images/ok2.gif b/tools/bin/images/ok2.gif deleted file mode 100644 index 083909b..0000000 Binary files a/tools/bin/images/ok2.gif and /dev/null differ diff --git a/tools/bin/images/open.gif b/tools/bin/images/open.gif deleted file mode 100644 index f69a024..0000000 Binary files a/tools/bin/images/open.gif and /dev/null differ diff --git a/tools/bin/images/open2.gif b/tools/bin/images/open2.gif deleted file mode 100644 index 2b94682..0000000 Binary files a/tools/bin/images/open2.gif and /dev/null differ diff --git a/tools/bin/images/opendoc.gif b/tools/bin/images/opendoc.gif deleted file mode 100644 index e84f0d6..0000000 Binary files a/tools/bin/images/opendoc.gif and /dev/null differ diff --git a/tools/bin/images/redflag.gif b/tools/bin/images/redflag.gif deleted file mode 100644 index 1b1a6b1..0000000 Binary files a/tools/bin/images/redflag.gif and /dev/null differ diff --git a/tools/bin/images/save.gif b/tools/bin/images/save.gif deleted file mode 100644 index 7b5d5b9..0000000 Binary files a/tools/bin/images/save.gif and /dev/null differ diff --git a/tools/bin/images/scroll.gif b/tools/bin/images/scroll.gif deleted file mode 100644 index e00a9a1..0000000 Binary files a/tools/bin/images/scroll.gif and /dev/null differ diff --git a/tools/bin/images/smallcancel.gif b/tools/bin/images/smallcancel.gif deleted file mode 100644 index 1f8cddc..0000000 Binary files a/tools/bin/images/smallcancel.gif and /dev/null differ diff --git a/tools/bin/images/smallequal.gif b/tools/bin/images/smallequal.gif deleted file mode 100644 index a1db606..0000000 Binary files a/tools/bin/images/smallequal.gif and /dev/null differ diff --git a/tools/bin/images/smallminus.gif b/tools/bin/images/smallminus.gif deleted file mode 100644 index 06492f5..0000000 Binary files a/tools/bin/images/smallminus.gif and /dev/null differ diff --git a/tools/bin/images/smallnew.gif b/tools/bin/images/smallnew.gif deleted file mode 100644 index c3137e5..0000000 Binary files a/tools/bin/images/smallnew.gif and /dev/null differ diff --git a/tools/bin/images/smallok.gif b/tools/bin/images/smallok.gif deleted file mode 100644 index 9bef2b2..0000000 Binary files a/tools/bin/images/smallok.gif and /dev/null differ diff --git a/tools/bin/images/smallplus.gif b/tools/bin/images/smallplus.gif deleted file mode 100644 index 9030b0b..0000000 Binary files a/tools/bin/images/smallplus.gif and /dev/null differ diff --git a/tools/bin/images/vcrfastforward.gif b/tools/bin/images/vcrfastforward.gif deleted file mode 100644 index 11c7235..0000000 Binary files a/tools/bin/images/vcrfastforward.gif and /dev/null differ diff --git a/tools/bin/images/vcrforward.gif b/tools/bin/images/vcrforward.gif deleted file mode 100644 index b58d649..0000000 Binary files a/tools/bin/images/vcrforward.gif and /dev/null differ diff --git a/tools/bin/images/vcrrewind.gif b/tools/bin/images/vcrrewind.gif deleted file mode 100644 index e55b4d6..0000000 Binary files a/tools/bin/images/vcrrewind.gif and /dev/null differ diff --git a/tools/bin/images/vcrstop.gif b/tools/bin/images/vcrstop.gif deleted file mode 100644 index abe2082..0000000 Binary files a/tools/bin/images/vcrstop.gif and /dev/null differ diff --git a/tools/bin/lib/AssemblerGUI.jar b/tools/bin/lib/AssemblerGUI.jar deleted file mode 100644 index c40d455..0000000 Binary files a/tools/bin/lib/AssemblerGUI.jar and /dev/null differ diff --git a/tools/bin/lib/Compilers.jar b/tools/bin/lib/Compilers.jar deleted file mode 100644 index 9a78b05..0000000 Binary files a/tools/bin/lib/Compilers.jar and /dev/null differ diff --git a/tools/bin/lib/Hack.jar b/tools/bin/lib/Hack.jar deleted file mode 100644 index 9d57398..0000000 Binary files a/tools/bin/lib/Hack.jar and /dev/null differ diff --git a/tools/bin/lib/HackGUI.jar b/tools/bin/lib/HackGUI.jar deleted file mode 100644 index 22d4ff3..0000000 Binary files a/tools/bin/lib/HackGUI.jar and /dev/null differ diff --git a/tools/bin/lib/Simulators.jar b/tools/bin/lib/Simulators.jar deleted file mode 100644 index 72b5db7..0000000 Binary files a/tools/bin/lib/Simulators.jar and /dev/null differ diff --git a/tools/bin/lib/SimulatorsGUI.jar b/tools/bin/lib/SimulatorsGUI.jar deleted file mode 100644 index 4d36e64..0000000 Binary files a/tools/bin/lib/SimulatorsGUI.jar and /dev/null differ diff --git a/tools/bin/lib/TranslatorsGUI.jar b/tools/bin/lib/TranslatorsGUI.jar deleted file mode 100644 index f29f926..0000000 Binary files a/tools/bin/lib/TranslatorsGUI.jar and /dev/null differ diff --git a/tools/bin/scripts/defaultCPU.txt b/tools/bin/scripts/defaultCPU.txt deleted file mode 100644 index 43b2720..0000000 --- a/tools/bin/scripts/defaultCPU.txt +++ /dev/null @@ -1,3 +0,0 @@ -repeat { - ticktock; -} \ No newline at end of file diff --git a/tools/bin/scripts/defaultHW.txt b/tools/bin/scripts/defaultHW.txt deleted file mode 100644 index bdb2261..0000000 --- a/tools/bin/scripts/defaultHW.txt +++ /dev/null @@ -1,4 +0,0 @@ -repeat { - tick, - tock; -} \ No newline at end of file diff --git a/tools/bin/scripts/defaultVM.txt b/tools/bin/scripts/defaultVM.txt deleted file mode 100644 index dbc64c4..0000000 --- a/tools/bin/scripts/defaultVM.txt +++ /dev/null @@ -1,3 +0,0 @@ -repeat { - vmstep; -} \ No newline at end of file diff --git a/tools/builtInChips/ALU.class b/tools/builtInChips/ALU.class deleted file mode 100644 index 03f95dc..0000000 Binary files a/tools/builtInChips/ALU.class and /dev/null differ diff --git a/tools/builtInChips/ALU.hdl b/tools/builtInChips/ALU.hdl deleted file mode 100644 index e5fd1f0..0000000 --- a/tools/builtInChips/ALU.hdl +++ /dev/null @@ -1,55 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/ALU.hdl - -/** - * The ALU. Computes one of the following functions: - * x+y, x-y, y–x, 0, 1, -1, x, y, -x, -y, !x, !y, - * x+1, y+1, x-1, y-1, x&y, x|y on two 16-bit inputs. - * Which function to compute is determined by 6 input bits - * denoted zx, nx, zy, ny, f, no. - * The computed function's value is called "out". - * In addition to computing out, the ALU computes two - * 1-bit outputs called zr and ng: - * if out == 0, zr = 1; otherwise zr = 0; - * If out < 0, ng = 1; otherwise ng = 0. - * The 6-bit combinations (zx,nx,zy,ny,f,no) and - * their effect are documented in the book. - */ - -// Implementation: the ALU manipulates the x and y -// inputs and then operates on the resulting values, -// as follows: -// if (zx == 1) sets x = 0 // 16-bit constant -// if (nx == 1) sets x = ~x // bitwise "not" -// if (zy == 1) sets y = 0 // 16-bit constant -// if (ny == 1) sets y = ~y // bitwise "not" -// if (f == 1) sets out = x + y // integer 2's-complement addition -// if (f == 0) sets out = x & y // bitwise And -// if (no == 1) sets out = ~out // bitwise Not -// if (out == 0) sets zr = 1 -// if (out < 0) sets ng = 1 - - -CHIP ALU { - - IN // 16-bit inputs: - x[16], y[16], - // Control bits: - zx, // Zero the x input - nx, // Negate the x input - zy, // Zero the y input - ny, // Negate the y input - f, // Function code: 1 for add, 0 for and - no; // Negate the out output - - OUT // 16-bit output - out[16], - - // ALU output flags - zr, // 1 if out=0, 0 otherwise - ng; // 1 if out<0, 0 otherwise - - BUILTIN ALU; -} diff --git a/tools/builtInChips/ARegister.class b/tools/builtInChips/ARegister.class deleted file mode 100644 index ab9aadc..0000000 Binary files a/tools/builtInChips/ARegister.class and /dev/null differ diff --git a/tools/builtInChips/ARegister.hdl b/tools/builtInChips/ARegister.hdl deleted file mode 100644 index 23aee73..0000000 --- a/tools/builtInChips/ARegister.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/ARegister.hdl - -/** - * A 16-Bit register called "A Register". - * If load[t-1]=1 then out[t] = in[t-1] - * else out does not change (out[t] = out[t-1]) - * - * This built-in chip implementation has the side effect of - * providing a GUI representation of a 16-bit register - * called "A register" (typically used to store an address). - */ - -CHIP ARegister { - - IN in[16], load; - OUT out[16]; - - BUILTIN ARegister; - CLOCKED in, load; -} - diff --git a/tools/builtInChips/Add16.class b/tools/builtInChips/Add16.class deleted file mode 100644 index c3754ce..0000000 Binary files a/tools/builtInChips/Add16.class and /dev/null differ diff --git a/tools/builtInChips/Add16.hdl b/tools/builtInChips/Add16.hdl deleted file mode 100644 index a494af4..0000000 --- a/tools/builtInChips/Add16.hdl +++ /dev/null @@ -1,18 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Add16.hdl - -/* - * Adds two 16-bit values. - * The most significant carry bit is ignored. - */ - -CHIP Add16 { - - IN a[16], b[16]; - OUT out[16]; - - BUILTIN Add16; -} - diff --git a/tools/builtInChips/And.class b/tools/builtInChips/And.class deleted file mode 100644 index 2c7492b..0000000 Binary files a/tools/builtInChips/And.class and /dev/null differ diff --git a/tools/builtInChips/And.hdl b/tools/builtInChips/And.hdl deleted file mode 100644 index d2c48b5..0000000 --- a/tools/builtInChips/And.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/And.hdl - -/** - * And gate: out = 1 if {a == 1 and b == 1}, 0 otherwise - */ - -CHIP And { - - IN a, b; - OUT out; - - BUILTIN And; -} diff --git a/tools/builtInChips/And16.hdl b/tools/builtInChips/And16.hdl deleted file mode 100644 index 4c71874..0000000 --- a/tools/builtInChips/And16.hdl +++ /dev/null @@ -1,17 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/And16.hdl - -/** - * 16-bit-wise And gate: for i = 0..15: out[i] = a[i] and b[i] - */ - -CHIP And16 { - - IN a[16], b[16]; - OUT out[16]; - - BUILTIN And; -} - diff --git a/tools/builtInChips/Bit.class b/tools/builtInChips/Bit.class deleted file mode 100644 index 1e5a3c4..0000000 Binary files a/tools/builtInChips/Bit.class and /dev/null differ diff --git a/tools/builtInChips/Bit.hdl b/tools/builtInChips/Bit.hdl deleted file mode 100644 index a0a76bb..0000000 --- a/tools/builtInChips/Bit.hdl +++ /dev/null @@ -1,19 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Bit.hdl - -/** - * 1-bit register. - * If load[t] == 1 then out[t+1] = in[t] - * else out[t+1] = out[t] (no change) - */ - -CHIP Bit { - - IN in, load; - OUT out; - - BUILTIN Bit; - CLOCKED in, load; -} diff --git a/tools/builtInChips/DFF.class b/tools/builtInChips/DFF.class deleted file mode 100644 index 49efcf1..0000000 Binary files a/tools/builtInChips/DFF.class and /dev/null differ diff --git a/tools/builtInChips/DFF.hdl b/tools/builtInChips/DFF.hdl deleted file mode 100644 index c66b796..0000000 --- a/tools/builtInChips/DFF.hdl +++ /dev/null @@ -1,18 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/DFF.hdl - -/** - * Data Flip-flop: out(t) = in(t-1) - * where t is the current time unit, or clock cycle. - */ - -CHIP DFF { - - IN in; - OUT out; - - BUILTIN DFF; - CLOCKED in; -} diff --git a/tools/builtInChips/DMux.class b/tools/builtInChips/DMux.class deleted file mode 100644 index 8cf4e0b..0000000 Binary files a/tools/builtInChips/DMux.class and /dev/null differ diff --git a/tools/builtInChips/DMux.hdl b/tools/builtInChips/DMux.hdl deleted file mode 100644 index 80153d7..0000000 --- a/tools/builtInChips/DMux.hdl +++ /dev/null @@ -1,20 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/DMux.hdl - -/** - * Dmultiplexor. - * {a,b} = {in,0} if sel == 0 - * {0,in} if sel == 1 - */ - - -CHIP DMux { - - IN in, sel; - OUT a, b; - - BUILTIN DMux; -} - diff --git a/tools/builtInChips/DMux4Way.class b/tools/builtInChips/DMux4Way.class deleted file mode 100644 index ab72a17..0000000 Binary files a/tools/builtInChips/DMux4Way.class and /dev/null differ diff --git a/tools/builtInChips/DMux4Way.hdl b/tools/builtInChips/DMux4Way.hdl deleted file mode 100644 index 110bb4e..0000000 --- a/tools/builtInChips/DMux4Way.hdl +++ /dev/null @@ -1,22 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/DMux4Way.hdl - -/** - * 4-way demultiplexor. - * {a,b,c,d} = {in,0,0,0} if sel == 00 - * {0,in,0,0} if sel == 01 - * {0,0,in,0} if sel == 10 - * {0,0,0,in} if sel == 11 - */ - - -CHIP DMux4Way { - - IN in, sel[2]; - OUT a, b, c, d; - - BUILTIN DMux4Way; -} - diff --git a/tools/builtInChips/DMux8Way.class b/tools/builtInChips/DMux8Way.class deleted file mode 100644 index 80e7437..0000000 Binary files a/tools/builtInChips/DMux8Way.class and /dev/null differ diff --git a/tools/builtInChips/DMux8Way.hdl b/tools/builtInChips/DMux8Way.hdl deleted file mode 100644 index c5536b8..0000000 --- a/tools/builtInChips/DMux8Way.hdl +++ /dev/null @@ -1,22 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/DMux8Way.hdl - -/** - * 8-way demultiplexor. - * {a,b,c,d,e,f,g,h} = {in,0,0,0,0,0,0,0} if sel == 000 - * {0,in,0,0,0,0,0,0} if sel == 001 - * etc. - * {0,0,0,0,0,0,0,in} if sel == 111 - */ - - -CHIP DMux8Way { - - IN in, sel[3]; - OUT a, b, c, d, e, f, g, h; - - BUILTIN DMux8Way; -} - diff --git a/tools/builtInChips/DRegister.class b/tools/builtInChips/DRegister.class deleted file mode 100644 index 74a713d..0000000 Binary files a/tools/builtInChips/DRegister.class and /dev/null differ diff --git a/tools/builtInChips/DRegister.hdl b/tools/builtInChips/DRegister.hdl deleted file mode 100644 index 6c9a254..0000000 --- a/tools/builtInChips/DRegister.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of the materials accompanying the book -// "The Elements of Computing Systems" by Nisan and Schocken, -// MIT Press. Book site: www.idc.ac.il/tecs -// File name: tools/builtIn/DRegister.hdl - -/** - * A 16-Bit register called "D Register". - * If load[t-1]=1 then out[t] = in[t-1] - * else out does not change (out[t] = out[t-1]) - * - * This built-in chip implementation has the side effect of - * providing a GUI representation of a 16-bit register - * called "D register" (typically used to store data). - */ - -CHIP DRegister { - - IN in[16], load; - OUT out[16]; - - BUILTIN DRegister; - CLOCKED in, load; -} - diff --git a/tools/builtInChips/FullAdder.class b/tools/builtInChips/FullAdder.class deleted file mode 100644 index 2ed9ead..0000000 Binary files a/tools/builtInChips/FullAdder.class and /dev/null differ diff --git a/tools/builtInChips/FullAdder.hdl b/tools/builtInChips/FullAdder.hdl deleted file mode 100644 index a4caa56..0000000 --- a/tools/builtInChips/FullAdder.hdl +++ /dev/null @@ -1,19 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/FullAdder.hdl - -/** - * Full adder. Computes sum, the least significant bit of - * a + b + c, and carry, the most significant bit of a + b + c. - */ - -CHIP FullAdder { - - IN a, b, c; - OUT sum, // LSB of a + b + c - carry; // MSB of a + b + c - - BUILTIN FullAdder; -} - diff --git a/tools/builtInChips/HalfAdder.class b/tools/builtInChips/HalfAdder.class deleted file mode 100644 index e7741ed..0000000 Binary files a/tools/builtInChips/HalfAdder.class and /dev/null differ diff --git a/tools/builtInChips/HalfAdder.hdl b/tools/builtInChips/HalfAdder.hdl deleted file mode 100644 index 1591b96..0000000 --- a/tools/builtInChips/HalfAdder.hdl +++ /dev/null @@ -1,18 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/HalfAdder.hdl - -/** - * Half adder. Computes sum, the least significnat bit of a + b, - * and carry, the most significnat bit of a + b. - */ - -CHIP HalfAdder { - - IN a, b; - OUT sum, // LSB of a + b - carry; // MSB of a + b - - BUILTIN HalfAdder; -} diff --git a/tools/builtInChips/Inc16.class b/tools/builtInChips/Inc16.class deleted file mode 100644 index b5b2aeb..0000000 Binary files a/tools/builtInChips/Inc16.class and /dev/null differ diff --git a/tools/builtInChips/Inc16.hdl b/tools/builtInChips/Inc16.hdl deleted file mode 100644 index 9d2d49b..0000000 --- a/tools/builtInChips/Inc16.hdl +++ /dev/null @@ -1,18 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Inc16.hdl - -/** - * 16-bit incrementer. out = in + 1 (16-bit addition). - * Overflow is neither detected nor handled. - */ - -CHIP Inc16 { - - IN in[16]; - OUT out[16]; - - BUILTIN Inc16; -} - diff --git a/tools/builtInChips/Keyboard.class b/tools/builtInChips/Keyboard.class deleted file mode 100644 index 090b7cc..0000000 Binary files a/tools/builtInChips/Keyboard.class and /dev/null differ diff --git a/tools/builtInChips/Keyboard.hdl b/tools/builtInChips/Keyboard.hdl deleted file mode 100644 index 26ca5ed..0000000 --- a/tools/builtInChips/Keyboard.hdl +++ /dev/null @@ -1,23 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Keyboard.hdl - -/** - * The keyboard (memory map). - * Outputs the code of the currently pressed key. - * - * The built-in chip implementation has two side effects supplied - * by the simulator. First, the keyboard memory map is continuously - * being refreshed from the physical keyboard unit. Second, it - * displays a keyboard icon and data entry GUI. - */ - -CHIP Keyboard { - - OUT out[16]; // The ASCII code of the pressed key, - // or 0 if no key is currently pressed, - // or one the special codes listed in Figure 5.5. - - BUILTIN Keyboard; -} diff --git a/tools/builtInChips/Mux.class b/tools/builtInChips/Mux.class deleted file mode 100644 index 75c6645..0000000 Binary files a/tools/builtInChips/Mux.class and /dev/null differ diff --git a/tools/builtInChips/Mux.hdl b/tools/builtInChips/Mux.hdl deleted file mode 100644 index a0eefbc..0000000 --- a/tools/builtInChips/Mux.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Mux.hdl - -/** - * Multiplexor. If sel == 1 then out = b else out = a. - */ - -CHIP Mux { - - IN a, b, sel; - OUT out; - - BUILTIN Mux; -} diff --git a/tools/builtInChips/Mux16.hdl b/tools/builtInChips/Mux16.hdl deleted file mode 100644 index 676d1f4..0000000 --- a/tools/builtInChips/Mux16.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Mux16.hdl - -/** - * 16 bit multiplexor. If sel == 1 then out = b else out = a. - */ - -CHIP Mux16 { - - IN a[16], b[16], sel; - OUT out[16]; - - BUILTIN Mux; -} diff --git a/tools/builtInChips/Mux4Way16.class b/tools/builtInChips/Mux4Way16.class deleted file mode 100644 index b2e2ed7..0000000 Binary files a/tools/builtInChips/Mux4Way16.class and /dev/null differ diff --git a/tools/builtInChips/Mux4Way16.hdl b/tools/builtInChips/Mux4Way16.hdl deleted file mode 100644 index 9929e82..0000000 --- a/tools/builtInChips/Mux4Way16.hdl +++ /dev/null @@ -1,21 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Mux4Way16.hdl - -/** - * 4-way 16-bit multiplexor. - * out = a if sel == 00 - * b if sel == 01 - * c if sel == 10 - * d if sel == 11 - */ - - -CHIP Mux4Way16 { - - IN a[16], b[16], c[16], d[16], sel[2]; - OUT out[16]; - - BUILTIN Mux4Way16; -} diff --git a/tools/builtInChips/Mux8Way16.class b/tools/builtInChips/Mux8Way16.class deleted file mode 100644 index d8040ef..0000000 Binary files a/tools/builtInChips/Mux8Way16.class and /dev/null differ diff --git a/tools/builtInChips/Mux8Way16.hdl b/tools/builtInChips/Mux8Way16.hdl deleted file mode 100644 index dc16861..0000000 --- a/tools/builtInChips/Mux8Way16.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Mux8Way16.hdl - -/** - * 8-way 16-bit multiplexor. - * out = a if sel == 000 - * b if sel == 001 - * etc. - * h if sel == 111 - */ - - -CHIP Mux8Way16 { - - IN a[16], b[16], c[16], d[16], - e[16], f[16], g[16], h[16], - sel[3]; - - OUT out[16]; - - BUILTIN Mux8Way16; -} \ No newline at end of file diff --git a/tools/builtInChips/Nand.class b/tools/builtInChips/Nand.class deleted file mode 100644 index 4b429ba..0000000 Binary files a/tools/builtInChips/Nand.class and /dev/null differ diff --git a/tools/builtInChips/Nand.hdl b/tools/builtInChips/Nand.hdl deleted file mode 100644 index ae0204e..0000000 --- a/tools/builtInChips/Nand.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Nand.hdl - -/** - * Nand gate: out = a Nand b. - */ - -CHIP Nand { - - IN a, b; - OUT out; - - BUILTIN Nand; -} diff --git a/tools/builtInChips/Not.class b/tools/builtInChips/Not.class deleted file mode 100644 index 4726b67..0000000 Binary files a/tools/builtInChips/Not.class and /dev/null differ diff --git a/tools/builtInChips/Not.hdl b/tools/builtInChips/Not.hdl deleted file mode 100644 index 5b9d897..0000000 --- a/tools/builtInChips/Not.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Not.hdl - -/** - * Not gate: out = not in - */ - -CHIP Not { - - IN in; - OUT out; - - BUILTIN Not; -} \ No newline at end of file diff --git a/tools/builtInChips/Not16.class b/tools/builtInChips/Not16.class deleted file mode 100644 index ff3e68f..0000000 Binary files a/tools/builtInChips/Not16.class and /dev/null differ diff --git a/tools/builtInChips/Not16.hdl b/tools/builtInChips/Not16.hdl deleted file mode 100644 index c50dab9..0000000 --- a/tools/builtInChips/Not16.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Not16.hdl - -/** - * 16-bit Not gate: for i = 0..15: out[i] = not in[i] - */ - -CHIP Not16 { - - IN in[16]; - OUT out[16]; - - BUILTIN Not16; -} \ No newline at end of file diff --git a/tools/builtInChips/Or.class b/tools/builtInChips/Or.class deleted file mode 100644 index a5b64f9..0000000 Binary files a/tools/builtInChips/Or.class and /dev/null differ diff --git a/tools/builtInChips/Or.hdl b/tools/builtInChips/Or.hdl deleted file mode 100644 index 4a3f14b..0000000 --- a/tools/builtInChips/Or.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Or.hdl - -/** - * Or gate: out = 1 if {a == 1 or b == 1}, 0 otherwise - */ - -CHIP Or { - - IN a, b; - OUT out; - - BUILTIN Or; -} diff --git a/tools/builtInChips/Or16.hdl b/tools/builtInChips/Or16.hdl deleted file mode 100644 index 6c124e8..0000000 --- a/tools/builtInChips/Or16.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Or16.hdl - -/** - * 16-bit bitwise Or gate: for i = 0..15 out[i] = a[i] or b[i]. - */ - -CHIP Or16 { - - IN a[16], b[16]; - OUT out[16]; - - BUILTIN Or; -} diff --git a/tools/builtInChips/Or8Way.class b/tools/builtInChips/Or8Way.class deleted file mode 100644 index 104804b..0000000 Binary files a/tools/builtInChips/Or8Way.class and /dev/null differ diff --git a/tools/builtInChips/Or8Way.hdl b/tools/builtInChips/Or8Way.hdl deleted file mode 100644 index dccd61d..0000000 --- a/tools/builtInChips/Or8Way.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Or8Way.hdl - -/** - * 8-way Or gate: out = in[0] or in[1] or ... or in[7]. - */ - -CHIP Or8Way { - - IN in[8]; - OUT out; - - BUILTIN Or8Way; -} diff --git a/tools/builtInChips/PC.class b/tools/builtInChips/PC.class deleted file mode 100644 index 1e6ada1..0000000 Binary files a/tools/builtInChips/PC.class and /dev/null differ diff --git a/tools/builtInChips/PC.hdl b/tools/builtInChips/PC.hdl deleted file mode 100644 index f102d99..0000000 --- a/tools/builtInChips/PC.hdl +++ /dev/null @@ -1,22 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/PC.hdl - -/** - * 16-bit counter with load and reset controls. - * - * If reset(t-1) then out(t) = 0 - * else if load(t-1) then out(t) = in(t-1) - * else if inc(t-1) then out(t) = out(t-1) + 1 (integer addition) - * else out(t) = out(t-1) - */ - -CHIP PC { - - IN in[16], load, inc, reset; - OUT out[16]; - - BUILTIN PC; - CLOCKED in, load, inc, reset; -} diff --git a/tools/builtInChips/RAM.class b/tools/builtInChips/RAM.class deleted file mode 100644 index e17050f..0000000 Binary files a/tools/builtInChips/RAM.class and /dev/null differ diff --git a/tools/builtInChips/RAM16K.class b/tools/builtInChips/RAM16K.class deleted file mode 100644 index 2f1e3fe..0000000 Binary files a/tools/builtInChips/RAM16K.class and /dev/null differ diff --git a/tools/builtInChips/RAM16K.hdl b/tools/builtInChips/RAM16K.hdl deleted file mode 100644 index 7031bf9..0000000 --- a/tools/builtInChips/RAM16K.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/RAM16K.hdl - -/** - * Memory of 16K registers, each 16-bit wide. - * The chip facilitates read and write operations, as follows: - * Read: out(t) = RAM16K[address(t)](t) - * Write: If load(t-1) then RAM16K[address(t-1)](t) = in(t-1) - * In words: the chip always outputs the value stored at the memory - * location specified by address. If load=1, the in value is loaded - * into the memory location specified by address. This value becomes - * available through the out output starting from the next time step. - */ - -CHIP RAM16K { - - IN in[16], load, address[14]; - OUT out[16]; - - BUILTIN RAM16K; - CLOCKED in, load; -} diff --git a/tools/builtInChips/RAM4K.class b/tools/builtInChips/RAM4K.class deleted file mode 100644 index 164ebf8..0000000 Binary files a/tools/builtInChips/RAM4K.class and /dev/null differ diff --git a/tools/builtInChips/RAM4K.hdl b/tools/builtInChips/RAM4K.hdl deleted file mode 100644 index 8f1b211..0000000 --- a/tools/builtInChips/RAM4K.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/RAM4K.hdl - -/** - * Memory of 4K registers, each 16-bit wide. - * The chip facilitates read and write operations, as follows: - * Read: out(t) = RAM4K[address(t)](t) - * Write: If load(t-1) then RAM4K[address(t-1)](t) = in(t-1) - * In words: the chip always outputs the value stored at the memory - * location specified by address. If load == 1, the in value is loaded - * into the memory location specified by address. This value becomes - * available through the out output starting from the next time step. - */ - -CHIP RAM4K { - - IN in[16], load, address[12]; - OUT out[16]; - - BUILTIN RAM4K; - CLOCKED in, load; -} diff --git a/tools/builtInChips/RAM512.class b/tools/builtInChips/RAM512.class deleted file mode 100644 index 69bff7a..0000000 Binary files a/tools/builtInChips/RAM512.class and /dev/null differ diff --git a/tools/builtInChips/RAM512.hdl b/tools/builtInChips/RAM512.hdl deleted file mode 100644 index 2a2f433..0000000 --- a/tools/builtInChips/RAM512.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/RAM512.hdl - -/** - * Memory of 512 registers, each 16-bit wide. - * The chip facilitates read and write operations, as follows: - * Read: out(t) = RAM512[address(t)](t) - * Write: If load(t-1) then RAM512[address(t-1)](t) = in(t-1) - * In words: the chip always outputs the value stored at the memory - * location specified by address. If load == 1, the in value is loaded - * into the memory location specified by address. This value becomes - * available through the out output starting from the next time step. - */ - -CHIP RAM512 { - - IN in[16], load, address[9]; - OUT out[16]; - - BUILTIN RAM512; - CLOCKED in, load; -} diff --git a/tools/builtInChips/RAM64.class b/tools/builtInChips/RAM64.class deleted file mode 100644 index a1fe78a..0000000 Binary files a/tools/builtInChips/RAM64.class and /dev/null differ diff --git a/tools/builtInChips/RAM64.hdl b/tools/builtInChips/RAM64.hdl deleted file mode 100644 index 6f32f47..0000000 --- a/tools/builtInChips/RAM64.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/RAM64.hdl - -/** - * Memory of 64 registers, each 16-bit wide. - * The chip facilitates read and write operations, as follows: - * Read: out(t) = RAM64[address(t)](t) - * Write: If load(t-1) then RAM64[address(t-1)](t) = in(t-1) - * In words: the chip always outputs the value stored at the memory - * location specified by address. If load == 1, the in value is loaded - * into the memory location specified by address. This value becomes - * available through the out output starting from the next time step. - */ - -CHIP RAM64 { - - IN in[16], load, address[6]; - OUT out[16]; - - BUILTIN RAM64; - CLOCKED in, load; -} diff --git a/tools/builtInChips/RAM8.class b/tools/builtInChips/RAM8.class deleted file mode 100644 index 88f106e..0000000 Binary files a/tools/builtInChips/RAM8.class and /dev/null differ diff --git a/tools/builtInChips/RAM8.hdl b/tools/builtInChips/RAM8.hdl deleted file mode 100644 index c08d62c..0000000 --- a/tools/builtInChips/RAM8.hdl +++ /dev/null @@ -1,24 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/RAM8.hdl - -/** - * Memory of 8 registers, each 16-bit wide. - * The chip facilitates read and write operations, as follows: - * Read: out(t) = RAM8[address(t)](t) - * Write: If load(t-1) then RAM8[address(t-1)](t) = in(t-1) - * In words: the chip always outputs the value stored at the memory - * location specified by address. If load == 1, the in value is loaded - * into the memory location specified by address. This value becomes - * available through the out output starting from the next time step. - */ - -CHIP RAM8 { - - IN in[16], load, address[3]; - OUT out[16]; - - BUILTIN RAM8; - CLOCKED in, load; -} diff --git a/tools/builtInChips/ROM32K.class b/tools/builtInChips/ROM32K.class deleted file mode 100644 index c4320d8..0000000 Binary files a/tools/builtInChips/ROM32K.class and /dev/null differ diff --git a/tools/builtInChips/ROM32K.hdl b/tools/builtInChips/ROM32K.hdl deleted file mode 100644 index 929f824..0000000 --- a/tools/builtInChips/ROM32K.hdl +++ /dev/null @@ -1,30 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/ROM32K.hdl - -/** - * Read-Only memory (ROM) of 16K registers, each 16-bit wide. - * The chip is designed to facilitate data read, as follows: - * out(t) = ROM32K[address(t)](t) - * In words: the chip always outputs the value stored at the - * memory location specified by address. - * - * The built-in chip implementation has a GUI side-effect, - * showing an array-like component that displays the ROM's - * contents. The ROM32K chip is supposed to be pre-loaded with - * a machine language program. To that end, the built-in chip - * implementation also knows how to handle the "ROM32K load Xxx" - * script command, where Xxx is the name of a text file containing - * a program written in the Hack machine language. When the - * simulator encounters such a command in a test script, the code - * found in the file is loaded into the simulated ROM32K unit. - */ - -CHIP ROM32K { - - IN address[15]; - OUT out[16]; - - BUILTIN ROM32K; -} diff --git a/tools/builtInChips/Register.class b/tools/builtInChips/Register.class deleted file mode 100644 index 3958fcd..0000000 Binary files a/tools/builtInChips/Register.class and /dev/null differ diff --git a/tools/builtInChips/Register.hdl b/tools/builtInChips/Register.hdl deleted file mode 100644 index 3b81e46..0000000 --- a/tools/builtInChips/Register.hdl +++ /dev/null @@ -1,19 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Register.hdl - -/** - * 16-Bit register. - * If load[t-1]=1 then out[t] = in[t-1] - * else out does not change (out[t] = out[t-1]) - */ - -CHIP Register { - - IN in[16], load; - OUT out[16]; - - BUILTIN Register; - CLOCKED in, load; -} diff --git a/tools/builtInChips/RegisterWithGUI.class b/tools/builtInChips/RegisterWithGUI.class deleted file mode 100644 index c80208c..0000000 Binary files a/tools/builtInChips/RegisterWithGUI.class and /dev/null differ diff --git a/tools/builtInChips/Screen.class b/tools/builtInChips/Screen.class deleted file mode 100644 index 100ed03..0000000 Binary files a/tools/builtInChips/Screen.class and /dev/null differ diff --git a/tools/builtInChips/Screen.hdl b/tools/builtInChips/Screen.hdl deleted file mode 100644 index 5e7837b..0000000 --- a/tools/builtInChips/Screen.hdl +++ /dev/null @@ -1,35 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Screen.hdl - -/** - * The Screen (memory map). - * Functions exactly like a 16-bit 8K RAM: - * 1. out(t)=Screen[address(t)](t) - * 2. If load(t-1) then Screen[address(t-1)](t)=in(t-1) - * - * The built-in chip implementation has the side effect of continuously - * refreshing a visual 256 by 512 black-and-white screen, simulated - * by the simulator. Each row in the visual screen is represented - * by 32 consecutive 16-bit words, starting at the top left corner - * of the visual screen. Thus the pixel at row r from the top and - * column c from the left (0<=r<=255, 0<=c<=511) reflects the c%16 - * bit (counting from LSB to MSB) of the word found in - * Screen[r*32+c/16]. - */ - -CHIP Screen { - - IN in[16], // what to write - load, // write-enable bit - address[13]; // where to read/write - OUT out[16]; // Screen value at the given address - - BUILTIN Screen; - CLOCKED in, load; -} - - - - \ No newline at end of file diff --git a/tools/builtInChips/Xor.class b/tools/builtInChips/Xor.class deleted file mode 100644 index d99ad18..0000000 Binary files a/tools/builtInChips/Xor.class and /dev/null differ diff --git a/tools/builtInChips/Xor.hdl b/tools/builtInChips/Xor.hdl deleted file mode 100644 index 8452d73..0000000 --- a/tools/builtInChips/Xor.hdl +++ /dev/null @@ -1,16 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: tools/builtIn/Xor.hdl - -/** - * Exclusive-or gate: out = !(a == b). - */ - -CHIP Xor { - - IN a, b; - OUT out; - - BUILTIN Xor; -} diff --git a/tools/builtInVMCode/Array.class b/tools/builtInVMCode/Array.class deleted file mode 100644 index c76b652..0000000 Binary files a/tools/builtInVMCode/Array.class and /dev/null differ diff --git a/tools/builtInVMCode/JackOSClass.class b/tools/builtInVMCode/JackOSClass.class deleted file mode 100644 index 25df72a..0000000 Binary files a/tools/builtInVMCode/JackOSClass.class and /dev/null differ diff --git a/tools/builtInVMCode/Keyboard.class b/tools/builtInVMCode/Keyboard.class deleted file mode 100644 index 7366f75..0000000 Binary files a/tools/builtInVMCode/Keyboard.class and /dev/null differ diff --git a/tools/builtInVMCode/Math.class b/tools/builtInVMCode/Math.class deleted file mode 100644 index 71aef91..0000000 Binary files a/tools/builtInVMCode/Math.class and /dev/null differ diff --git a/tools/builtInVMCode/Memory.class b/tools/builtInVMCode/Memory.class deleted file mode 100644 index e9bb7ad..0000000 Binary files a/tools/builtInVMCode/Memory.class and /dev/null differ diff --git a/tools/builtInVMCode/Output.class b/tools/builtInVMCode/Output.class deleted file mode 100644 index 65b25b7..0000000 Binary files a/tools/builtInVMCode/Output.class and /dev/null differ diff --git a/tools/builtInVMCode/Screen.class b/tools/builtInVMCode/Screen.class deleted file mode 100644 index 8644e09..0000000 Binary files a/tools/builtInVMCode/Screen.class and /dev/null differ diff --git a/tools/builtInVMCode/String.class b/tools/builtInVMCode/String.class deleted file mode 100644 index 98c7f58..0000000 Binary files a/tools/builtInVMCode/String.class and /dev/null differ diff --git a/tools/builtInVMCode/Sys.class b/tools/builtInVMCode/Sys.class deleted file mode 100644 index 0c15f1b..0000000 Binary files a/tools/builtInVMCode/Sys.class and /dev/null differ -- cgit v1.2.3