OSDN Git Service

encore des bugs...
authorJean-Michel THOORENS <jeanmichel.thoorens@gmail.com>
Mon, 30 Jul 2018 07:55:38 +0000 (09:55 +0200)
committerJean-Michel THOORENS <jeanmichel.thoorens@gmail.com>
Mon, 30 Jul 2018 07:55:38 +0000 (09:55 +0200)
15 files changed:
FastForth.fr.odt
FastForth.fr.pdf
MSP_EXP430FR5994.txt [deleted file]
config/gema/MSP430FR2355.pat
config/gema/MSP430FR2433.pat
config/gema/MSP430FR2633.pat
config/gema/MSP430FR4133.pat
config/gema/MSP430FR5738.pat
config/gema/MSP430FR5739.pat
config/gema/MSP430FR5948.pat
config/gema/MSP430FR5969.pat
config/gema/MSP430FR5994.pat
config/gema/MSP430FR6989.pat
forthMSP430FR.asm
forthMSP430FR_ASM.asm

index de1c12c..a1deb7f 100644 (file)
Binary files a/FastForth.fr.odt and b/FastForth.fr.odt differ
index 2f16196..ed4e74c 100644 (file)
Binary files a/FastForth.fr.pdf and b/FastForth.fr.pdf differ
diff --git a/MSP_EXP430FR5994.txt b/MSP_EXP430FR5994.txt
deleted file mode 100644 (file)
index 3ac6b0b..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-@1800
-10 00 03 00 00 21 80 3E 05 00 18 00 64 67 0E 54
-90 44 A2 44 C6 5B 02 5C 00 00
-@2000
-00 00
-@4000
-2F 83 8F 4E 00 00 3E 41 2E 4E 30 4D 2F 83 8F 4E
-00 00 3E 41 0D 12 3D 4E 30 4D 00 00 04 45 58 49
-54 00 3D 41 30 4D 00 00 03 4C 49 54 2F 83 8F 4E
-00 00 3E 4D 30 4D 1C 40 03 44 55 50 2F 83 8F 4E
-00 00 30 4D 00 00 04 3F 44 55 50 00 0E 93 F6 23
-30 4D 38 40 04 44 52 4F 50 00 3E 4F 30 4D 00 00
-03 4E 49 50 2F 53 30 4D 00 00 04 53 57 41 50 00
-2A 4F 8F 4E 00 00 0E 4A 30 4D 60 40 04 4F 56 45
-52 00 8F 4E FE FF 2E 4F 2F 83 30 4D 6A 40 03 52
-4F 54 2A 4F 8F 4E 00 00 1E 4F 02 00 8F 4A 02 00
-30 4D 46 40 02 3E 52 00 0E 12 3E 4F 30 4D 8E 40
-02 52 3E 00 2F 83 8F 4E 00 00 3E 41 30 4D B0 40
-02 52 40 00 2F 83 8F 4E 00 00 2E 41 30 4D 54 40
-05 44 45 50 54 48 8F 4E FE FF 3E 40 80 1C 0E 8F
-2F 83 0E 11 30 4D 00 00 01 40 2E 4E 30 4D E8 40
-01 21 BE 4F 00 00 3E 4F 30 4D 00 00 02 43 40 00
-6E 4E 30 4D FC 40 02 43 21 00 FE 4F 00 00 1F 53
-3E 4F 30 4D 00 00 01 2B 3E 5F 30 4D 28 40 01 2D
-3E 8F 3E E3 1E 53 30 4D 00 00 02 31 2B 00 1E 53
-30 4D 2A 41 02 31 2D 00 1E 83 30 4D D0 40 04 44
-41 42 53 00 3E F3 06 34 BF E3 00 00 3E E3 9F 53
-00 00 0E 63 30 4D 34 41 02 30 3D 00 1E 83 0E 7E
-30 4D 58 41 02 30 3C 00 0E 5E 0E 7E 3E E3 30 4D
-00 00 01 3D 3E 8F 07 20 3E 43 30 4D 72 41 01 3C
-3A 4F 0A 8E F9 3B 0E 43 30 4D A4 40 01 3E 3E 8F
-F9 3F 64 41 02 30 3E 00 1E 93 EE 37 F4 3F 00 00
-02 55 3C 00 3A 4F 0A 8E E7 2B ED 3F 2D 4D 30 4D
-0E 93 3E 4F FB 27 2D 53 30 4D 1E 83 0E 7E F9 3F
-39 40 00 80 39 8F 08 4E 3E 4F 08 59 19 15 30 4D
-81 5E 00 00 3E 4F 32 B0 00 01 E8 27 2D 53 21 52
-30 4D 91 53 00 00 F7 3F A0 41 06 55 4E 4C 4F 4F
-50 00 F5 3F 00 00 01 49 2F 83 8F 4E 00 00 2E 41
-1E 81 02 00 30 4D 16 41 01 4A 2F 83 8F 4E 00 00
-1E 41 04 00 1E 81 06 00 30 4D 06 41 02 42 4C 00
-85 12 20 00 1C 42 04 42 41 53 45 00 85 12 DC 1D
-C0 40 05 53 54 41 54 45 85 12 BE 1D 7E 41 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D EA 41 06 55 4D 2F
-4D 4F 44 00 30 12 5A 40 0B 4E 2E 4F 1C 4F 02 00
-0A 43 34 40 20 00 0E 93 04 20 04 11 0E 4C 0C 43
-09 43 0A 9B 01 28 0A 8B 09 69 08 68 14 83 07 30
-0C 5C 0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 34 40
-0C 40 8F 4A 02 00 8F 49 00 00 0E 48 30 41 26 42
-01 23 1B 42 DC 1D 2C 4F 2F 83 B0 12 60 42 BF 4F
-00 00 7A 90 0A 00 02 28 3A 50 07 00 3A 50 30 00
-92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D A0 42
-02 23 53 00 0D 12 87 12 A2 42 DC 42 2D 83 09 93
-E2 23 0E 93 E0 23 3D 41 30 4D D0 42 02 23 3E 00
-9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D F6 41
-04 48 4F 4C 44 00 0A 4E 3E 4F DA 3F 32 42 04 53
-49 47 4E 00 0E 93 3E 4F 3A 40 2D 00 D1 33 30 4D
-4C 42 02 55 2E 00 0D 12 87 12 42 42 2C 40 00 00
-D4 42 F0 42 90 45 58 45 22 40 3E 41 02 44 2E 00
-0D 12 87 12 42 42 70 40 82 40 44 41 D4 42 92 40
-14 43 F0 42 90 45 58 45 22 40 7C 40 01 2E 0E 93
-E2 37 2F 83 8F 4E 00 00 3E 43 EA 3F 00 43 04 48
-45 52 45 00 2F 83 8F 4E 00 00 1E 42 C6 1D 30 4D
-F0 40 05 41 4C 4C 4F 54 82 5E C6 1D 3E 4F 30 4D
-EC 42 02 43 2C 00 1A 42 C6 1D CA 4E 00 00 92 53
-C6 1D 3E 4F 30 4D 08 42 03 4B 45 59 30 40 B0 43
-18 42 CC 05 2F 83 8F 4E 00 00 B0 12 90 44 92 B3
-DC 05 FD 27 1E 42 CC 05 B0 12 A2 44 30 4D 0D 12
-3D 40 EE 43 1B 42 32 20 9B 42 1E 20 16 00 1A 4F
-02 00 8F 4E 00 00 0E 43 19 42 1E 20 02 3C F0 43
-2D 83 19 92 20 20 15 2C 58 49 00 1E 19 53 78 90
-20 00 08 2C 78 90 0A 00 F4 23 82 49 1E 20 2F 53
-3D 41 30 4D 2E 9F 67 24 CA 48 00 00 1A 53 1E 53
-62 3C 0A 12 B0 12 08 5D 3A 41 DE 3F 92 43 03 43
-49 42 85 12 3C 1D 3F 80 06 00 8F 4E 04 00 3E 40
-54 00 9F 42 34 44 00 00 AF 4F 02 00 05 3C 82 43
-06 41 43 43 45 50 54 00 30 40 5C 44 3C 40 FE 44
-3B 40 C8 44 2D 15 0A 4E 2E 4F 0A 5E 3B 40 0D 00
-3C 40 20 00 3D 40 F2 44 92 B3 DC 05 05 24 18 42
-CC 05 38 90 0A 00 04 20 21 53 39 40 B6 44 4D 15
-A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C2 23 02
-30 41 B2 40 13 00 CE 05 E2 D2 23 02 30 41 00 00
-05 53 4C 45 45 50 30 40 BA 44 12 D2 0A 18 FB 3F
-21 52 3A 17 58 42 CC 05 48 9C 08 2C 48 9B E9 27
-78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 24
-CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 82 48 CE 05
-30 4D F4 44 2D 83 92 B3 DC 05 E4 23 FC 27 B2 40
-18 00 0A 18 82 93 DE 1D 02 24 92 53 DE 1D 3E 8F
-3D 41 30 4D 3C 43 04 45 4D 49 54 00 30 40 20 45
-08 4E 3E 4F E0 3F 16 45 04 45 43 48 4F 00 B2 40
-82 48 EC 44 82 43 DE 1D 30 4D 5C 43 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D EC 44 92 43 DE 1D 30 4D
-0E 43 05 53 50 41 43 45 2F 83 8F 4E 00 00 3E 40
-20 00 DC 3F 52 45 06 53 50 41 43 45 53 00 0E 93
-09 24 0D 12 3D 40 7A 45 EF 3F 7C 45 2D 83 1E 83
-EB 23 3D 41 3E 4F 30 4D 22 43 04 54 59 50 45 00
-0E 93 0F 24 1E 15 3D 40 A6 45 28 4F 7E 48 8F 48
-00 00 2F 83 BB 3F A8 45 2D 83 91 83 02 00 F5 23
-1D 17 2F 53 3E 4F 30 4D 2E 44 02 43 52 00 30 40
-C2 45 0D 12 87 12 D0 45 02 0D 0A 00 90 45 22 40
-2F 82 8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3
-0D 63 30 4D BA 45 07 43 41 50 53 5F 4F 4E B2 43
-B4 1D 30 4D E6 45 08 43 41 50 53 5F 4F 46 46 00
-82 43 B4 1D 30 4D 66 45 82 53 22 00 0D 12 87 12
-2C 40 D0 45 78 48 00 46 2C 40 22 00 54 46 EE 45
-22 46 3D 41 6E 4E 1E 83 82 5E C6 1D 3E 4F 92 B3
-C6 1D A2 63 C6 1D 30 4D 3C 45 82 2E 22 00 0D 12
-87 12 0C 46 2C 40 90 45 78 48 22 40 00 00 04 57
-4F 52 44 00 3C 40 C0 1D 39 4C 3A 4C 09 5A 3A 5C
-28 4C 09 9A 1C 24 7E 9A FC 27 1A 83 3B 40 60 00
-C8 4C 00 00 09 9A 0F 24 7C 4A 4E 9C 0C 24 18 53
-4B 9C F6 2F 82 93 B4 1D F3 27 7C 90 7B 00 F0 2F
-7C 80 20 00 ED 3F 1A 82 C2 1D 82 4A C4 1D 1E 42
-C6 1D 08 8E CE 48 00 00 30 4D 00 00 04 46 49 4E
-44 00 2F 83 0C 4E 65 4C 74 40 80 00 3B 40 CA 1D
-3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 1E 00 0E 58
-2E 53 1E 4E FE FF 0E 93 F3 27 09 4E 78 49 48 C4
-48 95 F7 23 0A 4C 1A 53 FA 99 00 00 F2 23 58 83
-FA 23 19 B3 09 63 0C 49 6A 4E 1E 43 4A 93 01 30
-2E 83 8F 4C 00 00 35 40 00 40 34 40 0C 40 30 4D
-8C 41 07 3E 4E 55 4D 42 45 52 3C 4F 38 4F 29 4F
-2F 82 1B 42 DC 1D 6A 4C 7A 80 30 00 7A 90 0A 00
-05 28 7A 80 07 00 7A 90 0A 00 13 28 0A 9B 11 2C
-82 49 D0 04 82 48 D2 04 82 4B C8 04 19 42 E4 04
-18 42 E6 04 09 5A 08 63 1C 53 1E 83 E4 23 8F 48
-02 00 8F 4C 00 00 8F 49 04 00 30 4D 0C 43 1B 42
-DC 1D 32 C0 00 02 2D 15 09 43 08 43 3D 40 BC 47
-3F 82 8F 4E 06 00 0C 4E 7E 4C 6A 4C 7A 80 2C 00
-10 2C 5A 83 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 5A 83 BF 23 1C 53 1E 83 6A 4C 7A 80
-2C 00 5A 93 B8 23 B1 43 02 00 CE 3F BE 47 0E 93
-32 24 32 B0 00 02 2F 20 32 D0 00 02 FC 90 2E 00
-00 00 02 20 2D 83 C0 3F FC 90 2C 00 00 00 23 20
-0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
-39 80 30 00 79 90 0A 00 05 28 79 80 07 00 79 90
-0A 00 0A 28 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
-B0 12 58 42 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 0E 4A 4E 93 2B 17 0E 4C 82 4B DC 1D 04 24
-3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00 04 00
-BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00 BF E3
-00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02 01 20
-2F 53 30 4D 28 45 07 45 58 45 43 55 54 45 0A 4E
-3E 4F 00 4A 1E 41 01 2C 1A 42 C6 1D A2 53 C6 1D
-8A 4E 00 00 3E 4F 30 4D 76 48 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0F 24 1A 42 C6 1D A2 52 C6 1D
-BA 40 2C 40 00 00 8A 4E 02 00 3E 4F 32 B0 00 02
-32 C0 00 02 F1 23 30 4D F6 45 05 43 4F 55 4E 54
-2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D 82 43
-C4 1D 82 4E C0 1D B2 4F C2 1D 3E 4F 30 4D 0D 12
-87 12 CE 48 20 42 54 46 EA 48 3D 40 F2 48 E1 22
-48 3E F4 48 0A 4E 3E 4F 3D 40 0A 49 37 27 3D 40
-E4 48 1A E2 BE 1D B8 27 B2 23 0C 49 3E 4F 3D 40
-E4 48 BF 23 DE 53 00 00 68 4E 08 5E F8 40 3F 00
-00 00 3D 40 AE 4B CC 3F 66 48 08 45 56 41 4C 55
-41 54 45 00 39 40 C0 1D 3C 49 3B 49 3A 49 3D 15
-87 12 DE 48 46 49 B2 41 C4 1D B2 41 C2 1D B2 41
-C0 1D 3D 41 30 4D 94 41 04 51 55 49 54 00 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 82 43 08 18
-87 12 D0 45 05 0D 0A 6F 6B 20 90 45 36 44 58 45
-DE 48 D6 40 68 41 D0 45 0D 73 74 61 63 6B 20 65
-6D 70 74 79 21 20 14 4A 2C 40 30 FF 74 43 A4 41
-D0 45 0B 46 52 41 4D 20 66 75 6C 6C 21 20 14 4A
-38 42 EA 40 B0 41 72 49 D0 45 05 0D 0A 20 20 20
-AC 41 7A 49 50 44 05 41 42 4F 52 54 3F 40 80 1C
-C6 3F B2 40 18 51 16 51 B2 40 BA 44 B8 44 B2 40
-20 45 1E 45 B2 40 C2 45 C0 45 B2 40 B0 43 AE 43
-B2 40 3C 1D 34 44 B2 40 5C 44 5A 44 38 40 0A 00
-82 48 DC 1D 88 43 E8 1D 28 83 FC 2F B2 40 0A 00
-DC 1D 30 41 8F 93 02 00 03 20 2F 52 3E 4F 30 4D
-B2 40 82 48 EC 44 1B 42 32 20 0B 93 04 24 CB 43
-02 00 2B 4B FA 3F B0 12 DE 49 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 92 C3 DC 05 38 40
-A0 AA 39 42 03 43 19 83 FD 23 18 83 FA 23 92 B3
-DC 05 F3 23 0D 12 87 12 D0 45 04 1B 5B 37 6D 00
-90 45 2C 40 DE 1D EA 40 4C 40 B0 41 8E 4A D0 45
-05 6C 69 6E 65 3A 90 45 38 41 26 43 2E 45 90 45
-D0 45 04 1B 5B 30 6D 00 90 45 90 50 EE 45 CC 49
-C6 49 86 41 42 4F 52 54 22 00 0D 12 87 12 0C 46
-2C 40 14 4A 78 48 22 40 AC 46 01 27 0D 12 87 12
-20 42 54 46 B2 46 B0 41 CC 4A 22 40 14 49 3E 42
-81 5C 92 42 C0 1D C4 1D 30 4D 00 00 81 5B 82 43
-BE 1D 30 4D D0 4A 01 5D B2 43 BE 1D 30 4D DC 4A
-83 5B 27 5D 0D 12 87 12 BC 4A 2C 40 2C 40 78 48
-78 48 22 40 BE 4F 02 00 3E 4F 30 4D 6E 43 82 49
-53 00 0D 12 87 12 38 42 EA 40 B0 41 28 4B F4 4A
-2C 40 04 4B 78 48 22 40 BC 4A 04 4B 22 40 0E 4B
-09 49 4D 4D 45 44 49 41 54 45 1A 42 B6 1D FA D0
-80 00 00 00 30 4D 08 46 87 52 45 43 55 52 53 45
-19 42 C6 1D 99 42 BA 1D 00 00 A2 53 C6 1D 30 4D
-58 49 88 50 4F 53 54 50 4F 4E 45 00 0D 12 87 12
-20 42 54 46 B2 46 4C 40 B0 41 CC 4A 68 41 B0 41
-8E 4B 2C 40 2C 40 78 48 78 48 2C 40 78 48 78 48
-22 40 82 9F BC 1D 2F 25 0D 12 87 12 D0 45 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 20 4A
-F0 4A 81 3B 82 93 BE 1D 8C 27 0D 12 87 12 2C 40
-22 40 78 48 92 4B DE 4A 22 40 BA 40 0D 12 FC FF
-BA 40 87 12 FE FF B2 43 BE 1D 82 4F BC 1D 30 4D
-B2 4B 01 3A 30 12 CA 4B 0D 12 87 12 2E 46 20 42
-54 46 F4 4B 08 4E 7A 4E 5A D3 5A 53 0A 58 19 42
-DA 1D 6E 4E 3E F0 1E 00 09 5E 3E 4F 3D 41 BA 40
-30 40 00 00 BA 40 DE 4B 02 00 82 48 B6 1D 82 49
-B8 1D 82 4A BA 1D 2A 52 82 4A C6 1D 30 41 4E 46
-08 56 41 52 49 41 42 4C 45 00 B0 12 E8 4B BA 40
-86 12 FC FF DC 3C BA 48 08 43 4F 4E 53 54 41 4E
-54 00 B0 12 E8 4B BA 40 85 12 FC FF 8A 4E FE FF
-3E 4F CD 3C 48 4C 06 43 52 45 41 54 45 00 B0 12
-E8 4B BA 40 85 12 FC FF 8A 4A FE FF C0 3C 2A 49
-05 44 4F 45 53 3E 1A 42 BA 1D BA 40 84 12 00 00
-8A 4D 02 00 3D 41 30 4D 80 4C 05 44 45 46 45 52
-B0 12 E8 4B AC 3C 12 47 05 3E 42 4F 44 59 2E 52
-30 4D 66 4C 07 43 4F 4D 50 41 52 45 0C 4E 38 4F
-3B 4F 39 4F 0E 4B 0E 5C 0C 24 1B 83 07 30 1C 83
-07 30 19 53 F9 98 FF FF F5 27 02 2C 3E 43 30 4D
-1E 43 30 4D E2 4B 86 5B 54 48 45 4E 5D 00 30 4D
-E6 4C 86 5B 45 4C 53 45 5D 00 0D 12 87 12 2C 40
-01 00 20 42 54 46 C0 48 3C 40 B0 41 66 4D 82 40
-82 40 D0 45 04 5B 49 46 5D 00 BC 4C BA 41 28 4D
-B2 45 2E 41 AC 41 5E 4D 82 40 82 40 D0 45 06 5B
-45 4C 53 45 5D 00 BC 4C BA 41 4C 4D B2 45 38 41
-3C 40 B0 41 5E 4D 2E 41 AC 41 5E 4D D0 45 06 5B
-54 48 45 4E 5D 00 BC 4C BA 41 5E 4D 38 41 4C 40
-BA 41 02 4D 22 40 B2 45 D0 45 05 0D 0A 6B 6F 20
-90 45 36 44 CE 48 AC 41 02 4D F2 4C 84 5B 49 46
-5D 00 0E 93 3E 4F B9 27 30 4D 7C 4D 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 87 12 20 42 54 46 B2 46
-64 40 22 40 8C 4D 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 87 12 96 4D 5C 41 22 40 BE 4D 3D 41
-B2 4E 0E 18 A2 4E 0C 18 3E 4F 6C 3D 8A 48 06 4D
-41 52 4B 45 52 00 B0 12 E8 4B BA 40 84 12 FC FF
-BA 40 BC 4D FE FF 9A 42 C8 1D 00 00 28 83 8A 48
-02 00 A2 52 C6 1D 18 42 B6 1D 19 42 B8 1D A8 49
-FE FF 89 48 00 00 30 4D 30 4B 82 49 46 00 2F 83
-8F 4E 00 00 1E 42 C6 1D A2 52 C6 1D BE 40 B0 41
-00 00 2E 53 30 4D 9A 4C 84 45 4C 53 45 00 A2 52
-C6 1D 1A 42 C6 1D BA 40 AC 41 FC FF 8E 4A 00 00
-2A 83 0E 4A 30 4D 8A 45 84 54 48 45 4E 00 9E 42
-C6 1D 00 00 3E 4F 30 4D B4 4C 85 42 45 47 49 4E
-30 40 74 43 48 4E 85 55 4E 54 49 4C 39 40 B0 41
-A2 52 C6 1D 1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF
-3E 4F 30 4D A2 4A 85 41 47 41 49 4E 39 40 AC 41
-EF 3F 30 4C 85 57 48 49 4C 45 0D 12 87 12 0E 4E
-70 40 22 40 48 4B 86 52 45 50 45 41 54 00 0D 12
-87 12 8C 4E 4E 4E 22 40 28 4E 82 44 4F 00 2F 83
-8F 4E 00 00 A2 53 C6 1D 1E 42 C6 1D BE 40 C0 41
-FE FF A2 53 00 1C 1A 42 00 1C 8A 43 00 00 30 4D
-CE 4D 84 4C 4F 4F 50 00 39 40 E2 41 A2 52 C6 1D
-1A 42 C6 1D 8A 49 FC FF 8A 4E FE FF 1E 42 00 1C
-A2 83 00 1C 2E 4E 0E 93 03 24 8E 4A 00 00 F6 3F
-3E 4F 30 4D A8 43 85 2B 4C 4F 4F 50 39 40 D0 41
-E5 3F E2 4E 85 4C 45 41 56 45 1A 42 C6 1D BA 40
-F2 41 00 00 BA 40 AC 41 02 00 B2 50 06 00 C6 1D
-A2 53 00 1C 2A 52 19 42 00 1C 89 4A 00 00 30 4D
-24 4F 04 4D 4F 56 45 00 0A 4E 38 4F 39 4F 3E 4F
-0A 93 11 24 08 99 0F 24 06 2C F8 49 00 00 18 53
-1A 83 FB 23 30 4D 08 5A 09 5A 19 83 18 83 E8 49
-00 00 1A 83 FA 23 30 4D 94 4E 0A 56 4F 43 41 42
-55 4C 41 52 59 00 0D 12 87 12 6E 4C 2C 40 10 00
-2C 40 00 00 C0 41 2C 40 00 00 78 48 E2 41 A6 4F
-74 43 2C 40 C8 1D 3C 40 EA 40 78 48 F2 40 86 4C
-2C 40 CA 1D F2 40 22 40 BA 4A 05 46 4F 52 54 48
-84 12 C0 4F 66 65 08 65 DC 66 2A 65 12 54 16 4F
-A4 66 D0 65 EE 65 DC 64 B2 66 F8 65 00 00 5A 65
-E6 4A E4 65 00 00 86 4E 04 41 4C 53 4F 00 3A 40
-0C 00 39 40 CA 1D 38 40 CC 1D B5 3F 62 4B 08 50
-52 45 56 49 4F 55 53 00 3A 40 0E 00 39 40 CC 1D
-38 40 CA 1D A2 3F 3A 46 04 4F 4E 4C 59 00 82 43
-CC 1D 30 4D BA 4E 0B 44 45 46 49 4E 49 54 49 4F
-4E 53 92 42 CA 1D DA 1D 30 4D D0 4F 2E 50 42 50
-52 50 3A 4E 82 4A C8 1D 2E 4E 82 4E C6 1D 3D 40
-10 00 09 4A 08 49 29 83 18 48 FE FF 0E 98 FC 2B
-89 48 00 00 1D 83 F6 23 2A 4A 0A 93 F0 23 3E 4F
-3D 41 30 4D 0E 50 09 50 57 52 5F 53 54 41 54 45
-84 12 4A 50 0E 54 64 67 A6 4E 09 52 53 54 5F 53
-54 41 54 45 92 42 0E 18 94 50 92 42 0C 18 96 50
-EF 3F 86 50 08 50 57 52 5F 48 45 52 45 00 92 42
-C8 1D 94 50 92 42 C6 1D 96 50 30 4D 9A 50 08 52
-53 54 5F 48 45 52 45 00 92 42 C8 1D 0E 18 92 42
-C6 1D 0C 18 EC 3F 8A 4F 04 57 49 50 45 00 39 40
-10 00 29 83 B9 43 80 FF FC 23 B0 12 D2 49 B2 40
-64 67 0C 18 B2 40 0E 54 0E 18 CC 3F E8 50 04 57
-41 52 4D 00 30 40 18 51 1E 42 08 18 0D 12 87 12
-D0 45 06 0D 1B 5B 37 6D 23 00 90 45 5E 43 D0 45
-1F 46 61 73 74 46 6F 72 74 68 20 56 32 30 36 20
-28 43 29 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20
-90 45 2C 40 30 FF 74 43 20 41 26 43 D0 45 0B 62
-79 74 65 73 20 66 72 65 65 20 36 4A 5A 4E 04 43
-4F 4C 44 00 B2 40 04 A5 20 01 B2 40 88 5A 5C 01
-B2 D0 03 00 04 02 B2 40 FC FF 02 02 B2 C0 03 00
-06 02 B2 D0 00 04 24 02 B2 D3 26 02 B2 43 22 02
-B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3 66 02
-F2 43 26 03 F2 D3 22 03 F2 40 A5 00 41 01 F2 40
-10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01 B2 40
-48 00 62 01 82 43 66 01 39 40 00 01 B2 40 33 00
-64 01 D2 43 61 01 92 D2 9E 01 08 18 A2 93 08 18
-01 24 59 07 38 40 59 14 18 83 FE 23 19 83 FA 23
-B2 42 B0 01 F2 D0 10 00 2A 03 F2 40 A5 00 A1 04
-F2 C0 40 00 A2 04 39 40 4C 00 29 83 B9 40 7A 51
-B4 FF FB 23 B2 40 C0 44 F0 FF B2 40 18 00 0A 18
-39 40 00 10 29 83 89 43 00 1C FC 23 31 40 E0 1C
-3F 40 80 1C 37 40 22 40 36 40 B4 40 35 40 00 40
-34 40 0C 40 B2 40 0A 00 DC 1D B2 43 B4 1D 92 C3
-30 01 18 42 08 18 D2 B3 01 02 04 20 38 E3 18 53
-82 48 08 18 B2 40 81 00 C0 05 92 42 02 18 C6 05
-92 42 04 18 C8 05 F2 D0 03 00 0D 02 92 C3 C0 05
-92 D3 DA 05 3D 40 AA 52 38 90 0A 00 28 27 38 90
-16 00 25 2F 28 93 FE 22 F3 26 AC 52 E2 B2 60 02
-31 23 B2 40 81 A9 40 06 B2 40 30 00 46 06 D2 D3
-25 02 B2 D0 C0 04 0C 02 92 C3 40 06 39 42 B0 12
-9E 5B D2 C3 23 02 2C 42 B2 40 95 00 14 20 B2 40
-00 40 18 20 B0 12 14 5B 02 24 30 40 3A 5C B0 12
-9C 5B 7A 93 FC 23 B2 40 87 AA 14 20 92 43 16 20
-B2 40 00 48 18 20 B0 12 14 5B 29 42 B0 12 9E 5B
-92 43 14 20 82 43 16 20 78 43 3C 42 B2 40 00 77
-18 20 B0 12 14 5B B2 40 40 69 18 20 B0 12 5A 5B
-03 24 58 83 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40
-00 50 18 20 B0 12 5A 5B D0 23 92 D3 40 06 82 43
-46 06 92 C3 40 06 B0 12 C4 5B 38 40 00 1E 92 48
-C6 01 04 20 92 48 C8 01 06 20 5A 48 C2 01 92 43
-02 20 7A 80 06 00 0D 24 7A 82 0B 24 A2 43 02 20
-6A 53 07 24 5A 53 05 24 3A 50 0B 20 0C 4A 30 40
-40 5C B0 12 C4 5B D2 48 0D 00 12 20 19 48 0E 00
-82 49 08 20 1A 48 16 00 0A 93 02 20 1A 48 24 00
-82 4A 0A 20 09 5A 82 49 0C 20 09 5A A2 93 02 20
-04 24 82 49 0E 20 39 50 20 00 19 82 12 20 19 82
-12 20 82 49 10 20 92 42 02 20 2C 20 9B 3E F8 4F
-09 41 53 53 45 4D 42 4C 45 52 84 12 C0 4F F0 59
-5E 5A A4 59 C8 5A 6A 59 F0 5A 84 56 00 00 60 59
-14 5A C2 59 02 5A 94 57 00 00 00 00 00 5B F4 4F
-0A 4E 85 48 49 32 4C 4F 0D 12 87 12 74 43 22 4E
-78 48 DE 4A FE 4F EA 53 22 40 6E 51 04 43 4F 44
-45 00 B0 12 E8 4B A2 82 C6 1D 0D 12 87 12 DA 4B
-AC 41 24 54 00 00 07 45 4E 44 43 4F 44 45 0D 12
-87 12 18 50 92 4B 22 40 E0 53 03 41 53 4D 92 42
-DA 1D E0 1D B2 40 EE 53 DA 1D E3 3F 46 54 06 45
-4E 44 41 53 4D 00 92 42 E0 1D DA 1D E8 3F 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 1D BA 40 0D 12 00 00
-BA 40 87 12 02 00 A2 52 C6 1D B2 43 BE 1D 30 40
-18 50 00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42
-C6 1D EE 3F 38 40 C0 1D 39 48 2A 48 09 5A 1A 52
-C4 1D 09 9A 03 24 7E 9A FC 27 1A 83 0E 4A 2A 88
-82 4A C4 1D 30 4D 1C 15 87 12 54 46 B2 46 BA 41
-EA 54 6C 47 B0 41 CC 4A 0C 55 EC 54 29 4E 39 90
-86 12 02 20 2E 53 0A 3C 39 90 85 12 03 20 1E 4E
-02 00 04 3C 39 90 84 12 01 20 2E 52 1B 17 30 41
-3E 40 28 00 B0 12 D6 54 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 1C 15 12 12 C4 1D 92 53
-C4 1D 87 12 54 46 6C 47 B0 41 48 55 3E 55 21 53
-3E 90 10 00 84 2D E2 2B 4A 55 B2 41 C4 1D DE 3F
-0D 12 87 12 20 42 B4 54 5A 55 0C 43 1B 42 C6 1D
-A2 53 C6 1D 0A 4E 3E 4F FA 90 23 00 00 00 2D 20
-92 53 C4 1D B0 12 D6 54 0E 93 03 20 3C 40 00 03
-21 3C 1E 93 03 20 3C 40 10 03 1C 3C 2E 93 03 20
-3C 40 20 03 17 3C 2E 92 03 20 3C 40 20 02 12 3C
-3E 92 03 20 3C 40 30 02 0D 3C 3E 93 03 20 3C 40
-30 03 08 3C 3C 40 30 00 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 4F 3D 41 30 4D FA 90 26 00 00 00
-07 20 3C 40 10 02 92 53 C4 1D B0 12 D6 54 EC 3F
-FA 90 40 00 00 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 28 55 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-28 55 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E D8 3F B0 12 28 55 FA 23 3C 50 10 00 B0 12
-10 55 EF 3F 0D 12 87 12 20 42 B4 54 2E 56 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 CB 3F
-B0 12 28 55 E5 23 3C 50 80 00 B0 12 10 55 E0 3F
-B0 44 04 52 45 54 49 00 0D 12 87 12 2C 40 00 13
-78 48 22 40 2C 40 2C 00 50 55 24 56 6E 56 2E 4E
-0E DC 09 4B A5 3F A4 54 03 4D 4F 56 84 12 64 56
-00 40 78 56 05 4D 4F 56 2E 42 84 12 64 56 40 40
-00 00 03 41 44 44 84 12 64 56 00 50 92 56 05 41
-44 44 2E 42 84 12 64 56 40 50 9E 56 04 41 44 44
-43 00 84 12 64 56 00 60 AC 56 06 41 44 44 43 2E
-42 00 84 12 64 56 40 60 52 56 04 53 55 42 43 00
-84 12 64 56 00 70 CA 56 06 53 55 42 43 2E 42 00
-84 12 64 56 40 70 D8 56 03 53 55 42 84 12 64 56
-00 80 E8 56 05 53 55 42 2E 42 84 12 64 56 40 80
-80 54 03 43 4D 50 84 12 64 56 00 90 02 57 05 43
-4D 50 2E 42 84 12 64 56 40 90 6E 54 04 44 41 44
-44 00 84 12 64 56 00 A0 1C 57 06 44 41 44 44 2E
-42 00 84 12 64 56 40 A0 0E 57 03 42 49 54 84 12
-64 56 00 B0 3A 57 05 42 49 54 2E 42 84 12 64 56
-40 B0 46 57 03 42 49 43 84 12 64 56 00 C0 54 57
-05 42 49 43 2E 42 84 12 64 56 40 C0 60 57 03 42
-49 53 84 12 64 56 00 D0 6E 57 05 42 49 53 2E 42
-84 12 64 56 40 D0 00 00 03 58 4F 52 84 12 64 56
-00 E0 88 57 05 58 4F 52 2E 42 84 12 64 56 40 E0
-BA 56 03 41 4E 44 84 12 64 56 00 F0 A2 57 05 41
-4E 44 2E 42 84 12 64 56 40 F0 20 42 50 55 C0 57
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-F4 56 03 52 52 43 84 12 BA 57 00 10 D2 57 05 52
-52 43 2E 42 84 12 BA 57 40 10 DE 57 04 53 57 50
-42 00 84 12 BA 57 80 10 EC 57 03 52 52 41 84 12
-BA 57 00 11 FA 57 05 52 52 41 2E 42 84 12 BA 57
-40 11 06 58 03 53 58 54 84 12 BA 57 80 11 00 00
-04 50 55 53 48 00 84 12 BA 57 00 12 20 58 06 50
-55 53 48 2E 42 00 84 12 BA 57 40 12 7A 57 04 43
-41 4C 4C 00 84 12 BA 57 80 12 1A 53 0E 4A 0D 12
-87 12 5E 43 D0 45 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 20 4A 20 42 B4 54 6C 58 0C 43 1B 42
-C6 1D A2 53 C6 1D 92 53 C4 1D 3E 40 2C 00 1C 15
-87 12 54 46 6C 47 B0 41 CC 4A 8C 58 1B 17 87 12
-24 56 94 58 0A 4E 3E 4F 1A 83 D7 33 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-CC 2F 5A 0E 8B 3F 2A 92 C8 2F 8A 10 5A 06 86 3F
-14 58 04 52 52 43 4D 00 84 12 66 58 50 00 C2 58
-04 52 52 41 4D 00 84 12 66 58 50 01 D0 58 04 52
-4C 41 4D 00 84 12 66 58 50 02 DE 58 04 52 52 55
-4D 00 84 12 66 58 50 03 2E 58 05 50 55 53 48 4D
-84 12 66 58 00 15 FA 58 04 50 4F 50 4D 00 84 12
-66 58 00 17 85 12 00 3C EC 58 03 53 3E 3D 85 12
-00 38 1A 59 02 53 3C 00 85 12 00 34 08 59 03 30
-3E 3D 85 12 00 30 2E 59 02 30 3C 00 85 12 00 30
-00 00 02 55 3C 00 85 12 00 2C 42 59 03 55 3E 3D
-85 12 00 28 38 59 03 30 3C 3E 85 12 00 24 56 59
-02 30 3D 00 85 12 00 20 00 00 02 49 46 00 1A 42
-C6 1D 8A 4E 00 00 A2 53 C6 1D 0E 4A 30 4D 4C 59
-04 54 48 45 4E 00 1A 42 C6 1D 08 4E 3E 4F 09 48
-29 53 0A 89 0A 11 3A 90 00 02 58 2F 88 DA 00 00
-30 4D 2A 57 04 45 4C 53 45 00 1A 42 C6 1D BA 40
-00 3C 00 00 A2 53 C6 1D 2F 83 8F 4A 00 00 E3 3F
-80 59 05 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
-C6 1D 2A 83 0A 89 0A 11 3A 90 00 FE 37 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D AE 57
-05 41 47 41 49 4E 0D 12 87 12 14 59 C8 59 22 40
-00 00 05 57 48 49 4C 45 0D 12 87 12 6E 59 70 40
-22 40 24 59 06 52 45 50 45 41 54 00 0D 12 87 12
-14 59 C8 59 86 59 22 40 2A 5A 3D 41 2E 4E 08 4E
-3E 4F 2A 48 0A 93 88 43 00 00 C7 23 98 42 C6 1D
-00 00 30 4D 3E 58 03 42 57 31 84 12 28 5A E2 1D
-46 5A 03 42 57 32 84 12 28 5A E4 1D 52 5A 03 42
-57 33 84 12 28 5A E6 1D 6A 5A 3D 41 1A 42 C6 1D
-2E 4E 28 4E 8E 43 00 00 08 93 88 23 BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 84 12 68 5A E8 1D 8E 5A 03 46 57 32 84 12
-68 5A EA 1D 9A 5A 03 46 57 33 84 12 68 5A EC 1D
-3E 90 00 30 07 24 3E E0 00 04 3E B0 00 10 02 24
-3E E0 00 08 30 4D A6 5A 04 47 4F 54 4F 00 0D 12
-87 12 14 59 BC 4A 6E 48 22 40 00 00 05 3F 47 4F
-54 4F 0D 12 87 12 B0 5A BC 4A 6E 48 22 40 00 00
-03 4A 4D 50 0D 12 87 12 BC 4A F6 59 22 40 DC 5A
-04 3F 4A 4D 50 00 0D 12 87 12 B0 5A BC 4A 70 40
-C8 59 22 40 1A 43 25 3C D2 C3 23 02 E2 B2 60 02
-02 24 30 40 74 51 1A 52 04 20 19 62 06 20 92 43
-14 20 A2 93 02 20 07 24 0A 5A 49 69 82 4A 16 20
-C2 49 18 20 0A 3C C2 4A 15 20 8A 10 C2 4A 16 20
-C2 49 17 20 89 10 C2 49 18 20 B0 12 9C 5B 5A 53
-FC 23 39 40 05 00 D2 49 14 20 4E 06 82 93 46 06
-05 24 92 B3 6C 06 FD 27 C2 93 4C 06 59 83 F3 2F
-19 83 0B 30 F2 43 4E 06 82 93 46 06 03 24 92 B3
-6C 06 FD 27 5A 92 4C 06 F3 23 30 41 19 43 3A 43
-8A 10 C2 4A 4E 06 82 93 46 06 05 24 92 B3 6C 06
-FD 27 C2 93 4C 06 19 83 F3 23 5A 42 4C 06 30 41
-1A 52 08 20 09 43 1C D3 F2 40 51 00 19 20 B0 12
-18 5B 33 20 B0 12 9C 5B 6A 53 04 24 FB 23 D9 42
-4C 06 FF 1D F2 43 4E 06 03 43 19 53 39 90 01 02
-F6 23 F2 43 4E 06 3C C0 03 00 D2 D3 23 02 30 41
-09 43 2C D3 F0 40 58 00 11 C4 B0 12 18 5B 15 20
-3A 40 FE FF 29 43 B0 12 A0 5B D2 49 00 1E 4E 06
-03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
-9E 5B 7A C0 E1 00 6A 92 DE 27 8C 10 1C 52 4C 06
-D2 D3 23 02 0D 12 87 12 D0 45 0B 3C 20 53 44 20
-45 72 72 6F 72 21 58 5C 2F 83 B2 40 10 00 DC 1D
-0E 4C 87 12 26 43 20 4A 92 4B 0E 00 22 20 92 4B
-10 00 24 20 5A 42 23 20 58 42 22 20 92 93 02 20
-08 24 59 42 24 20 89 10 0A 59 88 10 08 58 0A 6A
-88 10 08 58 30 41 82 43 1C 20 92 42 0E 20 1A 20
-C2 93 24 20 03 20 92 93 22 20 14 24 92 42 22 20
-D0 04 92 42 24 20 D2 04 92 42 12 20 C8 04 92 42
-E4 04 1A 20 92 42 E6 04 1C 20 92 52 10 20 1A 20
-82 63 1C 20 30 41 92 4B 0E 00 22 20 92 4B 10 00
-24 20 B0 12 96 5C 5A 4B 03 00 82 5A 1A 20 82 63
-1C 20 30 41 09 93 07 24 F8 90 20 00 00 1E 03 20
-18 53 19 83 F9 23 30 41 1B 42 32 20 82 43 1E 20
-B2 90 00 02 20 20 A3 20 BB 80 00 02 12 00 8B 73
-14 00 DB 53 03 00 DB 92 12 20 03 00 11 28 CB 43
-03 00 B0 12 68 5C B0 12 C0 5B 8B 43 10 00 9B 48
-00 1E 0E 00 92 93 02 20 03 24 9B 48 02 1E 10 00
-B2 40 00 02 20 20 8B 93 14 00 0B 20 92 9B 12 00
-1E 20 7D 2C BB 90 00 02 12 00 03 2C 92 4B 12 00
-20 20 B0 12 D6 5C 1A 42 1A 20 19 42 1C 20 23 3F
-3C 42 3B 40 40 20 09 43 CB 93 02 00 10 24 9B 92
-24 20 0C 00 04 20 9B 92 22 20 0A 00 07 24 09 4B
-3B 50 18 00 3B 90 00 21 EF 23 0C 5C 30 41 0C 43
-82 4B 32 20 8B 49 00 00 49 93 0A 24 99 52 C4 1D
-16 00 4A 93 05 34 C9 93 02 00 02 34 5A 59 02 00
-CB 4A 02 00 CB 43 03 00 9B 42 1A 20 04 00 9B 42
-1C 20 06 00 18 42 30 20 8B 48 08 00 9B 48 1A 1E
-0A 00 9B 48 14 1E 0C 00 9B 48 1A 1E 0E 00 9B 48
-14 1E 10 00 9B 48 1C 1E 12 00 9B 48 1E 1E 14 00
-82 43 1E 20 6A 93 5F 27 C9 37 8B 43 16 00 7A 93
-02 24 0A 38 95 3F B2 40 3C 21 34 44 B2 40 CE 43
-5A 44 B2 40 02 21 00 21 18 42 00 21 B2 50 06 00
-00 21 19 42 C4 1D 1A 42 C0 1D 0A 89 88 4A 00 00
-19 52 C2 1D 88 49 02 00 88 4D 04 00 79 3F 1B 42
-32 20 0B 93 A3 27 EB 93 02 00 04 20 B0 12 E8 62
-B0 12 B0 62 5A 4B 02 00 CB 43 02 00 09 4B 2B 4B
-82 4B 32 20 7A 93 07 20 B2 40 3C 1D 34 44 B2 40
-5C 44 5A 44 0A 3C 0B 93 89 27 CB 93 02 00 86 37
-92 4B 16 00 1E 20 B0 12 50 5D 21 52 2F 53 B2 80
-06 00 00 21 1A 42 00 21 3E 4A BF 4A 00 00 3D 4A
-30 4D CE 50 85 52 45 41 44 22 5A 43 19 3C 0E 51
-86 57 52 49 54 45 22 00 6A 43 12 3C 36 50 84 44
-45 4C 22 00 6A 42 0C 3C 2C 54 05 43 4C 4F 53 45
-B0 12 5E 5E 30 4D 52 4F 85 4C 4F 41 44 22 7A 43
-2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0C 24 0D 12
-87 12 2C 40 2C 40 78 48 78 48 EE 45 0C 46 2C 40
-36 5F 78 48 22 40 0D 12 87 12 2C 40 22 00 54 46
-C0 48 34 5F 3D 41 35 4F 0E 55 82 4E 36 20 1C 43
-92 42 2C 20 22 20 92 42 2E 20 24 20 0E 95 8D 24
-F5 90 3A 00 01 00 01 20 25 53 F5 90 5C 00 00 00
-08 20 15 53 92 42 02 20 22 20 82 43 24 20 0E 95
-70 24 82 45 34 20 B0 12 96 5C 34 40 20 00 A2 93
-02 20 04 24 92 92 22 20 02 20 02 24 14 42 12 20
-B0 12 76 5D 2C 43 0A 43 08 4A 58 0E 08 58 82 48
-30 20 C8 93 00 1E 61 24 39 42 F8 95 00 1E 04 20
-18 53 19 83 FA 23 15 53 F5 90 2E 00 FF FF 19 24
-39 50 03 00 B0 12 F4 5C 06 20 F5 90 5C 00 FF FF
-29 24 0E 95 27 28 15 42 34 20 1A 53 3A 90 10 00
-DB 23 92 53 1A 20 82 63 1C 20 14 83 D1 23 2C 42
-3C 3C F5 90 2E 00 FE FF EE 27 B0 12 F4 5C EB 23
-39 40 03 00 F8 95 00 1E 04 20 18 53 19 83 FA 23
-09 3C 0E 95 E0 2F F5 90 5C 00 FF FF DC 23 B0 12
-F4 5C D9 23 18 42 30 20 92 48 1A 1E 22 20 92 48
-14 1E 24 20 F8 B0 10 00 0B 1E 14 24 82 93 24 20
-06 20 82 93 22 20 03 20 92 42 02 20 22 20 0E 95
-8E 2F 92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43
-00 00 03 3C 2A 4F B0 12 80 5D 34 40 0C 40 35 40
-00 40 3A 4F 3E 4F 0A 93 05 24 7A 93 14 20 0C 93
-02 20 3D 41 30 4D 0D 12 87 12 D0 45 0B 3C 20 4F
-70 65 6E 45 72 72 6F 72 2E 45 74 43 C0 48 90 45
-58 45 AC 41 56 5C 1A 93 B6 20 0C 93 EC 23 30 4D
-C4 5E 04 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42
-32 20 B0 12 08 5D 1E 82 32 20 30 4D 2C 43 12 12
-2A 20 18 42 02 20 08 58 2A 41 82 9A 0A 20 A1 24
-B0 12 C0 5B 09 43 28 93 03 24 89 93 02 1E 03 20
-89 93 00 1E 07 24 09 58 39 90 00 02 F4 23 91 53
-00 00 EA 3F 0C 43 6A 41 B9 43 00 1E 28 93 0F 24
-B9 40 FF 0F 02 1E 09 11 8A 10 09 5A 5A 41 01 00
-0A 11 09 10 82 4A 28 20 82 49 26 20 07 3C 09 11
-C2 49 26 20 C2 4A 27 20 82 43 28 20 3A 41 82 4A
-2A 20 30 41 0A 12 1A 52 08 20 B0 12 00 5C 3A 41
-1A 52 0C 20 30 40 00 5C F2 B0 40 00 A2 04 29 20
-F2 B0 10 00 A2 04 FC 27 5A 42 B0 04 4A 11 59 42
-B4 04 F2 40 20 00 C0 04 D2 42 B1 04 C8 04 1A 52
-E4 04 D2 42 B5 04 C8 04 19 52 E4 04 D2 42 B2 04
-C0 04 B2 40 00 08 C8 04 1A 52 E4 04 92 42 B6 04
-C0 04 B2 80 BC 07 C0 04 B2 40 00 02 C8 04 19 52
-E4 04 30 41 22 2A 2B 2C 2F 3A 3B 3C 3D 3E 3F 5B
-5C 5D 7C 2E 29 92 06 38 39 80 03 00 B0 12 04 62
-39 40 03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28
-0D 12 3D 40 0F 00 3C 40 B4 61 7A 9C F3 27 1D 83
-FC 23 3D 41 6A 9C E6 27 3A 80 21 00 EB 3B 18 53
-19 83 E8 23 09 93 06 24 F8 40 20 00 00 1E 18 53
-19 83 FA 23 30 41 2A 93 EC 20 2C 93 0E 24 0C 93
-BB 24 0D 12 87 12 D0 45 0C 3C 20 57 72 69 74 65
-45 72 72 6F 72 00 AC 41 98 60 B0 12 CC 60 92 42
-26 20 22 20 92 42 28 20 24 20 B0 12 44 61 B0 12
-76 5D 18 42 30 20 F8 40 20 00 0B 1E B0 12 58 61
-88 43 0C 1E 88 4A 0E 1E 88 49 10 1E 88 49 12 1E
-98 42 24 20 14 1E 98 42 22 20 1A 1E 88 43 1C 1E
-88 43 1E 1E 1C 43 1B 42 34 20 82 9B 36 20 C9 27
-FB 90 2E 00 00 00 C5 27 39 40 0B 00 B0 12 D4 61
-B0 12 F2 62 2A 43 B0 12 80 5D 0C 93 BA 23 30 4D
-1A 4B 04 00 19 4B 06 00 B0 12 C6 5B B0 12 58 61
-18 4B 08 00 88 49 12 1E 88 4A 16 1E 88 49 18 1E
-98 4B 12 00 1C 1E 98 4B 14 00 1E 1E 1A 4B 04 00
-19 4B 06 00 30 40 02 5C 9B 52 1E 20 12 00 8B 63
-14 00 1A 42 1A 20 19 42 1C 20 30 40 02 5C B2 40
-00 02 1E 20 1B 42 32 20 B0 12 E8 62 82 43 1E 20
-DB 53 03 00 DB 92 12 20 03 00 22 20 CB 43 03 00
-B0 12 68 5C 08 12 0A 12 B0 12 CC 60 2A 91 05 24
-B0 12 44 61 2A 41 B0 12 C0 5B 3A 41 38 41 98 42
-26 20 00 1E 92 93 02 20 03 24 98 42 28 20 02 1E
-B0 12 44 61 9B 42 26 20 0E 00 9B 42 28 20 10 00
-30 40 D6 5C D0 5E 05 57 52 49 54 45 B0 12 FE 62
-30 4D B2 60 07 53 44 5F 45 4D 49 54 B2 90 00 02
-1E 20 02 28 B0 12 FE 62 18 42 1E 20 C8 4E 00 1E
-92 53 1E 20 3E 4F 30 4D 58 4B 13 00 59 4B 14 00
-89 10 09 58 58 4B 15 00 5B 42 12 20 0A 43 3C 42
-08 11 09 10 4A 10 1C 83 0B 11 FA 2B 0A 11 1C 83
-FD 37 1B 42 32 20 19 5B 0A 00 18 6B 0C 00 8B 49
-0E 00 8B 48 10 00 CB 4A 03 00 1A 4B 12 00 BB C0
-FF 01 12 00 3A F0 FF 01 82 4A 1E 20 B0 12 72 5D
-30 4D 0C 93 38 20 38 90 E0 01 03 2C C8 93 20 1E
-02 24 7C 40 E5 00 C8 4C 00 1E B0 12 F2 62 B0 12
-74 5C 82 4A 2A 20 0B 4A B0 12 C0 5B 1A 48 00 1E
-88 43 00 1E 92 93 02 20 09 24 19 48 02 1E 88 43
-02 1E 39 F0 FF 0F 39 90 FF 0F 02 20 3A 93 0E 24
-82 4A 22 20 82 49 24 20 B0 12 74 5C 0B 9A E6 27
-0A 12 0A 4B B0 12 44 61 3A 41 DD 3F 0A 4B B0 12
-44 61 B0 12 5E 5E 30 4D 66 4E 08 54 45 52 4D 32
-53 44 22 00 0D 12 87 12 E4 5E 2C 40 02 00 74 43
-C0 48 36 5F 86 64 3D 41 92 C3 DC 05 08 43 B0 12
-90 44 92 B3 DC 05 FD 27 59 42 CC 05 69 92 0D 24
-C8 49 00 1E 18 53 38 90 FF 01 F3 2B 03 24 B0 12
-FE 62 EC 3F B0 12 A2 44 EC 3F B0 12 A2 44 82 48
-1E 20 B0 12 5E 5E 3D 41 30 4D A6 4D 0A 7B 53 44
-5F 54 4F 4F 4C 53 7D 00 30 4D 74 63 06 53 45 43
-54 4F 52 00 09 4E 2A 4F B0 12 C6 5B 0D 12 87 12
-42 42 D4 42 F0 42 90 45 58 45 2C 40 00 1E 2C 40
-00 02 E2 66 22 40 EA 5E 07 43 4C 55 53 54 45 52
-82 4E 24 20 A2 4F 22 20 B0 12 96 5C 9F 42 1A 20
-00 00 1E 42 1C 20 DE 3F CA 4F 03 46 41 54 2F 82
-8F 4E 02 00 9F 42 08 20 00 00 0E 43 D3 3F DE 5E
-03 44 49 52 2F 82 8F 4E 02 00 92 42 2C 20 22 20
-92 42 2E 20 24 20 E0 3F CC 64 07 7B 54 4F 4F 4C
-53 7D 30 4D 5A 54 03 41 4E 44 3E FF 30 4D 28 50
-02 2E 53 00 8F 4E FE FF 0E 4F 2E 83 8F 4E FA FF
-3E 40 80 1C 2E 83 8F 4E FC FF 3F 80 06 00 2E 8F
-0E 11 0D 12 87 12 2C 40 3C 00 1C 45 5E 43 2C 40
-08 00 1C 45 2C 40 3E 00 1C 45 58 45 82 40 82 40
-8E 41 BA 41 BC 65 5A 40 5A 40 22 40 C0 41 F8 41
-EA 40 26 43 2C 40 02 00 D0 41 BE 65 22 40 70 65
-03 2E 52 53 8F 4E FE FF 8F 41 FA FF 3E 40 E0 1C
-D2 3F A8 4C 01 3F 2E 4E 30 40 26 43 B4 50 03 50
-41 44 85 12 E4 1C 66 63 05 57 4F 52 44 53 0D 12
-87 12 BE 45 2C 40 03 00 6E 45 2C 40 CA 1D EA 40
-F2 65 2C 40 10 00 3C 40 18 41 58 4F 2C 40 00 00
-3C 40 2C 40 10 00 3C 40 18 41 2C 40 00 00 C0 41
-3C 40 F8 41 F2 65 18 41 EA 40 A4 41 B0 41 4E 66
-5A 40 5A 40 F8 41 3C 40 F2 65 18 41 EA 40 2C 40
-02 00 D0 41 30 66 4C 40 B0 41 90 66 3C 40 2C 40
-02 00 20 41 EA 40 92 40 F2 65 18 41 F2 40 3C 40
-C0 48 2C 40 7F 00 6A 65 90 45 00 41 2C 40 0F 00
-6A 65 2C 40 10 00 70 40 20 41 6E 45 AC 41 1C 66
-5A 40 22 40 F8 5E 03 4D 41 58 2E 9F 07 38 2F 53
-30 4D 96 66 03 4D 49 4E 2E 9F F9 3B 3E 4F 30 4D
-6A 64 03 55 2E 52 0D 12 87 12 A8 40 42 42 2C 40
-00 00 A2 42 D4 42 F0 42 B4 40 82 40 20 41 2C 40
-00 00 9A 66 6E 45 90 45 22 40 40 65 04 44 55 4D
-50 00 0D 12 12 12 DC 1D B2 40 10 00 DC 1D 2E 5F
-87 12 70 40 82 40 82 40 26 43 2C 40 01 00 20 41
-26 43 2C 40 FE FF 6A 65 C0 41 BE 45 F8 41 2C 40
-07 00 B6 66 58 45 F8 41 2C 40 10 00 18 41 F8 41
-C0 41 F8 41 00 41 2C 40 03 00 B6 66 E2 41 22 67
-58 45 58 45 F8 41 2C 40 10 00 18 41 F8 41 C0 41
-F8 41 00 41 2C 40 7E 00 A8 66 20 42 9A 66 1C 45
-E2 41 40 67 2C 40 10 00 D0 41 0A 67 B4 40 2C 42
-F2 40 22 40
-@FFFE
-7A 51
-q
index 1ebaf9a..0c9c5d5 100644 (file)
@@ -1,7 +1,5 @@
 !MSP430FR2355.pat
 
-
-
 ! ----------------------------------------------
 ! MSP430FR2355 MEMORY MAP
 ! ----------------------------------------------
@@ -24,7 +22,7 @@
 ! ----------------------------------------------
 PAGESIZE=512!         ; MPU unit
 ! ----------------------------------------------
-! BSL                           
+! BSL
 ! ----------------------------------------------
 BSL1=\$01000!
 BSL2=\$0FFC00!
@@ -53,22 +51,22 @@ FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled
 SIGNATURES=\$FF80!      JTAG/BSL signatures
 JTAG_SIG1=\$FF80!       if 0 (electronic fuse=0) enable JTAG/SBW ! reset by wipe and by S1+<reset>
 JTAG_SIG2=\$FF82!       if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
-BSL_SIG1=\$FF84!      
-BSL_SIG2=\$FF86!      
-BSL_CONF_SIG=\$FF88!      
-BSL_CONF=\$FF8A!      
-BSL_I2C_ADRE=\$FF8C!      
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
+BSL_CONF_SIG=\$FF88!
+BSL_CONF=\$FF8A!
+BSL_I2C_ADRE=\$FF8C!
 JTAG_PASSWORD=\$FF88!   256 bits
 BSL_PASSWORD=\$FFE0!    256 bits
 INTVECT=\$FFCE!         FFCE-FFFF :  24 vectors + reset
 
-P4_Vec=\$FFCE!    
+P4_Vec=\$FFCE!
 P3_Vec=\$FFD0!
-P2_Vec=\$FFD2!    
+P2_Vec=\$FFD2!
 P1_Vec=\$FFD4!
-SAC1SAC3_Vec=\$FFD6!    
-SAC0SAC2_Vec=\$FFD8!     
-eCOMPx_Vec=\$FFDA! 
+SAC1SAC3_Vec=\$FFD6!
+SAC0SAC2_Vec=\$FFD8!
+eCOMPx_Vec=\$FFDA!
 ADC10_Vec=\$FFDC!
 eUSCI_B1_Vec=\$FFDE!
 eUSCI_B0_Vec=\$FFE0!
@@ -103,14 +101,14 @@ LPM0=\$18! SR(LPM0+GIE)
 \#Z=\#2!        = SR(1) Zero flag
 \#N=\#4!        = SR(2) Negative flag
 \#GIE=\#8!      = SR(3) Enable Int
-\#CPUOFF=\#\$10!= SR(4) CPUOFF    
+\#CPUOFF=\#\$10!= SR(4) CPUOFF
 \#OSCOFF=\#\$20!= SR(5) OSCOFF
-\#SCG0=\#\$40!  = SR(6) SCG0     
+\#SCG0=\#\$40!  = SR(6) SCG0
 \#SCG1=\#\$80!  = SR(7) SCG1
 \#V=\#\$100!    = SR(8) oVerflow flag
-\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.  
-\#UF10=\#\$400! = SR(10) User Flag 2  
-\#UF11=\#\$800! = SR(11) User Flag 3  
+\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.
+\#UF10=\#\$400! = SR(10) User Flag 2
+\#UF11=\#\$800! = SR(11) User Flag 3
 
 ! ============================================
 ! PORTx, Reg  bits :
@@ -139,7 +137,7 @@ RET=MOV \@R1+,R0!   \ MOV @RSP+,PC
 NOP=MOV \#0,R3!     \                one word one cycle
 NOP2=\$3C00 ,!      \ compile JMP 0  one word two cycles
 NOP3=MOV R0,R0!     \ MOV PC,PC      one word three cycles
-NEXT=MOV \@R13+,R0! \ MOV @IP+,PC   
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
 SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 
 
@@ -155,29 +153,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -204,7 +194,7 @@ PAD_I2CADR=\$20E0!  \ RX I2C address
 PAD_I2CCNT=\$20E2!  \ count max
 PAD_ORG=\$20E4!     \ user scratch pad buffer, 84 bytes, grow up
 
-TIB_I2CADR=\$2138!  \ TX I2C address 
+TIB_I2CADR=\$2138!  \ TX I2C address
 TIB_I2CCNT=\$213A!  \ count of bytes
 TIB_ORG=\$213C!     \ Terminal input buffer, 84 bytes, grow up
 
@@ -258,7 +248,7 @@ SD_BUF=\$2200!      \ SD_Card buffer
 BUFEND=\$2400!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2402!
 BS_FirstSectorL=\$2404!
@@ -286,7 +276,7 @@ SectorH=\$241C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$241E! 
+BufferPtr=\$241E!
 BufferLen=\$2420!
 
 ! ---------------------------------------
@@ -294,8 +284,8 @@ BufferLen=\$2420!
 ! ---------------------------------------
 ClusterL=\$2422!     16 bits wide (FAT16)
 ClusterH=\$2424!     16 bits wide (FAT16)
-NewClusterL=\$2426!  16 bits wide (FAT16) 
-NewClusterH=\$2428!  16 bits wide (FAT16) 
+NewClusterL=\$2426!  16 bits wide (FAT16)
+NewClusterH=\$2428!  16 bits wide (FAT16)
 CurFATsector=\$242A!
 
 ! ---------------------------------------
@@ -303,7 +293,7 @@ CurFATsector=\$242A!
 ! ---------------------------------------
 DIRclusterL=\$242C!  contains the Cluster of current directory ; 1 if FAT16 root directory
 DIRclusterH=\$242E!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$2430!  
+EntryOfst=\$2430!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -319,7 +309,7 @@ EndOfPath=\$2436!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -341,23 +331,23 @@ HDLH_CurSize=20!    written size / not yet read size (Long)
 HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2440!
-HandleEnd=\$2500!
+FirstHandle=\$2438!
+HandleEnd=\$24F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2500!
-LOAD_STACK=\$2502!
-LOAD_STACK_END=\$2538!
+LOADPTR=\$24F8!
+LOAD_STACK=\$24FA!
+LOAD_STACK_END=\$2530!
 
 !SD_card Input Buffer
-SDIB_I2CADR=\$2538!
-SDIB_I2CCNT=\$253A!
-SDIB_ORG=\$253C!
+SDIB_I2CADR=\$2530!
+SDIB_I2CCNT=\$2532!
+SDIB_ORG=\$2534!
 
-SD_END_DATA=\$2590!
+SD_END_DATA=\$2588!
 
 ! ----------------------------------------------------------------------
 ! MSP430FR2355 Peripheral File Map
@@ -399,43 +389,43 @@ SFRRPCR=\$104!      \ SFR reset pin control
 PMMCTL0=\$120!      \ PMM Control 0
 PMMCTL1=\$122!      \ PMM Control 0
 PMMCTL2=\$124!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-SYSCTL=\$140!       \ System control 
-SYSBSLC=\$142!      \ Bootstrap loader configuration area             
-SYSJMBC=\$146!      \ JTAG mailbox control        
-SYSJMBI0=\$148!     \ JTAG mailbox input 0        
-SYSJMBI1=\$14A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$14C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$14E!     \ JTAG mailbox output 1       
-SYSUNIV=\$15A!      \ User NMI vector generator   
-SYSSNIV=\$15C!      \ System NMI vector generator 
-SYSRSTIV=\$15E!     \ Reset vector generator      
-SYSCFG0=\$160!      \ System configuration 0 
-SYSCFG1=\$162!      \ System configuration 1 
-SYSCFG2=\$164!      \ System configuration 2 
-SYSCFG3=\$166!      \ System configuration 3 
-
-CSCTL0=\$180!       \ CS control 0 
-CSCTL1=\$182!       \ CS control 1 
-CSCTL2=\$184!       \ CS control 2 
-CSCTL3=\$186!       \ CS control 3 
-CSCTL4=\$188!       \ CS control 4 
-CSCTL5=\$18A!       \ CS control 5 
-CSCTL6=\$18C!       \ CS control 6 
-CSCTL7=\$18E!       \ CS control 7 
-CSCTL8=\$190!       \ CS control 8 
-
-
-FRCTLCTL0=\$1A0!    \ FRAM control 0    
-GCCTL0=\$1A4!       \ General control 0 
-GCCTL1=\$1A6!       \ General control 1 
-
-CRC16DI=\$1C0!      \ CRC data input                  
-CRCDIRB=\$1C2!      \ CRC data input reverse byte     
-CRCINIRES=\$1C4!    \ CRC initialization and result   
-CRCRESR=\$1C6!      \ CRC result reverse byte  
+SYSCTL=\$140!       \ System control
+SYSBSLC=\$142!      \ Bootstrap loader configuration area
+SYSJMBC=\$146!      \ JTAG mailbox control
+SYSJMBI0=\$148!     \ JTAG mailbox input 0
+SYSJMBI1=\$14A!     \ JTAG mailbox input 1
+SYSJMBO0=\$14C!     \ JTAG mailbox output 0
+SYSJMBO1=\$14E!     \ JTAG mailbox output 1
+SYSUNIV=\$15A!      \ User NMI vector generator
+SYSSNIV=\$15C!      \ System NMI vector generator
+SYSRSTIV=\$15E!     \ Reset vector generator
+SYSCFG0=\$160!      \ System configuration 0
+SYSCFG1=\$162!      \ System configuration 1
+SYSCFG2=\$164!      \ System configuration 2
+SYSCFG3=\$166!      \ System configuration 3
+
+CSCTL0=\$180!       \ CS control 0
+CSCTL1=\$182!       \ CS control 1
+CSCTL2=\$184!       \ CS control 2
+CSCTL3=\$186!       \ CS control 3
+CSCTL4=\$188!       \ CS control 4
+CSCTL5=\$18A!       \ CS control 5
+CSCTL6=\$18C!       \ CS control 6
+CSCTL7=\$18E!       \ CS control 7
+CSCTL8=\$190!       \ CS control 8
+
+
+FRCTLCTL0=\$1A0!    \ FRAM control 0
+GCCTL0=\$1A4!       \ General control 0
+GCCTL1=\$1A6!       \ General control 1
+
+CRC16DI=\$1C0!      \ CRC data input
+CRCDIRB=\$1C2!      \ CRC data input reverse byte
+CRCINIRES=\$1C4!    \ CRC initialization and result
+CRCRESR=\$1C6!      \ CRC result reverse byte
 
 WDTCTL=\$1CC!        \ WDT control register
 
@@ -526,190 +516,190 @@ P6SEL0=\$249!
 P6SEL1=\$24B!
 
 
-RTCCTL=\$300!       \ RTC control                                  
-RTCIV=\$304!        \ RTC interrupt vector word                       
-RTCMOD=\$308!       \ RTC modulo                                       
-RTCCNT=\$30C!       \ RTC counter register    
+RTCCTL=\$300!       \ RTC control
+RTCIV=\$304!        \ RTC interrupt vector word
+RTCMOD=\$308!       \ RTC modulo
+RTCCNT=\$30C!       \ RTC counter register
 
 
 TBCLR=4!
 TBIFG=1!
 CCIFG=1!
 
-TB0CTL=\$380!       \ TB0 control                 
-TB0CCTL0=\$382!     \ Capture/compare control 0   
-TB0CCTL1=\$384!     \ Capture/compare control 1   
-TB0CCTL2=\$386!     \ Capture/compare control 2   
-TB0R=\$390!         \ TB0 counter register        
-TB0CCR0=\$392!      \ Capture/compare register 0  
-TB0CCR1=\$394!      \ Capture/compare register 1  
-TB0CCR2=\$396!      \ Capture/compare register 2  
-TB0EX0=\$3A0!       \ TB0 expansion register 0    
-TB0IV=\$3AE!        \ TB0 interrupt vector        
-
-TB1CTL=\$3C0!       \ TB1 control                 
-TB1CCTL0=\$3C2!     \ Capture/compare control 0   
-TB1CCTL1=\$3C4!     \ Capture/compare control 1   
-TB1CCTL2=\$3C6!     \ Capture/compare control 2   
-TB1R=\$3D0!         \ TB0 counter register        
-TB1CCR0=\$3D2!      \ Capture/compare register 0  
-TB1CCR1=\$3D4!      \ Capture/compare register 1  
-TB1CCR2=\$3D6!      \ Capture/compare register 2  
-TB1EX0=\$3E0!       \ TB0 expansion register 0    
-TB1IV=\$3EE!        \ TB0 interrupt vector        
-
-TB2CTL=\$400!       \ TB2 control                 
-TB2CCTL0=\$402!     \ Capture/compare control 0   
-TB2CCTL1=\$404!     \ Capture/compare control 1   
-TB2CCTL2=\$406!     \ Capture/compare control 2   
-TB2R=\$410!         \ TB0 counter register        
-TB2CCR0=\$412!      \ Capture/compare register 0  
-TB2CCR1=\$414!      \ Capture/compare register 1  
-TB2CCR2=\$416!      \ Capture/compare register 2  
-TB2EX0=\$420!       \ TB0 expansion register 0    
-TB2IV=\$42E!        \ TB0 interrupt vector        
-
-TB3CTL=\$440!       \ TB3 control                 
-TB3CCTL0=\$442!     \ Capture/compare control 0   
-TB3CCTL1=\$444!     \ Capture/compare control 1   
-TB3CCTL2=\$446!     \ Capture/compare control 2   
-TB3CCTL3=\$448!     \ Capture/compare control 3   
-TB3CCTL4=\$44A!     \ Capture/compare control 4   
-TB3CCTL6=\$44C!     \ Capture/compare control 5   
-TB3CCTL6=\$44E!     \ Capture/compare control 6   
-TB3R=\$450!         \ TB0 counter register        
-TB3CCR0=\$452!      \ Capture/compare register 0  
-TB3CCR1=\$454!      \ Capture/compare register 1  
-TB3CCR2=\$456!      \ Capture/compare register 2  
-TB3CCR3=\$456!      \ Capture/compare register 3  
-TB3CCR4=\$456!      \ Capture/compare register 4  
-TB3CCR5=\$456!      \ Capture/compare register 5  
-TB3CCR6=\$456!      \ Capture/compare register 6  
-TB3EX0=\$460!       \ TB0 expansion register 0    
-TB3IV=\$46E!        \ TB0 interrupt vector        
-
-
-
-MPY=\$4C0!          \ 16-bit operand 1 \96 multiply                     
-MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply              
-MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate          
-MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate   
-OP2=\$4C8!          \ 16-bit operand 2                                
-RESLO=\$4CA!        \ 16 Ã— 16 result low word                         
-RESHI=\$4CC!        \ 16 Ã— 16 result high word                        
-SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register                  
-MPY32L=\$4D0!       \ 32-bit operand 1 \96 multiply low word            
-MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word           
-MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word     
-MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word    
-MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word         
-MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word        
-MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word  
-MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word 
-OP2L=\$4E0!         \ 32-bit operand 2 \96 low word                 
-OP2H=\$4E2!         \ 32-bit operand 2 \96 high word                
-RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word   
-RES1=\$4E6!         \ 32 Ã— 32 result 1                            
-RES2=\$4E8!         \ 32 Ã— 32 result 2                            
-RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word    
-MPY32CTL0=\$4EC!    \ MPY32 control register 0                    
-
-
-
-UCA0CTLW0=\$500!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$502!    \ eUSCI_A control word 1        
-UCA0BRW=\$506!         
-UCA0BR0=\$506!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$507!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$508!    \ eUSCI_A modulation control    
-UCA0STAT=\$50A!     \ eUSCI_A status                
-UCA0RXBUF=\$50C!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$50E!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$510!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$512!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$513!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$51A!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$51C!      \ eUSCI_A interrupt flags       
-UCA0IV=\$51E!       \ eUSCI_A interrupt vector word 
-
-UCA1CTLW0=\$580!    \ eUSCI_A control word 0        
-UCA1CTLW1=\$582!    \ eUSCI_A control word 1        
-UCA1BRW=\$586!         
-UCA1BR0=\$586!      \ eUSCI_A baud rate 0           
-UCA1BR1=\$587!      \ eUSCI_A baud rate 1           
-UCA1MCTLW=\$588!    \ eUSCI_A modulation control    
-UCA1STAT=\$58A!     \ eUSCI_A status                
-UCA1RXBUF=\$58C!    \ eUSCI_A receive buffer        
-UCA1TXBUF=\$58E!    \ eUSCI_A transmit buffer       
-UCA1ABCTL=\$590!    \ eUSCI_A LIN control           
-UCA1IRTCTL=\$592!   \ eUSCI_A IrDA transmit control 
-UCA1IRRCTL=\$593!   \ eUSCI_A IrDA receive control  
-UCA1IE=\$59A!       \ eUSCI_A interrupt enable      
-UCA1IFG=\$59C!      \ eUSCI_A interrupt flags       
-UCA1IV=\$59E!       \ eUSCI_A interrupt vector word 
-
-
-UCB0CTLW0=\$540!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$542!    \ eUSCI_B control word 1 
-UCB0BRW=\$546!         
-UCB0BR0=\$546!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$547!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$548!    \ eUSCI_B status word 
-UCBCNT0=\$549!      \ eUSCI_B hardware count           
-UCB0TBCNT=\$54A!    \ eUSCI_B byte counter threshold  
-UCB0RXBUF=\$54C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$54E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$554!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$556!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$558!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$55A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$55C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$55E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$560!    \ eUSCI I2C slave address         
-UCB0IE=\$56A!       \ eUSCI interrupt enable          
-UCB0IFG=\$56C!      \ eUSCI interrupt flags           
-UCB0IV=\$56E!       \ eUSCI interrupt vector word     
+TB0CTL=\$380!       \ TB0 control
+TB0CCTL0=\$382!     \ Capture/compare control 0
+TB0CCTL1=\$384!     \ Capture/compare control 1
+TB0CCTL2=\$386!     \ Capture/compare control 2
+TB0R=\$390!         \ TB0 counter register
+TB0CCR0=\$392!      \ Capture/compare register 0
+TB0CCR1=\$394!      \ Capture/compare register 1
+TB0CCR2=\$396!      \ Capture/compare register 2
+TB0EX0=\$3A0!       \ TB0 expansion register 0
+TB0IV=\$3AE!        \ TB0 interrupt vector
+
+TB1CTL=\$3C0!       \ TB1 control
+TB1CCTL0=\$3C2!     \ Capture/compare control 0
+TB1CCTL1=\$3C4!     \ Capture/compare control 1
+TB1CCTL2=\$3C6!     \ Capture/compare control 2
+TB1R=\$3D0!         \ TB0 counter register
+TB1CCR0=\$3D2!      \ Capture/compare register 0
+TB1CCR1=\$3D4!      \ Capture/compare register 1
+TB1CCR2=\$3D6!      \ Capture/compare register 2
+TB1EX0=\$3E0!       \ TB0 expansion register 0
+TB1IV=\$3EE!        \ TB0 interrupt vector
+
+TB2CTL=\$400!       \ TB2 control
+TB2CCTL0=\$402!     \ Capture/compare control 0
+TB2CCTL1=\$404!     \ Capture/compare control 1
+TB2CCTL2=\$406!     \ Capture/compare control 2
+TB2R=\$410!         \ TB0 counter register
+TB2CCR0=\$412!      \ Capture/compare register 0
+TB2CCR1=\$414!      \ Capture/compare register 1
+TB2CCR2=\$416!      \ Capture/compare register 2
+TB2EX0=\$420!       \ TB0 expansion register 0
+TB2IV=\$42E!        \ TB0 interrupt vector
+
+TB3CTL=\$440!       \ TB3 control
+TB3CCTL0=\$442!     \ Capture/compare control 0
+TB3CCTL1=\$444!     \ Capture/compare control 1
+TB3CCTL2=\$446!     \ Capture/compare control 2
+TB3CCTL3=\$448!     \ Capture/compare control 3
+TB3CCTL4=\$44A!     \ Capture/compare control 4
+TB3CCTL6=\$44C!     \ Capture/compare control 5
+TB3CCTL6=\$44E!     \ Capture/compare control 6
+TB3R=\$450!         \ TB0 counter register
+TB3CCR0=\$452!      \ Capture/compare register 0
+TB3CCR1=\$454!      \ Capture/compare register 1
+TB3CCR2=\$456!      \ Capture/compare register 2
+TB3CCR3=\$456!      \ Capture/compare register 3
+TB3CCR4=\$456!      \ Capture/compare register 4
+TB3CCR5=\$456!      \ Capture/compare register 5
+TB3CCR6=\$456!      \ Capture/compare register 6
+TB3EX0=\$460!       \ TB0 expansion register 0
+TB3IV=\$46E!        \ TB0 interrupt vector
+
+
+
+MPY=\$4C0!          \ 16-bit operand 1 \96 multiply
+MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply
+MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate
+MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate
+OP2=\$4C8!          \ 16-bit operand 2
+RESLO=\$4CA!        \ 16 Ã— 16 result low word
+RESHI=\$4CC!        \ 16 Ã— 16 result high word
+SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register
+MPY32L=\$4D0!       \ 32-bit operand 1 \96 multiply low word
+MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word
+MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word
+MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word
+MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word
+MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word
+MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word
+MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word
+OP2L=\$4E0!         \ 32-bit operand 2 \96 low word
+OP2H=\$4E2!         \ 32-bit operand 2 \96 high word
+RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word
+RES1=\$4E6!         \ 32 Ã— 32 result 1
+RES2=\$4E8!         \ 32 Ã— 32 result 2
+RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word
+MPY32CTL0=\$4EC!    \ MPY32 control register 0
+
+
+
+UCA0CTLW0=\$500!    \ eUSCI_A control word 0
+UCA0CTLW1=\$502!    \ eUSCI_A control word 1
+UCA0BRW=\$506!
+UCA0BR0=\$506!      \ eUSCI_A baud rate 0
+UCA0BR1=\$507!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$508!    \ eUSCI_A modulation control
+UCA0STAT=\$50A!     \ eUSCI_A status
+UCA0RXBUF=\$50C!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$50E!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$510!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$512!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$513!   \ eUSCI_A IrDA receive control
+UCA0IE=\$51A!       \ eUSCI_A interrupt enable
+UCA0IFG=\$51C!      \ eUSCI_A interrupt flags
+UCA0IV=\$51E!       \ eUSCI_A interrupt vector word
+
+UCA1CTLW0=\$580!    \ eUSCI_A control word 0
+UCA1CTLW1=\$582!    \ eUSCI_A control word 1
+UCA1BRW=\$586!
+UCA1BR0=\$586!      \ eUSCI_A baud rate 0
+UCA1BR1=\$587!      \ eUSCI_A baud rate 1
+UCA1MCTLW=\$588!    \ eUSCI_A modulation control
+UCA1STAT=\$58A!     \ eUSCI_A status
+UCA1RXBUF=\$58C!    \ eUSCI_A receive buffer
+UCA1TXBUF=\$58E!    \ eUSCI_A transmit buffer
+UCA1ABCTL=\$590!    \ eUSCI_A LIN control
+UCA1IRTCTL=\$592!   \ eUSCI_A IrDA transmit control
+UCA1IRRCTL=\$593!   \ eUSCI_A IrDA receive control
+UCA1IE=\$59A!       \ eUSCI_A interrupt enable
+UCA1IFG=\$59C!      \ eUSCI_A interrupt flags
+UCA1IV=\$59E!       \ eUSCI_A interrupt vector word
+
+
+UCB0CTLW0=\$540!    \ eUSCI_B control word 0
+UCB0CTLW1=\$542!    \ eUSCI_B control word 1
+UCB0BRW=\$546!
+UCB0BR0=\$546!      \ eUSCI_B bit rate 0
+UCB0BR1=\$547!      \ eUSCI_B bit rate 1
+UCB0STATW=\$548!    \ eUSCI_B status word
+UCBCNT0=\$549!      \ eUSCI_B hardware count
+UCB0TBCNT=\$54A!    \ eUSCI_B byte counter threshold
+UCB0RXBUF=\$54C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$54E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$554!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$556!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$558!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$55A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$55C!    \ eUSCI_B received address
+UCB0ADDMASK=\$55E!  \ eUSCI_B address mask
+UCB0I2CSA=\$560!    \ eUSCI I2C slave address
+UCB0IE=\$56A!       \ eUSCI interrupt enable
+UCB0IFG=\$56C!      \ eUSCI interrupt flags
+UCB0IV=\$56E!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
-UCB1CTLW0=\$5C0!    \ eUSCI_B control word 0          
-UCB1CTLW1=\$5C2!    \ eUSCI_B control word 1 
-UCB1BRW=\$5C6!         
-UCB1BR0=\$5C6!      \ eUSCI_B bit rate 0              
-UCB1BR1=\$5C7!      \ eUSCI_B bit rate 1              
-UCB1STATW=\$5C8!    \ eUSCI_B status word 
-UCB1NT0=\$5C9!      \ eUSCI_B hardware count           
-UCB1TBCNT=\$5CA!    \ eUSCI_B byte counter threshold  
-UCB1RXBUF=\$5CC!    \ eUSCI_B receive buffer          
-UCB1TXBUF=\$5CE!    \ eUSCI_B transmit buffer         
-UCB1I2COA0=\$5D4!   \ eUSCI_B I2C own address 0       
-UCB1I2COA1=\$5D6!   \ eUSCI_B I2C own address 1       
-UCB1I2COA2=\$5D8!   \ eUSCI_B I2C own address 2       
-UCB1I2COA3=\$5DA!   \ eUSCI_B I2C own address 3       
-UCB1ADDRX=\$5DC!    \ eUSCI_B received address        
-UCB1ADDMASK=\$5DE!  \ eUSCI_B address mask            
-UCB1I2CSA=\$5E0!    \ eUSCI I2C slave address         
-UCB1IE=\$5EA!       \ eUSCI interrupt enable          
-UCB1IFG=\$5EC!      \ eUSCI interrupt flags           
-UCB1IV=\$5EE!       \ eUSCI interrupt vector word  
-
-BAKMEM0=\$660!      \ Backup Memory 0     
-BAKMEM1=\$662!      \ Backup Memory 1     
-BAKMEM2=\$664!      \ Backup Memory 2     
-BAKMEM3=\$666!      \ Backup Memory 3     
-BAKMEM4=\$668!      \ Backup Memory 4     
-BAKMEM5=\$66A!      \ Backup Memory 5     
-BAKMEM6=\$66C!      \ Backup Memory 6     
-BAKMEM7=\$66E!      \ Backup Memory 7     
-BAKMEM8=\$670!      \ Backup Memory 8     
-BAKMEM9=\$672!      \ Backup Memory 9     
-BAKMEM10=\$674!     \ Backup Memory 10    
-BAKMEM11=\$676!     \ Backup Memory 11    
-BAKMEM12=\$678!     \ Backup Memory 12    
-BAKMEM13=\$67A!     \ Backup Memory 13    
-BAKMEM14=\$67C!     \ Backup Memory 14    
-BAKMEM15=\$67E!     \ Backup Memory 15    
+UCB1CTLW0=\$5C0!    \ eUSCI_B control word 0
+UCB1CTLW1=\$5C2!    \ eUSCI_B control word 1
+UCB1BRW=\$5C6!
+UCB1BR0=\$5C6!      \ eUSCI_B bit rate 0
+UCB1BR1=\$5C7!      \ eUSCI_B bit rate 1
+UCB1STATW=\$5C8!    \ eUSCI_B status word
+UCB1NT0=\$5C9!      \ eUSCI_B hardware count
+UCB1TBCNT=\$5CA!    \ eUSCI_B byte counter threshold
+UCB1RXBUF=\$5CC!    \ eUSCI_B receive buffer
+UCB1TXBUF=\$5CE!    \ eUSCI_B transmit buffer
+UCB1I2COA0=\$5D4!   \ eUSCI_B I2C own address 0
+UCB1I2COA1=\$5D6!   \ eUSCI_B I2C own address 1
+UCB1I2COA2=\$5D8!   \ eUSCI_B I2C own address 2
+UCB1I2COA3=\$5DA!   \ eUSCI_B I2C own address 3
+UCB1ADDRX=\$5DC!    \ eUSCI_B received address
+UCB1ADDMASK=\$5DE!  \ eUSCI_B address mask
+UCB1I2CSA=\$5E0!    \ eUSCI I2C slave address
+UCB1IE=\$5EA!       \ eUSCI interrupt enable
+UCB1IFG=\$5EC!      \ eUSCI interrupt flags
+UCB1IV=\$5EE!       \ eUSCI interrupt vector word
+
+BAKMEM0=\$660!      \ Backup Memory 0
+BAKMEM1=\$662!      \ Backup Memory 1
+BAKMEM2=\$664!      \ Backup Memory 2
+BAKMEM3=\$666!      \ Backup Memory 3
+BAKMEM4=\$668!      \ Backup Memory 4
+BAKMEM5=\$66A!      \ Backup Memory 5
+BAKMEM6=\$66C!      \ Backup Memory 6
+BAKMEM7=\$66E!      \ Backup Memory 7
+BAKMEM8=\$670!      \ Backup Memory 8
+BAKMEM9=\$672!      \ Backup Memory 9
+BAKMEM10=\$674!     \ Backup Memory 10
+BAKMEM11=\$676!     \ Backup Memory 11
+BAKMEM12=\$678!     \ Backup Memory 12
+BAKMEM13=\$67A!     \ Backup Memory 13
+BAKMEM14=\$67C!     \ Backup Memory 14
+BAKMEM15=\$67E!     \ Backup Memory 15
 
 ICCSC=\$6C00!    \ Interrupt Compare Controller Status and Control Register
 ICCMVS=\$6C02!   \ Interrupt Compare Controller Mask Virtual Stack Register
@@ -724,61 +714,61 @@ ICCILSR7=\$6C12! \ Interrupt Compare Controller Interrupt Level Setting Register
 
 
 
-ADC10CTL0=\$700!    \ ADC10_B Control register 0               
-ADC10CTL1=\$702!    \ ADC10_B Control register 1               
-ADC10CTL2=\$704!    \ ADC10_B Control register 2               
-ADC10LO=\$706!      \ ADC10_B Window Comparator Low Threshold  
-ADC10HI=\$708!      \ ADC10_B Window Comparator High Threshold 
-ADC10MCTL0=\$70A!   \ ADC10_B Memory Control Register 0        
-ADC10MEM0=\$712!    \ ADC10_B Conversion Memory Register       
-ADC10IE=\$71A!      \ ADC10_B Interrupt Enable                 
-ADC10IFG=\$71C!     \ ADC10_B Interrupt Flags                  
-ADC10IV=\$71E!      \ ADC10_B Interrupt Vector Word            
+ADC10CTL0=\$700!    \ ADC10_B Control register 0
+ADC10CTL1=\$702!    \ ADC10_B Control register 1
+ADC10CTL2=\$704!    \ ADC10_B Control register 2
+ADC10LO=\$706!      \ ADC10_B Window Comparator Low Threshold
+ADC10HI=\$708!      \ ADC10_B Window Comparator High Threshold
+ADC10MCTL0=\$70A!   \ ADC10_B Memory Control Register 0
+ADC10MEM0=\$712!    \ ADC10_B Conversion Memory Register
+ADC10IE=\$71A!      \ ADC10_B Interrupt Enable
+ADC10IFG=\$71C!     \ ADC10_B Interrupt Flags
+ADC10IV=\$71E!      \ ADC10_B Interrupt Vector Word
 
 ADCON=\$10!
 ADCSTART=\$03!
 
 
 
-CP0CTL0=\$8E0!      \ Comparator control 0            
-CP0CTL1=\$8E2!      \ Comparator control 1            
-CP0INT=\$8E6!       \ Comparator interrupt            
-CP0IV=\$8E8!        \ Comparator interrupt vector     
-CP0DACCTL=\$8EA!    \ Comparator built-in DAC control 
-CP0DACDATA=\$8EC!   \ Comparator built-in DAC data    
-
-CP1CTL0=\$900!      \ Comparator control 0            
-CP1CTL1=\$902!      \ Comparator control 1            
-CP1INT=\$906!       \ Comparator interrupt            
-CP1IV=\$908!        \ Comparator interrupt vector     
-CP1DACCTL=\$90A!    \ Comparator built-in DAC control 
-CP1DACDATA=\$90C!   \ Comparator built-in DAC data    
-
-SAC0OA=\$0C80!    SAC0 OA control         
-SAC0PGA=\$0C82!    SAC0 PGA control        
-SAC0DAC=\$0C84!    SAC0 DAC control        
-SAC0DAT=\$0C86!    SAC0 DAC data           
-SAC0DATSTS=\$0C88!    SAC0 DAC status         
-SAC0IV=\$0C8A!    SAC0 interrupt vector   
-
-SAC1OA=\$0C90!    SAC1 OA control         
-SAC1PGA=\$0C92!    SAC1 PGA control        
-SAC1DAC=\$0C94!    SAC1 DAC control        
-SAC1DAT=\$0C96!    SAC1 DAC data           
-SAC1DATSTS=\$0C98!    SAC1 DAC status         
-SAC1IV=\$0C9A!    SAC1 interrupt vector   
-
-SAC2OA=\$0CA0!    SAC2 OA control         
-SAC2PGA=\$0CA2!    SAC2 PGA control        
-SAC2DAC=\$0CA4!    SAC2 DAC control        
-SAC2DAT=\$0CA6!    SAC2 DAC data           
-SAC2DATSTS=\$0CA8!    SAC2 DAC status         
-SAC2IV=\$0CAA!    SAC2 interrupt vector   
-
-SAC3OA=\$0CB0!    SAC3 OA control         
-SAC3PGA=\$0CB2!    SAC3 PGA control        
-SAC3DAC=\$0CB4!    SAC3 DAC control        
-SAC3DAT=\$0CB6!    SAC3 DAC data           
-SAC3DATSTS=\$0CB8!    SAC3 DAC status         
-SAC3IV=\$0CBA!    SAC3 interrupt vector   
+CP0CTL0=\$8E0!      \ Comparator control 0
+CP0CTL1=\$8E2!      \ Comparator control 1
+CP0INT=\$8E6!       \ Comparator interrupt
+CP0IV=\$8E8!        \ Comparator interrupt vector
+CP0DACCTL=\$8EA!    \ Comparator built-in DAC control
+CP0DACDATA=\$8EC!   \ Comparator built-in DAC data
+
+CP1CTL0=\$900!      \ Comparator control 0
+CP1CTL1=\$902!      \ Comparator control 1
+CP1INT=\$906!       \ Comparator interrupt
+CP1IV=\$908!        \ Comparator interrupt vector
+CP1DACCTL=\$90A!    \ Comparator built-in DAC control
+CP1DACDATA=\$90C!   \ Comparator built-in DAC data
+
+SAC0OA=\$0C80!      SAC0 OA control
+SAC0PGA=\$0C82!     SAC0 PGA control
+SAC0DAC=\$0C84!     SAC0 DAC control
+SAC0DAT=\$0C86!     SAC0 DAC data
+SAC0DATSTS=\$0C88!  SAC0 DAC status
+SAC0IV=\$0C8A!      SAC0 interrupt vector
+
+SAC1OA=\$0C90!      SAC1 OA control
+SAC1PGA=\$0C92!     SAC1 PGA control
+SAC1DAC=\$0C94!     SAC1 DAC control
+SAC1DAT=\$0C96!     SAC1 DAC data
+SAC1DATSTS=\$0C98!  SAC1 DAC status
+SAC1IV=\$0C9A!      SAC1 interrupt vector
+
+SAC2OA=\$0CA0!      SAC2 OA control
+SAC2PGA=\$0CA2!     SAC2 PGA control
+SAC2DAC=\$0CA4!     SAC2 DAC control
+SAC2DAT=\$0CA6!     SAC2 DAC data
+SAC2DATSTS=\$0CA8!  SAC2 DAC status
+SAC2IV=\$0CAA!      SAC2 interrupt vector
+
+SAC3OA=\$0CB0!      SAC3 OA control
+SAC3PGA=\$0CB2!     SAC3 PGA control
+SAC3DAC=\$0CB4!     SAC3 DAC control
+SAC3DAT=\$0CB6!     SAC3 DAC data
+SAC3DATSTS=\$0CB8!  SAC3 DAC status
+SAC3IV=\$0CBA!      SAC3 interrupt vector
 
index 4604eb1..aef4832 100644 (file)
@@ -137,29 +137,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -326,20 +318,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2440!
-HandleEnd=\$2500!
+FirstHandle=\$2438!
+HandleEnd=\$24F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2500!
-LOAD_STACK=\$2502!
-LOAD_STACK_END=\$2538!
+LOADPTR=\$24F8!
+LOAD_STACK=\$24FA!
+LOAD_STACK_END=\$2530!
 
 !SD_card Input Buffer
-SDIB_I2CADR=\$2538!
-SDIB_I2CCNT=\$253A!
-SDIB_ORG=\$253C!
+SDIB_I2CADR=\$2530!
+SDIB_I2CCNT=\$2532!
+SDIB_ORG=\$2534!
 
-SD_END_DATA=\$2590!
+SD_END_DATA=\$2588!
 
 
 
index 5581573..64f8c5f 100644 (file)
@@ -123,29 +123,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -312,20 +304,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2440!
-HandleEnd=\$2500!
+FirstHandle=\$2438!
+HandleEnd=\$24F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2500!
-LOAD_STACK=\$2502!
-LOAD_STACK_END=\$2538!
+LOADPTR=\$24F8!
+LOAD_STACK=\$24FA!
+LOAD_STACK_END=\$2530!
 
 !SD_card Input Buffer
-SDIB_I2CADR=\$2538!
-SDIB_I2CCNT=\$253A!
-SDIB_ORG=\$253C!
+SDIB_I2CADR=\$2530!
+SDIB_I2CCNT=\$2532!
+SDIB_ORG=\$2534!
 
-SD_END_DATA=\$2590!
+SD_END_DATA=\$2588!
 
 
 ! ============================================
index f14d6f2..b0e3cb6 100644 (file)
@@ -122,29 +122,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -311,20 +303,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2440!
-HandleEnd=\$2500!
+FirstHandle=\$2438!
+HandleEnd=\$24F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2500!
-LOAD_STACK=\$2502!
-LOAD_STACK_END=\$2538!
+LOADPTR=\$24F8!
+LOAD_STACK=\$24FA!
+LOAD_STACK_END=\$2530!
 
 !SD_card Input Buffer
-SDIB_I2CADR=\$2538!
-SDIB_I2CCNT=\$253A!
-SDIB_ORG=\$253C!
+SDIB_I2CADR=\$2530!
+SDIB_I2CCNT=\$2532!
+SDIB_ORG=\$2534!
 
-SD_END_DATA=\$2590!
+SD_END_DATA=\$2588!
 
 
 ! ============================================
index 2cbb175..2da8b39 100644 (file)
@@ -21,7 +21,7 @@ INFOBEND=\$187F!
 INFOASTART=\$1880!
 INFOAEND=\$18FF!
 TLVSTAT=\$1A00!         Device Descriptor Info (Tag-Lenght-Value)
-TLVEND=\$1A7F! 
+TLVEND=\$1A7F!
 RAMSTART=\$1C00!
 RAMEND=\$1FFF!
 PROGRAMSTART=\$C200!    Code space start
@@ -29,8 +29,8 @@ FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled
 SIGNATURES=\$FF80!      JTAG/BSL signatures
 JTAG_SIG1=\$FF80!       if 0 (electronic fuse=0) enable JTAG/SBW; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
-BSL_SIG1=\$FF84!  
-BSL_SIG2=\$FF86!  
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 JTAG_PASSWORD=\$FF88!   256 bits
 INTVECT=\$FFCE!         FFCE-FFFF
 BSL_PASSWORD=\$FFE0!    256 bits
@@ -49,7 +49,7 @@ TA1_x_Vec=\$FFE0!       All others
 TA1_0_Vec=\$FFE2!       only CCIFG0
 DMA_Vec=\$FFE4!
 !eUSCI_A1_Vec=\$FFE6!
-TA0_x_Vec=\$FFE8!       All others 
+TA0_x_Vec=\$FFE8!       All others
 TA0_0_Vec=\$FFEA!       only CCIFG0
 ADC10_B_Vec=\$FFEC!
 eUSCI_B0_Vec=\$FFEE!
@@ -77,14 +77,14 @@ LPM0=\$18! SR(LPM0+GIE)
 \#Z=\#2!        = SR(1) Zero flag
 \#N=\#4!        = SR(2) Negative flag
 \#GIE=\#8!      = SR(3) Enable Int
-\#CPUOFF=\#\$10!= SR(4) CPUOFF    
+\#CPUOFF=\#\$10!= SR(4) CPUOFF
 \#OSCOFF=\#\$20!= SR(5) OSCOFF
-\#SCG0=\#\$40!  = SR(6) SCG0     
+\#SCG0=\#\$40!  = SR(6) SCG0
 \#SCG1=\#\$80!  = SR(7) SCG1
 \#V=\#\$100!    = SR(8) oVerflow flag
-\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.  
-\#UF10=\#\$400! = SR(10) User Flag 2  
-\#UF11=\#\$800! = SR(11) User Flag 3  
+\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.
+\#UF10=\#\$400! = SR(10) User Flag 2
+\#UF11=\#\$800! = SR(11) User Flag 3
 
 ! ============================================
 ! PORTx, Reg  bits :
@@ -113,7 +113,7 @@ RET=MOV \@R1+,R0!   \ MOV @RSP+,PC
 NOP=MOV \#0,R3!     \                one word one cycle
 NOP2=\$3C00 ,!      \ compile JMP 0  one word two cycles
 NOP3=MOV R0,R0!     \ MOV PC,PC      one word three cycles
-NEXT=MOV \@R13+,R0! \ MOV @IP+,PC   
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
 SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 
 ! =================================================
@@ -129,93 +129,85 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
-FATtype=\$181A!
-BS_FirstSectorL=\$181C!
-BS_FirstSectorH=\$181E!
-OrgFAT1=\$1820!
-FATSize=\$1822!
-OrgFAT2=\$1824!
-OrgRootDir=\$1826!
-OrgClusters=\$1828!         Sector of Cluster 0
-SecPerClus=\$182A!
+FATtype=\$182C!
+BS_FirstSectorL=\$182E!
+BS_FirstSectorH=\$1830!
+OrgFAT1=\$1832!
+FATSize=\$1834!
+OrgFAT2=\$1836!
+OrgRootDir=\$1838!
+OrgClusters=\$183A!         Sector of Cluster 0
+SecPerClus=\$183C!
 
 ! ---------------------------------------
 ! SD command
 ! ---------------------------------------
-SD_CMD_FRM=\$182C!  6 bytes SD_CMDx inverted frame \${CRC,ll,LL,hh,HH,CMD}
-SD_CMD_FRM0=\$182C! CRC:ll  word access
-SD_CMD_FRM1=\$182D! ll      byte access
-SD_CMD_FRM2=\$182E! LL:hh   word access
-SD_CMD_FRM3=\$182F! hh      byte access
-SD_CMD_FRM4=\$1830! HH:CMD  word access
-SD_CMD_FRM5=\$1831! CMD     byte access
-SectorL=\$1832!     2 words
-SectorH=\$1834!
+SD_CMD_FRM=\$183E!  6 bytes SD_CMDx inverted frame \${CRC,ll,LL,hh,HH,CMD}
+SD_CMD_FRM0=\$183E! CRC:ll  word access
+SD_CMD_FRM1=\$183F! ll      byte access
+SD_CMD_FRM2=\$1840! LL:hh   word access
+SD_CMD_FRM3=\$1841! hh      byte access
+SD_CMD_FRM4=\$1842! HH:CMD  word access
+SD_CMD_FRM5=\$1843! CMD     byte access
+SectorL=\$1844!     2 words
+SectorH=\$1846!
 
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$1836! 
-BufferLen=\$1838!
+BufferPtr=\$1848!
+BufferLen=\$184A!
 
 ! ---------------------------------------
 ! FAT entry
 ! ---------------------------------------
-ClusterL=\$183A!     16 bits wide (FAT16)
-ClusterH=\$183C!     16 bits wide (FAT16)
-NewClusterL=\$183E!  16 bits wide (FAT16) 
-NewClusterH=\$1840!  16 bits wide (FAT16) 
-CurFATsector=\$1842!
+ClusterL=\$184C!     16 bits wide (FAT16)
+ClusterH=\$184E!     16 bits wide (FAT16)
+NewClusterL=\$1850!  16 bits wide (FAT16)
+NewClusterH=\$1852!  16 bits wide (FAT16)
+CurFATsector=\$1854!
 
 ! ---------------------------------------
 ! DIR entry
 ! ---------------------------------------
-DIRclusterL=\$1844!  contains the Cluster of current directory ; 1 if FAT16 root directory
-DIRclusterH=\$1846!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$1848!  
+DIRclusterL=\$1856!  contains the Cluster of current directory ; 1 if FAT16 root directory
+DIRclusterH=\$1858!  contains the Cluster of current directory ; 1 if FAT16 root directory
+EntryOfst=\$185A!
 
 ! ---------------------------------------
 ! Handle Pointer
 ! ---------------------------------------
-CurrentHdl=\$184A!  contains the address of the last opened file structure, or 0
+CurrentHdl=\$185C!  contains the address of the last opened file structure, or 0
 
 ! ---------------------------------------
 ! Load file operation
 ! ---------------------------------------
-pathname=\$184C!    address of pathname string
-EndOfPath=\$184E!
+pathname=\$185E!    address of pathname string
+EndOfPath=\$1860!
 
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -237,16 +229,16 @@ HDLH_CurSize=20!    written size / not yet read size (Long)
 HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 
 
-!OpenedFirstFile     ; "openedFile" structure 
-FirstHandle=\$1858!
+!OpenedFirstFile     ; "openedFile" structure
+FirstHandle=\$1862!
 HandleMax=5!
 HandleLenght=24!
-HandleEnd=\$18D0!
+HandleEnd=\$18DA!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$18D0!
-LOAD_STACK=\$18D2!
-LOAD_STACK_END=\$18F6!
+LOADPTR=\$18DA!
+LOAD_STACK=\$18DC!
+LOAD_STACK_END=\$1900!
 
 ! ============================================
 ! FORTH RAM areas :
@@ -271,7 +263,7 @@ PAD_I2CADR=\$1CE0!  \ RX I2C address
 PAD_I2CCNT=\$1CE2!  \ count max
 PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
 
-TIB_I2CADR=\$1D38!  \ TX I2C address 
+TIB_I2CADR=\$1D38!  \ TX I2C address
 TIB_I2CCNT=\$1D3A!  \ count of bytes
 TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
 
@@ -336,41 +328,41 @@ SFRIFG1=\$102!      \ SFR flag register
 SFRRPCR=\$104!      \ SFR reset pin control
 
 PMMCTL0=\$120!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-FRCTLCTL0=\$140!    \ FRAM control 0    
-GCCTL0=\$144!       \ General control 0 
-GCCTL1=\$146!       \ General control 1 
+FRCTLCTL0=\$140!    \ FRAM control 0
+GCCTL0=\$144!       \ General control 0
+GCCTL1=\$146!       \ General control 1
 
-CRC16DI=\$150!      \ CRC data input                  
-CRCDIRB=\$152!      \ CRC data input reverse byte     
-CRCINIRES=\$154!    \ CRC initialization and result   
-CRCRESR=\$156!      \ CRC result reverse byte  
+CRC16DI=\$150!      \ CRC data input
+CRCDIRB=\$152!      \ CRC data input reverse byte
+CRCINIRES=\$154!    \ CRC initialization and result
+CRCRESR=\$156!      \ CRC result reverse byte
 
 WDTCTL=\$15C!        \ WDT control register
 
 CSCTL0=\$160!       \ CS control 0
-CSCTL0_H=\$161!     \ 
-CSCTL1=\$162!       \ CS control 1 
-CSCTL2=\$164!       \ CS control 2 
-CSCTL3=\$166!       \ CS control 3 
-CSCTL4=\$168!       \ CS control 4 
-CSCTL5=\$16A!       \ CS control 5 
-CSCTL6=\$16C!       \ CS control 6 
-
-SYSCTL=\$180!       \ System control              
-SYSJMBC=\$186!      \ JTAG mailbox control        
-SYSJMBI0=\$188!     \ JTAG mailbox input 0        
-SYSJMBI1=\$18A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$18C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$18E!     \ JTAG mailbox output 1       
-SYSBERRIV=\$198!    \ Bus Error vector generator  
-SYSUNIV=\$19A!      \ User NMI vector generator   
-SYSSNIV=\$19C!      \ System NMI vector generator 
-SYSRSTIV=\$19E!     \ Reset vector generator      
-
-REFCTL=\$1b0!       \ Shared reference control 
+CSCTL0_H=\$161!     \
+CSCTL1=\$162!       \ CS control 1
+CSCTL2=\$164!       \ CS control 2
+CSCTL3=\$166!       \ CS control 3
+CSCTL4=\$168!       \ CS control 4
+CSCTL5=\$16A!       \ CS control 5
+CSCTL6=\$16C!       \ CS control 6
+
+SYSCTL=\$180!       \ System control
+SYSJMBC=\$186!      \ JTAG mailbox control
+SYSJMBI0=\$188!     \ JTAG mailbox input 0
+SYSJMBI1=\$18A!     \ JTAG mailbox input 1
+SYSJMBO0=\$18C!     \ JTAG mailbox output 0
+SYSJMBO1=\$18E!     \ JTAG mailbox output 1
+SYSBERRIV=\$198!    \ Bus Error vector generator
+SYSUNIV=\$19A!      \ User NMI vector generator
+SYSSNIV=\$19C!      \ System NMI vector generator
+SYSRSTIV=\$19E!     \ Reset vector generator
+
+REFCTL=\$1b0!       \ Shared reference control
 
 PAIN=\$200!
 PAOUT=\$202!
@@ -423,174 +415,174 @@ TBCLR=4!
 TBIFG=1!
 CCIFG=1!
 
-TA0CTL=\$340!       \ TA0 control                 
-TA0CCTL0=\$342!     \ Capture/compare control 0   
-TA0CCTL1=\$344!     \ Capture/compare control 1   
-TA0CCTL2=\$346!     \ Capture/compare control 2   
-TA0R=\$350!         \ TA0 counter register        
-TA0CCR0=\$352!      \ Capture/compare register 0  
-TA0CCR1=\$354!      \ Capture/compare register 1  
-TA0CCR2=\$356!      \ Capture/compare register 2  
-TA0EX0=\$360!       \ TA0 expansion register 0    
-TA0IV=\$36E!        \ TA0 interrupt vector        
-
-TA1CTL=\$380!       \ TA1 control                 
-TA1CCTL0=\$382!     \ Capture/compare control 0   
-TA1CCTL1=\$384!     \ Capture/compare control 1   
-TA1CCTL2=\$386!     \ Capture/compare control 2   
-TA1R=\$390!         \ TA1 counter register        
-TA1CCR0=\$392!      \ Capture/compare register 0  
-TA1CCR1=\$394!      \ Capture/compare register 1  
-TA1CCR2=\$396!      \ Capture/compare register 2  
-TA1EX0=\$3A0!       \ TA1 expansion register 0    
-TA1IV=\$3AE!        \ TA1 interrupt vector        
-
-TB0CTL=\$3C0!       \ TB0 control                 
-TB0CCTL0=\$3C2!     \ Capture/compare control 0   
-TB0CCTL1=\$3C4!     \ Capture/compare control 1   
-TB0CCTL2=\$3C6!     \ Capture/compare control 2   
-TB0R=\$3D0!         \ TB0 counter register        
-TB0CCR0=\$3D2!      \ Capture/compare register 0  
-TB0CCR1=\$3D4!      \ Capture/compare register 1  
-TB0CCR2=\$3D6!      \ Capture/compare register 2  
-TB0EX0=\$3E0!       \ TB0 expansion register 0    
-TB0IV=\$3EE!        \ TB0 interrupt vector        
+TA0CTL=\$340!       \ TA0 control
+TA0CCTL0=\$342!     \ Capture/compare control 0
+TA0CCTL1=\$344!     \ Capture/compare control 1
+TA0CCTL2=\$346!     \ Capture/compare control 2
+TA0R=\$350!         \ TA0 counter register
+TA0CCR0=\$352!      \ Capture/compare register 0
+TA0CCR1=\$354!      \ Capture/compare register 1
+TA0CCR2=\$356!      \ Capture/compare register 2
+TA0EX0=\$360!       \ TA0 expansion register 0
+TA0IV=\$36E!        \ TA0 interrupt vector
+
+TA1CTL=\$380!       \ TA1 control
+TA1CCTL0=\$382!     \ Capture/compare control 0
+TA1CCTL1=\$384!     \ Capture/compare control 1
+TA1CCTL2=\$386!     \ Capture/compare control 2
+TA1R=\$390!         \ TA1 counter register
+TA1CCR0=\$392!      \ Capture/compare register 0
+TA1CCR1=\$394!      \ Capture/compare register 1
+TA1CCR2=\$396!      \ Capture/compare register 2
+TA1EX0=\$3A0!       \ TA1 expansion register 0
+TA1IV=\$3AE!        \ TA1 interrupt vector
+
+TB0CTL=\$3C0!       \ TB0 control
+TB0CCTL0=\$3C2!     \ Capture/compare control 0
+TB0CCTL1=\$3C4!     \ Capture/compare control 1
+TB0CCTL2=\$3C6!     \ Capture/compare control 2
+TB0R=\$3D0!         \ TB0 counter register
+TB0CCR0=\$3D2!      \ Capture/compare register 0
+TB0CCR1=\$3D4!      \ Capture/compare register 1
+TB0CCR2=\$3D6!      \ Capture/compare register 2
+TB0EX0=\$3E0!       \ TB0 expansion register 0
+TB0IV=\$3EE!        \ TB0 interrupt vector
 
 
 ! RTC_B
-RTCCTL0=\$4A0!      \ RTC control 0                                   
-RTCCTL1=\$4A1!      \ RTC control 1                                   
-RTCCTL2=\$4A2!      \ RTC control 2                                   
-RTCCTL3=\$4A3!      \ RTC control 3                                   
-RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control                         
-RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control                         
-RTCPS0=\$4AC!       \ RTC prescaler 0                                 
-RTCPS1=\$4AD!       \ RTC prescaler 1                                 
-RTCIV=\$4AE!        \ RTC interrupt vector word                       
-RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,     
-RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,     
-RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,      
-RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW, 
-RTCDAY=\$4B4!       \ RTC days                                        
+RTCCTL0=\$4A0!      \ RTC control 0
+RTCCTL1=\$4A1!      \ RTC control 1
+RTCCTL2=\$4A2!      \ RTC control 2
+RTCCTL3=\$4A3!      \ RTC control 3
+RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control
+RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control
+RTCPS0=\$4AC!       \ RTC prescaler 0
+RTCPS1=\$4AD!       \ RTC prescaler 1
+RTCIV=\$4AE!        \ RTC interrupt vector word
+RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,
+RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,
+RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,
+RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW,
+RTCDAY=\$4B4!       \ RTC days
 RTCMON=\$4B5!       \ RTC month
-RTCYEAR=\$4B6!                                       
-RTCYEARL=\$4B6!     \ RTC year low                                    
-RTCYEARH=\$4B7!     \ RTC year high                                   
-RTCAMIN=\$4B8!      \ RTC alarm minutes                               
-RTCAHOUR=\$4B9!     \ RTC alarm hours                                 
-RTCADOW=\$4BA!      \ RTC alarm day of week                           
-RTCADAY=\$4BB!      \ RTC alarm days                                  
-BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register               
-BCD2BIN=\$4BE!      \ BCD-to-binary conversion register               
+RTCYEAR=\$4B6!
+RTCYEARL=\$4B6!     \ RTC year low
+RTCYEARH=\$4B7!     \ RTC year high
+RTCAMIN=\$4B8!      \ RTC alarm minutes
+RTCAHOUR=\$4B9!     \ RTC alarm hours
+RTCADOW=\$4BA!      \ RTC alarm day of week
+RTCADAY=\$4BB!      \ RTC alarm days
+BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register
+BCD2BIN=\$4BE!      \ BCD-to-binary conversion register
 RTCHOLD=\$40!
 RTCRDY=\$10!
 
-MPY=\$4C0!          \ 16-bit operand 1 \96 multiply                     
-MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply              
-MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate          
-MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate   
-OP2=\$4C8!          \ 16-bit operand 2                                
-RESLO=\$4CA!        \ 16 Ã— 16 result low word                         
-RESHI=\$4CC!        \ 16 Ã— 16 result high word                        
-SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register                  
+MPY=\$4C0!          \ 16-bit operand 1 \96 multiply
+MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply
+MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate
+MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate
+OP2=\$4C8!          \ 16-bit operand 2
+RESLO=\$4CA!        \ 16 Ã— 16 result low word
+RESHI=\$4CC!        \ 16 Ã— 16 result high word
+SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register
 MPY32L=\$4D0!       \ 32-bit operand 1 \96 multiply low word
-MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word           
-MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word     
-MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word    
-MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word         
-MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word        
-MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word  
-MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word 
-OP2L=\$4E0!         \ 32-bit operand 2 \96 low word                 
-OP2H=\$4E2!         \ 32-bit operand 2 \96 high word                
-RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word   
-RES1=\$4E6!         \ 32 Ã— 32 result 1                            
-RES2=\$4E8!         \ 32 Ã— 32 result 2                            
-RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word    
-MPY32CTL0=\$4EC!    \ MPY32 control register 0                    
+MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word
+MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word
+MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word
+MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word
+MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word
+MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word
+MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word
+OP2L=\$4E0!         \ 32-bit operand 2 \96 low word
+OP2H=\$4E2!         \ 32-bit operand 2 \96 high word
+RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word
+RES1=\$4E6!         \ 32 Ã— 32 result 1
+RES2=\$4E8!         \ 32 Ã— 32 result 2
+RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word
+MPY32CTL0=\$4EC!    \ MPY32 control register 0
 
 DMAIFG=8!
 
-DMA0CTL=\$500!      \ DMA channel 0 control                   
-DMA0SAL=\$502!      \ DMA channel 0 source address low        
-DMA0SAH=\$504!      \ DMA channel 0 source address high       
-DMA0DAL=\$506!      \ DMA channel 0 destination address low   
-DMA0DAH=\$508!      \ DMA channel 0 destination address high  
-DMA0SZ=\$50A!       \ DMA channel 0 transfer size             
-DMA1CTL=\$510!      \ DMA channel 1 control                   
-DMA1SAL=\$512!      \ DMA channel 1 source address low        
-DMA1SAH=\$514!      \ DMA channel 1 source address high       
-DMA1DAL=\$516!      \ DMA channel 1 destination address low   
-DMA1DAH=\$518!      \ DMA channel 1 destination address high  
-DMA1SZ=\$51A!       \ DMA channel 1 transfer size             
-DMA2CTL=\$520!      \ DMA channel 2 control                   
-DMA2SAL=\$522!      \ DMA channel 2 source address low        
-DMA2SAH=\$524!      \ DMA channel 2 source address high       
-DMA2DAL=\$526!      \ DMA channel 2 destination address low   
-DMA2DAH=\$528!      \ DMA channel 2 destination address high  
-DMA2SZ=\$52A!       \ DMA channel 2 transfer size             
-DMACTL0=\$530!      \ DMA module control 0                    
-DMACTL1=\$532!      \ DMA module control 1                    
-DMACTL2=\$534!      \ DMA module control 2                    
-DMACTL3=\$536!      \ DMA module control 3                    
-DMACTL4=\$538!      \ DMA module control 4                    
-DMAIV=\$53A!        \ DMA interrupt vector                    
-
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEG=\$5A4!       \ MPU Segmentation Register 
-MPUSAM=\$5A6!       \ MPU access management     
-
-UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1        
-UCA0BRW=\$5C6!         
-UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control    
-UCA0STAT=\$5CA!     \ eUSCI_A status                
-UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$5DA!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags       
-UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word 
-
-UCB0CTLW0=\$640!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$642!    \ eUSCI_B control word 1 
-UCB0BRW=\$646!         
-UCB0BR0=\$646!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$647!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$648!    \ eUSCI_B status word 
-UCB0BCNT=\$649!     \ eUSCI_B Byte Count            !WARNING! byte access!          
-UCB0TBCNT=\$64A!    \ eUSCI_B Byte Count Threshold  
-UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$65C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$65E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$660!    \ eUSCI I2C slave address         
-UCB0IE=\$66A!       \ eUSCI interrupt enable          
-UCB0IFG=\$66C!      \ eUSCI interrupt flags           
-UCB0IV=\$66E!       \ eUSCI interrupt vector word     
+DMA0CTL=\$500!      \ DMA channel 0 control
+DMA0SAL=\$502!      \ DMA channel 0 source address low
+DMA0SAH=\$504!      \ DMA channel 0 source address high
+DMA0DAL=\$506!      \ DMA channel 0 destination address low
+DMA0DAH=\$508!      \ DMA channel 0 destination address high
+DMA0SZ=\$50A!       \ DMA channel 0 transfer size
+DMA1CTL=\$510!      \ DMA channel 1 control
+DMA1SAL=\$512!      \ DMA channel 1 source address low
+DMA1SAH=\$514!      \ DMA channel 1 source address high
+DMA1DAL=\$516!      \ DMA channel 1 destination address low
+DMA1DAH=\$518!      \ DMA channel 1 destination address high
+DMA1SZ=\$51A!       \ DMA channel 1 transfer size
+DMA2CTL=\$520!      \ DMA channel 2 control
+DMA2SAL=\$522!      \ DMA channel 2 source address low
+DMA2SAH=\$524!      \ DMA channel 2 source address high
+DMA2DAL=\$526!      \ DMA channel 2 destination address low
+DMA2DAH=\$528!      \ DMA channel 2 destination address high
+DMA2SZ=\$52A!       \ DMA channel 2 transfer size
+DMACTL0=\$530!      \ DMA module control 0
+DMACTL1=\$532!      \ DMA module control 1
+DMACTL2=\$534!      \ DMA module control 2
+DMACTL3=\$536!      \ DMA module control 3
+DMACTL4=\$538!      \ DMA module control 4
+DMAIV=\$53A!        \ DMA interrupt vector
+
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEG=\$5A4!       \ MPU Segmentation Register
+MPUSAM=\$5A6!       \ MPU access management
+
+UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
+UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
+UCA0BRW=\$5C6!
+UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0
+UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control
+UCA0STAT=\$5CA!     \ eUSCI_A status
+UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+UCA0IE=\$5DA!       \ eUSCI_A interrupt enable
+UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags
+UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word
+
+UCB0CTLW0=\$640!    \ eUSCI_B control word 0
+UCB0CTLW1=\$642!    \ eUSCI_B control word 1
+UCB0BRW=\$646!
+UCB0BR0=\$646!      \ eUSCI_B bit rate 0
+UCB0BR1=\$647!      \ eUSCI_B bit rate 1
+UCB0STATW=\$648!    \ eUSCI_B status word
+UCB0BCNT=\$649!     \ eUSCI_B Byte Count            !WARNING! byte access!
+UCB0TBCNT=\$64A!    \ eUSCI_B Byte Count Threshold
+UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$65C!    \ eUSCI_B received address
+UCB0ADDMASK=\$65E!  \ eUSCI_B address mask
+UCB0I2CSA=\$660!    \ eUSCI I2C slave address
+UCB0IE=\$66A!       \ eUSCI interrupt enable
+UCB0IFG=\$66C!      \ eUSCI interrupt flags
+UCB0IV=\$66E!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
-ADC10CTL0=\$700!    \ ADC10_B Control register 0               
-ADC10CTL1=\$702!    \ ADC10_B Control register 1               
-ADC10CTL2=\$704!    \ ADC10_B Control register 2               
-ADC10LO=\$706!      \ ADC10_B Window Comparator Low Threshold  
-ADC10HI=\$708!      \ ADC10_B Window Comparator High Threshold 
-ADC10MCTL0=\$70A!   \ ADC10_B Memory Control Register 0        
-ADC10MEM0=\$712!    \ ADC10_B Conversion Memory Register       
-ADC10IE=\$71A!      \ ADC10_B Interrupt Enable                 
-ADC10IFG=\$71C!     \ ADC10_B Interrupt Flags                  
-ADC10IV=\$71E!      \ ADC10_B Interrupt Vector Word            
+ADC10CTL0=\$700!    \ ADC10_B Control register 0
+ADC10CTL1=\$702!    \ ADC10_B Control register 1
+ADC10CTL2=\$704!    \ ADC10_B Control register 2
+ADC10LO=\$706!      \ ADC10_B Window Comparator Low Threshold
+ADC10HI=\$708!      \ ADC10_B Window Comparator High Threshold
+ADC10MCTL0=\$70A!   \ ADC10_B Memory Control Register 0
+ADC10MEM0=\$712!    \ ADC10_B Conversion Memory Register
+ADC10IE=\$71A!      \ ADC10_B Interrupt Enable
+ADC10IFG=\$71C!     \ ADC10_B Interrupt Flags
+ADC10IV=\$71E!      \ ADC10_B Interrupt Vector Word
 
 ADCON=\$10!
 ADCSTART=\$03!
@@ -598,9 +590,9 @@ ADCSTART=\$03!
 CDIFG=1!
 CDIIFG=2!
 
-CDCTL0=\$8C0!       \ Comparator_D control register 0     
-CDCTL1=\$8C2!       \ Comparator_D control register 1     
-CDCTL2=\$8C4!       \ Comparator_D control register 2     
-CDCTL3=\$8C6!       \ Comparator_D control register 3     
-CDINT=\$8CC!        \ Comparator_D interrupt register     
-CDIV=\$8CE!         \ Comparator_D interrupt vector word  
+CDCTL0=\$8C0!       \ Comparator_D control register 0
+CDCTL1=\$8C2!       \ Comparator_D control register 1
+CDCTL2=\$8C4!       \ Comparator_D control register 2
+CDCTL3=\$8C6!       \ Comparator_D control register 3
+CDINT=\$8CC!        \ Comparator_D interrupt register
+CDIV=\$8CE!         \ Comparator_D interrupt vector word
index 865353d..5388bc5 100644 (file)
@@ -131,89 +131,80 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
-
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
-
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ---------------------------------------
 ! FAT16 FileSystemInfos 
 ! ---------------------------------------
-FATtype=\$181A!
-BS_FirstSectorL=\$181C!
-BS_FirstSectorH=\$181E!
-OrgFAT1=\$1820!
-FATSize=\$1822!
-OrgFAT2=\$1824!
-OrgRootDir=\$1826!
-OrgClusters=\$1828!         Sector of Cluster 0
-SecPerClus=\$182A!
+FATtype=\$182C!
+BS_FirstSectorL=\$182E!
+BS_FirstSectorH=\$1830!
+OrgFAT1=\$1832!
+FATSize=\$1834!
+OrgFAT2=\$1836!
+OrgRootDir=\$1838!
+OrgClusters=\$183A!         Sector of Cluster 0
+SecPerClus=\$183C!
 
 ! ---------------------------------------
 ! SD command
 ! ---------------------------------------
-SD_CMD_FRM=\$182C!  6 bytes SD_CMDx inverted frame \${CRC,ll,LL,hh,HH,CMD}
-SD_CMD_FRM0=\$182C! CRC:ll  word access
-SD_CMD_FRM1=\$182D! ll      byte access
-SD_CMD_FRM2=\$182E! LL:hh   word access
-SD_CMD_FRM3=\$182F! hh      byte access
-SD_CMD_FRM4=\$1830! HH:CMD  word access
-SD_CMD_FRM5=\$1831! CMD     byte access
-SectorL=\$1832!     2 words
-SectorH=\$1834!
+SD_CMD_FRM=\$183E!  6 bytes SD_CMDx inverted frame \${CRC,ll,LL,hh,HH,CMD}
+SD_CMD_FRM0=\$183E! CRC:ll  word access
+SD_CMD_FRM1=\$183F! ll      byte access
+SD_CMD_FRM2=\$1840! LL:hh   word access
+SD_CMD_FRM3=\$1841! hh      byte access
+SD_CMD_FRM4=\$1842! HH:CMD  word access
+SD_CMD_FRM5=\$1843! CMD     byte access
+SectorL=\$1844!     2 words
+SectorH=\$1846!
 
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$1836
-BufferLen=\$1838!
+BufferPtr=\$1848
+BufferLen=\$184A!
 
 ! ---------------------------------------
 ! FAT entry
 ! ---------------------------------------
-ClusterL=\$183A!     16 bits wide (FAT16)
-ClusterH=\$183C!     16 bits wide (FAT16)
-NewClusterL=\$183E!  16 bits wide (FAT16) 
-NewClusterH=\$1840!  16 bits wide (FAT16) 
-CurFATsector=\$1842!
+ClusterL=\$184C!     16 bits wide (FAT16)
+ClusterH=\$184E!     16 bits wide (FAT16)
+NewClusterL=\$1850!  16 bits wide (FAT16) 
+NewClusterH=\$1852!  16 bits wide (FAT16) 
+CurFATsector=\$1854!
 
 ! ---------------------------------------
 ! DIR entry
 ! ---------------------------------------
-DIRclusterL=\$1844!  contains the Cluster of current directory ; 1 if FAT16 root directory
-DIRclusterH=\$1846!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$1848!  
+DIRclusterL=\$1856!  contains the Cluster of current directory ; 1 if FAT16 root directory
+DIRclusterH=\$1858!  contains the Cluster of current directory ; 1 if FAT16 root directory
+EntryOfst=\$185A!  
 
 ! ---------------------------------------
 ! Handle Pointer
 ! ---------------------------------------
-CurrentHdl=\$184A!  contains the address of the last opened file structure, or 0
+CurrentHdl=\$185C!  contains the address of the last opened file structure, or 0
 
 ! ---------------------------------------
 ! Load file operation
 ! ---------------------------------------
-pathname=\$184C!    address of pathname string
-EndOfPath=\$184E!
+pathname=\$185E!    address of pathname string
+EndOfPath=\$1860!
 
 ! ---------------------------------------
 ! Handle structure
@@ -241,15 +232,15 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 
 
 !OpenedFirstFile     ; "openedFile" structure 
+FirstHandle=\$1862!
 HandleMax=5!
 HandleLenght=24!
-FirstHandle=\$1858!
-HandleEnd=\$18D0!
+HandleEnd=\$18DA!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$18D0!
-LOAD_STACK=\$18D2!
-LOAD_STACK_END=\$18F6!
+LOADPTR=\$18DA!
+LOAD_STACK=\$18DC!
+LOAD_STACK_END=\$1900!
 
 ! ============================================
 ! FORTH RAM areas :
index bcb0666..cb366d2 100644 (file)
@@ -139,28 +139,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -326,20 +319,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2040!
-HandleEnd=\$2100!
+FirstHandle=\$2038!
+HandleEnd=\$20F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2100!
-LOAD_STACK=\$2102!
-LOAD_STACK_END=\$2138!
+LOADPTR=\$20F8!
+LOAD_STACK=\$20FA!
+LOAD_STACK_END=\$2130!
 
 !SD_card Input Buffer, lenght = CPL = 84
-SDIB_I2CADR=\$2138!
-SDIB_I2CCNT=\$213A!
-SDIB_ORG=\$213C!
+SDIB_I2CADR=\$2130!
+SDIB_I2CCNT=\$2132!
+SDIB_ORG=\$2134!
 
-SD_END_DATA=\$2190!
+SD_END_DATA=\$2188!
 
 
 
index c2ee98a..107bb71 100644 (file)
@@ -136,28 +136,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -323,20 +316,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2040!
-HandleEnd=\$2100!
+FirstHandle=\$2038!
+HandleEnd=\$20F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2100!
-LOAD_STACK=\$2102!
-LOAD_STACK_END=\$2138!
+LOADPTR=\$20F8!
+LOAD_STACK=\$20FA!
+LOAD_STACK_END=\$2130!
 
 !SD_card Input Buffer, lenght = CPL = 84
-SDIB_I2CADR=\$2138!
-SDIB_I2CCNT=\$213A!
-SDIB_ORG=\$213C!
+SDIB_I2CADR=\$2130!
+SDIB_I2CCNT=\$2132!
+SDIB_ORG=\$2134!
 
-SD_END_DATA=\$2190!
+SD_END_DATA=\$2188!
 
 
 
index 3e6d9a3..df23332 100644 (file)
@@ -177,28 +177,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -364,21 +357,20 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 !OpenedFirstFile     ; "openedFile" structure 
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2040!
-HandleEnd=\$2100!
+FirstHandle=\$2038!
+HandleEnd=\$20F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2100!
-LOAD_STACK=\$2102!
-LOAD_STACK_END=\$2138!
+LOADPTR=\$20F8!
+LOAD_STACK=\$20FA!
+LOAD_STACK_END=\$2130!
 
 !SD_card Input Buffer, lenght = CPL = 84
-SDIB_I2CADR=\$2138!
-SDIB_I2CCNT=\$213A!
-SDIB_ORG=\$213C!
-
-SD_END_DATA=\$2190!
+SDIB_I2CADR=\$2130!
+SDIB_I2CCNT=\$2132!
+SDIB_ORG=\$2134!
 
+SD_END_DATA=\$2188!
 
 
 ! ============================================
index 844ae5f..33294b1 100644 (file)
@@ -12,7 +12,7 @@
 ! 1900-197F = FRAM info B (128 B)
 ! 1980-19FF = FRAM info A (128 B)
 ! 1A00-1AFF = TLV device descriptor info (FRAM 256 B)
-! 1B00-1BFF = ROM boot memory 
+! 1B00-1BFF = ROM boot memory
 ! 1C00-23FF = RAM (2 KB)
 ! 2000-C1FF = unused (41472 B)
 ! C200-FF7F = code memory (FRAM 15743 B)
@@ -28,7 +28,7 @@ INFOBEND=\$197F!
 INFOASTART=\$1980!
 INFOAEND=\$19FF!
 TLVSTAT=\$1A00!         Device Descriptor Info (Tag-Lenght-Value)
-TLVEND=\$1AFF! 
+TLVEND=\$1AFF!
 RAMSTART=\$1C00!
 RAMEND=\$23FF!
 PROGRAMSTART=\$4400!    Code space start
@@ -36,8 +36,8 @@ FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled
 SIGNATURES=\$FF80!      JTAG/BSL signatures
 JTAG_SIG1=\$FF80!       if 0 (electronic fuse=0) enable JTAG/SBW; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
-BSL_SIG1=\$FF84!  
-BSL_SIG2=\$FF86!  
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 JTAG_PASSWORD=\$FF88!   256 bits
 INTVECT=\$FFC6!         FFCE-FFFF
 BSL_PASSWORD=\$FFE0!    256 bits
@@ -91,14 +91,14 @@ LPM0=\$18! SR(LPM0+GIE)
 \#Z=\#2!        = SR(1) Zero flag
 \#N=\#4!        = SR(2) Negative flag
 \#GIE=\#8!      = SR(3) Enable Int
-\#CPUOFF=\#\$10!= SR(4) CPUOFF    
+\#CPUOFF=\#\$10!= SR(4) CPUOFF
 \#OSCOFF=\#\$20!= SR(5) OSCOFF
-\#SCG0=\#\$40!  = SR(6) SCG0     
+\#SCG0=\#\$40!  = SR(6) SCG0
 \#SCG1=\#\$80!  = SR(7) SCG1
 \#V=\#\$100!    = SR(8) oVerflow flag
-\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.  
-\#UF10=\#\$400! = SR(10) User Flag 2  
-\#UF11=\#\$800! = SR(11) User Flag 3  
+\#UF9=\#\$200!  = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.
+\#UF10=\#\$400! = SR(10) User Flag 2
+\#UF11=\#\$800! = SR(11) User Flag 3
 
 
 ! ============================================
@@ -128,7 +128,7 @@ RET=MOV \@R1+,R0!   \ MOV @RSP+,PC
 NOP=MOV \#0,R3!     \                one word one cycle
 NOP2=\$3C00 ,!      \ compile JMP 0  one word two cycles
 NOP3=MOV R0,R0!     \ MOV PC,PC      one word three cycles
-NEXT=MOV \@R13+,R0! \ MOV @IP+,PC   
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
 SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 
 
@@ -144,28 +144,21 @@ SEMI=MOV \@R1+,R13\nMOV \@R13+,R0!
 ! FastForth INFO(DCBA) memory map (256 bytes):
 ! ============================================
 
-! ----------------------
-! KERNEL CONSTANTS
-! ----------------------
 INI_THREAD=\$1800!      .word THREADS
 TERMBRW_RST=\$1802!     .word TERMBRW_RST
 TERMMCTLW_RST=\$1804!   .word TERMMCTLW_RST
 FREQ_KHZ=\$1806!        .word FREQUENCY
 
-! ----------------------
-! SAVED VARIABLES
-! ----------------------
 SAVE_SYSRSTIV=\$1808!   to enable SYSRSTIV read
 LPM_MODE=\$180A!        LPM0+GIE is the default mode
 INIDP=\$180C!           define RST_STATE, init by wipe
 INIVOC=\$180E!          define RST_STATE, init by wipe
+GPFLAGS=\$1810!
 
-RXON=\$1810!
-RXOFF=\$1812!
-
-ReadSectorWX=\$1814!    call with W = SectorLO  X = SectorHI
-WriteSectorWX=\$1816!   call with W = SectorLO  X = SectorHI
-GPFLAGS=\$1818!
+RXON=\$1812!
+RXOFF=\$1814!
+ReadSectorWX=\$1816!    call with W = SectorLO  X = SectorHI
+WriteSectorWX=\$1818!   call with W = SectorLO  X = SectorHI
 
 ! ============================================
 ! FORTH RAM areas :
@@ -191,7 +184,7 @@ PAD_I2CADR=\$1CE0!  \ RX I2C address
 PAD_I2CCNT=\$1CE2!  \ count max
 PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
 
-TIB_I2CADR=\$1D38!  \ TX I2C address 
+TIB_I2CADR=\$1D38!  \ TX I2C address
 TIB_I2CCNT=\$1D3A!  \ count of bytes
 TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
 
@@ -245,7 +238,7 @@ SD_BUF=\$1E00!      \ SD_Card buffer
 BUFEND=\$2000!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2002!
 BS_FirstSectorL=\$2004!
@@ -273,7 +266,7 @@ SectorH=\$201C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$201E! 
+BufferPtr=\$201E!
 BufferLen=\$2020!
 
 ! ---------------------------------------
@@ -281,16 +274,16 @@ BufferLen=\$2020!
 ! ---------------------------------------
 ClusterL=\$2022!     16 bits wide (FAT16)
 ClusterH=\$2024!     16 bits wide (FAT16)
-NewClusterL=\$2026!  16 bits wide (FAT16) 
-NewClusterH=\$2028!  16 bits wide (FAT16) 
-CurFATsector=\$202A! 
+NewClusterL=\$2026!  16 bits wide (FAT16)
+NewClusterH=\$2028!  16 bits wide (FAT16)
+CurFATsector=\$202A!
 
 ! ---------------------------------------
 ! DIR entry
 ! ---------------------------------------
 DIRclusterL=\$202C!  contains the Cluster of current directory ; 1 if FAT16 root directory
 DIRclusterH=\$202E!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$2030!  
+EntryOfst=\$2030!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -306,7 +299,7 @@ EndOfPath=\$2036!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -328,24 +321,23 @@ HDLH_CurSize=20!    written size / not yet read size (Long)
 HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=24!
-FirstHandle=\$2040!
-HandleEnd=\$2100!
+FirstHandle=\$2038!
+HandleEnd=\$20F8!
 
 !Stack of return IP for LOADed files, preincrement stack structure
-LOADPTR=\$2100!
-LOAD_STACK=\$2102!
-LOAD_STACK_END=\$2138!
+LOADPTR=\$20F8!
+LOAD_STACK=\$20FA!
+LOAD_STACK_END=\$2130!
 
 !SD_card Input Buffer, lenght = CPL = 84
-SDIB_I2CADR=\$2138!
-SDIB_I2CCNT=\$213A!
-SDIB_ORG=\$213C!
-
-SD_END_DATA=\$2190!
+SDIB_I2CADR=\$2130!
+SDIB_I2CCNT=\$2132!
+SDIB_ORG=\$2134!
 
+SD_END_DATA=\$2188!
 
 
 ! ============================================
@@ -358,41 +350,41 @@ SFRIFG1=\$102!      \ SFR flag register
 SFRRPCR=\$104!      \ SFR reset pin control
 
 PMMCTL0=\$120!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-FRCTLCTL0=\$140!    \ FRAM control 0    
-GCCTL0=\$144!       \ General control 0 
-GCCTL1=\$146!       \ General control 1 
+FRCTLCTL0=\$140!    \ FRAM control 0
+GCCTL0=\$144!       \ General control 0
+GCCTL1=\$146!       \ General control 1
 
-CRC16DI=\$150!      \ CRC data input                  
-CRCDIRB=\$152!      \ CRC data input reverse byte     
-CRCINIRES=\$154!    \ CRC initialization and result   
-CRCRESR=\$156!      \ CRC result reverse byte  
+CRC16DI=\$150!      \ CRC data input
+CRCDIRB=\$152!      \ CRC data input reverse byte
+CRCINIRES=\$154!    \ CRC initialization and result
+CRCRESR=\$156!      \ CRC result reverse byte
 
 RCCTL0=\$158!       \ RAM controller control 0
 
 WDTCTL=\$15C!        \ WDT control register
 
-CSCTL0=\$160!       \ CS control 0 
-CSCTL1=\$162!       \ CS control 1 
-CSCTL2=\$164!       \ CS control 2 
-CSCTL3=\$166!       \ CS control 3 
-CSCTL4=\$168!       \ CS control 4 
-CSCTL5=\$16A!       \ CS control 5 
-CSCTL6=\$16C!       \ CS control 6 
-
-SYSCTL=\$180!       \ System control              
-SYSJMBC=\$186!      \ JTAG mailbox control        
-SYSJMBI0=\$188!     \ JTAG mailbox input 0        
-SYSJMBI1=\$18A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$18C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$18E!     \ JTAG mailbox output 1       
-SYSUNIV=\$19A!      \ User NMI vector generator   
-SYSSNIV=\$19C!      \ System NMI vector generator 
-SYSRSTIV=\$19E!     \ Reset vector generator      
-
-REFCTL=\$1B0!       \ Shared reference control 
+CSCTL0=\$160!       \ CS control 0
+CSCTL1=\$162!       \ CS control 1
+CSCTL2=\$164!       \ CS control 2
+CSCTL3=\$166!       \ CS control 3
+CSCTL4=\$168!       \ CS control 4
+CSCTL5=\$16A!       \ CS control 5
+CSCTL6=\$16C!       \ CS control 6
+
+SYSCTL=\$180!       \ System control
+SYSJMBC=\$186!      \ JTAG mailbox control
+SYSJMBI0=\$188!     \ JTAG mailbox input 0
+SYSJMBI1=\$18A!     \ JTAG mailbox input 1
+SYSJMBO0=\$18C!     \ JTAG mailbox output 0
+SYSJMBO1=\$18E!     \ JTAG mailbox output 1
+SYSUNIV=\$19A!      \ User NMI vector generator
+SYSSNIV=\$19C!      \ System NMI vector generator
+SYSRSTIV=\$19E!     \ Reset vector generator
+
+REFCTL=\$1B0!       \ Shared reference control
 
 PAIN=\$200!
 PAOUT=\$202!
@@ -551,332 +543,332 @@ TBCLR=2!
 TBIFG=1!
 CCIFG=1!
 
-TA0CTL=\$340!       \ TA0 control                 
-TA0CCTL0=\$342!     \ Capture/compare control 0   
-TA0CCTL1=\$344!     \ Capture/compare control 1   
-TA0CCTL2=\$346!     \ Capture/compare control 2   
-TA0CCTL3=\$348!     \ Capture/compare control 3   
-TA0CCTL4=\$34A!     \ Capture/compare control 4   
-TA0R=\$350!         \ TA0 counter register        
-TA0CCR0=\$352!      \ Capture/compare register 0  
-TA0CCR1=\$354!      \ Capture/compare register 1  
-TA0CCR2=\$356!      \ Capture/compare register 2  
-TA0CCR2=\$358!      \ Capture/compare register 3  
-TA0CCR2=\$35A!      \ Capture/compare register 4  
-TA0EX0=\$360!       \ TA0 expansion register 0    
-TA0IV=\$36E!        \ TA0 interrupt vector        
-
-TA1CTL=\$380!       \ TA1 control                 
-TA1CCTL0=\$382!     \ Capture/compare control 0   
-TA1CCTL1=\$384!     \ Capture/compare control 1   
-TA1CCTL2=\$386!     \ Capture/compare control 2   
-TA1R=\$390!         \ TA1 counter register        
-TA1CCR0=\$392!      \ Capture/compare register 0  
-TA1CCR1=\$394!      \ Capture/compare register 1  
-TA1CCR2=\$396!      \ Capture/compare register 2  
-TA1EX0=\$3A0!       \ TA1 expansion register 0    
-TA1IV=\$3AE!        \ TA1 interrupt vector        
-
-TB0CTL=\$3C0!       \ TB0 control                 
-TB0CCTL0=\$3C2!     \ Capture/compare control 0   
-TB0CCTL1=\$3C4!     \ Capture/compare control 1   
-TB0CCTL2=\$3C6!     \ Capture/compare control 2   
-TB0CCTL3=\$3C8!     \ Capture/compare control 3   
-TB0CCTL4=\$3CA!     \ Capture/compare control 4   
-TB0CCTL5=\$3CC!     \ Capture/compare control 5   
-TB0CCTL6=\$3CE!     \ Capture/compare control 6   
-TB0R=\$3D0!         \ TB0 counter register        
-TB0CCR0=\$3D2!      \ Capture/compare register 0  
-TB0CCR1=\$3D4!      \ Capture/compare register 1  
-TB0CCR2=\$3D6!      \ Capture/compare register 2  
-TB0CCR3=\$3D8!      \ Capture/compare register 3  
-TB0CCR5=\$3DA!      \ Capture/compare register 4 
-TB0CCR5=\$3DC!      \ Capture/compare register 5  
-TB0CCR6=\$3DE!      \ Capture/compare register 6  
-TB0EX0=\$3E0!       \ TB0 expansion register 0    
-TB0IV=\$3EE!        \ TB0 interrupt vector        
-
-TA2CTL=\$400!       \ TA2 control                 
-TA2CCTL0=\$402!     \ Capture/compare control 0   
-TA2CCTL1=\$404!     \ Capture/compare control 1   
-TA2R=\$410!         \ TA2 counter register        
-TA2CCR0=\$412!      \ Capture/compare register 0  
-TA2CCR1=\$414!      \ Capture/compare register 1  
-TA2EX0=\$420!       \ TA2 expansion register 0    
-TA2IV=\$42E!        \ TA2 interrupt vector  
-
-CAPTIO0CTL=\$43E!   \ Capacitive Touch IO 0 control      
-
-TA3CTL=\$440!       \ TA3 control                 
-TA3CCTL0=\$442!     \ Capture/compare control 0   
-TA3CCTL1=\$444!     \ Capture/compare control 1   
-TA3CCTL2=\$446!     \ Capture/compare control 2   
-TA3CCTL3=\$448!     \ Capture/compare control 3   
-TA3CCTL4=\$44A!     \ Capture/compare control 4   
-TA3R=\$450!         \ TA3 counter register        
-TA3CCR0=\$452!      \ Capture/compare register 0  
-TA3CCR1=\$454!      \ Capture/compare register 1  
-TA3CCR2=\$456!      \ Capture/compare register 2  
-TA3CCR3=\$458!      \ Capture/compare register 3  
-TA3CCR4=\$45A!      \ Capture/compare register 4  
-TA3EX0=\$460!       \ TA3 expansion register 0    
-TA3IV=\$46E!        \ TA3 interrupt vector  
-
-CAPTIO1CTL=\$47E!   \ Capacitive Touch IO 1 control 
+TA0CTL=\$340!       \ TA0 control
+TA0CCTL0=\$342!     \ Capture/compare control 0
+TA0CCTL1=\$344!     \ Capture/compare control 1
+TA0CCTL2=\$346!     \ Capture/compare control 2
+TA0CCTL3=\$348!     \ Capture/compare control 3
+TA0CCTL4=\$34A!     \ Capture/compare control 4
+TA0R=\$350!         \ TA0 counter register
+TA0CCR0=\$352!      \ Capture/compare register 0
+TA0CCR1=\$354!      \ Capture/compare register 1
+TA0CCR2=\$356!      \ Capture/compare register 2
+TA0CCR2=\$358!      \ Capture/compare register 3
+TA0CCR2=\$35A!      \ Capture/compare register 4
+TA0EX0=\$360!       \ TA0 expansion register 0
+TA0IV=\$36E!        \ TA0 interrupt vector
+
+TA1CTL=\$380!       \ TA1 control
+TA1CCTL0=\$382!     \ Capture/compare control 0
+TA1CCTL1=\$384!     \ Capture/compare control 1
+TA1CCTL2=\$386!     \ Capture/compare control 2
+TA1R=\$390!         \ TA1 counter register
+TA1CCR0=\$392!      \ Capture/compare register 0
+TA1CCR1=\$394!      \ Capture/compare register 1
+TA1CCR2=\$396!      \ Capture/compare register 2
+TA1EX0=\$3A0!       \ TA1 expansion register 0
+TA1IV=\$3AE!        \ TA1 interrupt vector
+
+TB0CTL=\$3C0!       \ TB0 control
+TB0CCTL0=\$3C2!     \ Capture/compare control 0
+TB0CCTL1=\$3C4!     \ Capture/compare control 1
+TB0CCTL2=\$3C6!     \ Capture/compare control 2
+TB0CCTL3=\$3C8!     \ Capture/compare control 3
+TB0CCTL4=\$3CA!     \ Capture/compare control 4
+TB0CCTL5=\$3CC!     \ Capture/compare control 5
+TB0CCTL6=\$3CE!     \ Capture/compare control 6
+TB0R=\$3D0!         \ TB0 counter register
+TB0CCR0=\$3D2!      \ Capture/compare register 0
+TB0CCR1=\$3D4!      \ Capture/compare register 1
+TB0CCR2=\$3D6!      \ Capture/compare register 2
+TB0CCR3=\$3D8!      \ Capture/compare register 3
+TB0CCR5=\$3DA!      \ Capture/compare register 4
+TB0CCR5=\$3DC!      \ Capture/compare register 5
+TB0CCR6=\$3DE!      \ Capture/compare register 6
+TB0EX0=\$3E0!       \ TB0 expansion register 0
+TB0IV=\$3EE!        \ TB0 interrupt vector
+
+TA2CTL=\$400!       \ TA2 control
+TA2CCTL0=\$402!     \ Capture/compare control 0
+TA2CCTL1=\$404!     \ Capture/compare control 1
+TA2R=\$410!         \ TA2 counter register
+TA2CCR0=\$412!      \ Capture/compare register 0
+TA2CCR1=\$414!      \ Capture/compare register 1
+TA2EX0=\$420!       \ TA2 expansion register 0
+TA2IV=\$42E!        \ TA2 interrupt vector
+
+CAPTIO0CTL=\$43E!   \ Capacitive Touch IO 0 control
+
+TA3CTL=\$440!       \ TA3 control
+TA3CCTL0=\$442!     \ Capture/compare control 0
+TA3CCTL1=\$444!     \ Capture/compare control 1
+TA3CCTL2=\$446!     \ Capture/compare control 2
+TA3CCTL3=\$448!     \ Capture/compare control 3
+TA3CCTL4=\$44A!     \ Capture/compare control 4
+TA3R=\$450!         \ TA3 counter register
+TA3CCR0=\$452!      \ Capture/compare register 0
+TA3CCR1=\$454!      \ Capture/compare register 1
+TA3CCR2=\$456!      \ Capture/compare register 2
+TA3CCR3=\$458!      \ Capture/compare register 3
+TA3CCR4=\$45A!      \ Capture/compare register 4
+TA3EX0=\$460!       \ TA3 expansion register 0
+TA3IV=\$46E!        \ TA3 interrupt vector
+
+CAPTIO1CTL=\$47E!   \ Capacitive Touch IO 1 control
 
 !                   \ RTC_C
-RTCCTL0_L=\$4A0!    \ RTCCTL0_L                     
-RTCCTL0_H=\$4A1!    \ RTCCTL0_H                                
-RTCCTL1=\$4A2!      \ RTCCTL1                                
-RTCCTL3=\$4A3!      \ RTCCTL3                       
-RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control                         
-RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control 
-RTCPS=\$4AC!        \ RTC prescaler                        
-RT0PS=\$4AC!        \ RTC prescaler 0                                 
-RT1PS=\$4AD!        \ RTC prescaler 1                                 
-RTCIV=\$4AE!        \ RTC interrupt vector word                       
-RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,     
-RTCCNT1=\$4B0!      \ Real-Time Counter 1    
-RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,     
-RTCCNT2=\$4B1!      \ Real-Time Counter 2    
-RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,      
-RTCCNT3=\$4B2!      \ Real-Time Counter 3      
-RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW, 
-RTCCNT4=\$4B3!      \ Real-Time Counter 4 
-RTCDAY=\$4B4!       \ RTC days                                        
-RTCMON=\$4B5!       \ RTC month                                       
-RTCYEAR=\$4B6!                                       
-RTCYEARL=\$4B6!     \ RTC year low                                    
-RTCYEARH=\$4B7!     \ RTC year high                                   
-RTCAMIN=\$4B8!      \ RTC alarm minutes                               
-RTCAHOUR=\$4B9!     \ RTC alarm hours                                 
-RTCADOW=\$4BA!      \ RTC alarm day of week                           
-RTCADAY=\$4BB!      \ RTC alarm days                                  
-BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register               
-BCD2BIN=\$4BE!      \ BCD-to-binary conversion register  
+RTCCTL0_L=\$4A0!    \ RTCCTL0_L
+RTCCTL0_H=\$4A1!    \ RTCCTL0_H
+RTCCTL1=\$4A2!      \ RTCCTL1
+RTCCTL3=\$4A3!      \ RTCCTL3
+RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control
+RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control
+RTCPS=\$4AC!        \ RTC prescaler
+RT0PS=\$4AC!        \ RTC prescaler 0
+RT1PS=\$4AD!        \ RTC prescaler 1
+RTCIV=\$4AE!        \ RTC interrupt vector word
+RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,
+RTCCNT1=\$4B0!      \ Real-Time Counter 1
+RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,
+RTCCNT2=\$4B1!      \ Real-Time Counter 2
+RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,
+RTCCNT3=\$4B2!      \ Real-Time Counter 3
+RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW,
+RTCCNT4=\$4B3!      \ Real-Time Counter 4
+RTCDAY=\$4B4!       \ RTC days
+RTCMON=\$4B5!       \ RTC month
+RTCYEAR=\$4B6!
+RTCYEARL=\$4B6!     \ RTC year low
+RTCYEARH=\$4B7!     \ RTC year high
+RTCAMIN=\$4B8!      \ RTC alarm minutes
+RTCAHOUR=\$4B9!     \ RTC alarm hours
+RTCADOW=\$4BA!      \ RTC alarm day of week
+RTCADAY=\$4BB!      \ RTC alarm days
+BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register
+BCD2BIN=\$4BE!      \ BCD-to-binary conversion register
 
 RTCHOLD=\$40!
 RTCRDY=\$10!
 
-MPY=\$4C0!          \ 16-bit operand 1 \96 multiply                     
-MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply              
-MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate          
-MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate   
-OP2=\$4C8!          \ 16-bit operand 2                                
-RESLO=\$4CA!        \ 16 Ã— 16 result low word                         
-RESHI=\$4CC!        \ 16 Ã— 16 result high word                        
-SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register                  
-MPY32L=\$4D0!       \ 32-bit operand 1 \96 multiply low word            
-MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word           
-MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word     
-MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word    
-MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word         
-MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word        
-MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word  
-MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word 
-OP2L=\$4E0!         \ 32-bit operand 2 \96 low word                 
-OP2H=\$4E2!         \ 32-bit operand 2 \96 high word                
-RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word   
-RES1=\$4E6!         \ 32 Ã— 32 result 1                            
-RES2=\$4E8!         \ 32 Ã— 32 result 2                            
-RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word    
-MPY32CTL0=\$4EC!    \ MPY32 control register 0                    
+MPY=\$4C0!          \ 16-bit operand 1 \96 multiply
+MPYS=\$4C2!         \ 16-bit operand 1 \96 signed multiply
+MAC=\$4C4!          \ 16-bit operand 1 \96 multiply accumulate
+MACS=\$4C6!         \ 16-bit operand 1 \96 signed multiply accumulate
+OP2=\$4C8!          \ 16-bit operand 2
+RESLO=\$4CA!        \ 16 Ã— 16 result low word
+RESHI=\$4CC!        \ 16 Ã— 16 result high word
+SUMEXT=\$4CE!       \ 16 Ã— 16 sum extension register
+MPY32L=\$4D0!       \ 32-bit operand 1 \96 multiply low word
+MPY32H=\$4D2!       \ 32-bit operand 1 \96 multiply high word
+MPYS32L=\$4D4!      \ 32-bit operand 1 \96 signed multiply low word
+MPYS32H=\$4D6!      \ 32-bit operand 1 \96 signed multiply high word
+MAC32L=\$4D8!       \ 32-bit operand 1 \96 multiply accumulate low word
+MAC32H=\$4DA!       \ 32-bit operand 1 \96 multiply accumulate high word
+MACS32L=\$4DC!      \ 32-bit operand 1 \96 signed multiply accumulate low word
+MACS32H=\$4DE!      \ 32-bit operand 1 \96 signed multiply accumulate high word
+OP2L=\$4E0!         \ 32-bit operand 2 \96 low word
+OP2H=\$4E2!         \ 32-bit operand 2 \96 high word
+RES0=\$4E4!         \ 32 Ã— 32 result 0 \96 least significant word
+RES1=\$4E6!         \ 32 Ã— 32 result 1
+RES2=\$4E8!         \ 32 Ã— 32 result 2
+RES3=\$4EA!         \ 32 Ã— 32 result 3 \96 most significant word
+MPY32CTL0=\$4EC!    \ MPY32 control register 0
 
 DMAIFG=8!
 
-DMACTL0=\$500!      \ DMA module control 0                    
-DMACTL1=\$502!      \ DMA module control 1                    
-DMACTL2=\$504!      \ DMA module control 2                    
-DMACTL3=\$506!      \ DMA module control 3                    
-DMACTL4=\$508!      \ DMA module control 4                    
-DMAIV=\$50A!        \ DMA interrupt vector                    
-
-DMA0CTL=\$510!      \ DMA channel 0 control                   
-DMA0SAL=\$512!      \ DMA channel 0 source address low        
-DMA0SAH=\$514!      \ DMA channel 0 source address high       
-DMA0DAL=\$516!      \ DMA channel 0 destination address low   
-DMA0DAH=\$518!      \ DMA channel 0 destination address high  
-DMA0SZ=\$51A!       \ DMA channel 0 transfer size             
-
-DMA1CTL=\$520!      \ DMA channel 1 control                   
-DMA1SAL=\$522!      \ DMA channel 1 source address low        
-DMA1SAH=\$524!      \ DMA channel 1 source address high       
-DMA1DAL=\$526!      \ DMA channel 1 destination address low   
-DMA1DAH=\$528!      \ DMA channel 1 destination address high  
-DMA1SZ=\$52A!       \ DMA channel 1 transfer size             
-
-DMA2CTL=\$530!      \ DMA channel 2 control                   
-DMA2SAL=\$532!      \ DMA channel 2 source address low        
-DMA2SAH=\$534!      \ DMA channel 2 source address high       
-DMA2DAL=\$536!      \ DMA channel 2 destination address low   
-DMA2DAH=\$538!      \ DMA channel 2 destination address high  
-DMA2SZ=\$53A!       \ DMA channel 2 transfer size             
-
-
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEG=\$5A4!       \ MPU Segmentation Register 
-MPUSAM=\$5A6!       \ MPU access management     
-MPUIPC0=\$5AA!      \ MPU IP control 0                      
-MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1 
-
-UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1        
-UCA0BRW=\$5C6!         
-UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control    
-UCA0STAT=\$5CA!     \ eUSCI_A status                
-UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$5DA!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags       
-UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word 
-
-UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0        
-UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1        
-UCA1BRW=\$5E6!         
-UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0           
-UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1           
-UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control    
-UCA1STAT=\$5EA!     \ eUSCI_A status                
-UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer        
-UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer       
-UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control           
-UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control 
-UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control  
-UCA1IE=\$5FA!       \ eUSCI_A interrupt enable      
-UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags       
-UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word 
-
-
-UCB0CTLW0=\$640!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$642!    \ eUSCI_B control word 1 
-UCB0BRW=\$646!         
-UCB0BR0=\$646!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$647!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$648!    \ eUSCI_B status word 
-UCBCNT0=\$649!      \ eUSCI_B hardware count           
-UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold  
-UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$65C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$65E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$660!    \ eUSCI I2C slave address         
-UCB0IE=\$66A!       \ eUSCI interrupt enable          
-UCB0IFG=\$66C!      \ eUSCI interrupt flags           
-UCB0IV=\$66E!       \ eUSCI interrupt vector word     
-
-UCB1CTLW0=\$680!    \ eUSCI_B control word 0          
-UCB1CTLW1=\$682!    \ eUSCI_B control word 1 
-UCB1BRW=\$686!         
-UCB1BR0=\$686!      \ eUSCI_B bit rate 0              
-UCB1BR1=\$687!      \ eUSCI_B bit rate 1              
-UCB1STATW=\$688!    \ eUSCI_B status word 
-UCB1NT0=\$689!      \ eUSCI_B hardware count           
-UCB1TBCNT=\$68A!    \ eUSCI_B byte counter threshold  
-UCB1RXBUF=\$68C!    \ eUSCI_B receive buffer          
-UCB1TXBUF=\$68E!    \ eUSCI_B transmit buffer         
-UCB1I2COA0=\$694!   \ eUSCI_B I2C own address 0       
-UCB1I2COA1=\$696!   \ eUSCI_B I2C own address 1       
-UCB1I2COA2=\$698!   \ eUSCI_B I2C own address 2       
-UCB1I2COA3=\$69A!   \ eUSCI_B I2C own address 3       
-UCB1ADDRX=\$69C!    \ eUSCI_B received address        
-UCB1ADDMASK=\$69E!  \ eUSCI_B address mask            
-UCB1I2CSA=\$6A0!    \ eUSCI I2C slave address         
-UCB1IE=\$6AA!       \ eUSCI interrupt enable          
-UCB1IFG=\$6AC!      \ eUSCI interrupt flags           
-UCB1IV=\$6AE!       \ eUSCI interrupt vector word     
+DMACTL0=\$500!      \ DMA module control 0
+DMACTL1=\$502!      \ DMA module control 1
+DMACTL2=\$504!      \ DMA module control 2
+DMACTL3=\$506!      \ DMA module control 3
+DMACTL4=\$508!      \ DMA module control 4
+DMAIV=\$50A!        \ DMA interrupt vector
+
+DMA0CTL=\$510!      \ DMA channel 0 control
+DMA0SAL=\$512!      \ DMA channel 0 source address low
+DMA0SAH=\$514!      \ DMA channel 0 source address high
+DMA0DAL=\$516!      \ DMA channel 0 destination address low
+DMA0DAH=\$518!      \ DMA channel 0 destination address high
+DMA0SZ=\$51A!       \ DMA channel 0 transfer size
+
+DMA1CTL=\$520!      \ DMA channel 1 control
+DMA1SAL=\$522!      \ DMA channel 1 source address low
+DMA1SAH=\$524!      \ DMA channel 1 source address high
+DMA1DAL=\$526!      \ DMA channel 1 destination address low
+DMA1DAH=\$528!      \ DMA channel 1 destination address high
+DMA1SZ=\$52A!       \ DMA channel 1 transfer size
+
+DMA2CTL=\$530!      \ DMA channel 2 control
+DMA2SAL=\$532!      \ DMA channel 2 source address low
+DMA2SAH=\$534!      \ DMA channel 2 source address high
+DMA2DAL=\$536!      \ DMA channel 2 destination address low
+DMA2DAH=\$538!      \ DMA channel 2 destination address high
+DMA2SZ=\$53A!       \ DMA channel 2 transfer size
+
+
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEG=\$5A4!       \ MPU Segmentation Register
+MPUSAM=\$5A6!       \ MPU access management
+MPUIPC0=\$5AA!      \ MPU IP control 0
+MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1
+
+UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
+UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
+UCA0BRW=\$5C6!
+UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0
+UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control
+UCA0STAT=\$5CA!     \ eUSCI_A status
+UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+UCA0IE=\$5DA!       \ eUSCI_A interrupt enable
+UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags
+UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word
+
+UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0
+UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1
+UCA1BRW=\$5E6!
+UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0
+UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1
+UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control
+UCA1STAT=\$5EA!     \ eUSCI_A status
+UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer
+UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer
+UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control
+UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control
+UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control
+UCA1IE=\$5FA!       \ eUSCI_A interrupt enable
+UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags
+UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word
+
+
+UCB0CTLW0=\$640!    \ eUSCI_B control word 0
+UCB0CTLW1=\$642!    \ eUSCI_B control word 1
+UCB0BRW=\$646!
+UCB0BR0=\$646!      \ eUSCI_B bit rate 0
+UCB0BR1=\$647!      \ eUSCI_B bit rate 1
+UCB0STATW=\$648!    \ eUSCI_B status word
+UCBCNT0=\$649!      \ eUSCI_B hardware count
+UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold
+UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$65C!    \ eUSCI_B received address
+UCB0ADDMASK=\$65E!  \ eUSCI_B address mask
+UCB0I2CSA=\$660!    \ eUSCI I2C slave address
+UCB0IE=\$66A!       \ eUSCI interrupt enable
+UCB0IFG=\$66C!      \ eUSCI interrupt flags
+UCB0IV=\$66E!       \ eUSCI interrupt vector word
+
+UCB1CTLW0=\$680!    \ eUSCI_B control word 0
+UCB1CTLW1=\$682!    \ eUSCI_B control word 1
+UCB1BRW=\$686!
+UCB1BR0=\$686!      \ eUSCI_B bit rate 0
+UCB1BR1=\$687!      \ eUSCI_B bit rate 1
+UCB1STATW=\$688!    \ eUSCI_B status word
+UCB1NT0=\$689!      \ eUSCI_B hardware count
+UCB1TBCNT=\$68A!    \ eUSCI_B byte counter threshold
+UCB1RXBUF=\$68C!    \ eUSCI_B receive buffer
+UCB1TXBUF=\$68E!    \ eUSCI_B transmit buffer
+UCB1I2COA0=\$694!   \ eUSCI_B I2C own address 0
+UCB1I2COA1=\$696!   \ eUSCI_B I2C own address 1
+UCB1I2COA2=\$698!   \ eUSCI_B I2C own address 2
+UCB1I2COA3=\$69A!   \ eUSCI_B I2C own address 3
+UCB1ADDRX=\$69C!    \ eUSCI_B received address
+UCB1ADDMASK=\$69E!  \ eUSCI_B address mask
+UCB1I2CSA=\$6A0!    \ eUSCI I2C slave address
+UCB1IE=\$6AA!       \ eUSCI interrupt enable
+UCB1IFG=\$6AC!      \ eUSCI interrupt flags
+UCB1IV=\$6AE!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
 
-ADC12CTL0=\$800!    \ ADC12_B Control 0                                 
-ADC12CTL1=\$802!    \ ADC12_B Control 1                                 
-ADC12CTL2=\$804!    \ ADC12_B Control 2                                 
-ADC12CTL3=\$806!    \ ADC12_B Control 3                                 
-ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register  
-ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register 
-ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0                 
-ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1                 
-ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2                 
-ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0               
-ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1               
-ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2               
-ADC12IV=\$818!      \ ADC12_B Interrupt Vector                          
-ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0                          
-ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1                          
-ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2                          
-ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3                          
-ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4                          
-ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5                          
-ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6                          
-ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7                          
-ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8                          
-ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9                          
-ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10                         
-ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11                         
-ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12                         
-ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13 
-ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14 
-ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15 
-ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16 
-ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17 
-ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18 
-ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19 
-ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20 
-ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21 
-ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22 
-ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23 
-ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24 
-ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25 
-ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26 
-ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27 
-ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28 
-ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29 
-ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30 
-ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31 
-ADC12MEM0=\$860!    \ ADC12_B Memory 0 
-ADC12MEM1=\$862!    \ ADC12_B Memory 1 
-ADC12MEM2=\$864!    \ ADC12_B Memory 2 
-ADC12MEM3=\$866!    \ ADC12_B Memory 3 
-ADC12MEM4=\$868!    \ ADC12_B Memory 4 
-ADC12MEM5=\$86A!    \ ADC12_B Memory 5 
-ADC12MEM6=\$86C!    \ ADC12_B Memory 6 
-ADC12MEM7=\$86E!    \ ADC12_B Memory 7 
-ADC12MEM8=\$870!    \ ADC12_B Memory 8 
-ADC12MEM9=\$872!    \ ADC12_B Memory 9 
-ADC12MEM10=\$874!   \ ADC12_B Memory 10 
-ADC12MEM11=\$876!   \ ADC12_B Memory 11 
-ADC12MEM12=\$878!   \ ADC12_B Memory 12 
-ADC12MEM13=\$87A!   \ ADC12_B Memory 13 
-ADC12MEM14=\$87C!   \ ADC12_B Memory 14 
-ADC12MEM15=\$87E!   \ ADC12_B Memory 15 
-ADC12MEM16=\$880!   \ ADC12_B Memory 16 
-ADC12MEM17=\$882!   \ ADC12_B Memory 17 
-ADC12MEM18=\$884!   \ ADC12_B Memory 18 
-ADC12MEM19=\$886!   \ ADC12_B Memory 19 
-ADC12MEM20=\$888!   \ ADC12_B Memory 20 
-ADC12MEM21=\$88A!   \ ADC12_B Memory 21 
-ADC12MEM22=\$88C!   \ ADC12_B Memory 22 
-ADC12MEM23=\$88E!   \ ADC12_B Memory 23 
-ADC12MEM24=\$890!   \ ADC12_B Memory 24 
-ADC12MEM25=\$892!   \ ADC12_B Memory 25 
-ADC12MEM26=\$894!   \ ADC12_B Memory 26 
-ADC12MEM27=\$896!   \ ADC12_B Memory 27 
-ADC12MEM28=\$898!   \ ADC12_B Memory 28 
-ADC12MEM29=\$89A!   \ ADC12_B Memory 29 
-ADC12MEM30=\$89C!   \ ADC12_B Memory 30 
-ADC12MEM31=\$89E!   \ ADC12_B Memory 31 
+ADC12CTL0=\$800!    \ ADC12_B Control 0
+ADC12CTL1=\$802!    \ ADC12_B Control 1
+ADC12CTL2=\$804!    \ ADC12_B Control 2
+ADC12CTL3=\$806!    \ ADC12_B Control 3
+ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register
+ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register
+ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0
+ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1
+ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2
+ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0
+ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1
+ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2
+ADC12IV=\$818!      \ ADC12_B Interrupt Vector
+ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0
+ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1
+ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2
+ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3
+ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4
+ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5
+ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6
+ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7
+ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8
+ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9
+ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10
+ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11
+ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12
+ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13
+ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14
+ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15
+ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16
+ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17
+ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18
+ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19
+ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20
+ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21
+ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22
+ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23
+ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24
+ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25
+ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26
+ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27
+ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28
+ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29
+ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30
+ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31
+ADC12MEM0=\$860!    \ ADC12_B Memory 0
+ADC12MEM1=\$862!    \ ADC12_B Memory 1
+ADC12MEM2=\$864!    \ ADC12_B Memory 2
+ADC12MEM3=\$866!    \ ADC12_B Memory 3
+ADC12MEM4=\$868!    \ ADC12_B Memory 4
+ADC12MEM5=\$86A!    \ ADC12_B Memory 5
+ADC12MEM6=\$86C!    \ ADC12_B Memory 6
+ADC12MEM7=\$86E!    \ ADC12_B Memory 7
+ADC12MEM8=\$870!    \ ADC12_B Memory 8
+ADC12MEM9=\$872!    \ ADC12_B Memory 9
+ADC12MEM10=\$874!   \ ADC12_B Memory 10
+ADC12MEM11=\$876!   \ ADC12_B Memory 11
+ADC12MEM12=\$878!   \ ADC12_B Memory 12
+ADC12MEM13=\$87A!   \ ADC12_B Memory 13
+ADC12MEM14=\$87C!   \ ADC12_B Memory 14
+ADC12MEM15=\$87E!   \ ADC12_B Memory 15
+ADC12MEM16=\$880!   \ ADC12_B Memory 16
+ADC12MEM17=\$882!   \ ADC12_B Memory 17
+ADC12MEM18=\$884!   \ ADC12_B Memory 18
+ADC12MEM19=\$886!   \ ADC12_B Memory 19
+ADC12MEM20=\$888!   \ ADC12_B Memory 20
+ADC12MEM21=\$88A!   \ ADC12_B Memory 21
+ADC12MEM22=\$88C!   \ ADC12_B Memory 22
+ADC12MEM23=\$88E!   \ ADC12_B Memory 23
+ADC12MEM24=\$890!   \ ADC12_B Memory 24
+ADC12MEM25=\$892!   \ ADC12_B Memory 25
+ADC12MEM26=\$894!   \ ADC12_B Memory 26
+ADC12MEM27=\$896!   \ ADC12_B Memory 27
+ADC12MEM28=\$898!   \ ADC12_B Memory 28
+ADC12MEM29=\$89A!   \ ADC12_B Memory 29
+ADC12MEM30=\$89C!   \ ADC12_B Memory 30
+ADC12MEM31=\$89E!   \ ADC12_B Memory 31
 
 ADCON=\$10!
 ADCSTART=\$03!
@@ -884,183 +876,183 @@ ADCSTART=\$03!
 CDIFG=1!
 CDIIFG=2!
 
-CDCTL0=\$8C0!       \ Comparator_E control register 0     
-CDCTL1=\$8C2!       \ Comparator_E control register 1     
-CDCTL2=\$8C4!       \ Comparator_E control register 2     
-CDCTL3=\$8C6!       \ Comparator_E control register 3     
-CDINT=\$8CC!        \ Comparator_E interrupt register     
-CDIV=\$8CE!         \ Comparator_E interrupt vector word  
-
-CRC32DIW0=\$980!        \ CRC32 data input                        
-CRC32DIRBW0=\$986!      \ CRC32 data input reverse                
-CRC32INIRESW0=\$988!    \ CRC32 initialization and result word 0  
-CRC32INIRESW1=\$98A!    \ CRC32 initialization and result word 1  
-CRC32RESRW1=\$98!       \ CRC32 result reverse word 1             
-CRC32RESRW1=\$98E!      \ CRC32 result reverse word 0             
-CRC16DIW0=\$990!        \ CRC16 data input                        
-CRC16DIRBW0=\$996!      \ CRC16 data input reverse                
-CRC16INIRESW0=\$998!    \ CRC16 initialization and result word 0  
-CRC16RESRW1=\$99E!      \ CRC16 result reverse word 0             
-
-
-AESACTL0=\$9C0!     \ AES accelerator control register 0                  
-AESASTAT=\$9C4!     \ AES accelerator status register                     
-AESAKEY=\$9C6!      \ AES accelerator key register                        
-AESADIN=\$9C8!      \ AES accelerator data in register                    
-AESADOUT=\$9CA!     \ AES accelerator data out register                   
-AESAXDIN=\$9CC!     \ AES accelerator XORed data in register              
-AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger) 
-
-
-LCDCCTL0=\$A00!     \ LCD_C control register 0        
-LCDCCTL1=\$A02!     \ LCD_C control register 1        
-LCDCBLKCTL=\$A04!   \ LCD_C blinking control register 
-LCDCMEMCTL=\$A06!   \ LCD_C memory control register   
-LCDCVCTL=\$A08!     \ LCD_C voltage control register  
-LCDCPCTL0=\$A0A!    \ LCD_C port control 0            
-LCDCPCTL1=\$A0C!    \ LCD_C port control 1            
-LCDCPCTL2=\$A0E!    \ LCD_C port control 2            
-LCDCCPCTL=\$A12!    \ LCD_C charge pump ctrl register 
-LCDCIV=\$A1E!       \ LCD_C interrupt vector          
-LCDM1=\$A20!        \ LCD_C memory 1 
-LCDM2=\$A21!        \ LCD_C memory 2 
-LCDM3=\$A22!        \ LCD_C memory 3 
-LCDM4=\$A23!        \ LCD_C memory 4 
-LCDM5=\$A24!        \ LCD_C memory 5 
-LCDM6=\$A25!        \ LCD_C memory 6 
-LCDM7=\$A26!        \ LCD_C memory 7 
-LCDM8=\$A27!        \ LCD_C memory 8 
-LCDM9=\$A28!        \ LCD_C memory 9 
-LCDM10=\$A29!       \ LCD_C memory 10 
-LCDM11=\$A2A!       \ LCD_C memory 11 
-LCDM12=\$A2B!       \ LCD_C memory 12 
-LCDM13=\$A2C!       \ LCD_C memory 13 
-LCDM14=\$A2D!       \ LCD_C memory 14 
-LCDM15=\$A2E!       \ LCD_C memory 15 
-LCDM16=\$A2F!       \ LCD_C memory 16 
-LCDM17=\$A30!       \ LCD_C memory 17 
-LCDM18=\$A31!       \ LCD_C memory 18 
-LCDM19=\$A32!       \ LCD_C memory 19 
-LCDM20=\$A33!       \ LCD_C memory 20 
-LCDM21=\$A34!       \ LCD_C memory 21 
-LCDM22=\$A35!       \ LCD_C memory 22 
-LCDM23=\$A36!       \ LCD_C memory 23 
-LCDM24=\$A37!       \ LCD_C memory 24 
-LCDM25=\$A38!       \ LCD_C memory 25 
-LCDM26=\$A39!       \ LCD_C memory 26 
-LCDM27=\$A3A!       \ LCD_C memory 27 
-LCDM28=\$A3B!       \ LCD_C memory 28 
-LCDM29=\$A3C!       \ LCD_C memory 29 
-LCDM30=\$A3D!       \ LCD_C memory 30 
-LCDM31=\$A3E!       \ LCD_C memory 31 
-LCDM32=\$A3F!       \ LCD_C memory 32 
-LCDM33=\$A40!       \ LCD_C memory 33 
-LCDM34=\$A41!       \ LCD_C memory 34 
-LCDM35=\$A42!       \ LCD_C memory 35 
-LCDM36=\$A43!       \ LCD_C memory 36 
-LCDM37=\$A44!       \ LCD_C memory 37 
-LCDM38=\$A45!       \ LCD_C memory 38 
-LCDM39=\$A46!       \ LCD_C memory 39 
-LCDM40=\$A47!       \ LCD_C memory 40 
-LCDM41=\$A48!       \ LCD_C memory 41 
-LCDM42=\$A49!       \ LCD_C memory 42 
-LCDM43=\$A4A!       \ LCD_C memory 43 
-LCDBM1=\$A40!       \ LCD_C blinking memory 1  
-LCDBM2=\$A41!       \ LCD_C blinking memory 2  
-LCDBM3=\$A42!       \ LCD_C blinking memory 3  
-LCDBM4=\$A43!       \ LCD_C blinking memory 4  
-LCDBM5=\$A44!       \ LCD_C blinking memory 5  
-LCDBM6=\$A45!       \ LCD_C blinking memory 6  
-LCDBM7=\$A46!       \ LCD_C blinking memory 7  
-LCDBM8=\$A47!       \ LCD_C blinking memory 8  
-LCDBM9=\$A48!       \ LCD_C blinking memory 9  
-LCDBM10=\$A49!      \ LCD_C blinking memory 10 
-LCDBM11=\$A4A!      \ LCD_C blinking memory 11 
-LCDBM12=\$A4B!      \ LCD_C blinking memory 12 
-LCDBM13=\$A4C!      \ LCD_C blinking memory 13 
-LCDBM14=\$A4D!      \ LCD_C blinking memory 14 
-LCDBM15=\$A4E!      \ LCD_C blinking memory 15 
-LCDBM16=\$A4F!      \ LCD_C blinking memory 16 
-LCDBM17=\$A50!      \ LCD_C blinking memory 17 
-LCDBM18=\$A51!      \ LCD_C blinking memory 18 
-LCDBM19=\$A52!      \ LCD_C blinking memory 19 
-LCDBM20=\$A53!      \ LCD_C blinking memory 20 
-LCDBM21=\$A54!      \ LCD_C blinking memory 21 
-LCDBM22=\$A55!      \ LCD_C blinking memory 22 
-
-
-ESIDEBUG1=\$D00!    \ ESI debug register 1 
-ESIDEBUG2=\$D02!    \ ESI debug register 2 
-ESIDEBUG3=\$D04!    \ ESI debug register 3 
-ESIDEBUG4=\$D06!    \ ESI debug register 4 
-ESIDEBUG5=\$D08!    \ ESI debug register 5 
-ESICNT0=\$D10!      \ ESI PSM counter 0 
-ESICNT1=\$D12!      \ ESI PSM counter 1 
-ESICNT2=\$D14!      \ ESI PSM counter 2 
-ESICNT3=\$D16!      \ ESI oscillator counter register 
-ESIIV=\$D1A!        \ ESI interrupt vector      
-ESIINT1=\$D1C!      \ ESI interrupt register 1  
-ESIINT2=\$D1E!      \ ESI interrupt register 2  
-ESIAFE=\$D20!       \ ESI AFE control register  
-ESIPPU=\$D22!       \ ESI PPU control register  
-ESITSM=\$D24!       \ ESI TSM control register  
-ESIPSM=\$D26!       \ ESI PSM control register  
-ESIOSC=\$D28!       \ ESI oscillator control register 
-ESICTL=\$D2A!       \ ESI control register 
-ESITHR1=\$D2C!      \ ESI PSM counter threshold register 1 
-ESITHR2=\$D2E!      \ ESI PSM counter threshold register 2 
-ESIADMEM1=\$D30!    \ ESI A/D conversion memory 1          
-ESIADMEM2=\$D32!    \ ESI A/D conversion memory 2          
-ESIADMEM3=\$D34!    \ ESI A/D conversion memory 3          
-ESIADMEM4=\$D36!    \ ESI A/D conversion memory 4          
-ESIDAC1R0=\$D40!    \ ESI DAC1 register 0 
-ESIDAC1R1=\$D42!    \ ESI DAC1 register 1 
-ESIDAC1R2=\$D44!    \ ESI DAC1 register 2 
-ESIDAC1R3=\$D46!    \ ESI DAC1 register 3 
-ESIDAC1R4=\$D48!    \ ESI DAC1 register 4 
-ESIDAC1R5=\$D4A!    \ ESI DAC1 register 5 
-ESIDAC1R6=\$D4C!    \ ESI DAC1 register 6 
-ESIDAC1R7=\$D4E!    \ ESI DAC1 register 7 
-ESIDAC2R0=\$D50!    \ ESI DAC2 register 0 
-ESIDAC2R1=\$D52!    \ ESI DAC2 register 1 
-ESIDAC2R2=\$D54!    \ ESI DAC2 register 2 
-ESIDAC2R3=\$D56!    \ ESI DAC2 register 3 
-ESIDAC2R4=\$D58!    \ ESI DAC2 register 4 
-ESIDAC2R5=\$D5A!    \ ESI DAC2 register 5 
-ESIDAC2R6=\$D5C!    \ ESI DAC2 register 6 
-ESIDAC2R7=\$D5E!    \ ESI DAC2 register 7 
-ESITSM0=\$D60!      \ ESI TSM 0 
-ESITSM1=\$D62!      \ ESI TSM 1 
-ESITSM2=\$D64!      \ ESI TSM 2 
-ESITSM3=\$D66!      \ ESI TSM 3 
-ESITSM4=\$D68!      \ ESI TSM 4 
-ESITSM5=\$D6A!      \ ESI TSM 5 
-ESITSM6=\$D6C!      \ ESI TSM 6 
-ESITSM7=\$D6E!      \ ESI TSM 7 
-ESITSM8=\$D70!      \ ESI TSM 8 
-ESITSM9=\$D72!      \ ESI TSM 9 
-ESITSM10=\$D74!     \ ESI TSM 10 
-ESITSM11=\$D76!     \ ESI TSM 11 
-ESITSM12=\$D78!     \ ESI TSM 12 
-ESITSM13=\$D7A!     \ ESI TSM 13 
-ESITSM14=\$D7C!     \ ESI TSM 14 
-ESITSM15=\$D7E!     \ ESI TSM 15 
-ESITSM16=\$D80!     \ ESI TSM 16 
-ESITSM17=\$D82!     \ ESI TSM 17 
-ESITSM18=\$D84!     \ ESI TSM 18 
-ESITSM19=\$D86!     \ ESI TSM 19 
-ESITSM20=\$D88!     \ ESI TSM 20 
-ESITSM21=\$D8A!     \ ESI TSM 21 
-ESITSM22=\$D8C!     \ ESI TSM 22 
-ESITSM23=\$D8E!     \ ESI TSM 23 
-ESITSM24=\$D90!     \ ESI TSM 24 
-ESITSM25=\$D92!     \ ESI TSM 25 
-ESITSM26=\$D94!     \ ESI TSM 26 
-ESITSM27=\$D96!     \ ESI TSM 27 
-ESITSM28=\$D98!     \ ESI TSM 28 
-ESITSM29=\$D9A!     \ ESI TSM 29 
-ESITSM30=\$D9C!     \ ESI TSM 30 
-ESITSM31=\$D9E!     \ ESI TSM 31 
+CDCTL0=\$8C0!       \ Comparator_E control register 0
+CDCTL1=\$8C2!       \ Comparator_E control register 1
+CDCTL2=\$8C4!       \ Comparator_E control register 2
+CDCTL3=\$8C6!       \ Comparator_E control register 3
+CDINT=\$8CC!        \ Comparator_E interrupt register
+CDIV=\$8CE!         \ Comparator_E interrupt vector word
+
+CRC32DIW0=\$980!        \ CRC32 data input
+CRC32DIRBW0=\$986!      \ CRC32 data input reverse
+CRC32INIRESW0=\$988!    \ CRC32 initialization and result word 0
+CRC32INIRESW1=\$98A!    \ CRC32 initialization and result word 1
+CRC32RESRW1=\$98!       \ CRC32 result reverse word 1
+CRC32RESRW1=\$98E!      \ CRC32 result reverse word 0
+CRC16DIW0=\$990!        \ CRC16 data input
+CRC16DIRBW0=\$996!      \ CRC16 data input reverse
+CRC16INIRESW0=\$998!    \ CRC16 initialization and result word 0
+CRC16RESRW1=\$99E!      \ CRC16 result reverse word 0
+
+
+AESACTL0=\$9C0!     \ AES accelerator control register 0
+AESASTAT=\$9C4!     \ AES accelerator status register
+AESAKEY=\$9C6!      \ AES accelerator key register
+AESADIN=\$9C8!      \ AES accelerator data in register
+AESADOUT=\$9CA!     \ AES accelerator data out register
+AESAXDIN=\$9CC!     \ AES accelerator XORed data in register
+AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger)
+
+
+LCDCCTL0=\$A00!     \ LCD_C control register 0
+LCDCCTL1=\$A02!     \ LCD_C control register 1
+LCDCBLKCTL=\$A04!   \ LCD_C blinking control register
+LCDCMEMCTL=\$A06!   \ LCD_C memory control register
+LCDCVCTL=\$A08!     \ LCD_C voltage control register
+LCDCPCTL0=\$A0A!    \ LCD_C port control 0
+LCDCPCTL1=\$A0C!    \ LCD_C port control 1
+LCDCPCTL2=\$A0E!    \ LCD_C port control 2
+LCDCCPCTL=\$A12!    \ LCD_C charge pump ctrl register
+LCDCIV=\$A1E!       \ LCD_C interrupt vector
+LCDM1=\$A20!        \ LCD_C memory 1
+LCDM2=\$A21!        \ LCD_C memory 2
+LCDM3=\$A22!        \ LCD_C memory 3
+LCDM4=\$A23!        \ LCD_C memory 4
+LCDM5=\$A24!        \ LCD_C memory 5
+LCDM6=\$A25!        \ LCD_C memory 6
+LCDM7=\$A26!        \ LCD_C memory 7
+LCDM8=\$A27!        \ LCD_C memory 8
+LCDM9=\$A28!        \ LCD_C memory 9
+LCDM10=\$A29!       \ LCD_C memory 10
+LCDM11=\$A2A!       \ LCD_C memory 11
+LCDM12=\$A2B!       \ LCD_C memory 12
+LCDM13=\$A2C!       \ LCD_C memory 13
+LCDM14=\$A2D!       \ LCD_C memory 14
+LCDM15=\$A2E!       \ LCD_C memory 15
+LCDM16=\$A2F!       \ LCD_C memory 16
+LCDM17=\$A30!       \ LCD_C memory 17
+LCDM18=\$A31!       \ LCD_C memory 18
+LCDM19=\$A32!       \ LCD_C memory 19
+LCDM20=\$A33!       \ LCD_C memory 20
+LCDM21=\$A34!       \ LCD_C memory 21
+LCDM22=\$A35!       \ LCD_C memory 22
+LCDM23=\$A36!       \ LCD_C memory 23
+LCDM24=\$A37!       \ LCD_C memory 24
+LCDM25=\$A38!       \ LCD_C memory 25
+LCDM26=\$A39!       \ LCD_C memory 26
+LCDM27=\$A3A!       \ LCD_C memory 27
+LCDM28=\$A3B!       \ LCD_C memory 28
+LCDM29=\$A3C!       \ LCD_C memory 29
+LCDM30=\$A3D!       \ LCD_C memory 30
+LCDM31=\$A3E!       \ LCD_C memory 31
+LCDM32=\$A3F!       \ LCD_C memory 32
+LCDM33=\$A40!       \ LCD_C memory 33
+LCDM34=\$A41!       \ LCD_C memory 34
+LCDM35=\$A42!       \ LCD_C memory 35
+LCDM36=\$A43!       \ LCD_C memory 36
+LCDM37=\$A44!       \ LCD_C memory 37
+LCDM38=\$A45!       \ LCD_C memory 38
+LCDM39=\$A46!       \ LCD_C memory 39
+LCDM40=\$A47!       \ LCD_C memory 40
+LCDM41=\$A48!       \ LCD_C memory 41
+LCDM42=\$A49!       \ LCD_C memory 42
+LCDM43=\$A4A!       \ LCD_C memory 43
+LCDBM1=\$A40!       \ LCD_C blinking memory 1
+LCDBM2=\$A41!       \ LCD_C blinking memory 2
+LCDBM3=\$A42!       \ LCD_C blinking memory 3
+LCDBM4=\$A43!       \ LCD_C blinking memory 4
+LCDBM5=\$A44!       \ LCD_C blinking memory 5
+LCDBM6=\$A45!       \ LCD_C blinking memory 6
+LCDBM7=\$A46!       \ LCD_C blinking memory 7
+LCDBM8=\$A47!       \ LCD_C blinking memory 8
+LCDBM9=\$A48!       \ LCD_C blinking memory 9
+LCDBM10=\$A49!      \ LCD_C blinking memory 10
+LCDBM11=\$A4A!      \ LCD_C blinking memory 11
+LCDBM12=\$A4B!      \ LCD_C blinking memory 12
+LCDBM13=\$A4C!      \ LCD_C blinking memory 13
+LCDBM14=\$A4D!      \ LCD_C blinking memory 14
+LCDBM15=\$A4E!      \ LCD_C blinking memory 15
+LCDBM16=\$A4F!      \ LCD_C blinking memory 16
+LCDBM17=\$A50!      \ LCD_C blinking memory 17
+LCDBM18=\$A51!      \ LCD_C blinking memory 18
+LCDBM19=\$A52!      \ LCD_C blinking memory 19
+LCDBM20=\$A53!      \ LCD_C blinking memory 20
+LCDBM21=\$A54!      \ LCD_C blinking memory 21
+LCDBM22=\$A55!      \ LCD_C blinking memory 22
+
+
+ESIDEBUG1=\$D00!    \ ESI debug register 1
+ESIDEBUG2=\$D02!    \ ESI debug register 2
+ESIDEBUG3=\$D04!    \ ESI debug register 3
+ESIDEBUG4=\$D06!    \ ESI debug register 4
+ESIDEBUG5=\$D08!    \ ESI debug register 5
+ESICNT0=\$D10!      \ ESI PSM counter 0
+ESICNT1=\$D12!      \ ESI PSM counter 1
+ESICNT2=\$D14!      \ ESI PSM counter 2
+ESICNT3=\$D16!      \ ESI oscillator counter register
+ESIIV=\$D1A!        \ ESI interrupt vector
+ESIINT1=\$D1C!      \ ESI interrupt register 1
+ESIINT2=\$D1E!      \ ESI interrupt register 2
+ESIAFE=\$D20!       \ ESI AFE control register
+ESIPPU=\$D22!       \ ESI PPU control register
+ESITSM=\$D24!       \ ESI TSM control register
+ESIPSM=\$D26!       \ ESI PSM control register
+ESIOSC=\$D28!       \ ESI oscillator control register
+ESICTL=\$D2A!       \ ESI control register
+ESITHR1=\$D2C!      \ ESI PSM counter threshold register 1
+ESITHR2=\$D2E!      \ ESI PSM counter threshold register 2
+ESIADMEM1=\$D30!    \ ESI A/D conversion memory 1
+ESIADMEM2=\$D32!    \ ESI A/D conversion memory 2
+ESIADMEM3=\$D34!    \ ESI A/D conversion memory 3
+ESIADMEM4=\$D36!    \ ESI A/D conversion memory 4
+ESIDAC1R0=\$D40!    \ ESI DAC1 register 0
+ESIDAC1R1=\$D42!    \ ESI DAC1 register 1
+ESIDAC1R2=\$D44!    \ ESI DAC1 register 2
+ESIDAC1R3=\$D46!    \ ESI DAC1 register 3
+ESIDAC1R4=\$D48!    \ ESI DAC1 register 4
+ESIDAC1R5=\$D4A!    \ ESI DAC1 register 5
+ESIDAC1R6=\$D4C!    \ ESI DAC1 register 6
+ESIDAC1R7=\$D4E!    \ ESI DAC1 register 7
+ESIDAC2R0=\$D50!    \ ESI DAC2 register 0
+ESIDAC2R1=\$D52!    \ ESI DAC2 register 1
+ESIDAC2R2=\$D54!    \ ESI DAC2 register 2
+ESIDAC2R3=\$D56!    \ ESI DAC2 register 3
+ESIDAC2R4=\$D58!    \ ESI DAC2 register 4
+ESIDAC2R5=\$D5A!    \ ESI DAC2 register 5
+ESIDAC2R6=\$D5C!    \ ESI DAC2 register 6
+ESIDAC2R7=\$D5E!    \ ESI DAC2 register 7
+ESITSM0=\$D60!      \ ESI TSM 0
+ESITSM1=\$D62!      \ ESI TSM 1
+ESITSM2=\$D64!      \ ESI TSM 2
+ESITSM3=\$D66!      \ ESI TSM 3
+ESITSM4=\$D68!      \ ESI TSM 4
+ESITSM5=\$D6A!      \ ESI TSM 5
+ESITSM6=\$D6C!      \ ESI TSM 6
+ESITSM7=\$D6E!      \ ESI TSM 7
+ESITSM8=\$D70!      \ ESI TSM 8
+ESITSM9=\$D72!      \ ESI TSM 9
+ESITSM10=\$D74!     \ ESI TSM 10
+ESITSM11=\$D76!     \ ESI TSM 11
+ESITSM12=\$D78!     \ ESI TSM 12
+ESITSM13=\$D7A!     \ ESI TSM 13
+ESITSM14=\$D7C!     \ ESI TSM 14
+ESITSM15=\$D7E!     \ ESI TSM 15
+ESITSM16=\$D80!     \ ESI TSM 16
+ESITSM17=\$D82!     \ ESI TSM 17
+ESITSM18=\$D84!     \ ESI TSM 18
+ESITSM19=\$D86!     \ ESI TSM 19
+ESITSM20=\$D88!     \ ESI TSM 20
+ESITSM21=\$D8A!     \ ESI TSM 21
+ESITSM22=\$D8C!     \ ESI TSM 22
+ESITSM23=\$D8E!     \ ESI TSM 23
+ESITSM24=\$D90!     \ ESI TSM 24
+ESITSM25=\$D92!     \ ESI TSM 25
+ESITSM26=\$D94!     \ ESI TSM 26
+ESITSM27=\$D96!     \ ESI TSM 27
+ESITSM28=\$D98!     \ ESI TSM 28
+ESITSM29=\$D9A!     \ ESI TSM 29
+ESITSM30=\$D9C!     \ ESI TSM 30
+ESITSM31=\$D9E!     \ ESI TSM 31
 
 
 ESI_RAM=\$E00!
index 5fc7923..a99c2b5 100644 (file)
@@ -44,14 +44,14 @@ VER .equ "V206"
 ; TARGETS kernel    ; sizes are for 8MHz, DTC=2, 3WIRES (XON/XOFF)
 ;-------------------------------------------------------------------------------
 ;                                                                   ;INFO + MAIN
-;MSP_EXP430FR5739   ; compile for MSP-EXP430FR5739 launchpad        ;  26 + 3976 bytes
-MSP_EXP430FR5969   ; compile for MSP-EXP430FR5969 launchpad        ;  26 + 3966 bytes
-;MSP_EXP430FR5994   ;; compile for MSP-EXP430FR5994 launchpad        ;  26 + 3984 bytes
-;MSP_EXP430FR6989   ; compile for MSP-EXP430FR6989 launchpad        ;  26 + 3994 bytes
-;MSP_EXP430FR4133   ; compile for MSP-EXP430FR4133 launchpad        ;  26 + 4028 bytes
-;MSP_EXP430FR2433   ; compile for MSP-EXP430FR2433 launchpad        ;  26 + 3946 bytes
-;CHIPSTICK_FR2433   ; compile for the "CHIPSTICK" of M. Ken BOAK    ;  26 + 3938 bytes
-;MSP_EXP430FR2355   ; compile for MSP-EXP430FR2355 launchpad        ;  26 + 3960 bytes
+;MSP_EXP430FR5739   ; compile for MSP-EXP430FR5739 launchpad        ;  26 + 3974 bytes
+;MSP_EXP430FR5969   ; compile for MSP-EXP430FR5969 launchpad        ;  26 + 3962 bytes
+MSP_EXP430FR5994   ;; compile for MSP-EXP430FR5994 launchpad        ;  26 + 3980 bytes
+;MSP_EXP430FR6989   ; compile for MSP-EXP430FR6989 launchpad        ;  26 + 3990 bytes
+;MSP_EXP430FR4133   ; compile for MSP-EXP430FR4133 launchpad        ;  26 + 4024 bytes
+;MSP_EXP430FR2355   ; compile for MSP-EXP430FR2355 launchpad        ;  26 + 3956 bytes
+;MSP_EXP430FR2433   ; compile for MSP-EXP430FR2433 launchpad        ;  26 + 3942 bytes
+;CHIPSTICK_FR2433   ; compile for the "CHIPSTICK" of M. Ken BOAK    ;  26 + 3934 bytes
 
 ; choose DTC (Direct Threaded Code) model, if you don't know, choose 2
 DTC .equ 2  ; DTC model 1 : DOCOL = CALL rDOCOL           14 cycles 1 word      shortest DTC model
@@ -72,9 +72,9 @@ CONDCOMP            ;; +  324 bytes : adds conditionnal compilation : MARKER [UN
 FIXPOINT_INPUT      ;; +   78 bytes : adds the interpretation input for Q15.16 numbers
 LOWERCASE           ;; +   46 bytes : enables to write strings in lowercase.
 VOCABULARY_SET      ;; +  104 bytes : adds words: VOCABULARY FORTH ASSEMBLER ALSO PREVIOUS ONLY DEFINITIONS (FORTH83)
-;SD_CARD_LOADER      ;; + 1748 bytes : to LOAD source files from SD_card
-;SD_CARD_READ_WRITE  ;; + 1192 bytes : to read, create, write and del files + source files direct copy from PC to SD_Card
-NONAME              ; +   64 bytes : adds :NONAME CODENN (CODENoNaMe)
+SD_CARD_LOADER      ;; + 1748 bytes : to LOAD source files from SD_card
+SD_CARD_READ_WRITE  ;; + 1192 bytes : to read, create, write and del files + source files direct copy from PC to SD_Card
+NONAME              ;; +   64 bytes : adds :NONAME CODENN (CODENoNaMe)
 ;BOOTLOADER          ; +   72 bytes : adds to <reset> a bootstrap to SD_CARD\BOOT.4TH.
 ;QUIETBOOT           ; +    2 bytes : to perform bootload without displaying.
 ;TOTAL               ; +    4 bytes : to save R4 to R7 registers during interrupts.
@@ -86,7 +86,7 @@ NONAME              ; +   64 bytes : adds :NONAME CODENN (CODENoNaMe)
 ;UARTtoI2C           ;                to redirect source file to a I2C TERMINAL FastForth device UART2IIC.f
 ;FIXPOINT            ; +  452 bytes : add Q15.16 words HOLDS F+ F- F/ F* F#S F. S>F 2@ 2CONSTANT FIXPOINT.f
 UTILITY             ;; +  426/508 bytes : add .S .RS WORDS U.R DUMP ?                            UTILITY.f
-;SD_TOOLS            ;; +  126 bytes for trivial DIR, FAT, CLUSTER and SECTOR view, adds UTILITY  SD_TOOLS.f
+SD_TOOLS            ;; +  142 bytes for trivial DIR, FAT, CLUSTER and SECTOR view, adds UTILITY  SD_TOOLS.f
 ;ANS_CORE_COMPLIANT  ; +  876 bytes : required to pass coretest.4th ; (includes items below)     ANS_COMP.f
 ;ARITHMETIC          ; +  358 bytes : add S>D M* SM/REM FM/MOD * /MOD / MOD */MOD /MOD */
 ;DOUBLE              ; +  130 bytes : add 2@ 2! 2DUP 2SWAP 2OVER
@@ -123,7 +123,7 @@ TERMINAL4WIRES      ;; + 18 bytes    enable 4 wires with hardware flow control o
 ; the best and cheapest: UARTtoUSB cable with Prolific PL2303HXD (or PL2303TA)
 ; works wel in 3 WIRES (XON/XOF) and 4WIRES (GND,RX,TX,RTS) config
 ; --------------------------------------------------------------------------------------------
-;       PL2303TA 4 wires CABLE                         PL2303HXD 6 wires CABLE 
+;       PL2303TA 4 wires CABLE                         PL2303HXD 6 wires CABLE
 ; pads upside: 3V3,txd,rxd,gnd,5V               pads upside: gnd, 3V3,txd,rxd,5V
 ;    downside: cts,dcd,dsr,rts,dtr                 downside:     rts,cts
 ; --------------------------------------------------------------------------------------------
@@ -225,8 +225,8 @@ TERMINAL4WIRES      ;; + 18 bytes    enable 4 wires with hardware flow control o
 ; + 460800 (2MHz)
 ; + 921600 (4,8,16 MHz)
 
-; RN42 config : connect RN41/RN42 module on teraterm, via USBtoUART bridge, 
-; -----------   8n1, 115200 bds, no flow control, echo on 
+; RN42 config : connect RN41/RN42 module on teraterm, via USBtoUART bridge,
+; -----------   8n1, 115200 bds, no flow control, echo on
 ;               $$$         // enter control mode, response: AOK
 ;               SU,92       // set 921600 bds, response: AOK
 ;               R,1         // reset module to take effect
@@ -312,10 +312,10 @@ LSTACK          .equ RAMSTART
 LEAVEPTR        .equ LSTACK             ; Leave-stack pointer
 PSTACK          .equ LSTACK+(LSTACK_SIZE*2)+(PSTACK_SIZE*2)
 RSTACK          .equ PSTACK+(RSTACK_SIZE*2)
-PAD_I2CADR      .equ PAD_ORG-4    
+PAD_I2CADR      .equ PAD_ORG-4
 PAD_I2CCNT      .equ PAD_ORG-2
 PAD_ORG         .equ RSTACK+4
-TIB_I2CADR      .equ TIB_ORG-4   
+TIB_I2CADR      .equ TIB_ORG-4
 TIB_I2CCNT      .equ TIB_ORG-2
 TIB_ORG         .equ PAD_ORG+PAD_LEN+4
 HOLDS_ORG       .equ TIB_ORG+TIB_LEN
@@ -334,15 +334,15 @@ LAST_THREAD     .equ BASE_HOLD+6    ; used by QREVEAL
 LAST_CFA        .equ BASE_HOLD+8
 LAST_PSP        .equ BASE_HOLD+10
 STATE           .equ BASE_HOLD+12   ; Interpreter state
-SOURCE          .equ BASE_HOLD+14       
-SOURCE_LEN      .equ BASE_HOLD+14       
+SOURCE          .equ BASE_HOLD+14
+SOURCE_LEN      .equ BASE_HOLD+14
 SOURCE_ADR      .equ BASE_HOLD+16   ; len, addr of input stream
 TOIN            .equ BASE_HOLD+18   ; CurrentInputBuffer pointer
 DDP             .equ BASE_HOLD+20   ; dictionnary pointer
 LASTVOC         .equ BASE_HOLD+22   ; keep VOC-LINK
 CONTEXT         .equ BASE_HOLD+24   ; CONTEXT dictionnary space (8 CELLS)
 CURRENT         .equ BASE_HOLD+40   ; CURRENT dictionnary ptr
-BASE            .equ BASE_HOLD+42   
+BASE            .equ BASE_HOLD+42
 LINE            .equ BASE_HOLD+44   ; line in interpretation (initialized by NOECHO)
 ; --------------------------------------------------------------;
 ; RAMSTART + $1E0 : free for user after source file compilation  ;
@@ -362,7 +362,7 @@ ASMFW3          .equ BASE_HOLD+58
 ; --------------------------------------------------
 ; RAMSTART + $1FC : RAM SD_CARD SD_BUF 4 + 512 bytes
 ; --------------------------------------------------
-SD_BUF_I2CADR   .equ SD_BUF-4    
+SD_BUF_I2CADR   .equ SD_BUF-4
 SD_BUF_I2CCNT   .equ SD_BUF-2
 SD_BUF          .equ BASE_HOLD+78
 SD_BUFEND       .equ SD_BUF + 200h   ; 512bytes
@@ -395,6 +395,7 @@ LPM_MODE        .word CPUOFF+GIE            ; LPM0 is the default mode
 ;LPM_MODE        .word CPUOFF+GIE+SCG0       ; LPM1 is the default mode (disable FLL)
 INIDP           .word ROMDICT               ; define RST_STATE
 INIVOC          .word lastvoclink           ; define RST_STATE
+GPFLAGS         .word 0                     ; always usefull
 
                 .word RXON                   ; user use
                 .word RXOFF                  ; user use
@@ -409,24 +410,26 @@ INIVOC          .word lastvoclink           ; define RST_STATE
     .ELSEIF
                 .word 0,0
     .ENDIF ; SD_CARD_LOADER
-GPFLAGS         .word 0
+
 
 INFO_BASE_END
 
-; ------------------------------
-; VARIABLES that could be in RAM
-; ------------------------------
+; -------------------------------
+; VARIABLES that should be in RAM
+; -------------------------------
+
+    .IFDEF SD_CARD_LOADER
 
     .IFDEF RAM_1K       ; if RAM = 1K (FR57xx) the variables below are in INFO space (FRAM)
-    .org INFO_BASE_END
+SD_ORG_DATA     .equ INFO_BASE_END+18   ; 8 words free to set some core routines addresses + 1 word guard...
+                                        ; ...while preserving FRAM area SD_LEN_DATA.
+
     .ELSE               ; if RAM >= 2k the variables below are in RAM
-    .org SD_BUFEND
-                .word 0 ; guard
-    .ENDIF
 
-    .IFDEF SD_CARD_LOADER
+SD_ORG_DATA     .equ SD_BUFEND+2        ; 1 word guard
+    .ENDIF
 
-SD_ORG_DATA
+    .org SD_ORG_DATA
 
 ; ---------------------------------------
 ; FAT FileSystemInfos
@@ -455,7 +458,7 @@ SectorH         .equ SD_LOW_LEVEL+8
 BufferPtr       .equ SD_LOW_LEVEL+10
 BufferLen       .equ SD_LOW_LEVEL+12
 
-SD_FAT_LEVEL    .equ SD_LOW_LEVEL+14 
+SD_FAT_LEVEL    .equ SD_LOW_LEVEL+14
 ; ---------------------------------------
 ; FAT entry
 ; ---------------------------------------
@@ -480,13 +483,12 @@ CurrentHdl      .equ SD_FAT_LEVEL+16    ; contains the address of the last opene
 ; ---------------------------------------
 ; Load file operation
 ; ---------------------------------------
-
 pathname        .equ SD_FAT_LEVEL+18    ; start address
 EndOfPath       .equ SD_FAT_LEVEL+20    ; end address
 
 ; ---------------------------------------
 
-FirstHandle     .equ SD_FAT_LEVEL+30
+FirstHandle     .equ SD_FAT_LEVEL+22
 
 ; ---------------------------------------
 ; Handle structure
@@ -524,7 +526,7 @@ LOAD_STACK      .equ HandleEnd+2
 LOADSTACK_SIZE  .equ HandleMax+1    ; make room for 3 words * handles
 LoadStackEnd    .equ LOAD_STACK+LOADSTACK_SIZE*6
 
-SDIB_I2CADR     .equ PAD_ORG-4   
+SDIB_I2CADR     .equ PAD_ORG-4
 SDIB_I2CCNT     .equ PAD_ORG-2
 SDIB_ORG        .equ PAD_ORG
 
@@ -542,7 +544,7 @@ LOAD_STACK      .equ HandleEnd+2
 LOADSTACK_SIZE  .equ HandleMax+1    ; make room for 3 words * handles
 LoadStackEnd    .equ LOAD_STACK+LOADSTACK_SIZE*6 ; 3 words by handle
 
-SDIB_I2CADR     .equ SDIB_ORG-4    
+SDIB_I2CADR     .equ SDIB_ORG-4
 SDIB_I2CCNT     .equ SDIB_ORG-2
 SDIB_ORG        .equ LoadStackEnd+4
 SDIB_LEN        .equ 84             ; = TIB_LEN = PAD_LEN
@@ -582,7 +584,7 @@ rDOVAR      .reg    r6
 rDOCOL      .reg    R7      ; COLD defines xdocol as R7 content
 
 L           .reg    R7
-M           .reg    r6      ; ex. PUSHM L,N  
+M           .reg    r6      ; ex. PUSHM L,N
 N           .reg    r5
 P           .reg    r4
 
@@ -1156,7 +1158,7 @@ MDIV2       ADDC X,X            ;1  RLC quotLO
             JNC MDIV1           ;2
             SUB T,W             ;1  REMlo - DIVlo
             BIS #1,SR           ;1  SETC
-            JMP MDIV2           ;2   
+            JMP MDIV2           ;2
 ENDMDIV     MOV #xdodoes,rDODOES;2  restore rDODOES
             MOV W,2(PSP)        ;3  REMlo in 2(PSP)
             MOV X,0(PSP)        ;3  QUOTlo in 0(PSP)
@@ -1166,11 +1168,11 @@ ENDMDIV     MOV #xdodoes,rDODOES;2  restore rDODOES
 ;https://forth-standard.org/standard/core/num
 ;C #     ud1lo ud1hi -- ud2lo ud2hi          convert 1 digit of output
             FORTHWORD "#"
-NUM         MOV &BASE,T         ;3                      T = Divisor 
+NUM         MOV &BASE,T         ;3                      T = Divisor
 NUM1        MOV @PSP,S          ;2 -- DVDlo DVDhi       S = DVDlo
             SUB #2,PSP          ;1 -- DVDlo x DVDhi     TOS = DVDhi
             CALL #MUSMOD1       ;4 -- REMlo QUOTlo QUOThi
-            MOV @PSP+,0(PSP)    ;4 -- QUOTlo QUOThi  
+            MOV @PSP+,0(PSP)    ;4 -- QUOTlo QUOThi
 TODIGIT     CMP.B #10,W         ;2  W = REMlo
             JLO TODIGIT1        ;2  U<
             ADD #7,W            ;2
@@ -1375,7 +1377,7 @@ ACCEPTNEXT  ADD #2,RSP              ;1                   yes: remove AKEYREAD1 a
 RXON                                ;
 ; ----------------------------------;
     .IFDEF TERMINAL3WIRES           ;
-;    .IF TERMINALBAUDRATE/FREQUENCY <230400
+;   .IF TERMINALBAUDRATE/FREQUENCY <230400 ; Incompatible with baudrate modification on the fly.
 RXON_LOOP   BIT #UCTXIFG,&TERMIFG   ;3  wait the sending end of XON, useless at high baudrates
             JZ RXON_LOOP            ;2
 ;    .ENDIF
@@ -1478,10 +1480,10 @@ ASTORETEST  CMP W,TOS               ; 1 Bound is reached ?
             MOV.B Y,0(TOS)          ; 3 no: store char @ Ptr, send echo then loopback
             ADD #1,TOS              ; 1     increment Ptr
 YEMIT1
-;    .IF TERMINALBAUDRATE/FREQUENCY <230401
+;    .IF TERMINALBAUDRATE/FREQUENCY <230401; Incompatible with baudrate modification on the fly.
             BIT #UCTXIFG,&TERMIFG   ; 3 wait the sending end of previous char (sent before ACCEPT), useless at high baudrates
-            JZ YEMIT1               ; 2
-;    .ENDIF
+            JZ YEMIT1               ; 2 but there's no point in wanting to save time here:
+;    .ENDIF                         ;   it must be understood that the receiver loses time also when receiving the char.
 YEMIT2
     .IFDEF  TERMINAL5WIRES          ;
             BIT.B #CTS,&HANDSHAKIN  ; 3
@@ -1499,7 +1501,7 @@ WAITaKEY    BIT #UCRXIFG,&TERMIFG   ; 3 new char in TERMRXBUF ?
             JZ WAITaKEY             ; 2 no
 ; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
 ; stops the 2th stopwatch           ; best case result: 26~/22~ (with/without echo) ==> 385/455 kBds/MHz
-; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^; 
+; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
 
 ; ----------------------------------;
 ENDACCEPT                           ; <--- XOFF return address
@@ -1526,7 +1528,7 @@ ACCEPTEND   SUB @PSP+,TOS           ; Org Ptr -- len'
             FORTHWORD "EMIT"
 EMIT        MOV @PC+,PC             ;3  15~
             .word   BODYEMIT
-BODYEMIT   MOV TOS,Y               ; 1
+BODYEMIT    MOV TOS,Y               ; 1
             MOV @PSP+,TOS           ; 2
             JMP YEMIT1              ;9  12~
 
@@ -1574,7 +1576,7 @@ ONEDROP     MOV @PSP+,TOS           ; --         drop n
             FORTHWORD "TYPE"
 TYPE        CMP #0,TOS
             JZ TWODROP              ; abort fonction
-            .word   0151Eh          ;5 PUSM TOS,IP      R-- len,IP 
+            .word   0151Eh          ;5 PUSM TOS,IP      R-- len,IP
             MOV #TYPE_NEXT,IP
 TYPELOOP    MOV @PSP,Y              ;2 -- adr adr       ; 30~ char loop
             MOV.B @Y+,TOS           ;2
@@ -1587,7 +1589,7 @@ TYPE_NEXT   FORTHtoASM
             JNZ TYPELOOP            ;2
             POPM #2,TOS             ;4 POPM IP,TOS
 TWODROP     ADD #2,PSP              ;
-            MOV @PSP+,TOS           ; -- 
+            MOV @PSP+,TOS           ; --
             mNEXT                   ;
 
 ;https://forth-standard.org/standard/core/CR
@@ -1622,7 +1624,7 @@ CAPS_ON     MOV #-1,&CAPS           ; state by default
             mNEXT
 
             FORTHWORD "CAPS_OFF"
-CAPS_OFF    MOV #0,&CAPS    
+CAPS_OFF    MOV #0,&CAPS
             mNEXT
 
 ;https://forth-standard.org/standard/core/Sq
@@ -1671,7 +1673,7 @@ DOTQUOTE    mDOCOL
 ;C WORD   char -- addr        Z=1 if len=0
 ; parse a word delimited by char separator
 ;                                   "word" is capitalized
-;                                   TOIN is the relative displacement in the ascii string 
+;                                   TOIN is the relative displacement in the ascii string
 ;                                   separator filled line = 25 cycles + 7 cycles by char
             FORTHWORD "WORD"
 WORDD       MOV #SOURCE_LEN,S       ;2 -- separator
@@ -1770,7 +1772,7 @@ FINDEND     MOV S,0(PSP)            ;3 not found: -- c-addr 0
             MOV #xdodoes,rDODOES    ;2
             mNEXT                   ;4 42/47 words
 
-    .IFDEF MPY_32 
+    .IFDEF MPY_32
 
 ;https://forth-standard.org/standard/core/toNUMBER
 ;C  convert a string to double number until count2 = 0 or until not convertible char
@@ -1782,7 +1784,7 @@ TONUMBER    MOV @PSP+,S             ;2                          S = adr
             SUB #4,PSP              ;1
             MOV &BASE,T             ;3
 TONUMLOOP   MOV.B @S,W              ;2 -- ud1lo ud1hi adr count W=char
-DDIGITQ     SUB.B #30h,W            ;2                          skip all chars < '0' 
+DDIGITQ     SUB.B #30h,W            ;2                          skip all chars < '0'
             CMP.B #10,W             ;2                          char was U< "10" ?
             JLO DDIGITQNEXT         ;2                          no
             SUB.B #7,W              ;2                          skip all chars between "9" and "A"
@@ -1849,7 +1851,7 @@ QSIGN       CMP.B #1,W              ;1
 QNUMNEXT    FORTHtoASM              ;  -- c-addr ud2lo-hi addr2 cnt2    R-- IP sign BASE    S=addr2
             CMP #0,TOS              ;1                                  cnt2=0 : conversion is ok ?
             JZ QNUMNEXT1            ;2                                  yes
-            BIT #UF9,SR             ;2                                  already flagged double ? 
+            BIT #UF9,SR             ;2                                  already flagged double ?
                                     ;                                   ( test to discard repeated points or repeated commas)
             JNZ QNUMNEXT1           ;2                                  abort
             BIS #UF9,SR             ;2                                  set double number flag
@@ -1864,7 +1866,7 @@ QQcomma     CMP.B #',',0(S)         ;5                                  rejected
             JNZ QNUMNEXT1           ;2                                  no
 S15Q16      MOV TOS,W               ;1 -- c-addr ud2lo x x x            yes   W=cnt2
             MOV #0,X                ;1 -- c-addr ud2lo x 0 x            init X = ud2lo' = 0
-S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  0(PSP) = ud2lo'   
+S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  0(PSP) = ud2lo'
             SUB.B #1,W              ;1                                  decrement cnt2
             MOV W,X                 ;1                                  X = cnt2-1
             ADD S,X                 ;1                                  X = end_of_string-1, first...
@@ -1877,11 +1879,11 @@ S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  0(PSP) =
             JLO S15Q16EOC           ;2
 QS15Q16DIGI CMP T,X                 ;1                                  R-- IP sign BASE    is X a digit ?
             JHS S15Q16EOC           ;2 -- c-addr ud2lo ud2lo' x ud2lo'  if no
-            MOV X,0(PSP)            ;3 -- c-addr ud2lo ud2lo' digit x 
+            MOV X,0(PSP)            ;3 -- c-addr ud2lo ud2lo' digit x
             MOV T,TOS               ;1 -- c-addr ud2lo ud2lo' digit     base R-- IP sign base
-            .word 152Ch             ;6                                  PUSH S,T,W: R-- IP sign base addr2 base cnt2     
+            .word 152Ch             ;6                                  PUSH S,T,W: R-- IP sign base addr2 base cnt2
             CALL #MUSMOD            ;4 -- c-addr ud2lo ur uqlo uqhi
-            .word 172Ah             ;6                                  restore W,T,S: R-- IP sign BASE     
+            .word 172Ah             ;6                                  restore W,T,S: R-- IP sign BASE
             JMP S15Q16LOOP          ;2                                  W=cnt
 S15Q16EOC   MOV 4(PSP),2(PSP)       ;5 -- c-addr ud2lo ud2hi uqlo x     ud2lo from >NUMBER part1 becomes here ud2hi=S15 part2
             MOV @PSP,4(PSP)         ;4 -- c-addr ud2lo ud2hi x x        uqlo becomes ud2lo
@@ -1904,9 +1906,9 @@ QNUMNEXT1   POPM #3,IP              ;4 -- c-addr ud2lo-hi x cnt2        POPM T,S
             JZ QNUMOK               ;2 -- c-addr ud2lo-hi x sign        conversion OK
 QNUMKO      ADD #6,PSP              ;1 -- c-addr sign
             AND #0,TOS              ;1 -- c-addr ff                     TOS=0 and Z=1 ==> conversion ko
-            mNEXT                   ;4 
+            mNEXT                   ;4
 ; ----------------------------------;97
-QNUMOK      ADD #2,PSP              ;1 -- c-addr ud2lo-hi cnt2 
+QNUMOK      ADD #2,PSP              ;1 -- c-addr ud2lo-hi cnt2
             MOV 2(PSP),4(PSP)       ;  -- udlo udlo udhi sign
             MOV @PSP+,0(PSP)        ;4 -- udlo udhi sign              note : PSP is incremented before write back !!!
             XOR #-1,TOS             ;1 -- udlo udhi inv(sign)
@@ -1920,7 +1922,7 @@ QDOUBLE     BIT #UF9,SR             ;2                      decimal point added
             JNZ QNUMEND             ;2                      leave double
             ADD #2,PSP              ;1                      leave number
 QNUMEND    mNEXT                    ;4                      TOS=-1 and Z=0 ==> conversion ok
-; ----------------------------------;119 words 
+; ----------------------------------;119 words
 
     .ELSE ; no hardware HRDWMPY
 
@@ -1966,7 +1968,7 @@ UDSTAR      .word 154Dh             ; -- ud1lo ud1hi x x        R-- IP adr count
             MOV &BASE,TOS           ; -- ud1lo ud1hi x base
             MOV #UMSTARNEXT1,IP     ;
 UMSTARONE   JMP UMSTAR1             ; ud1hi * base -- x ud3hi   X=ud3lo
-UMSTARNEXT1 FORTHtoASM              ; -- ud1lo ud1hi x ud3hi     
+UMSTARNEXT1 FORTHtoASM              ; -- ud1lo ud1hi x ud3hi
             MOV X,2(RSP)            ;                           R-- IP adr count ud3lo digit
             MOV 4(PSP),S            ; -- ud1lo ud1hi x ud3hi    S=ud1lo
             MOV &BASE,TOS           ; -- ud1lo ud1hi x base
@@ -1975,8 +1977,8 @@ UMSTARTWO   JMP UMSTAR1             ; ud1lo * base -- x ud4hi   X=ud4lo
 UMSTARNEXT2 FORTHtoASM              ; -- ud1lo ud1hi x ud4hi    r-- IP adr count ud3lo digit
             ADD @RSP+,X             ; -- ud1lo ud1hi x ud4hi    X = ud4lo+digit = ud2lo
 MPLUS       ADDC @RSP+,TOS          ; -- ud1lo ud1hi x ud2hi    TOS = ud4hi+ud3lo+carry = ud2hi
-            MOV X,4(PSP)            ; -- ud2lo ud1hi x ud2hi           
-            MOV TOS,2(PSP)          ; -- ud2lo ud2hi x x        R-- IP adr count 
+            MOV X,4(PSP)            ; -- ud2lo ud1hi x ud2hi
+            MOV TOS,2(PSP)          ; -- ud2lo ud2hi x x        R-- IP adr count
             POPM #3,IP              ; -- ud2lo ud2hi x x        T=count, S=adr  POPM T,S,IP
 TONUMPLUS   ADD #1,S                ;
             SUB #1,T                ;
@@ -2029,7 +2031,7 @@ QSIGN       CMP.B #1,X              ;1
 QNUMNEXT    FORTHtoASM              ;  -- c-addr ud2lo-hi addr2 cnt2    R-- IP sign BASE    S=addr2,T=cnt2
             CMP #0,TOS              ;1                                  cnt2=0 ? conversion is ok ?
             JZ QNUMNEXT1            ;2                                  yes
-            BIT #UF9,SR             ;2                                  already flagged double ? 
+            BIT #UF9,SR             ;2                                  already flagged double ?
                                     ;                                   ( test to discard repeated points or repeated commas)
             JNZ QNUMNEXT1           ;2                                  abort
             BIS #UF9,SR             ;2                                  set double number flag
@@ -2046,7 +2048,7 @@ QS15Q16     CMP.B #',',0(S)         ;5                                  rejected
 S15Q16      MOV T,W                 ;1 -- c-addr ud2lo x x x            W=cnt2
             MOV &BASE,T             ;3                                  T=current base
             MOV #0,X                ;1 -- c-addr ud2lo x 0 x            init ud2lo' = 0
-S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  X = 0(PSP) = ud2lo'   
+S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  X = 0(PSP) = ud2lo'
             SUB.B #1,W              ;1                                  decrement cnt2
             MOV W,X                 ;1                                  X = cnt2-1
             ADD S,X                 ;1                                  X = end_of_string-1, first...
@@ -2059,11 +2061,11 @@ S15Q16LOOP  MOV X,2(PSP)            ;3 -- c-addr ud2lo ud2lo' ud2lo' x  X = 0(PS
             JLO S15Q16EOC           ;2
 QS15Q16DIGI CMP T,X                 ;1                                  R-- IP sign BASE    is X a digit ?
             JHS S15Q16EOC           ;2 -- c-addr ud2lo ud2lo' x ud2lo'  if no
-            MOV X,0(PSP)            ;3 -- c-addr ud2lo ud2lo' digit x 
+            MOV X,0(PSP)            ;3 -- c-addr ud2lo ud2lo' digit x
             MOV T,TOS               ;1 -- c-addr ud2lo ud2lo' digit     base R-- IP sign base
-            .word 152Ch             ;6                                  PUSH S,T,W: R-- IP sign base addr2 base cnt2     
+            .word 152Ch             ;6                                  PUSH S,T,W: R-- IP sign base addr2 base cnt2
             CALL #MUSMOD            ;4 -- c-addr ud2lo ur uqlo uqhi
-            .word 172Ah             ;6                                  restore W,T,S: R-- IP sign BASE     
+            .word 172Ah             ;6                                  restore W,T,S: R-- IP sign BASE
             JMP S15Q16LOOP          ;2                                  W=cnt
 S15Q16EOC   MOV 4(PSP),2(PSP)       ;5 -- c-addr ud2lo ud2lo uqlo x     ud2lo from >NUMBER part1 becomes here ud2hi=S15 part2
             MOV @PSP,4(PSP)         ;4 -- c-addr ud2lo ud2hi x x        uqlo becomes ud2lo
@@ -2150,8 +2152,8 @@ COUNT       SUB #2,PSP              ;1
 ; : SETIB SOURCE 2! 0 >IN ! ;       ; org len --        set Input Buffer, shared by INTERPRET and [ELSE]
 SETIB       MOV #0,&TOIN            ;
             MOV TOS,&SOURCE_LEN     ; -- org len
-            MOV @PSP+,&SOURCE_ADR   ; -- len 
-            MOV @PSP+,TOS           ; -- 
+            MOV @PSP+,&SOURCE_ADR   ; -- len
+            MOV @PSP+,TOS           ; --
             mNEXT                   ;
 
 ;C INTERPRET    i*x addr u -- j*x      interpret given buffer
@@ -2203,19 +2205,26 @@ EVALUATE    MOV #SOURCE_LEN,X       ;2
             MOV @RSP+,IP            ;2
             mNEXT
 
+
+PREQUIT0    MOV #0,&SAVE_SYSRSTIV   ;
+PREQUIT1    MOV #RSTACK,RSP
+            MOV #LSTACK,&LEAVEPTR
+            MOV #0,&STATE
+            mNEXT
+
     .IFDEF BOOTLOAD ; Boot loader requires Conditional Compilation
 ;c BOOT  --  jump to bootstrap then continues with (QUIT)
         FORTHWORD "BOOT"
-BOOT    MOV #RSTACK,RSP
-        MOV #LSTACK,&LEAVEPTR
-        MOV #0,&STATE
+BOOT    ASMtoFORTH                  ;
+        .word PREQUIT1              ; doesn't reset SAVE_SYSRSTIV before testing !
+        FORTHtoASM                  ;
 ; ----------------------------------;
 ; BOOTSTRAP TEST                    ;
 ; ----------------------------------;
     CMP #0,&SAVE_SYSRSTIV           ; if WARM
     JZ QUIT0                        ; no boostrap
     BIT.B #SD_CD,&SD_CDIN           ; SD_memory in SD_Card module ?
-    JNZ QUIT0                       ; no
+    JNZ QUIT0                       ; if not, no bootstrap
 ; ----------------------------------;
 ; BOOTSTRAP                         ; on SYSRSTIV <> 0
 ; ----------------------------------;
@@ -2224,12 +2233,12 @@ BOOT    MOV #RSTACK,RSP
     MOV &SAVE_SYSRSTIV,TOS          ;
     MOV #0,&SAVE_SYSRSTIV           ;
     ASMtoFORTH                      ;
-    .IFDEF QUIETBOOT                
-    .word NOECHO                    ; warning ! your BOOT.4TH must to be finished with ECHO command! 
+    .IFDEF QUIETBOOT
+        .word NOECHO                ; warning ! your BOOT.4TH must to be finished with ECHO command!
     .ENDIF
     .word XSQUOTE                   ; -- addr u
     .byte 15,"LOAD\34 BOOT.4TH\34"  ; issues error 2 if no such file...
-    .word BRAN,QUIT4                ;
+    .word BRAN,QUIT4                ; to interpret this string
 ; ----------------------------------;
 
 ;https://forth-standard.org/standard/core/QUIT
@@ -2239,18 +2248,17 @@ QUIT    MOV @PC+,PC
         .word   BODYQUIT           ; this word may be replaced by BOOT
 BODYQUIT
 
-    .ELSE ; no BOOTLOADER, QUIT is not DEFERred
+    .ELSE ; if no BOOTLOADER, QUIT is not DEFERred
+
 ;https://forth-standard.org/standard/core/QUIT
 ;c QUIT  --     interpret line by line the input stream
         FORTHWORD "QUIT"
 QUIT
 
-            MOV #RSTACK,RSP
-            MOV #LSTACK,&LEAVEPTR
-            MOV #0,&STATE
-    .ENDIF
-QUIT0       MOV #0,&SAVE_SYSRSTIV   ;
-            ASMtoFORTH
+    .ENDIF ; bootloader
+
+QUIT0       ASMtoFORTH
+            .word   PREQUIT0
 QUIT1       .word   XSQUOTE
             .byte   5,13,10,"ok "   ; CR+LF + Forth prompt
 QUIT2       .word   TYPE            ; display it
@@ -2278,27 +2286,26 @@ ABORT       MOV #PSTACK,PSP
             JMP QUIT
 
 WIP_DEFER   ; WIPE resets ALL factory primary DEFERred words
-            MOV #BODYWARM,&WARM+2      ; (WARM) is WARM    kill user interrupts init
-            MOV #BODYSLEEP,&SLEEP+2    ; (SLEEP) is SLEEP  kill user background task
-QAB_DEFER   ; QABORT resets some primary DEFERred words 
-            MOV #BODYEMIT,&EMIT+2      ;4 (EMIT) is EMIT   default console output
-            MOV #BODYCR,&CR+2          ;4 (CR) is CR       default CR
-            MOV #BODYKEY,&KEY+2        ;4 (KEY) is KEY     default KEY
+            MOV #BODYWARM,&WARM+2       ; (WARM) is WARM    kill user interrupts init
+            MOV #BODYSLEEP,&SLEEP+2     ; (SLEEP) is SLEEP  kill user background task
+QAB_DEFER   ; QABORT resets some primary DEFERred words
+            MOV #BODYEMIT,&EMIT+2       ;4 (EMIT) is EMIT   default console output
+            MOV #BODYCR,&CR+2           ;4 (CR) is CR       default CR
+            MOV #BODYKEY,&KEY+2         ;4 (KEY) is KEY     default KEY
 
     .IFDEF DEFER_INPUT                  ;  true if SD_LOADER
+            MOV #BODYACCEPT,&ACCEPT+2   ;4 (ACCEPT) is ACCEPT
             MOV #TIB_ORG,&FCIB+2        ;4 TIB is CIB  (Current Input Buffer)
-            MOV #BODYACCEPT,&ACCEPT+2  ;4 (ACCEPT) is ACCEPT
     .ENDIF
-    .IFDEF MSP430ASSEMBLER          ; reset all branch labels
+    .IFDEF MSP430ASSEMBLER              ; reset all 6 branch labels
             MOV #10,Y
             MOV Y,&BASE
 RAZASM      MOV #0,ASMFW1(Y)
             SUB #2,Y
             JHS RAZASM
     .ELSE
-            MOV #10,&BASE           ;4
-    .ENDIF  
-            MOV #10,&BASE           ;4
+            MOV #10,&BASE               ;4
+    .ENDIF
             RET
 
 RefillUSBtime .equ int(frequency*2730) ; 2730*frequency ==> 65520 @ max freq (24MHz)
@@ -2311,9 +2318,8 @@ THREEDROP   ADD #4,PSP
             MOV @PSP+,TOS
             mNEXT
 
-QABORTYES   MOV #4882h,&YEMIT       ;                       restore default YEMIT = set ECHO
-
-    .IFDEF SD_CARD_LOADER           ; close all handles
+QABORTYES   MOV #4882h,&YEMIT       ;       restore default YEMIT = set ECHO
+    .IFDEF SD_CARD_LOADER           ;       close all handles
             MOV &CurrentHdl,T
 QABORTCLOSE CMP #0,T
             JZ QABORTCLOSEND
@@ -2321,7 +2327,6 @@ QABORTCLOSE CMP #0,T
             MOV @T,T
             JMP QABORTCLOSE
 QABORTCLOSEND
-            
     .ENDIF
 ; ----------------------------------;
 QABORTYESNOECHO                     ; <== WARM jumps here, thus, if NOECHO, TERMINAL can be disconnected without freezing the app
@@ -2367,7 +2372,7 @@ ERRLINE_END .word   TYPE            ; --                type abort message
             .byte   4,27,"[0m"      ;
             .word   TYPE            ; --                set normal video
 ; ----------------------------------;
-            .word   PWR_STATE       ; remove all words beyond PWR_HERE 
+            .word   PWR_STATE       ; remove all words beyond PWR_HERE
     .IFDEF LOWERCASE                ;
             .word   CAPS_ON         ;
     .ENDIF                          ;
@@ -2503,7 +2508,7 @@ COLONNONAME SUB #2,PSP
             MOV &DDP,TOS
             MOV TOS,W
             MOV #PAIN,X             ; PAIN is a read only register in all MSP430FRxxxx devices...
-            MOV X,Y                 ; so, MOV Y,0(X) writes to a read only register = lure for semicolon LAST_THREAD REVEAL...      
+            MOV X,Y                 ; so, MOV Y,0(X) writes to a read only register = lure for semicolon LAST_THREAD REVEAL...
             ADD #2,Y                ; so, MOV @X,-2(Y) writes to same register = lure for semicolon LAST_NFA REVEAL...
             CALL #HEADEREND         ; ...because we don't want write preamble of word in dictionnary!
     .ENDIF ; NONAME
@@ -2511,7 +2516,7 @@ COLONNEXT
     .SWITCH DTC
     .CASE 1
             MOV #DOCOL1,-4(W)       ; compile CALL rDOCOL
-            SUB #2,&DDP             
+            SUB #2,&DDP
     .CASE 2
             MOV #DOCOL1,-4(W)       ; compile PUSH IP       3~
             MOV #DOCOL2,-2(W)       ; compile CALL rEXIT
@@ -2520,7 +2525,7 @@ COLONNEXT
             MOV #DOCOL2,-2(W)       ; compile MOV PC,IP     1~
             MOV #DOCOL3,0(W)        ; compile ADD #4,IP     1~
             MOV #NEXT,+2(W)         ; compile MOV @IP+,PC   4~
-            ADD #4,&DDP           
+            ADD #4,&DDP
     .ENDCASE ; of DTC
             MOV #-1,&STATE          ; enter compiling state
 SAVE_PSP    MOV PSP,&LAST_PSP       ; save PSP for check compiling, used by QREVEAL
@@ -2555,12 +2560,12 @@ HEADER      mDOCOL
             MOV @RSP+,IP
             MOV #4030h,0(W)        ;4              by default, HEADER create a DEFERred word: CFA = MOV @PC+,PC = BR...
             MOV #PFA_DEFER,2(W)    ;4              by default, HEADER create a DEFERred word: PFA = address of NEXT to do nothing.
-  
+
 HEADEREND   MOV Y,&LAST_NFA         ; --            NFA --> LAST_NFA            used by QREVEAL, IMMEDIATE
             MOV X,&LAST_THREAD      ; --            VOC_PFAx --> LAST_THREAD    used by QREVEAL
             MOV W,&LAST_CFA         ; --            HERE=CFA --> LAST_CFA       used by DOES>, RECURSE
             ADD #4,W                ; --            by default make room for two words...
-            MOV W,&DDP              ; --    
+            MOV W,&DDP              ; --
             RET                     ; 23 words, W is the new DDP value )
                                     ;           X is LAST_THREAD       > used by VARIABLE, CONSTANT, CREATE, DEFER and :
                                     ;           Y is NFA               )
@@ -2578,12 +2583,12 @@ VARIABLE    CALL #HEADER            ; W = DDP = CFA + 2 words
 CONSTANT    CALL #HEADER            ; W = DDP = CFA + 2 words
             MOV #DOCON,-4(W)        ;   CFA = DOCON
             MOV TOS,-2(W)           ;   PFA = n
-            MOV @PSP+,TOS         
-            JMP REVEAL            
+            MOV @PSP+,TOS
+            JMP REVEAL
 
 ;;https://forth-standard.org/standard/core/VALUE
 ;;( x "<spaces>name" -- )                      define a Forth VALUE
-;;Skip leading space delimiters. Parse name delimited by a space. 
+;;Skip leading space delimiters. Parse name delimited by a space.
 ;;Create a definition for name with the execution semantics defined below,
 ;;with an initial value equal to x.
 ;
@@ -2612,7 +2617,7 @@ CONSTANT    CALL #HEADER            ; W = DDP = CFA + 2 words
 CREATE      CALL #HEADER            ; --        W = DDP
             MOV #DOCON,-4(W)        ;4  CFA = DOCON
             MOV W,-2(W)             ;3  PFA = next address
-            JMP REVEAL           
+            JMP REVEAL
 
 ;https://forth-standard.org/standard/core/DOES
 ;C DOES>    --          set action for the latest CREATEd definition
@@ -2624,19 +2629,17 @@ DOES        MOV &LAST_CFA,W         ; W = CFA of CREATEd word
             mNEXT
 
 ;https://forth-standard.org/standard/core/DEFER
-;C DEFER "<spaces>name"   -- 
-;Skip leading space delimiters. Parse name delimited by a space. 
+;C DEFER "<spaces>name"   --
+;Skip leading space delimiters. Parse name delimited by a space.
 ;Create a definition for name with the execution semantics defined below.
 
-;name Execution:   --  
-;Execute the xt that name is set to execute, i.e. NEXT (nothing), 
+;name Execution:   --
+;Execute the xt that name is set to execute, i.e. NEXT (nothing),
 ;until the phrase ' word IS name is executed, causing a new value of xt to be assigned to name.
 
             FORTHWORD "DEFER"
 DEFER       CALL #HEADER             ; that create a secondary DEFERred word (whithout subsequent code)
-;            MOV #4030h,-4(W)        ;4  CFA = MOV @PC+,PC = BR...
-;            MOV #PFA_DEFER,-2(W)    ;4  PFA = address of NEXT: created word does nothing by default
-            JMP REVEAL             
+            JMP REVEAL
 
 ;https://forth-standard.org/standard/core/toBODY
 ; >BODY     -- PFA      leave BODY of a CREATEd or a primary DEFERred word
@@ -2651,7 +2654,7 @@ DEFER       CALL #HEADER             ; that create a secondary DEFERred word (wh
 ; ------------------------------------------------------------------------------
     .include "forthMSP430FR_CONDCOMP.asm"
 
-            ; compile the words: COMPARE [THEN] [ELSE] [IF] [UNDEFINED] [DEFINED] MARKER 
+            ; compile the words: COMPARE [THEN] [ELSE] [IF] [UNDEFINED] [DEFINED] MARKER
 
     .ENDIF  ; CONDCOMP
 
@@ -2684,8 +2687,8 @@ CELLPLUS    ADD #2,TOS              ; -- HERE+2=IFadr
 ;C ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
             FORTHWORDIMM "ELSE"     ; immediate
 ELSS        ADD #4,&DDP             ; make room to compile two words
-            MOV &DDP,W              ; W=HERE+4 
-            MOV #bran,-4(W)     
+            MOV &DDP,W              ; W=HERE+4
+            MOV #bran,-4(W)
             MOV W,0(TOS)            ; HERE+4 ==> [IFadr]
             SUB #2,W                ; HERE+2
             MOV W,TOS               ; -- ELSEadr
@@ -2706,7 +2709,7 @@ BEGIN       MOV #HERE,PC            ; BR HERE
 ;https://forth-standard.org/standard/core/UNTIL
 ;C UNTIL    BEGINadr --             resolve conditional backward branch
             FORTHWORDIMM "UNTIL"    ; immediate
-UNTIL       MOV #qbran,X    
+UNTIL       MOV #qbran,X
 UNTIL1      ADD #4,&DDP             ; compile two words
             MOV &DDP,W              ; W = HERE
             MOV X,-4(W)             ; compile Bran or qbran at HERE
@@ -2717,8 +2720,8 @@ UNTIL1      ADD #4,&DDP             ; compile two words
 ;https://forth-standard.org/standard/core/AGAIN
 ;X AGAIN    BEGINadr --             resolve uncondionnal backward branch
             FORTHWORDIMM "AGAIN"    ; immediate
-AGAIN       MOV #bran,X    
-            JMP UNTIL1     
+AGAIN       MOV #bran,X
+            JMP UNTIL1
 
 ;https://forth-standard.org/standard/core/WHILE
 ;C WHILE    BEGINadr -- WHILEadr BEGINadr
@@ -2749,9 +2752,9 @@ DO          SUB #2,PSP              ;
 ;https://forth-standard.org/standard/core/LOOP
 ;C LOOP    DOadr --         L-- an an-1 .. a1 0
             FORTHWORDIMM "LOOP"     ; immediate
-LOO         MOV #xloop,X            
+LOO         MOV #xloop,X
 ENDLOOP     ADD #4,&DDP             ; make room to compile two words
-            MOV &DDP,W         
+            MOV &DDP,W
             MOV X,-4(W)             ; xloop --> HERE
             MOV TOS,-2(W)           ; DOadr --> HERE+2
 ; resolve all "leave" adr
@@ -2759,17 +2762,17 @@ LEAVELOOP   MOV &LEAVEPTR,TOS       ; -- Adr of top LeaveStack cell
             SUB #2,&LEAVEPTR        ; --
             MOV @TOS,TOS            ; -- first LeaveStack value
             CMP #0,TOS              ; -- = value left by DO ?
-            JZ ENDLOOPEND         
+            JZ ENDLOOPEND
             MOV W,0(TOS)            ; move adr after loop as UNLOOP adr
-            JMP LEAVELOOP         
-ENDLOOPEND  MOV @PSP+,TOS         
+            JMP LEAVELOOP
+ENDLOOPEND  MOV @PSP+,TOS
             mNEXT
 
 ;https://forth-standard.org/standard/core/PlusLOOP
 ;C +LOOP   adrs --   L-- an an-1 .. a1 0
             FORTHWORDIMM "+LOOP"    ; immediate
-PLUSLOOP    MOV #xploop,X    
-            JMP ENDLOOP      
+PLUSLOOP    MOV #xploop,X
+            JMP ENDLOOP
 
 ;https://forth-standard.org/standard/core/LEAVE
 ;C LEAVE    --    L: -- adrs
@@ -2778,9 +2781,9 @@ LEAV        MOV &DDP,W              ; compile three words
             MOV #UNLOOP,0(W)        ; [HERE] = UNLOOP
             MOV #BRAN,2(W)          ; [HERE+2] = BRAN
             ADD #6,&DDP             ; [HERE+4] = take word for AfterLOOPadr
-            ADD #2,&LEAVEPTR     
-            ADD #4,W             
-            MOV &LEAVEPTR,X      
+            ADD #2,&LEAVEPTR
+            ADD #4,W
+            MOV &LEAVEPTR,X
             MOV W,0(X)              ; leave HERE+4 on LEAVEPTR stack
             mNEXT
 
@@ -2792,20 +2795,20 @@ MOVE        MOV TOS,W           ; 1
             MOV @PSP+,Y         ; dest adrs
             MOV @PSP+,X         ; src adrs
             MOV @PSP+,TOS       ; pop new TOS
-            CMP #0,W         
+            CMP #0,W
             JZ MOVE_X           ; already made !
             CMP X,Y             ; Y-X ; dst - src
             JZ MOVE_X           ; already made !
             JC MOVEUP           ; U>= if dst > src
 MOVEDOWN    MOV.B @X+,0(Y)      ; if X=src > Y=dst copy W bytes down
-            ADD #1,Y        
-            SUB #1,W        
-            JNZ MOVEDOWN    
+            ADD #1,Y
+            SUB #1,W
+            JNZ MOVEDOWN
             mNEXT
 MOVEUP      ADD W,Y             ; start at end
-            ADD W,X        
-MOVUP1      SUB #1,X       
-            SUB #1,Y       
+            ADD W,X
+MOVUP1      SUB #1,X
+            SUB #1,Y
 MOVUP2      MOV.B @X,0(Y)       ; if X=src < Y=dst copy W bytes up
             SUB #1,W
             JNZ MOVUP1
@@ -2959,35 +2962,35 @@ STATE_DOES  ; execution part of PWR_STATE ; sorry, doesn't restore search order
             MOV @TOS+,W             ; -- BODY+2     W = old VOCLINK = VLK
             MOV W,&LASTVOC          ; -- BODY+2     restore LASTVOC
             MOV @TOS,TOS            ; -- OLD_DP
-            MOV TOS,&DDP            ; -- OLD_DP     restore DP
-                                    ; then restore words link(s) with it value < old DP 
+            MOV TOS,&DDP            ; -- DP         restore DP
+                                    ; then restore words link(s) with it value < old DP
     .SWITCH THREADS
     .CASE   1 ; mono thread vocabularies
-MARKALLVOC  MOV W,Y                 ; -- OLD_DP      W=VLK   Y=VLK
-MRKWORDLOOP MOV -2(Y),Y             ; -- OLD_DP      W=VLK   Y=NFA
-            CMP Y,TOS               ; -- OLD_DP      CMP = TOS-Y : OLD_DP-NFA
+MARKALLVOC  MOV W,Y                 ; -- DP         W=VLK   Y=VLK
+MRKWORDLOOP MOV -2(Y),Y             ; -- DP         W=VLK   Y=NFA
+            CMP Y,TOS               ; -- DP         CMP = TOS-Y : OLD_DP-NFA
             JNC MRKWORDLOOP         ;                loop back if TOS<Y : OLD_DP<NFA
             MOV Y,-2(W)             ;                W=VLK   X=THD   Y=NFA   refresh thread with good NFA
-            MOV @W,W                ; -- OLD_DP      W=[VLK] = next voclink
-            CMP #0,W                ; -- OLD_DP      W=[VLK] = next voclink   end of vocs ?
-            JNZ MARKALLVOC          ; -- OLD_DP      W=VLK                   no : loopback
+            MOV @W,W                ; -- DP         W=[VLK] = next voclink
+            CMP #0,W                ; -- DP         W=[VLK] = next voclink   end of vocs ?
+            JNZ MARKALLVOC          ; -- DP         W=VLK                   no : loopback
 
     .ELSECASE ; multi threads vocabularies
-MARKALLVOC  MOV #THREADS,IP         ; -- OLD_DP      W=VLK
-            MOV W,X                 ; -- OLD_DP      W=VLK   X=VLK
-MRKTHRDLOOP MOV X,Y                 ; -- OLD_DP      W=VLK   X=VLK   Y=VLK
-            SUB #2,X                ; -- OLD_DP      W=VLK   X=THD (thread ((case-2)to0))
-MRKWORDLOOP MOV -2(Y),Y             ; -- OLD_DP      W=VLK   Y=NFA
-            CMP Y,TOS               ; -- OLD_DP      CMP = TOS-Y : OLD_DP-NFA
-            JNC MRKWORDLOOP         ;               loop back if TOS<Y : OLD_DP<NFA
+MARKALLVOC  MOV #THREADS,IP         ; -- DP         W=VLK
+            MOV W,X                 ; -- DP         W=VLK   X=VLK
+MRKTHRDLOOP MOV X,Y                 ; -- DP         W=VLK   X=VLK   Y=VLK
+            SUB #2,X                ; -- DP         W=VLK   X=THD (thread ((case-2)to0))
+MRKWORDLOOP MOV -2(Y),Y             ; -- DP         W=VLK   Y=NFA
+            CMP Y,TOS               ; -- DP         CMP = TOS-Y : DP-NFA
+            JNC MRKWORDLOOP         ;               loop back if TOS<Y : DP<NFA
 MARKTHREAD  MOV Y,0(X)              ;               W=VLK   X=THD   Y=NFA   refresh thread with good NFA
-            SUB #1,IP               ; -- OLD_DP      W=VLK   X=THD   Y=NFA   IP=CFT-1
+            SUB #1,IP               ; -- DP         W=VLK   X=THD   Y=NFA   IP=CFT-1
             JNZ MRKTHRDLOOP         ;                       loopback to compare NFA in next thread (thread-1)
-            MOV @W,W                ; -- OLD_DP      W=[VLK] = next voclink
-            CMP #0,W                ; -- OLD_DP      W=[VLK] = next voclink   end of vocs ?
-            JNZ MARKALLVOC          ; -- OLD_DP      W=VLK                   no : loopback
+            MOV @W,W                ; -- DP         W=[VLK] = next voclink
+            CMP #0,W                ; -- DP         W=[VLK] = next voclink   end of vocs ?
+            JNZ MARKALLVOC          ; -- DP         W=VLK                   no : loopback
 
-    .ENDCASE ; of THREADS           ; -- DDP
+    .ENDCASE ; of THREADS           ; -- DP
             MOV     @PSP+,TOS       ;
             MOV     @RSP+,IP        ;
             mNEXT                   ;
@@ -3013,17 +3016,6 @@ RST_HERE    MOV &LASTVOC,&INIVOC
             MOV &DDP,&INIDP
             JMP PWR_HERE            ; ...and also for power ON...
 
-;            FORTHWORD "WIPE"        ; restore the program as it was in forthMSP430FR.txt file
-;WIPE        MOV #SIGNATURES,X       ; reset JTAG and BSL signatures   ; unlock JTAG, SBW and BSL
-;SIGNLOOP    MOV #-1,0(X)            ; reset signature; WARNING ! DON'T CHANGE THIS IMMEDIATE VALUE !
-;            ADD #2,X
-;            CMP #INTVECT,X
-;            JNZ SIGNLOOP
-;            CALL #WIP_DEFER         ; set default execute part of all factory primary DEFERred words
-;            MOV #ROMDICT,&INIDP     ; reinit this 2 factory values
-;            MOV #lastvoclink,&INIVOC
-;            JMP RST_STATE           ; then execute RST_STATE and PWR_STATE
-
             FORTHWORD "WIPE"        ; restore the program as it was in forthMSP430FR.txt file
 WIPE                                ; reset JTAG and BSL signatures   ; unlock JTAG, SBW and BSL
             MOV #16,X               ; max known SIGNATURES length = 10
@@ -3044,7 +3036,7 @@ SIGNLOOP    SUB #2,X
             FORTHWORD "WARM"
 WARM        MOV @PC+,PC                 ;3
             .word   BODYWARM
-BODYWARM 
+BODYWARM
 ;            SUB     #4,PSP
 ;            MOV     &SYSSNIV,0(PSP)
 ;            MOV     &SYSUNIV,2(PSP)
@@ -3080,9 +3072,9 @@ RESET
 
 
 ; fill all interrupt vectors with RESET
-            MOV #VECTLEN,X          ; length of vectors area    
+            MOV #VECTLEN,X          ; length of vectors area
 RESETINT    SUB #2,X
-            MOV #RESET,INTVECT(X)   ; begin at end of area          
+            MOV #RESET,INTVECT(X)   ; begin at end of area
             JNZ RESETINT            ; endloop when INTVECT(X) = INTVECT
 
 ; reset default TERMINAL vector interrupt and LPM0 mode for terminal use
@@ -3102,7 +3094,7 @@ INITRAM     SUB #2,X
             MOV #PSTACK,PSP         ; init parameter stack
     .SWITCH DTC
     .CASE 1
-            MOV #xdocol,rDOCOL      ; 
+            MOV #xdocol,rDOCOL      ;
     .CASE 2
             MOV #EXIT,rEXIT
     .CASE 3                         ; inlined DOCOL, do nothing here
@@ -3158,7 +3150,7 @@ COLD_END
         .word   WARM            ; the next step
     .ELSE
         FORTHtoASM
-        .IFDEF RAM_1K           ; case of MSP430FR57xx
+        .IFDEF RAM_1K           ; case of MSP430FR57xx : SD datas are in FRAM
         MOV #0,&CurrentHDL      ; init this FRAM area to pass QABORT
         .ENDIF
         BIT.B #SD_CD,&SD_CDIN   ; SD_memory in SD_Card module ?
@@ -3212,7 +3204,7 @@ COLD_END
 ; UART to I2C bridge OPTION
 ;-------------------------------------------------------------------------------
     .IFDEF UARTtoI2C    ; redirects TERMINAL on to I2C address
-    .include "ADDON/UART2MI2C.asm" 
+    .include "ADDON/UART2MI2C.asm"
     .ENDIF
 
 ;-------------------------------------------------------------------------------
@@ -3228,6 +3220,6 @@ COLD_END
     .include "ResolveThreads.mac"
 
 
-    .org 0FFFEh 
+    .org 0FFFEh
     .word reset
 
index f96051a..5867188 100644 (file)
@@ -710,7 +710,7 @@ TYPE3DOES                                   ; -- PFADOES
             .word   WORDD,QNUMBER
             .word   QBRAN,NotFound          ;                       ABORT
             FORTHtoASM
-            POPM  #2,S                    ;               POPM T,S
+            POPM  #2,S                      ;               POPM T,S
             ASMtoFORTH
             .word   PARAM2                  ; -- PFADOES 0x000N     S=ASMTYPE = 0x000R
             FORTHtoASM
@@ -724,16 +724,16 @@ TYPE3DOES                                   ; -- PFADOES
 PxxxINSTRU  MOV     S,Y                     ;                       S=REG, Y=REG to test
             RLAM    #3,X                    ;                       OPCODE bit 0200h --> C                  
             JNC     PUSHMINSTRU             ;                       W=n-1 Y=REG
-POPMINSTRU  SUB     W,S                     ;                       to make POPM opcode, keep first REG to POP; TI is complicated....
+POPMINSTRU  SUB     W,S                     ;                       to make POPM opcode, compute first REG to POP; TI is complicated....
 PUSHMINSTRU SUB     W,Y                     ;                       Y=REG-(n-1)
             CMP     #16,Y
             JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
-            RLAM.W  #4,W                    ;                       W = n << 4      
+            RLAM    #4,W                    ;                       W = n << 4      
             JMP     BIS_ASMTYPE             ; PFADOES --            
 RxxMINSTRU  CMP     #4,W                    ;
             JHS     BOUNDERRWM1             ;                       JC=JHS    (U>=)
             SWPB    W                       ; -- PFADOES            W = n << 8
-            RLAM.W  #2,W                    ; RLAM #2,R10           W = N << 10
+            RLAM    #2,W                    ;                       W = N << 10
             JMP     BIS_ASMTYPE             ; PFADOES --
 
             asmword "RRCM"
@@ -776,7 +776,7 @@ RxxMINSTRU  CMP     #4,W                    ;
 CODE_JMP    mDOCON                      ; branch always
             .word   3C00h
 
-            asmword "S>="               ; if >= assertion
+            asmword "S>="               ; if >= assertion (opposite of jump if < )
             mDOCON
             .word   3800h
 
@@ -901,7 +901,6 @@ BACKWUSE            ; -- OPCODE
 BACKWSET            ; --
     MOV &DDP,0(Y)   ;               [ASMBWx] = DDP
     mNEXT
-;    JMP ASM_UNTIL1  ;               resolve backward branch with W
 
 ; backward label 1
             asmword "BW1"
@@ -927,17 +926,16 @@ FORWARDDOES
     MOV &DDP,W      ;
     MOV @TOS,TOS
     MOV @TOS,Y      ;               Y=[ASMFWx]
-    MOV #0,0(TOS)   ;               preset [ASMFWx] for next use
     CMP #0,Y        ;               ASMFWx = 0 ? (FWx is free?)
+    MOV #0,0(TOS)   ;               preset [ASMFWx] for next use
 FORWUSE             ; PFA -- @OPCODE
-    JNZ ASM_THEN1     ;               no
+    JNZ ASM_THEN1   ;               no
 FORWSET             ; OPCODE PFA -- 
     MOV @PSP+,0(W)  ; -- PFA        compile incomplete opcode
     ADD #2,&DDP     ;               increment DDP
     MOV W,0(TOS)    ;               store @OPCODE into ASMFWx
     MOV @PSP+,TOS   ;   --
     mNEXT
-;    JMP ASM_THEN1   ;               resolve forward branch with Y
 
 
 ; forward label 1