diff --git a/projects/src/project_05/02_cpu.ts b/projects/src/project_05/02_cpu.ts index fa126b696..03ecb55b8 100644 --- a/projects/src/project_05/02_cpu.ts +++ b/projects/src/project_05/02_cpu.ts @@ -283,7 +283,6 @@ export const external_tst = `// This file is part of www.nand2tetris.org // File name: projects/5/CPU-external.tst load CPU.hdl, -compare-to CPU-external.cmp, output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0; @@ -428,96 +427,96 @@ set reset 0; tick, output, tock, output;`; export const external_cmp = `|time| inM | instruction |reset| outM |writeM |addre| pc | -|0+ | 0|0011000000111001| 0 | 0| 0 | 0| 0| -|1 | 0|0011000000111001| 0 | 0| 0 |12345| 1| -|1+ | 0|1110110000010000| 0 | 12345| 0 |12345| 1| -|2 | 0|1110110000010000| 0 | 12345| 0 |12345| 2| -|2+ | 0|0101101110100000| 0 | 0| 0 |12345| 2| -|3 | 0|0101101110100000| 0 | 0| 0 |23456| 3| -|3+ | 0|1110000111010000| 0 | 11111| 0 |23456| 3| -|4 | 0|1110000111010000| 0 | 12345| 0 |23456| 4| -|4+ | 0|0000001111101000| 0 | -11111| 0 |23456| 4| -|5 | 0|0000001111101000| 0 | -11111| 0 | 1000| 5| +|0+ | 0|0011000000111001| 0 |*******| 0 | 0| 0| +|1 | 0|0011000000111001| 0 |*******| 0 |12345| 1| +|1+ | 0|1110110000010000| 0 |*******| 0 |12345| 1| +|2 | 0|1110110000010000| 0 |*******| 0 |12345| 2| +|2+ | 0|0101101110100000| 0 |*******| 0 |12345| 2| +|3 | 0|0101101110100000| 0 |*******| 0 |23456| 3| +|3+ | 0|1110000111010000| 0 |*******| 0 |23456| 3| +|4 | 0|1110000111010000| 0 |*******| 0 |23456| 4| +|4+ | 0|0000001111101000| 0 |*******| 0 |23456| 4| +|5 | 0|0000001111101000| 0 |*******| 0 | 1000| 5| |5+ | 0|1110001100001000| 0 | 11111| 1 | 1000| 5| |6 | 0|1110001100001000| 0 | 11111| 1 | 1000| 6| -|6+ | 0|0000001111101001| 0 | -11111| 0 | 1000| 6| -|7 | 0|0000001111101001| 0 | -11111| 0 | 1001| 7| +|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6| +|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7| |7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| |8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| -|8+ | 0|0000001111101000| 0 | -11110| 0 | 1001| 8| -|9 | 0|0000001111101000| 0 | -11110| 0 | 1000| 9| -|9+ | 11111|1111010011010000| 0 | -1| 0 | 1000| 9| -|10 | 11111|1111010011010000| 0 | -11112| 0 | 1000| 10| -|10+ | 11111|0000000000001110| 0 | 1000| 0 | 1000| 10| -|11 | 11111|0000000000001110| 0 | 14| 0 | 14| 11| -|11+ | 11111|1110001100000100| 0 | -1| 0 | 14| 11| -|12 | 11111|1110001100000100| 0 | -1| 0 | 14| 14| -|12+ | 11111|0000001111100111| 0 | 1| 0 | 14| 14| -|13 | 11111|0000001111100111| 0 | 1| 0 | 999| 15| -|13+ | 11111|1110110111100000| 0 | 1000| 0 | 999| 15| -|14 | 11111|1110110111100000| 0 | 1001| 0 | 1000| 16| +|8+ | 0|0000001111101000| 0 |*******| 0 | 1001| 8| +|9 | 0|0000001111101000| 0 |*******| 0 | 1000| 9| +|9+ | 11111|1111010011010000| 0 |*******| 0 | 1000| 9| +|10 | 11111|1111010011010000| 0 |*******| 0 | 1000| 10| +|10+ | 11111|0000000000001110| 0 |*******| 0 | 1000| 10| +|11 | 11111|0000000000001110| 0 |*******| 0 | 14| 11| +|11+ | 11111|1110001100000100| 0 |*******| 0 | 14| 11| +|12 | 11111|1110001100000100| 0 |*******| 0 | 14| 14| +|12+ | 11111|0000001111100111| 0 |*******| 0 | 14| 14| +|13 | 11111|0000001111100111| 0 |*******| 0 | 999| 15| +|13+ | 11111|1110110111100000| 0 |*******| 0 | 999| 15| +|14 | 11111|1110110111100000| 0 |*******| 0 | 1000| 16| |14+ | 11111|1110001100001000| 0 | -1| 1 | 1000| 16| |15 | 11111|1110001100001000| 0 | -1| 1 | 1000| 17| -|15+ | 11111|0000000000010101| 0 | 1000| 0 | 1000| 17| -|16 | 11111|0000000000010101| 0 | 21| 0 | 21| 18| -|16+ | 11111|1110011111000010| 0 | 0| 0 | 21| 18| -|17 | 11111|1110011111000010| 0 | 0| 0 | 21| 21| -|17+ | 11111|0000000000000010| 0 | 21| 0 | 21| 21| -|18 | 11111|0000000000000010| 0 | 2| 0 | 2| 22| -|18+ | 11111|1110000010010000| 0 | 1| 0 | 2| 22| -|19 | 11111|1110000010010000| 0 | 3| 0 | 2| 23| -|19+ | 11111|0000001111101000| 0 | -1| 0 | 2| 23| -|20 | 11111|0000001111101000| 0 | -1| 0 | 1000| 24| -|20+ | 11111|1110111010010000| 0 | -1| 0 | 1000| 24| -|21 | 11111|1110111010010000| 0 | -1| 0 | 1000| 25| -|21+ | 11111|1110001100000001| 0 | -1| 0 | 1000| 25| -|22 | 11111|1110001100000001| 0 | -1| 0 | 1000| 26| -|22+ | 11111|1110001100000010| 0 | -1| 0 | 1000| 26| -|23 | 11111|1110001100000010| 0 | -1| 0 | 1000| 27| -|23+ | 11111|1110001100000011| 0 | -1| 0 | 1000| 27| -|24 | 11111|1110001100000011| 0 | -1| 0 | 1000| 28| -|24+ | 11111|1110001100000100| 0 | -1| 0 | 1000| 28| -|25 | 11111|1110001100000100| 0 | -1| 0 | 1000| 1000| -|25+ | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -|26 | 11111|1110001100000101| 0 | -1| 0 | 1000| 1000| -|26+ | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -|27 | 11111|1110001100000110| 0 | -1| 0 | 1000| 1000| -|27+ | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -|28 | 11111|1110001100000111| 0 | -1| 0 | 1000| 1000| -|28+ | 11111|1110101010010000| 0 | 0| 0 | 1000| 1000| -|29 | 11111|1110101010010000| 0 | 0| 0 | 1000| 1001| -|29+ | 11111|1110001100000001| 0 | 0| 0 | 1000| 1001| -|30 | 11111|1110001100000001| 0 | 0| 0 | 1000| 1002| -|30+ | 11111|1110001100000010| 0 | 0| 0 | 1000| 1002| -|31 | 11111|1110001100000010| 0 | 0| 0 | 1000| 1000| -|31+ | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| -|32 | 11111|1110001100000011| 0 | 0| 0 | 1000| 1000| -|32+ | 11111|1110001100000100| 0 | 0| 0 | 1000| 1000| -|33 | 11111|1110001100000100| 0 | 0| 0 | 1000| 1001| -|33+ | 11111|1110001100000101| 0 | 0| 0 | 1000| 1001| -|34 | 11111|1110001100000101| 0 | 0| 0 | 1000| 1002| -|34+ | 11111|1110001100000110| 0 | 0| 0 | 1000| 1002| -|35 | 11111|1110001100000110| 0 | 0| 0 | 1000| 1000| -|35+ | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| -|36 | 11111|1110001100000111| 0 | 0| 0 | 1000| 1000| -|36+ | 11111|1110111111010000| 0 | 1| 0 | 1000| 1000| -|37 | 11111|1110111111010000| 0 | 1| 0 | 1000| 1001| -|37+ | 11111|1110001100000001| 0 | 1| 0 | 1000| 1001| -|38 | 11111|1110001100000001| 0 | 1| 0 | 1000| 1000| -|38+ | 11111|1110001100000010| 0 | 1| 0 | 1000| 1000| -|39 | 11111|1110001100000010| 0 | 1| 0 | 1000| 1001| -|39+ | 11111|1110001100000011| 0 | 1| 0 | 1000| 1001| -|40 | 11111|1110001100000011| 0 | 1| 0 | 1000| 1000| -|40+ | 11111|1110001100000100| 0 | 1| 0 | 1000| 1000| -|41 | 11111|1110001100000100| 0 | 1| 0 | 1000| 1001| -|41+ | 11111|1110001100000101| 0 | 1| 0 | 1000| 1001| -|42 | 11111|1110001100000101| 0 | 1| 0 | 1000| 1000| -|42+ | 11111|1110001100000110| 0 | 1| 0 | 1000| 1000| -|43 | 11111|1110001100000110| 0 | 1| 0 | 1000| 1001| -|43+ | 11111|1110001100000111| 0 | 1| 0 | 1000| 1001| -|44 | 11111|1110001100000111| 0 | 1| 0 | 1000| 1000| -|44+ | 11111|1110001100000111| 1 | 1| 0 | 1000| 1000| -|45 | 11111|1110001100000111| 1 | 1| 0 | 1000| 0| -|45+ | 11111|0111111111111111| 0 | 1| 0 | 1000| 0| -|46 | 11111|0111111111111111| 0 | 1| 0 |32767| 1| +|15+ | 11111|0000000000010101| 0 |*******| 0 | 1000| 17| +|16 | 11111|0000000000010101| 0 |*******| 0 | 21| 18| +|16+ | 11111|1110011111000010| 0 |*******| 0 | 21| 18| +|17 | 11111|1110011111000010| 0 |*******| 0 | 21| 21| +|17+ | 11111|0000000000000010| 0 |*******| 0 | 21| 21| +|18 | 11111|0000000000000010| 0 |*******| 0 | 2| 22| +|18+ | 11111|1110000010010000| 0 |*******| 0 | 2| 22| +|19 | 11111|1110000010010000| 0 |*******| 0 | 2| 23| +|19+ | 11111|0000001111101000| 0 |*******| 0 | 2| 23| +|20 | 11111|0000001111101000| 0 |*******| 0 | 1000| 24| +|20+ | 11111|1110111010010000| 0 |*******| 0 | 1000| 24| +|21 | 11111|1110111010010000| 0 |*******| 0 | 1000| 25| +|21+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 25| +|22 | 11111|1110001100000001| 0 |*******| 0 | 1000| 26| +|22+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 26| +|23 | 11111|1110001100000010| 0 |*******| 0 | 1000| 27| +|23+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 27| +|24 | 11111|1110001100000011| 0 |*******| 0 | 1000| 28| +|24+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 28| +|25 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|25+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|26 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|26+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|27 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|27+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|28 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|28+ | 11111|1110101010010000| 0 |*******| 0 | 1000| 1000| +|29 | 11111|1110101010010000| 0 |*******| 0 | 1000| 1001| +|29+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| +|30 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1002| +|30+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1002| +|31 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| +|31+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|32 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|32+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|33 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| +|33+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| +|34 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1002| +|34+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1002| +|35 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|35+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|36 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|36+ | 11111|1110111111010000| 0 |*******| 0 | 1000| 1000| +|37 | 11111|1110111111010000| 0 |*******| 0 | 1000| 1001| +|37+ | 11111|1110001100000001| 0 |*******| 0 | 1000| 1001| +|38 | 11111|1110001100000001| 0 |*******| 0 | 1000| 1000| +|38+ | 11111|1110001100000010| 0 |*******| 0 | 1000| 1000| +|39 | 11111|1110001100000010| 0 |*******| 0 | 1000| 1001| +|39+ | 11111|1110001100000011| 0 |*******| 0 | 1000| 1001| +|40 | 11111|1110001100000011| 0 |*******| 0 | 1000| 1000| +|40+ | 11111|1110001100000100| 0 |*******| 0 | 1000| 1000| +|41 | 11111|1110001100000100| 0 |*******| 0 | 1000| 1001| +|41+ | 11111|1110001100000101| 0 |*******| 0 | 1000| 1001| +|42 | 11111|1110001100000101| 0 |*******| 0 | 1000| 1000| +|42+ | 11111|1110001100000110| 0 |*******| 0 | 1000| 1000| +|43 | 11111|1110001100000110| 0 |*******| 0 | 1000| 1001| +|43+ | 11111|1110001100000111| 0 |*******| 0 | 1000| 1001| +|44 | 11111|1110001100000111| 0 |*******| 0 | 1000| 1000| +|44+ | 11111|1110001100000111| 1 |*******| 0 | 1000| 1000| +|45 | 11111|1110001100000111| 1 |*******| 0 | 1000| 0| +|45+ | 11111|0111111111111111| 0 |*******| 0 | 1000| 0| +|46 | 11111|0111111111111111| 0 |*******| 0 |32767| 1| `; diff --git a/web/src/versions.ts b/web/src/versions.ts index 09e5ba78a..257a4dd5c 100644 --- a/web/src/versions.ts +++ b/web/src/versions.ts @@ -2,7 +2,7 @@ import { FileSystem } from "@davidsouther/jiffies/lib/esm/fs.js"; import { resetFiles, resetTests } from "@nand2tetris/projects/loader.js"; const VERSION_KEY = "version"; -const CURRENT_VERSION = 10; +const CURRENT_VERSION = 11; export function getVersion() { return Number(localStorage.getItem(VERSION_KEY) ?? "0"); @@ -64,4 +64,7 @@ const versionUpdates: Record Promise> = { 9: async (fs: FileSystem) => { await resetTests(fs, [5]); }, + 10: async (fs: FileSystem) => { + await resetTests(fs, [5]); + }, };