diff --git a/ROM.bin b/ROM.bin index 89f0759..be9bf96 100644 --- a/ROM.bin +++ b/ROM.bin @@ -2431,37 +2431,37 @@ v3.0 hex words addressed 4be8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 4bf0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 4bf8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c00: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c00: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c08: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c10: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c10: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c18: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c20: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c20: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c28: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c30: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c30: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c38: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c40: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c40: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c48: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c50: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c50: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c58: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c60: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c60: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c68: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c70: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c70: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c78: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c80: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c80: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c88: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4c90: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4c90: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4c98: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4ca0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4ca0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4ca8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4cb0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4cb0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4cb8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4cc0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4cc0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4cc8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4cd0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4cd0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4cd8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4ce0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4ce0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4ce8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -4cf0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +4cf0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 4cf8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 4d00: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 4d08: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -2561,35 +2561,35 @@ v3.0 hex words addressed 4ff8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5000: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5008: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5010: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5010: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5018: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5020: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5028: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5030: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5030: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5038: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5040: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5048: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5050: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5050: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5058: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5060: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5068: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5070: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5070: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5078: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5080: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5088: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5090: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5090: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5098: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 50a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 50a8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -50b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +50b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 50b8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 50c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 50c8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -50d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +50d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 50d8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 50e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 50e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -50f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +50f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 50f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5100: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5108: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -2687,35 +2687,35 @@ v3.0 hex words addressed 53e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 53f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 53f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5400: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5400: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5408: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5410: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5418: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5420: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5420: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5428: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5430: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5438: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5440: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5440: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5448: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5450: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5458: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5460: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5460: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5468: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5470: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5478: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5480: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5480: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5488: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5490: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5498: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -54a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +54a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 54a8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 54b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 54b8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -54c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +54c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 54c8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 54d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 54d8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -54e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +54e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 54e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 54f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 54f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -2819,33 +2819,33 @@ v3.0 hex words addressed 5808: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5810: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5818: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5820: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5820: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5828: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5830: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5830: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5838: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5840: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5848: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5850: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5858: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5860: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5860: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5868: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5870: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5870: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5878: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5880: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5888: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5890: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5898: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -58a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +58a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 58a8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -58b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +58b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 58b8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 58c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 58c8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 58d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 58d8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -58e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +58e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 58e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -58f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +58f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 58f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5900: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5908: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -2943,33 +2943,33 @@ v3.0 hex words addressed 5be8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5bf0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5bf8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c00: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c00: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c08: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c10: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c10: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c18: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5c20: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5c28: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5c30: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5c38: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c40: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c40: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c48: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c50: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c50: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c58: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5c60: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5c68: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5c70: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5c78: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c80: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c80: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c88: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5c90: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5c90: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5c98: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5ca0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5ca8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5cb0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5cb8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5cc0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5cc0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5cc8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -5cd0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +5cd0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 5cd8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 5ce0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 5ce8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -3079,13 +3079,13 @@ v3.0 hex words addressed 6028: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 6030: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 6038: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6040: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6040: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6048: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6050: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6050: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6058: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6060: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6060: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6068: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6070: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6070: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6078: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 6080: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 6088: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -3095,13 +3095,13 @@ v3.0 hex words addressed 60a8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 60b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 60b8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -60c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +60c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 60c8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -60d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +60d0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 60d8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -60e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +60e0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 60e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -60f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +60f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 60f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 6100: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 6108: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -3199,13 +3199,13 @@ v3.0 hex words addressed 63e8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 63f0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 63f8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6400: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6400: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6408: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6410: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6410: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6418: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6420: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6420: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6428: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6430: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6430: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6438: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 6440: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 6448: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 @@ -3215,13 +3215,13 @@ v3.0 hex words addressed 6468: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 6470: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 6478: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6480: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6480: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6488: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -6490: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +6490: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 6498: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -64a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +64a0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 64a8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 -64b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 +64b0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 0000c006 40000000 64b8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 64c0: 00008040 0001c0a4 00008040 0001c0c4 00008040 0001c0e4 40000000 40000000 64c8: 40000000 40000000 40000000 40000000 40000000 40000000 40000000 40000000 diff --git a/assembly.py b/assembly.py index 5e582e3..eb3007e 100644 --- a/assembly.py +++ b/assembly.py @@ -24,6 +24,14 @@ XOR = 6 << pin.ADDR_2_SHIFT | pin.ADDR_2 INC = 0 << pin.ADDR_1_SHIFT | pin.ADDR_1 DEC = 1 << pin.ADDR_1_SHIFT | pin.ADDR_1 NOT = 2 << pin.ADDR_1_SHIFT | pin.ADDR_1 +JMP = 3 << pin.ADDR_1_SHIFT | pin.ADDR_1 + +JO = 4 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 溢出跳转 +JNO = 5 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 不溢出跳转 +JZ = 6 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 如果为0跳转 +JNZ = 7 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 非0跳转 +JP = 8 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 奇数跳转 +JNP = 9 << pin.ADDR_1_SHIFT | pin.ADDR_1 # 偶数跳转 NOP = 0b0 @@ -138,36 +146,36 @@ INSTRUCTIONS = { ], }, AND: { - (pin.AM_REG, pin.AM_INS): [ # sub b, 5 + (pin.AM_REG, pin.AM_INS): [ # and b, 5 pin.DST_R | pin.A_IN, # 将b寄存器内的值 转移到 A寄存器 pin.SRC_OUT | pin.B_IN, # 将 src中的值 转移到 b寄存器 pin.OP_AND | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], - (pin.AM_REG, pin.AM_REG): [ # sub a, b + (pin.AM_REG, pin.AM_REG): [ # and a, b pin.DST_R | pin.A_IN, pin.SRC_R | pin.B_IN, pin.OP_AND | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], }, OR: { - (pin.AM_REG, pin.AM_INS): [ # sub b, 5 + (pin.AM_REG, pin.AM_INS): [ # or b, 5 pin.DST_R | pin.A_IN, # 将b寄存器内的值 转移到 A寄存器 pin.SRC_OUT | pin.B_IN, # 将 src中的值 转移到 b寄存器 pin.OP_OR | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], - (pin.AM_REG, pin.AM_REG): [ # sub a, b + (pin.AM_REG, pin.AM_REG): [ # or a, b pin.DST_R | pin.A_IN, pin.SRC_R | pin.B_IN, pin.OP_OR | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], }, XOR: { - (pin.AM_REG, pin.AM_INS): [ # sub b, 5 + (pin.AM_REG, pin.AM_INS): [ # xor b, 5 pin.DST_R | pin.A_IN, # 将b寄存器内的值 转移到 A寄存器 pin.SRC_OUT | pin.B_IN, # 将 src中的值 转移到 b寄存器 pin.OP_XOR | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], - (pin.AM_REG, pin.AM_REG): [ # sub a, b + (pin.AM_REG, pin.AM_REG): [ # xor a, b pin.DST_R | pin.A_IN, pin.SRC_R | pin.B_IN, pin.OP_XOR | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW @@ -182,18 +190,53 @@ INSTRUCTIONS = { ], }, DEC: { - pin.AM_REG: [ # inc b + pin.AM_REG: [ # dec b pin.DST_R | pin.A_IN, pin.OP_DEC | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], }, NOT: { - pin.AM_REG: [ # inc b + pin.AM_REG: [ # not b pin.DST_R | pin.A_IN, pin.OP_NOT | pin.ALU_OUT | pin.DST_W | pin.ALU_PSW ], - } + }, + JMP: { # jmp 0x5 跳转到立即数的地址 + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JO: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JNO: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JZ: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JNZ: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JP: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, + JNP: { + pin.AM_INS: [ + pin.DST_OUT | pin.PC_IN, + ] + }, }, 0: { NOP: [ diff --git a/compiler.py b/compiler.py index 9150f99..877c971 100644 --- a/compiler.py +++ b/compiler.py @@ -21,13 +21,19 @@ OP2_STR_MAP = { "and": ASM.AND, "or": ASM.OR, "xor": ASM.XOR, - } OP1_STR_MAP = { "inc": ASM.INC, "dec": ASM.DEC, "not": ASM.NOT, + "jmp": ASM.JMP, + "jo": ASM.JO, + "jno": ASM.JNO, + "jz": ASM.JZ, + "jnz": ASM.JNZ, + "jp": ASM.JP, + "jnp": ASM.JNP, } OP0_STR_MAP = { @@ -41,17 +47,30 @@ OP0_VALUE_SET = set(OP0_STR_MAP.values()) class Code: + TYPE_CODE = 1 + TYPE_LABLE = 2 def __init__(self, number, source): - self.number: int = number # 行号 + self.number: int = number # 源文件中行号 self.source: str = source # 源代码 self._op_str = self._src = self._dst = None + self.code_type = ... + self.name = ... + self.code_from_bin_addr = ... # 对应bin文件中的位置 + self.prepare_source() def __repr__(self): - return f"[{self.number}] - op: {self._op_str}, dst: {self._dst}, src: {self._src} - '{self.source}'" + return f"[{self.number}-{self.code_from_bin_addr}] - op: {self._op_str}, dst: {self._dst}, src: {self._src} - '{self.source}'" def prepare_source(self): + if self.source.endswith(":"): + self.code_type = self.TYPE_LABLE + self.name = self.source.strip(":") + return + + self.code_type = self.TYPE_CODE + tup = self.source.split(",") if len(tup) > 2: raise Exception("指令格式错误") @@ -82,6 +101,9 @@ class Code: def get_am(self, addr: str): # 得到目的操作数和源操作数, 返回(寻址方式, 地址) + global marks + if addr in marks: + return pin.AM_INS, marks[addr].code_from_bin_addr * 3 # 我们所有的指令都是占了3个字节: ir dst src if addr is None: return None, None if addr in ALLOW_REGISTER_MAP: # 如果是寄存器寻址, 且必须是允许的寄存器 @@ -138,7 +160,29 @@ def compile_program(input_file: str): continue code = Code(idx + 1, source) codes.append(code) - return codes + + # 保底的 + codes.append(Code(idx + 1 + 1, "hlt")) + + ret = [] + marks = {} + current_code = ... + for code in reversed(codes): # 从后往前 + if code.code_type == Code.TYPE_CODE: + current_code = code + ret.insert(0, code) + continue + if code.code_type == Code.TYPE_LABLE: + marks[code.name] = current_code + continue + + raise Exception("语法之外的 错误") + + # 更新代码在bin中的索引 + for idx, code in enumerate(ret): + code.code_from_bin_addr = idx + + return ret, marks if __name__ == '__main__': @@ -148,7 +192,8 @@ if __name__ == '__main__': output_file = "test_mov.bin" program_bin_data = [] - for code in compile_program(input_file): + ret_codes, marks = compile_program(input_file) + for code in ret_codes: values = code.compile_code() for value in values: program_bin_data.append(value) diff --git a/controller.py b/controller.py index 87ebba0..9b1e76c 100644 --- a/controller.py +++ b/controller.py @@ -1,8 +1,11 @@ from assembly import FETCH, INSTRUCTIONS +import assembly as ASM import pin META_DATA = "v3.0 hex words addressed\n" +CJMPS = [ASM.JO, ASM.JNO, ASM.JZ, ASM.JNZ, ASM.JP, ASM.JNP] + def chunk(l, n): for i in range(0, len(l), n): yield l[i:i + n] @@ -76,6 +79,28 @@ def compile_addr2(addr, ir, psw, idx): return +def get_condition_jump(EXEC, op, psw): + overflow = psw & 0b001 + zero = psw & 0b010 + partiy = psw & 0b100 + + if op == ASM.JO and overflow: + return EXEC + elif op == ASM.JNO and not overflow: + return EXEC + elif op == ASM.JZ and zero: + return EXEC + elif op == ASM.JNZ and not zero: + return EXEC + elif op == ASM.JP and partiy: + return EXEC + elif op == ASM.JNP and not partiy: + return EXEC + else: + return [pin.CYC] + + + def compile_addr1(addr, ir, psw, idx): # 01xxxx[aa] global base_bin_data @@ -92,6 +117,12 @@ def compile_addr1(addr, ir, psw, idx): return EXEC = INST[op][amd] + + # 判断是否是条件转移指令, 处在的 bin段 + # 如果不是就用cyc填充 + if op in CJMPS: + EXEC = get_condition_jump(EXEC, op, psw) + # 当前指令周期 长度塞不下了 if idx < len(EXEC): # print(f"{hex(addr)} 写入指令: {bin(EXEC[idx])}") diff --git a/cpu.circ b/cpu.circ index fa61bbe..42ba5f9 100644 --- a/cpu.circ +++ b/cpu.circ @@ -3855,7 +3855,7 @@ - + @@ -5103,6 +5103,22 @@ 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 @@ -5146,40 +5162,20 @@ 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 +1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 +1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 +1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 +9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 @@ -5222,41 +5218,21 @@ 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 +1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 +1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 +1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 -8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 -1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 -8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 -1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 -8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 -1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 -10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 +9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 @@ -5301,11 +5277,19 @@ 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 @@ -5348,12 +5332,20 @@ 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 +8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 +c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 @@ -5401,9 +5393,17 @@ 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 @@ -5446,10 +5446,18 @@ 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 +8040 1c0a4 8040 1c0c4 8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 +8040 1c0e4 c006 9*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 8040 1c0a4 8040 1c0c4 8040 1c0e4 10*40000000 diff --git a/program.bin b/program.bin index 93dd2c7..b74f172 100644 --- a/program.bin +++ b/program.bin @@ -1,19 +1,23 @@ v3.0 hex words addressed -0000: 84 08 05 84 0b 04 e5 08 -0008: 0b 49 08 00 3f 00 00 84 -0010: 08 fd 41 08 00 41 08 00 -0018: 41 08 00 45 08 00 45 08 -0020: 00 45 08 00 45 08 00 45 -0028: 08 00 45 08 00 45 08 00 -0030: 3f 00 00 84 09 05 94 09 -0038: 03 85 08 09 95 08 09 94 -0040: 08 fa 84 08 00 84 09 00 -0048: 95 08 09 84 08 05 84 09 -0050: 02 a5 08 09 a4 08 04 84 -0058: 08 04 84 09 02 a5 08 09 -0060: 3f 00 00 88 33 99 86 08 -0068: 33 89 2f 08 84 08 2f 8b -0070: 00 08 84 08 00 8c 08 05 -0078: 84 08 01 8e 08 00 84 09 -0080: 02 84 0b 00 8f 09 0b 3f -0088: 00 00 +0000: 84 0b 00 41 0b 00 b4 0b +0008: 05 58 0f 00 4c 03 00 45 +0010: 0b 00 b4 0b 00 58 03 00 +0018: 4c 0f 00 3f 00 00 84 08 +0020: 05 84 0b 04 e5 08 0b 49 +0028: 08 00 3f 00 00 84 08 fd +0030: 41 08 00 41 08 00 41 08 +0038: 00 45 08 00 45 08 00 45 +0040: 08 00 45 08 00 45 08 00 +0048: 45 08 00 45 08 00 3f 00 +0050: 00 84 09 05 94 09 03 85 +0058: 08 09 95 08 09 94 08 fa +0060: 84 08 00 84 09 00 95 08 +0068: 09 84 08 05 84 09 02 a5 +0070: 08 09 a4 08 04 84 08 04 +0078: 84 09 02 a5 08 09 3f 00 +0080: 00 88 33 99 86 08 33 89 +0088: 2f 08 84 08 2f 8b 00 08 +0090: 84 08 00 8c 08 05 84 08 +0098: 01 8e 08 00 84 09 02 84 +00a0: 0b 00 8f 09 0b 3f 00 00 +00a8: 3f 00 00 diff --git a/test_mov.asm b/test_mov.asm index 6310e0d..9c07fd6 100644 --- a/test_mov.asm +++ b/test_mov.asm @@ -11,8 +11,26 @@ ;mov a, 0xff ;mov [0x0], a -;逻辑运算 测试 +; 转移指令测试 +mov d, 0 + +increase: + inc d + cmp d, 0x5 + jz decrease + jmp increase +decrease: + dec d + cmp d, 0x0 + jz increase + jmp decrease +end: + hlt + + + +;逻辑运算 测试 ;mov a, 5 ;mov d, 2 ; and a, d ; a:0 @@ -25,7 +43,9 @@ not a ; a: 1111_1110 hlt -; 加减法测试 + + +; 加减 1 测试 mov a, 253 inc a inc a