diff --git a/cores/Spectrum/firmloader_hex.txt b/cores/Spectrum/firmloader_hex.txt new file mode 100644 index 0000000..99ea4cd --- /dev/null +++ b/cores/Spectrum/firmloader_hex.txt @@ -0,0 +1,6416 @@ +F3 +31 +FF +BF +11 +71 +C7 +D5 +11 +FF +ED +D5 +EF +01 +08 +21 +0F +19 +53 +FF +01 +3B +FC +ED +71 +04 +C3 +FC +BF +CB +1B +EB +ED +5A +ED +B8 +E1 +30 +18 +C9 +01 +3B +FD +E1 +ED +A3 +06 +FE +ED +A3 +E9 +7E +2B +8F +C9 +00 +01 +00 +80 +78 +0C +ED +A8 +87 +CC +33 +00 +30 +F7 +D5 +51 +30 +87 +CC +33 +00 +CB +11 +CB +10 +87 +CC +33 +00 +30 +F2 +0C +28 +CB +5E +2B +CB +33 +30 +0D +16 +10 +87 +CC +33 +00 +CB +12 +30 +F8 +14 +CB +3A +E3 +18 +AE +58 +55 +31 +B0 +AA +3E +04 +05 +22 +FC +A0 +D3 +CC +70 +6B +F5 +21 +94 +E4 +11 +DC +FB +7A +C3 +15 +01 +E8 +B8 +38 +AD +01 +19 +4B +14 +A3 +3B +D8 +EB +03 +D0 +D7 +ED +A3 +E9 +00 +B1 +00 +F5 +08 +F5 +80 +C2 +11 +9C +00 +01 +09 +FE +FE +6A +9A +88 +2F +E6 +1F +65 +28 +1F +2C +01 +CB +3F +F5 +E0 +08 +7D +FE +25 +29 +FE +01 +30 +04 +14 +15 +55 +28 +08 +AF +03 +18 +19 +1E +C4 +C2 +1E +EC +08 +00 +20 +E1 +7C +C6 +05 +6F +CB +00 +00 +38 +D1 +AF +67 +82 +28 +04 +54 +00 +6F +19 +7E +2A +14 +F0 +AB +CB +BD +BD +20 +0C +06 +8C +08 +62 +26 +03 +C2 +26 +B0 +D2 +80 +6F +22 +63 +B5 +FB +E1 +06 +92 +F1 +08 +47 +B4 +00 +7A +78 +63 +76 +07 +61 +73 +64 +66 +67 +71 +77 +65 +00 +72 +74 +31 +32 +33 +34 +35 +30 +00 +39 +38 +37 +36 +70 +6F +69 +75 +00 +79 +0D +6C +6B +6A +68 +4F +C0 +6D +6E +62 +00 +5A +58 +43 +56 +00 +41 +53 +44 +46 +47 +27 +20 +52 +54 +17 +19 +1A +1B +1E +01 +18 +16 +1F +1C +1D +50 +4F +49 +00 +55 +59 +0D +4C +4B +4A +48 +0C +00 +00 +4D +4E +42 +00 +3A +60 +3F +00 +2F +7E +7C +5C +7B +7D +51 +57 +00 +45 +3C +3E +E0 +C0 +23 +24 +25 +5F +29 +28 +27 +01 +26 +22 +3B +7F +5D +5B +0D +3D +00 +2B +2D +5E +FA +88 +2E +2C +2A +01 +85 +07 +01 +A4 +EF +0B +C0 +1A +ED +56 +11 +D5 +1C +21 +40 +98 +CD +AC +0C +8E +C4 +B0 +58 +F8 +B4 +6E +8A +7E +F6 +A1 +9B +4F +A1 +EA +E2 +84 +30 +F2 +1D +F1 +08 +43 +06 +12 +68 +01 +7F +02 +22 +35 +CA +F0 +C5 +69 +0C +A5 +09 +00 +EF +02 +1C +35 +D2 +70 +EF +03 +01 +E6 +02 +41 +B2 +AF +57 +67 +EF +21 +17 +00 +66 +31 +51 +6C +1E +17 +8E +89 +5E +91 +59 +81 +09 +08 +F2 +21 +88 +CD +09 +25 +09 +A3 +DF +BF +75 +18 +BD +DA +21 +03 +19 +11 +DF +8D +7E +72 +7E +05 +55 +05 +55 +08 +B6 +56 +0B +56 +21 +4A +4E +0D +22 +FC +5A +21 +4C +4D +22 +FE +00 +5A +D5 +D3 +64 +FE +F8 +01 +60 +18 +F7 +3E +39 +21 +00 +DD +11 +14 +18 +09 +47 +9A +C6 +25 +6C +56 +20 +2C +95 +F3 +0E +14 +12 +21 +5F +B0 +EC +58 +8A +F9 +76 +07 +33 +D5 +21 +3B +00 +D5 +56 +24 +10 +EB +F7 +E8 +20 +D3 +E5 +04 +7C +D6 +08 +67 +48 +DC +60 +FB +31 +AE +AA +30 +A5 +19 +4B +19 +69 +4F +09 +F3 +0F +87 +C6 +1C +6F +0F +4E +D5 +E6 +DF +1B +7A +2E +00 +C5 +13 +EB +04 +3E +31 +79 +C9 +96 +60 +29 +08 +68 +8E +FB +4C +1F +37 +EC +BB +C3 +BA +C5 +B4 +59 +FE +26 +10 +FF +E4 +BC +26 +09 +3B +16 +07 +C4 +C0 +B8 +10 +F1 +CB +E8 +01 +C1 +D5 +22 +C5 +1C +CD +0E +0C +11 +03 +1B +02 +19 +8F +CC +EF +36 +8B +04 +67 +A1 +04 +B5 +04 +AD +0F +CB +2C +67 +F7 +DE +8F +A1 +14 +A9 +B9 +9C +9C +77 +A1 +89 +F2 +70 +16 +DD +F1 +A1 +7E +1F +B3 +97 +ED +A9 +8C +FF +5D +CB +3B +26 +87 +7C +D0 +DE +2C +9C +25 +F5 +82 +4F +28 +8F +EC +1B +D5 +DF +01 +AE +62 +6A +CD +CB +09 +06 +32 +C5 +3C +81 +FC +2A +C8 +10 +C6 +DB +C5 +05 +7C +32 +41 +A0 +06 +C9 +25 +25 +C2 +6E +06 +09 +C0 +EE +1B +E8 +E0 +B0 +13 +A4 +4A +DE +6A +08 +38 +C0 +54 +98 +64 +38 +D3 +06 +CB +BB +09 +0F +1C +0C +1C +0C +DF +F3 +ED +62 +6F +07 +E0 +CD +7D +05 +20 +67 +3A +80 +01 +B0 +E0 +57 +B3 +06 +2A +46 +A4 +3A +04 +42 +A4 +F5 +B4 +88 +E5 +62 +94 +47 +3C +05 +C1 +80 +BD +07 +22 +9E +21 +9E +21 +6B +05 +06 +B8 +F5 +EC +9F +9D +86 +B8 +3E +8E +31 +FB +C6 +0B +00 +93 +23 +D1 +11 +64 +C5 +03 +F2 +3E +1C +F3 +E4 +06 +F1 +30 +04 +8B +B4 +C6 +5F +2D +32 +BE +1C +FE +00 +98 +9B +CE +35 +1C +0E +EB +D1 +F1 +FE +01 +0B +28 +52 +E6 +F5 +D6 +7A +C0 +4C +19 +25 +19 +0D +19 +B6 +67 +E4 +97 +FB +C2 +93 +87 +81 +77 +D6 +04 +38 +F6 +82 +BA +54 +E5 +79 +1C +98 +D4 +09 +DF +EA +DC +21 +0B +06 +11 +40 +E9 +EB +DF +58 +8E +FD +D3 +D0 +08 +E4 +68 +C8 +6A +F8 +F1 +71 +2E +D6 +11 +09 +E8 +7F +E5 +C3 +CD +E0 +2A +8E +A2 +1A +C6 +5A +09 +96 +A2 +7D +B4 +0F +28 +6B +6D +EB +2A +91 +A2 +0C +06 +04 +CB +1C +CB +1D +10 +FA +00 +45 +5F +EB +23 +D6 +3B +6A +1E +09 +6A +15 +3B +7A +1C +C3 +7A +03 +00 +8C +F5 +09 +8C +F0 +16 +8F +24 +43 +8E +82 +4A +D0 +DC +49 +E5 +45 +9C +66 +6F +A4 +1C +94 +B0 +D7 +19 +51 +1C +18 +BB +2A +06 +A4 +A2 +29 +19 +80 +92 +2A +AC +A2 +89 +B5 +54 +38 +E1 +61 +48 +17 +DD +CD +FE +04 +12 +28 +29 +10 +F6 +26 +4A +70 +43 +46 +6E +A0 +20 +C5 +C3 +F3 +03 +00 +FC +D6 +31 +A6 +D3 +CD +CE +04 +20 +F2 +06 +DD +46 +14 +DD +6E +1A +DD +66 +00 +1B +CA +60 +A6 +E1 +69 +04 +CD +2D +14 +38 +98 +BC +86 +A4 +41 +94 +E5 +6C +60 +41 +D0 +41 +D8 +CD +85 +05 +E1 +26 +52 +29 +5E +00 +2C +56 +2C +46 +EB +7D +A4 +A0 +00 +3C +52 +20 +D2 +C3 +36 +04 +06 +B7 +DD +B6 +1C +C0 +80 +AB +5E +1D +DD +56 +1E +07 +2A +9C +E0 +48 +D1 +1C +02 +3A +CD +F9 +3F +45 +91 +18 +03 +29 +D3 +F0 +0F +30 +FA +71 +81 +19 +78 +CE +00 +0B +5F +2E +52 +9F +55 +06 +4F +65 +06 +0B +7E +B7 +03 +FE +42 +9A +A2 +3C +E5 +1A +BE +23 +13 +E0 +F0 +CE +8E +DD +03 +18 +09 +48 +CD +11 +4C +9E +A6 +DF +7A +87 +D1 +D1 +41 +C5 +3A +8D +A2 +0D +98 +87 +05 +39 +01 +DD +24 +20 +2F +C5 +E5 +03 +21 +59 +A2 +3A +9F +A2 +D6 +06 +00 +23 +AD +F0 +8C +99 +88 +01 +16 +CF +69 +A4 +0E +A7 +AE +8C +BB +B3 +ED +53 +9E +A2 +D9 +40 +81 +E1 +C1 +23 +16 +10 +C5 +FE +C0 +20 +01 +04 +80 +4E +02 +99 +E2 +C5 +CF +09 +CD +C9 +05 +43 +C0 +63 +1E +00 +E5 +C5 +3E +51 +4E +C0 +44 +C9 +B5 +41 +3A +36 +B7 +28 +33 +0D +4F +59 +0D +D2 +53 +18 +0C +21 +7B +29 +8F +2C +18 +9B +45 +5A +4E +06 +B7 +CD +C8 +CF +06 +D6 +30 +FE +28 +02 +10 +F7 +A0 +9E +47 +01 +D2 +ED +B2 +C1 +E1 +50 +86 +65 +27 +BE +3D +CD +4B +06 +0E +C9 +09 +17 +B3 +F3 +CD +73 +39 +06 +DF +C8 +95 +32 +14 +C0 +2E +48 +1E +6A +3C +A3 +BB +21 +AA +87 +19 +51 +CD +5C +06 +23 +92 +25 +26 +00 +06 +47 +9F +52 +0D +CD +3E +0E +62 +28 +0F +A7 +5C +A7 +C8 +31 +2E +41 +13 +CD +1B +24 +06 +20 +F4 +05 +C0 +20 +DC +C9 +26 +06 +CA +04 +1D +7A +18 +B6 +08 +FE +C0 +20 +1C +03 +32 +D4 +8F +01 +F0 +EA +11 +EE +A9 +10 +2E +35 +77 +CD +52 +06 +2E +69 +0C +C0 +14 +18 +0B +F5 +3E +FF +D3 +03 +E7 +F1 +C9 +ED +69 +01 +20 +71 +ED +61 +C5 +0E +05 +32 +DB +EB +FE +FF +20 +00 +D0 +F8 +0C +8B +F5 +C1 +47 +8E +F4 +9E +70 +CD +88 +0B +67 +1C +71 +01 +1C +FF +FF +A8 +98 +A5 +A5 +F0 +3C +7E +0F +21 +D5 +01 +12 +39 +13 +C0 +DA +DE +A0 +88 +2F +08 +30 +16 +2A +81 +F3 +2D +28 +3D +F2 +0D +2E +07 +45 +8C +E0 +45 +20 +45 +96 +CC +90 +44 +21 +FF +2B +41 +05 +41 +4B +17 +E8 +E5 +E0 +41 +40 +41 +5A +7B +1B +20 +18 +40 +FE +31 +C2 +00 +9D +5D +CA +5E +B8 +78 +F3 +2C +1E +78 +E7 +30 +B8 +01 +0A +08 +17 +1D +57 +1B +06 +E0 +02 +AD +2A +07 +A2 +07 +ED +52 +20 +D5 +00 +8C +C0 +2B +A6 +80 +00 +07 +89 +14 +32 +6D +04 +95 +1B +B9 +D7 +2B +B9 +15 +16 +B9 +09 +80 +61 +AA +0C +8D +FE +43 +38 +A7 +FE +46 +03 +30 +A3 +45 +05 +10 +07 +3A +02 +00 +A2 +FE +CB +20 +98 +CD +BC +07 +00 +E5 +CD +1A +BC +80 +C0 +AC +FD +71 +F6 +CA +1C +FB +D0 +A2 +36 +12 +97 +02 +36 +2D +1B +A7 +28 +DD +12 +9D +2F +EE +D7 +90 +08 +1F +7B +42 +AC +20 +CC +2F +08 +48 +D2 +37 +02 +60 +08 +07 +78 +1C +CA +FD +E1 +CD +09 +25 +08 +D1 +D9 +3E +1E +FD +94 +00 +CD +A6 +AC +3E +40 +E0 +EA +F2 +D5 +34 +0C +13 +D9 +FD +06 +95 +95 +CD +17 +2A +13 +08 +CD +E8 +0C +09 +5C +1B +C3 +3E +09 +02 +1D +22 +32 +B4 +84 +C9 +04 +21 +40 +00 +04 +11 +40 +05 +19 +10 +FD +C9 +0E +80 +EF +1A +F8 +A1 +FD +07 +0D +0D +FD +05 +2E +05 +1E +EC +AD +84 +03 +72 +DF +68 +8B +48 +33 +A0 +33 +CF +05 +30 +FC +C6 +0C +0E +4F +93 +D8 +EA +3C +F4 +27 +3C +04 +0D +06 +C8 +09 +07 +11 +07 +12 +06 +A4 +16 +25 +2D +6E +12 +01 +FD +BA +C9 +37 +BD +F9 +1E +C0 +70 +38 +01 +EB +3D +D0 +98 +85 +D2 +3E +0F +01 +0D +FD +7F +9E +DC +30 +E6 +C9 +CD +C7 +07 +04 +C0 +1F +1A +99 +58 +00 +18 +51 +1A +B3 +E6 +EE +A3 +09 +11 +D0 +21 +0B +87 +7E +F5 +E3 +89 +DD +2E +31 +DF +F1 +32 +3E +01 +E3 +52 +A2 +38 +21 +49 +1B +01 +0E +C0 +CB +92 +92 +A2 +FD +67 +D6 +D0 +07 +32 +5D +A2 +C9 +0C +08 +B0 +E3 +3C +4F +A7 +21 +0D +32 +0B +11 +92 +DC +CA +15 +92 +16 +03 +DD +45 +10 +02 +03 +26 +11 +15 +20 +C2 +C6 +E1 +23 +5E +07 +DA +34 +A7 +05 +3D +DD +85 +28 +D3 +C6 +01 +12 +FE +02 +30 +CF +6D +60 +0D +C0 +DD +7D +A7 +C9 +0E +01 +21 +E5 +2B +0D +7E +FE +20 +28 +00 +F9 +26 +92 +96 +25 +16 +BF +AF +12 +13 +8C +B7 +A0 +4A +8A +22 +F1 +FB +7D +C9 +BF +90 +07 +98 +87 +C5 +14 +AB +A1 +DD +E1 +1D +D7 +6C +32 +AD +24 +E0 +5F +80 +47 +3F +91 +51 +04 +7B +13 +84 +19 +B1 +34 +0F +8C +32 +73 +2C +7D +D6 +D8 +03 +92 +20 +F8 +77 +0D +DF +C1 +1F +80 +2F +ED +B8 +A1 +2B +09 +23 +99 +E0 +30 +42 +08 +44 +F6 +16 +87 +F3 +18 +E7 +83 +D8 +40 +0E +30 +3A +1E +ED +5F +F0 +E1 +80 +80 +6F +C4 +A6 +AD +26 +80 +13 +A4 +3E +01 +CB +0C +3C +1D +8E +A2 +3D +2E +44 +08 +1A +AC +D8 +F0 +2D +B4 +CD +C9 +4D +FE +18 +20 +12 +1C +1F +16 +FA +3E +21 +46 +92 +27 +70 +54 +5D +2C +04 +87 +45 +14 +D6 +3D +E6 +07 +2D +37 +FA +0E +C3 +D4 +86 +FB +3A +4E +20 +06 +36 +BD +20 +17 +C3 +1A +BC +28 +30 +80 +CB +D6 +62 +6F +71 +A4 +8E +34 +35 +24 +E9 +9D +96 +E0 +77 +8C +2C +48 +18 +D7 +08 +3E +F7 +95 +C5 +4F +00 +89 +2E +F6 +32 +11 +F7 +4C +B8 +2C +08 +77 +0C +C1 +18 +E5 +D2 +80 +08 +22 +CC +11 +71 +C8 +47 +2C +3C +3E +B9 +CB +3D +33 +2D +4D +63 +42 +22 +1A +21 +E0 +36 +20 +24 +E2 +FB +77 +08 +32 +D3 +06 +8F +32 +3D +04 +BB +30 +FB +78 +00 +32 +D2 +03 +2A +5F +FD +6C +6C +0F +16 +CC +D6 +8F +46 +CC +3A +42 +2F +49 +19 +87 +26 +3F +8F +6F +A8 +40 +9B +F6 +2C +9F +E5 +60 +DF +76 +83 +86 +F1 +11 +85 +14 +63 +3A +D1 +8F +5F +3A +03 +B7 +14 +71 +ED +5B +12 +A6 +13 +3A +CC +27 +8F +84 +95 +6F +5B +B0 +61 +78 +9B +2A +D2 +09 +0D +38 +2C +28 +0C +2A +ED +4B +D0 +20 +97 +B3 +CF +0F +25 +FA +27 +0A +7C +BD +12 +80 +30 +BA +04 +9C +18 +86 +66 +92 +10 +24 +7C +B9 +28 +06 +AE +95 +B8 +22 +D2 +8F +20 +A7 +00 +7D +9B +E0 +A4 +7A +7D +8E +3C +59 +FD +0A +E5 +AF +32 +23 +3C +06 +FE +FB +2A +B0 +E1 +FD +65 +DD +65 +E5 +81 +A2 +6E +63 +1E +18 +82 +39 +FD +31 +0A +02 +3E +47 +23 +8C +23 +DD +25 +16 +20 +EA +52 +87 +4F +09 +64 +8C +03 +67 +2B +7E +DD +6F +07 +CD +0B +0C +CD +F3 +0B +37 +C0 +0D +28 +58 +02 +FF +0A +F3 +0E +12 +09 +21 +5F +A5 +88 +B0 +06 +73 +08 +F9 +00 +D5 +33 +2C +D5 +24 +10 +F5 +7D +64 +20 +38 +04 +7C +D6 +08 +67 +0D +01 +20 +E6 +FB +DD +E9 +31 +A8 +AA +00 +81 +28 +F0 +F0 +90 +FE +F1 +09 +68 +26 +28 +8C +09 +8E +18 +88 +FE +44 +8C +0A +19 +DD +BD +D2 +9A +0D +0A +3C +18 +EE +DD +E5 +D1 +08 +80 +37 +E9 +31 +E1 +65 +00 +19 +23 +FD +7D +3D +E9 +03 +8F +21 +08 +30 +02 +11 +08 +1B +E5 +D5 +4C +29 +00 +03 +61 +AF +C5 +00 +09 +49 +EA +AD +F6 +FC +08 +7D +92 +C6 +20 +03 +6F +30 +01 +24 +08 +20 +BC +EE +D1 +27 +C1 +E1 +04 +97 +CA +04 +CB +8F +7E +16 +B5 +C6 +8F +3D +E9 +FD +8F +E8 +3C +E1 +FE +3D +E5 +CC +D5 +10 +00 +E1 +5E +23 +56 +23 +D5 +DD +E1 +00 +14 +B0 +FD +72 +2C +E9 +D9 +E1 +80 +D3 +8F +01 +04 +DB +34 +20 +F9 +ED +A0 +E5 +CB +01 +3B +7B +3D +FD +6F +C6 +E8 +2F +00 +1F +0E +16 +16 +01 +0F +46 +7B +1C +63 +E5 +08 +85 +87 +0A +70 +4B +0D +3E +07 +0B +23 +E1 +5C +2D +31 +D1 +D5 +E5 +3E +4F +43 +80 +86 +E9 +19 +06 +0C +4D +3D +21 +60 +FB +19 +DF +FD +2D +20 +F7 +DF +00 +CD +5E +0B +0A +0B +4F +E1 +D1 +00 +2C +7C +D2 +DC +67 +1D +1D +D9 +7E +D9 +C0 +8F +09 +D9 +77 +23 +8C +CE +23 +80 +38 +F9 +32 +0D +CE +F1 +2E +E0 +40 +9A +DD +40 +01 +FF +FB +A0 +20 +A0 +87 +02 +C2 +E1 +DD +86 +00 +93 +80 +ED +C9 +71 +3A +C9 +8F +D6 +04 +D8 +16 +A1 +00 +D6 +98 +5F +21 +31 +A2 +7E +00 +B0 +82 +3A +7B +EA +90 +D9 +11 +1C +92 +F2 +B1 +1A +3D +20 +1A +6A +0B +CD +4C +9A +0C +08 +84 +06 +30 +3F +32 +02 +ED +51 +84 +BD +6D +BE +3E +20 +D9 +01 +3B +FD +03 +02 +21 +A0 +DA +A3 +3D +90 +DC +D9 +1F +08 +3D +28 +12 +0B +08 +1C +7B +E6 +0F +20 +B8 +00 +21 +36 +0C +CE +B0 +05 +01 +D1 +ED +B2 +01 +6E +20 +FA +F2 +58 +C9 +FA +AA +80 +78 +48 +A8 +10 +59 +F7 +D5 +51 +30 +08 +18 +11 +CB +21 +10 +33 +E1 +0C +28 +1B +5E +2B +CB +33 +30 +00 +0D +16 +10 +87 +CC +EC +0C +CB +00 +12 +30 +F8 +14 +CB +3A +CB +1B +00 +E3 +DC +5A +6A +ED +B8 +E1 +30 +C8 +C9 +7E +2B +00 +8F +C9 +06 +00 +02 +90 +CD +E2 +3F +FE +0C +ED +6A +30 +00 +F2 +C9 +80 +55 +3C +D5 +9E +3A +00 +61 +B3 +11 +0A +8A +74 +74 +70 +00 +3A +2F +2F +03 +7A +78 +75 +11 +00 +2E +73 +98 +D7 +63 +60 +DC +2E +38 +67 +00 +21 +07 +CC +18 +E0 +89 +C8 +43 +6F +70 +79 +E0 +EB +66 +01 +74 +26 +DA +20 +16 +D9 +AB +5D +00 +6F +09 +A2 +11 +12 +F7 +5A +38 +00 +84 +33 +2E +32 +35 +01 +4D +48 +7A +00 +6D +6D +00 +1B +B0 +79 +3A +55 +35 +59 +F2 +00 +4B +38 +D0 +6B +99 +93 +8C +C3 +00 +B7 +FC +40 +6E +0C +BD +98 +6C +00 +71 +80 +63 +7C +A7 +95 +BA +C2 +B2 +EA +2D +16 +00 +96 +2C +48 +A7 +C6 +F5 +80 +ED +DA +29 +F4 +A4 +0C +56 +3A +E1 +A2 +3C +45 +64 +14 +00 +49 +3E +A4 +AB +53 +55 +A4 +70 +00 +6C +69 +3C +D3 +45 +3E +1F +68 +00 +4D +14 +9A +75 +AD +83 +A2 +6B +00 +F1 +3A +D8 +4F +4D +12 +D7 +C9 +00 +C5 +5A +9A +61 +BA +09 +CB +41 +00 +64 +76 +41 +CA +2B +EF +A2 +C7 +00 +12 +57 +28 +19 +50 +00 +83 +E6 +00 +12 +0E +EA +8B +C6 +6A +EE +AC +00 +04 +B8 +18 +F0 +60 +40 +E3 +BF +1A +76 +30 +2E +06 +34 +31 +CD +CC +7F +32 +2C +30 +31 +36 +A0 +A0 +00 +2D +55 +6E +44 +9E +54 +77 +55 +00 +EC +20 +57 +16 +E6 +41 +02 +EA +00 +88 +82 +90 +00 +40 +8D +1F +0E +10 +53 +63 +2E +03 +E5 +AA +1C +30 +20 +1D +19 +1B +CD +CB +2E +49 +00 +05 +3C +F7 +2E +3A +E7 +C6 +91 +00 +00 +47 +72 +02 +E4 +D0 +9E +B4 +00 +63 +26 +09 +A5 +9C +8C +B4 +31 +00 +4E +95 +82 +65 +77 +25 +A7 +6E +00 +74 +0C +26 +52 +1E +52 +A5 +B6 +00 +6F +76 +3D +99 +79 +A1 +C1 +4F +00 +EB +87 +6D +36 +ED +C1 +90 +64 +BA +6B +E2 +48 +00 +65 +70 +3C +95 +3A +95 +83 +41 +00 +16 +31 +8D +17 +10 +FF +59 +05 +97 +06 +87 +9A +03 +63 +F3 +14 +00 +2A +11 +44 +15 +00 +18 +19 +1E +AA +85 +18 +30 +12 +00 +11 +B4 +20 +C6 +60 +DB +63 +5A +80 +95 +11 +13 +18 +00 +BC +18 +01 +BA +E4 +41 +76 +72 +17 +C2 +79 +AA +64 +B3 +75 +00 +55 +D9 +3F +C1 +62 +10 +2A +15 +00 +16 +A6 +23 +AE +36 +63 +78 +69 +00 +3E +9E +92 +C5 +65 +0F +B1 +00 +B6 +18 +A2 +3E +06 +F6 +B7 +43 +68 +61 +43 +65 +03 +63 +28 +50 +22 +19 +DB +C7 +79 +00 +61 +8B +B1 +DA +70 +0C +B0 +26 +00 +95 +41 +6C +42 +77 +1A +F1 +84 +00 +70 +22 +53 +BE +98 +BB +F2 +7F +61 +30 +7D +63 +3D +61 +6E +0C +B0 +C4 +DE +D0 +4C +60 +6F +3C +32 +67 +61 +DE +00 +83 +11 +41 +6E +03 +6B +65 +32 +00 +9F +74 +6F +ED +B0 +72 +D1 +C0 +9A +91 +23 +6C +01 +6F +03 +D5 +04 +0F +B4 +66 +20 +00 +31 +3A +EA +F0 +03 +6F +07 +00 +4D +20 +C0 +0D +C6 +3B +C1 +0F +06 +17 +17 +75 +53 +08 +64 +15 +A3 +00 +40 +FA +13 +D8 +01 +42 +49 +E6 +00 +81 +0E +78 +18 +CF +00 +55 +70 +00 +67 +5D +8F +43 +9C +6C +61 +06 +73 +68 +3D +44 +F0 +6D +2C +00 +00 +12 +CA +26 +70 +65 +3C +63 +74 +00 +72 +75 +6D +4D +74 +60 +61 +74 +00 +75 +73 +3A +5B +00 +C0 +20 +5D +00 +24 +1B +8A +40 +73 +43 +49 +03 +2F +FA +77 +69 +02 +20 +F8 +74 +68 +2D +0B +67 +D8 +2B +00 +2D +30 +F7 +C6 +42 +00 +65 +30 +20 +71 +75 +69 +40 +C0 +2C +2D +F1 +61 +76 +6F +69 +64 +07 +28 +72 +BA +C0 +63 +6B +4B +1C +C8 +70 +61 +72 +00 +01 +C5 +74 +69 +6F +6E +20 +65 +00 +72 +72 +00 +FF +E8 +4E +6F +74 +41 +CB +6F +AD +FB +06 +8F +FD +16 +98 +61 +19 +73 +69 +7A +27 +00 +8D +20 +53 +75 +63 +E0 +DB +01 +73 +66 +13 +75 +6C +6C +79 +20 +62 +00 +75 +00 +72 +21 +64 +20 +26 +CC +35 +20 +00 +69 +0D +B3 +00 +53 +44 +20 +66 +00 +69 +6C +14 +80 +49 +6E +70 +75 +00 +9D +6D +01 +3F +61 +63 +D9 +FC +6E +65 +27 +73 +2F +6E +B0 +A0 +65 +00 +45 +1F +53 +00 +58 +44 +E0 +F5 +14 +0A +F0 +49 +52 +4D +03 +57 +41 +1C +82 +0A +46 +C0 +DA +13 +53 +48 +15 +0F +8C +53 +50 +45 +43 +54 +52 +55 +00 +4D +00 +0A +43 +4F +52 +45 +09 +00 +00 +E8 +3C +31 +09 +32 +00 +33 +00 +01 +C9 +35 +08 +DC +36 +00 +37 +00 +90 +90 +39 +87 +B3 +2A +11 +4C +2A +59 +2A +2B +1D +2A +60 +69 +2D +2A +CD +02 +AD +27 +63 +FD +7C +87 +C6 +05 +01 +A6 +A2 +4E +2C +46 +0C +37 +42 +C9 +15 +01 +33 +FD +C0 +05 +27 +98 +04 +26 +2D +C5 +01 +0D +92 +50 +59 +ED +1C +B0 +C1 +EF +C2 +A8 +C9 +11 +00 +A1 +21 +71 +00 +01 +3E +01 +08 +AF +E5 +31 +00 +60 +EF +02 +03 +E1 +E5 +ED +61 +ED +00 +69 +ED +79 +08 +EB +ED +70 +1E +00 +20 +02 +42 +ED +A2 +04 +1D +20 +04 +E5 +3D +20 +E0 +EF +03 +01 +E1 +00 +C9 +21 +FF +BF +0E +AE +11 +AE +00 +5F +EB +7C +61 +AE +24 +66 +EB +00 +2C +C2 +08 +FF +88 +20 +F0 +5F +C9 +09 +21 +3E +38 +21 +02 +01 +16 +12 +01 +04 +2E +09 +CD +3C +09 +0B +DD +21 +8B +19 +01 +0C +1B +00 +00 +DF +C5 +78 +E6 +09 +FC +57 +A8 +5F +28 +01 +1D +EE +00 +FC +25 +AD +6E +E5 +7A +0F +06 +57 +0F +82 +0D +05 +18 +78 +F6 +40 +57 +79 +E6 +07 +00 +C0 +0F +83 +5F +3E +C1 +0C +C9 +1D +80 +F5 +1D +D4 +2C +77 +03 +76 +7E +12 +2C +14 +10 +F6 +21 +01 +00 +2C +06 +D7 +2C +2F +2C +2D +FC +2C +85 +AA +2C +A0 +2E +2C +01 +F0 +2B +CD +0E +1C +04 +0A +EB +7E +A1 +12 +1D +1C +84 +A1 +1F +85 +E8 +1F +DD +42 +7E +00 +DD +23 +87 +28 +D1 +6F +00 +26 +2D +29 +29 +06 +04 +04 +40 +1A +AE +12 +14 +08 +2C +10 +F4 +21 +01 +F8 +19 +EB +00 +C3 +61 +AD +61 +7F +AC +D9 +00 +00 +89 +12 +9B +24 +AD +36 +BF +48 +00 +C1 +5A +D3 +6C +E5 +7E +F7 +81 +00 +08 +93 +1A +A5 +2C +B7 +3E +C9 +00 +40 +DB +52 +ED +64 +FF +76 +02 +00 +8B +10 +99 +26 +AF +34 +BD +4A +00 +C3 +58 +D1 +6E +E7 +7C +F5 +83 +00 +0A +91 +18 +A7 +2E +B5 +3C +CB +00 +42 +D9 +50 +EF +66 +FD +74 +04 +00 +8D +16 +9F +20 +A9 +32 +BB +4C +00 +C5 +5E +D7 +68 +E1 +7A +F3 +85 +00 +0C +97 +1E +A1 +28 +B3 +3A +CD +00 +44 +DF +56 +E9 +60 +FB +72 +06 +00 +8F +14 +9D +22 +AB +30 +B9 +4E +00 +C7 +5C +D5 +6A +E3 +78 +F1 +87 +00 +0E +95 +1C +A3 +2A +B1 +38 +CF +00 +46 +DD +54 +EB +62 +F9 +70 +08 +00 +81 +1A +93 +2C +A5 +3E +B7 +40 +00 +C9 +52 +DB +64 +ED +76 +FF +89 +00 +00 +9B +12 +AD +24 +BF +36 +C1 +00 +48 +D3 +5A +E5 +6C +F7 +7E +0A +00 +83 +18 +91 +2E +A7 +3C +B5 +42 +00 +CB +50 +D9 +66 +EF +74 +FD +8B +00 +02 +99 +10 +AF +26 +BD +34 +C3 +00 +4A +D1 +58 +E7 +6E +F5 +7C +0C +00 +85 +1E +97 +28 +A1 +3A +B3 +44 +00 +CD +56 +DF +60 +E9 +72 +FB +8D +00 +04 +9F +16 +A9 +20 +BB +32 +C5 +00 +4C +D7 +5E +E1 +68 +F3 +7A +0E +00 +87 +1C +95 +2A +A3 +38 +B1 +46 +00 +CF +54 +DD +62 +EB +70 +F9 +8F +00 +06 +9D +14 +AB +22 +B9 +30 +C7 +00 +4E +D5 +5C +E3 +6A +F1 +40 +96 +11 +23 +32 +46 +0D +57 +C1 +8C +74 +9D +AF +BE +CA +DB +E9 +F8 +10 +00 +01 +33 +22 +56 +47 +75 +64 +9C +00 +8D +BF +AE +DA +CB +F9 +E8 +21 +00 +30 +02 +13 +67 +76 +44 +55 +AD +00 +BC +8E +9F +EB +FA +C8 +D9 +80 +EB +12 +03 +77 +1D +66 +54 +45 +BD +AC +9E +8F +FB +00 +EA +D8 +C9 +42 +53 +20 +C1 +04 +15 +27 +36 +CE +07 +DF +ED +FC +88 +99 +AB +BA +52 +00 +43 +71 +60 +14 +05 +37 +26 +DE +00 +CF +FD +EC +98 +89 +BB +AA +00 +95 +40 +51 +25 +1E +34 +06 +17 +EF +FE +CC +DD +A9 +00 +B8 +8A +9B +73 +62 +50 +41 +35 +00 +24 +16 +07 +FF +EE +DC +CD +B9 +00 +A8 +9A +8B +84 +95 +A7 +B6 +C2 +00 +D3 +E1 +F0 +08 +19 +2B +3A +4E +00 +5F +6D +7C +94 +85 +B7 +A6 +D2 +00 +C3 +F1 +E0 +18 +09 +3B +2A +5E +00 +4F +7D +6C +A5 +B4 +86 +97 +E3 +00 +F2 +C0 +D1 +29 +38 +0A +1B +6F +00 +7E +4C +5D +B5 +A4 +96 +87 +F3 +00 +E2 +D0 +C1 +39 +28 +1A +0B +7F +00 +6E +5C +4D +C6 +D7 +E5 +F4 +80 +00 +91 +A3 +B2 +4A +5B +69 +78 +0C +00 +1D +2F +3E +D6 +C7 +F5 +E4 +90 +00 +81 +B3 +A2 +5A +4B +79 +68 +1C +00 +0D +3F +2E +E7 +F6 +C4 +D5 +A1 +00 +B0 +82 +93 +6B +7A +48 +59 +2D +00 +3C +0E +1F +F7 +E6 +D4 +C5 +B1 +00 +A0 +92 +83 +7B +6A +58 +49 +3D +00 +2C +1E +0F +00 +48 +55 +67 +0F +C3 +37 +74 +1F +5D +DD +1F +5D +1C +07 +A5 +F0 +58 +1C +52 +07 +F0 +0F +A9 +39 +35 +07 +04 +DD +FC +0E +35 +18 +1C +1C +1E +E2 +90 +7C +49 +25 +23 +A1 +38 +2C +E4 +30 +58 +7C +8C +26 +B8 +9C +7C +18 +60 +19 +5B +51 +D7 +18 +48 +4C +48 +27 +02 +C6 +28 +7C +37 +24 +31 +50 +7C +14 +2D +C7 +06 +64 +68 +10 +2C +4C +03 +C0 +50 +48 +9F +48 +34 +35 +03 +2C +8F +5F +00 +99 +9F +B0 +40 +00 +2F +72 +9E +07 +E9 +E7 +9C +31 +4D +97 +19 +77 +3C +D3 +89 +94 +55 +8A +57 +3F +CE +40 +7F +15 +54 +64 +17 +92 +30 +50 +BF +C0 +07 +39 +EE +97 +27 +F0 +18 +0F +40 +DA +18 +28 +48 +31 +AC +7F +87 +04 +17 +77 +C2 +0F +33 +97 +37 +D2 +05 +30 +3F +37 +F0 +06 +C6 +00 +23 +F4 +10 +16 +B5 +11 +0D +06 +E7 +01 +1E +B8 +6B +C0 +09 +DE +0F +B9 +08 +E4 +6A +07 +4C +54 +5C +07 +94 +0F +BC +36 +6F +BB +6D +1F +BB +10 +1F +70 +48 +2F +1D +48 +70 +07 +93 +1F +17 +40 +50 +BE +4F +40 +47 +4C +6F +7C +46 +27 +57 +99 +17 +1E +81 +27 +1B +48 +50 +60 +50 +37 +C2 +00 +40 +6F +AE +07 +6C +54 +00 +57 +E7 +64 +18 +44 +1F +B5 +2F +4D +80 +63 +38 +30 +95 +4C +38 +F0 +C0 +48 +44 +48 +80 +8C +0F +7C +00 +6B +0F +17 +FF +00 +D2 +15 +17 +F0 +46 +FF +08 +D8 +FF +84 +E8 +85 +27 +0D +7C +04 +FF +81 +0F +74 +3F +2E +CF +ED +08 +04 +19 +FF +00 +D8 +FF +61 +5B +54 +3F +B7 +0A +FC +30 +29 +49 +00 +1F +EF +16 +17 +9E +2F +23 +87 +77 +3C +BF +C2 +31 +16 +B9 +4F +58 +9B +3C +07 +B9 +86 +18 +AF +C1 +4F +A6 +0E +44 +2E +BF +17 +09 +AD +14 +2F +9F +3D +04 +39 +24 +18 +1B +88 +28 +30 +30 +19 +28 +24 +7F +3F +6C +68 +00 +4D +EA +0F +36 +77 +1F +2F +37 +78 +07 +78 +40 +35 +40 +07 +3C +3F +B6 +04 +46 +71 +72 +0F +38 +40 +38 +13 +04 +78 +3F +38 +00 +A4 +44 +1F +1F +44 +38 +07 +0E +D9 +0D +07 +00 +DF +54 +28 +07 +28 +59 +10 +28 +44 +2B +00 +C8 +44 +3C +04 +38 +06 +7C +61 +08 +E3 +7C +62 +07 +1C +10 +60 +04 +1C +63 +07 +00 +87 +83 +93 +70 +10 +0C +10 +10 +70 +03 +C0 +28 +50 +C2 +E4 +30 +48 +B4 +94 +08 +B4 +48 +30 +3C +18 +9E +3A +16 +B3 +A1 +8A +74 +74 +30 +70 +3A +2F +2F +7A +78 +75 +11 +80 +2E +73 +8F +B9 +63 +79 +2E +38 +C4 +67 +00 +21 +8C +E0 +91 +00 +43 +6F +70 +08 +79 +A3 +66 +6E +74 +DA +20 +62 +D9 +B1 +5D +9A +6F +DA +6E +11 +12 +5A +38 +30 +1F +20 +33 +2E +35 +4D +48 +7A +00 +00 +6D +6D +1B +79 +3A +55 +9B +35 +85 +AA +4B +D0 +93 +6B +93 +C9 +68 +FB +B4 +DB +40 +6E +0C +FB +D0 +6C +10 +08 +76 +63 +CD +A2 +FA +29 +A2 +2D +6B +16 +2C +48 +E9 +DF +9B +AD +75 +46 +CB +29 +2F +DC +3A +25 +99 +4A +3C +45 +64 +49 +3E +31 +DC +53 +5A +DC +94 +70 +6C +3C +56 +D3 +84 +3E +1F +4D +46 +9A +75 +31 +AD +98 +DA +A9 +A6 +D8 +23 +4F +4D +D7 +91 +FD +A4 +15 +9A +F2 +AE +09 +41 +64 +76 +1C +82 +B4 +EF +72 +A2 +8C +12 +57 +02 +19 +00 +35 +28 +E6 +A1 +0E +6E +8B +AC +EE +C6 +8A +04 +18 +0B +F0 +56 +00 +F7 +9F +76 +30 +2E +11 +34 +31 +C0 +C0 +7F +32 +30 +31 +36 +82 +D8 +2D +49 +55 +6E +9E +C4 +54 +77 +55 +20 +7E +16 +15 +E6 +A4 +02 +8E +08 +82 +00 +1E +20 +1F +09 +0E +53 +63 +21 +2E +65 +E2 +8B +1C +20 +1D +1B +B1 +85 +2E +49 +05 +CC +AF +2E +73 +3A +20 +43 +68 +61 +0E +FD +B1 +A7 +47 +72 +0C +E4 +68 +0C +F9 +61 +27 +26 +09 +B6 +D4 +8C +45 +78 +94 +AD +79 +EC +95 +86 +65 +77 +25 +DA +6E +74 +0C +26 +52 +1E +52 +25 +EE +6F +76 +3D +99 +79 +A1 +C1 +4F +70 +C8 +BF +6D +EC +C1 +90 +64 +BA +6B +E2 +48 +65 +70 +2C +CD +3A +95 +83 +41 +16 +31 +8D +17 +63 +68 +59 +05 +8F +06 +87 +D2 +63 +F2 +14 +00 +2A +11 +44 +15 +18 +19 +1E +62 +0D +18 +12 +43 +11 +20 +7E +6B +93 +63 +20 +00 +95 +11 +13 +18 +00 +BC +18 +BA +10 +20 +41 +72 +25 +C2 +79 +E2 +E2 +EB +75 +0D +D8 +3F +F9 +60 +10 +00 +50 +22 +C5 +19 +0E +C7 +79 +8B +8B +DA +85 +70 +0C +26 +0D +95 +6C +42 +D2 +77 +F1 +20 +70 +22 +53 +F4 +C1 +91 +30 +28 +61 +30 +20 +EF +00 +63 +61 +6E +21 +B0 +6C +06 +E5 +4C +6F +3C +32 +F3 +67 +61 +83 +8E +41 +6E +03 +90 +6B +65 +9F +89 +74 +6F +20 +72 +01 +D1 +9A +8E +23 +6C +6F +1C +D5 +04 +78 +B4 +66 +20 +31 +18 +3A +00 +44 +6F +07 +00 +4D +30 +A2 +31 +0D +0E +3B +0F +BE +17 +98 +75 +08 +1A +64 +15 +05 +FA +C2 +13 +0E +42 +49 +08 +E6 +0E +78 +7C +18 +00 +55 +70 +67 +0E +72 +8F +43 +E0 +6C +61 +73 +68 +3D +84 +44 +6D +2C +97 +00 +CA +26 +E0 +70 +65 +63 +74 +72 +75 +6D +01 +4D +74 +61 +74 +75 +73 +3A +03 +5B +00 +06 +20 +5D +00 +1B +01 +8A +73 +43 +D2 +49 +2F +77 +69 +27 +02 +00 +74 +68 +65 +72 +C3 +0B +2B +00 +2D +BE +30 +C6 +87 +42 +65 +20 +71 +75 +69 +65 +01 +74 +2C +20 +61 +76 +6F +69 +64 +00 +28 +72 +69 +63 +6B +4B +43 +1C +70 +61 +2E +72 +01 +74 +69 +6F +6E +20 +06 +65 +72 +72 +0C +00 +4E +6F +18 +74 +34 +6F +75 +6E +06 +C6 +6F +72 +16 +61 +19 +73 +6C +69 +7A +27 +20 +53 +75 +63 +0C +63 +65 +73 +73 +66 +75 +6C +6C +00 +79 +20 +62 +75 +72 +21 +64 +60 +20 +26 +35 +20 +69 +0D +9E +00 +53 +44 +20 +66 +05 +69 +6C +14 +49 +6E +70 +75 +0C +74 +20 +6D +61 +63 +68 +69 +6E +00 +65 +27 +73 +20 +6E +61 +6D +65 +00 +00 +45 +53 +58 +44 +4F +53 +14 +80 +0A +49 +52 +4D +17 +57 +41 +1C +0A +9C +46 +4C +41 +53 +48 +15 +60 +53 +50 +45 +43 +54 +04 +52 +55 +4D +0A +43 +48 +4F +52 +45 +00 +20 +48 +5A +58 +31 +32 +00 +33 +00 +34 +00 +00 +35 +00 +36 +00 +37 +00 +38 +00 +00 +39 +00 +0C +A2 +A2 +00 +6A +BF +0B +36 +BF +89 +A7 +33 +28 +BF +23 +2A +FF +03 +8A +4A +AB +2A +BF +A3 +00 +01 +8A +00 +3C +00 +72 +40 +00 +A8 +87 +D8 +87 +08 +81 +8A +0D +38 +24 +30 +F3 +A8 +EE +9C +12 +01 +13 +3E +DC +08 +00 +BF +02 +01 +02 +B9 +02 +02 +03 +02 +04 +6D +02 +05 +02 +06 +02 +DB +07 +02 +08 +5A +09 +02 +B6 +0A +02 +0B +02 +0C +6D +02 +0D +02 +0E +02 +DB +57 +B8 +4E +3A +0F +02 +10 +68 +42 +11 +02 +12 +48 +DB +13 +02 +14 +02 +15 +02 +B6 +16 +02 +17 +02 +18 +6D +02 +19 +36 +1A +EF +1B +1B +1C +EF +1D +1E +EF +02 +1F +60 +02 +20 +02 +21 +02 +DB +22 +EC +EC +23 +02 +7E +02 +B0 +7D +02 +ED +7F +2D +ED +02 +7F +52 +02 +7D +EE +EE +7E +EE +EF +03 +24 +02 +25 +02 +26 +02 +B6 +27 +EF +EF +28 +EF +29 +2A +01 +2B +2C +2D +ED +5F +6F +46 +DD +00 +7D +ED +4F +78 +08 +25 +34 +40 +00 +AE +00 +0A +28 +E6 +C9 +C1 +F4 +3E +CD +02 +3F +3A +D5 +8F +00 +2E +0B +01 +3B +FC +ED +69 +04 +00 +ED +79 +C9 +ED +68 +E9 +F3 +3E +00 +0F +EE +DD +60 +E5 +E1 +0E +02 +D9 +4F +11 +20 +00 +11 +06 +00 +77 +10 +F7 +78 +FE +28 +30 +62 +FE +18 +CB +14 +00 +20 +5C +D9 +C0 +20 +B0 +FA +AF +29 +10 +FD +00 +B1 +FA +06 +B6 +EE +06 +9C +31 +0D +E7 +78 +C6 +3A +30 +E4 +24 +20 +F2 +06 +00 +93 +B0 +30 +D9 +FE +D4 +30 +F5 +00 +8A +2C +9D +03 +4F +18 +0C +0C +08 +20 +07 +DD +75 +00 +DD +23 +00 +1B +C2 +30 +08 +2E +01 +06 +0C +B2 +CD +D9 +6F +C6 +35 +CB +18 +15 +30 +F4 +7C +AD +67 +7A +B3 +00 +20 +DE +7C +FE +01 +C9 +FE +10 +00 +CB +1D +FE +0A +30 +8B +2C +2C +00 +20 +84 +65 +CD +E2 +3F +2C +0F +80 +7D +2C +C0 +AC +D9 +04 +E5 +4F +3E +D8 +08 +D9 +26 +01 +00 +CD +F0 +0C +E5 +30 +D1 +CB +30 +19 +01 +FE +EF +D2 +BA +3F +26 +00 +3E +0B +EA +B0 +0B +C3 +66 +3E +18 +0A +26 +3C +ED +70 +E2 +00 +BC +3F +CD +03 +3D +9F +D9 +1B +00 +43 +04 +14 +AE +23 +10 +FC +15 +00 +C2 +CA +3F +E5 +A9 +DD +E1 +C0 +00 +1F +CD +DD +3F +D0 +3E +16 +03 +3D +20 +FD +04 +78 +C8 +3E +7F +00 +DB +FE +1F +D0 +A9 +E6 +20 +28 +00 +F2 +79 +EE +27 +4F +D3 +FE +78 +00 +37 +C9 +2B +7D +A4 +3C +C0 +05 +00 +C9 diff --git a/cores/Spectrum/rom_firmloader.v b/cores/Spectrum/rom_firmloader.v new file mode 100644 index 0000000..2cac252 --- /dev/null +++ b/cores/Spectrum/rom_firmloader.v @@ -0,0 +1,39 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 04:12:52 02/09/2014 +// Design Name: +// Module Name: rom +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module rom ( + input wire clk, + input wire [13:0] a, + output reg [7:0] dout + ); + + reg [7:0] mem[0:8191]; + integer i; + initial begin // usa $readmemb/$readmemh dependiendo del formato del fichero que contenga la ROM + for (i=0;i<8192;i=i+1) begin + mem[i] = 8'h00; + end + $readmemh ("firmloader_hex.txt", mem, 0); + end + + always @(posedge clk) begin + dout <= mem[a[12:0]]; + end +endmodule diff --git a/firmware/firmloader.asm b/firmware/firmloader.asm new file mode 100644 index 0000000..2f5ba1b --- /dev/null +++ b/firmware/firmloader.asm @@ -0,0 +1,86 @@ + output firmloader.rom + macro wreg dir, dato + rst $28 + defb dir, dato + endm + + define zxuno_port $fc3b + define master_conf 0 + define master_mapper 1 + + di + ld sp, $bfff + ld de, $c771 ; tras el out (c), h de bffc se ejecuta + push de ; un rst 0 para iniciar la nueva ROM + ld de, $edff ; en $bffc para evitar que el cambio de ROM + push de ; colisione con la siguiente instruccion + wreg master_mapper, 8 ; paginamos la ROM en $c000 + ld hl, fin-1 + ld d, e + rst $38 + ld bc, zxuno_port + out (c), 0 ; a master_conf quiero enviar un 0 para pasar + inc b + jp $bffc + +acab rr e + ex de, hl + adc hl, de + lddr +exitdz pop hl + jr nc, mainlo + ret + +rst28 ld bc, zxuno_port + $100 + pop hl + outi + ld b, (zxuno_port >> 8)+2 + outi + jp (hl) +getbit ld a, (hl) + dec hl + adc a, a + ret + nop + +; ----------------------------------------------------------------------------- +; ZX7 Backwards by Einar Saukas, Antonio Villena +; Parameters: +; HL: source address (compressed data) +; DE: destination address (decompressing) +; ----------------------------------------------------------------------------- +dzx7b ld bc, $8000 + ld a, b +copyby inc c + ldd +mainlo add a, a + call z, getbit + jr nc, copyby + push de + ld d, c + defb $30 +lenval add a, a + call z, getbit + rl c + rl b + add a, a + call z, getbit + jr nc, lenval + inc c + jr z, exitdz + ld e, (hl) + dec hl + sll e + jr nc, offend + ld d, $10 +nexbit add a, a + call z, getbit + rl d + jr nc, nexbit + inc d + srl d +offend ex (sp), hl + jr acab + + incbin firmware.rom.zx7b +fin diff --git a/firmware/firmloader.bat b/firmware/firmloader.bat new file mode 100644 index 0000000..e322bca --- /dev/null +++ b/firmware/firmloader.bat @@ -0,0 +1,3 @@ +sjasmplus firmware.asm +zx7b firmware_strings.rom firmware.rom.zx7b +sjasmplus firmloader.asm diff --git a/firmware/firmware.asm b/firmware/firmware.asm index 1b7e0f6..6870191 100644 --- a/firmware/firmware.asm +++ b/firmware/firmware.asm @@ -94,12 +94,22 @@ rst18 push bc jp alto prnstr -jmptbl defw main +jmptbl + IF recovery=0 + defw main defw roms defw upgra defw upgra defw advan defw exit + ELSE + defw upgra + defw upgra + defw upgra + defw upgra + defw upgra + defw upgra + ENDIF rst28 ld bc, zxuno_port + $100 pop hl @@ -539,6 +549,7 @@ bios7 dec c ;**** Main Menu **** ;********************* + IF recovery=0 main inc d ld h, l call help @@ -1060,6 +1071,7 @@ roms10 ld (offsel), hl roms11 dec iyh jr nz, roms10 ret + ENDIF roms12 call romcyb ld ix, cad50 roms13 call_prnstr @@ -1068,6 +1080,7 @@ toanyk ei ld ix, cad51 call_prnstr jp waitky + IF recovery=0 roms144 sub $72-$6e ; r= Recovery jr nz, roms139 ld hl, $0309 @@ -1308,6 +1321,7 @@ roms27 ld hl, $0104 call window ld a, (codcnt) jp main13 + ENDIF ;*** Upgrade Menu *** ;********************* @@ -1383,7 +1397,9 @@ upgra4 ld h, d ld iyl, a ld a, (codcnt) cp $0d -upgra5 jp nz, main9 + IF recovery=0 + jp nz, main9 + ENDIF ld hl, (menuop) dec l dec l @@ -1902,6 +1918,7 @@ upgrai ld a, 30 ld ix, cad57 jp roms13 + IF recovery=0 ;*** Advanced Menu *** ;********************* advan ld h, 20 @@ -2071,10 +2088,7 @@ exit4 djnz exit5 exit5 djnz exit6 jp loadch exit6 call savech -exit7 - IF recovery=0 - jp star51 - ENDIF +exit7 jp star51 ;++++++++++++++++++++++++++++++++++ ;++++++++ Boot list ++++++++ @@ -2186,9 +2200,7 @@ blst4 call combol ld (active), a jr nc, blst5 ld (bitstr), a -blst5 - IF recovery=0 - jp start50 +blst5 jp start50 ENDIF imyesn call bloq1 @@ -2212,6 +2224,7 @@ upgraf add hl, de djnz upgraf ret + IF recovery=0 ; ---------------------------- ; Add an entry to the bootlist ; ---------------------------- @@ -2227,6 +2240,7 @@ addbl1 inc iyl sub 2 sub iyl ret + ENDIF ;first part of loadta qloadt ld ix, cad49 @@ -2993,6 +3007,7 @@ prnmul call_prnstr inc ix ret + IF recovery=0 bomain ld ix, cad65 ld bc, $0209 call_prnstr ; Performing... @@ -3024,6 +3039,7 @@ calcu add hl, hl add hl, hl ld h, 9 jp alto slot2c + ENDIF savena ld a, (menuop+1) sub 4 @@ -3114,6 +3130,7 @@ waits6 in a, (c) wreg flash_cs, 1 ; desactivamos spi, enviando un 1 ret + IF recovery=0 ; ------------------------ ; Load flash structures from $06000 to $9000 ; ------------------------ @@ -3122,6 +3139,7 @@ loadch wreg flash_cs, 1 ld hl, $0060 ;old $0aa0 ld a, $12 jp alto rdflsh + ENDIF ; ----------------------------------------------------------------------------- ; ZX7 Backwards by Einar Saukas, Antonio Villena @@ -3185,6 +3203,7 @@ get16 ld b, 0 ;(empstr): input string ; Returns: ; A: binary number + IF recovery=0 atoi push hl ld hl, items ld b, (hl) @@ -3201,6 +3220,7 @@ romsf add a, (hl) djnz romse pop hl ret + ENDIF IF 0 hhhh push af @@ -3248,16 +3268,17 @@ hhhh push af ;binf jr binf ENDIF + IF recovery=0 incbin es.zx7b fines incbin us.zx7b finus incbin av.zx7b finav - ; ----------------------------------------------------------------------------- ; Compressed and RCS filtered logo ; ----------------------------------------------------------------------------- incbin logo256x192.rcs.zx7b finlog + ENDIF ; ----------------------------------------------------------------------------- ; Compressed messages @@ -3265,7 +3286,9 @@ finlog incbin strings.bin.zx7b finstr -runbit ld b, h +runbit + IF recovery=0 + ld b, h call calbit ld bc, zxuno_port ld e, core_addr @@ -3417,6 +3440,7 @@ conti9 ld a, 0 ld a, (ix+3) out (c), a rst 0 + ENDIF ; ------------------------------------- ; Put page A in mode 1 and copies from 4000 to C000 @@ -3524,6 +3548,7 @@ rdfls2 ini ; DE: destination address ; HL: 4 digit number ; ------------------------ + IF recovery=0 wtohex ld b, 4 wtohe1 ld a, $3 add hl, hl @@ -3599,6 +3624,7 @@ ramts5 inc hl wreg master_conf, 0 ld bc, $0214 jp toanyk + ENDIF ; --------- ; CRC check @@ -3626,6 +3652,7 @@ check1 xor (hl) ;6*4+4*7+10= 62 ciclos/byte ; A: input slot ; Returns: ; HL: destination address + IF recovery=0 slot2a ld de, 3 and $3f cp 19 @@ -3641,6 +3668,7 @@ slot2c add hl, hl add hl, hl add hl, hl ret + ENDIF help call window ld a, %00111000 ; fondo blanco tinta negra @@ -3831,6 +3859,10 @@ crctab incbin crctable.bin incbin fuente6x8.bin chrend + IF recovery=1 + include strings.asm + ENDIF + block $3bbf-$ l3bbf inc h ;4 @@ -4213,360 +4245,10 @@ decbhl dec hl ;++++++++++++ +++++++++++++ ;++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++++++++++++++++++++++ + IF recovery=0 block $7e00-$ -cad0 defb 'Core: ',0 -cad1 defm 'http://zxuno.speccy.org', 0 - defm 'ZX-Uno BIOS v0.41', 0 - defm 'Copyleft ', 127, ' 2016 ZX-Uno Team', 0 - defm 'Processor: Z80 3.5MHz', 0 - defm 'Memory: 512K Ok', 0 - defm 'Graphics: normal, hi-color', 0 - defm 'hi-res, ULAplus', 0 - defm 'Booting:', 0 - defm 'Press to Setup Boot Menu', 0 -cad2 defb $12, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 - defm $10, ' Please select boot machine: ', $10, 0 -cad3 defb $16, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $17, 0 -cad4 defm $10, ' ', $10, 0 -cad5 defm $10, ' ', $1c, ' and ', $1d, ' to move selection ', $10, 0 - defm $10, ' ENTER to select boot machine ', $10, 0 - defm $10, ' ESC to boot using defaults ', $10, 0 - defb $14, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $15, 0 -cad6 defb 'Enter Setup', 0 -cad7 defb ' Main ROMs Upgrade Boot Advanced Exit', 0 - defb $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $19, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 -cad8 defm $10, ' ', $10, ' ', $10, 0 - defm $10, 0 -cad9 defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $18, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $15, 0 - defb ' BIOS v0.41 ', $7f, '2016 ZX-Uno Team', 0 -cad10 defb 'Hardware tests', 0 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, 0 - defb $1b, ' Memory test', 0 - defb $1b, ' Sound test', 0 - defb $1b, ' Tape test', 0 - defb $1b, ' Input test', 0 - defb ' ', 0 - defb 'Options', 0 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 - defb 'Quiet Boot', 0 - defb 'Check CRC', 0 - defb 'Keyboard', 0 - defb 'Timing', 0 - defb 'Contended', 0 - defb 'DivMMC', 0 - defb 'NMI-DivMMC', 0, 0 -cad11 defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $16, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $17, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0 - defb ' ', $10, 0, 0 -cad12 defb 'Name Slot', 0 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 - defb $11, $11, $11, $11, 0 -cad13 defb $1e, ' ', $1f, ' Sel.Screen', 0 - defb $1c, ' ', $1d, ' Sel.Item', 0 - defb 'Enter Change', 0 - defb 'Graph Save&Exi', 0 - defb 'Break Exit', 0 - defb 'N New Entry', 0 - defb 'R Recovery', 0 -cad14 defb 'Run a diagnos-', 0 - defb 'tic test on', 0 - defb 'your system', 0 - defb 'memory', 0, 0 -cad15 defb 'Performs a', 0 - defb 'sound test on', 0 - defb 'your system', 0, 0 -cad16 defb 'Performs a', 0 - defb 'keyboard &', 0 - defb 'joystick test', 0, 0 -cad17 defb 'Hide the whole', 0 - defb 'boot screen', 0 - defb 'when enabled', 0, 0 -cad18 defb 'Enable RAM and', 0 - defb 'ROM on DivMMC ', 0 - defb 'interface.', 0 - defb 'Ports are', 0 - defb 'available', 0, 0 -cad19 defb 'Disable for', 0 - defb 'better compa-', 0 - defb 'tibility with', 0 - defb 'SE Basic IV', 0, 0 -cad20 defb 'Behaviour of', 0 - defb 'bit 6 on port', 0 - defb '$FE depends', 0 - defb 'on hardware', 0 - defb 'issue', 0, 0 -cad21 defb $12, $11, $11, $11, ' Options ', $11, $11, $11, $13, 0 -cad22 defb $10, ' ', $10, 0 - defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $15, 0 -cad88 defb 'Spanish', 0 -cad89 defb 'English', 0 -cad90 defb 'Spectrum', 0 -cad91 defb 'Kempston', 0 -cad92 defb 'SJS1', 0 -cad93 defb 'SJS2', 0 -cad94 defb 'Protek', 0 -cad95 defb 'Fuller', 0 -cad96 defb 'PAL', 0 -cad97 defb 'NTSC', 0 -cad98 defb 'VGA', 0 -cad28 defb 'Disabled', 0 -cad29 defb 'Enabled', 0 -cad30 defb 'Issue 2', 0 -cad31 defb 'Issue 3', 0 -cadv2 defb 'Auto', 0 -cadv3 defb '48K', 0 -cadv4 defb '128K', 0 -cadv5 defb 'Pentagon', 0 -cad32 defb 'Move Up q', 0 -cad33 defb 'Set Active', 0 -cad34 defb 'Move Down a', 0 -cad35 defb 'Rename', 0 -cad36 defb 'Delete', 0 - defb ' ', $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb ' Rename ', $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 - defb ' ', $10, ' ', $1e, ' ', $1f, ' Enter accept Break cancel ', $10, 0 - defb ' ', $16, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $17, 0 - defb ' ', $10, ' ', $10, 0 - defb ' ', $14, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $15, 0 -cad38 defb 'Exit system', 0 - defb 'setup after', 0 - defb 'saving the', 0 - defb 'changes', 0, 0 -cad39 defb 'Exit system', 0 - defb 'setup without', 0 - defb 'saving any', 0 - defb 'changes', 0, 0 -cad40 defb 'Save Changes', 0 - defb 'done so far to', 0 - defb 'any of the', 0 - defb 'setup options', 0, 0 -cad41 defb 'Discard Chan-', 0 - defb 'ges done so', 0 - defb 'far to any of', 0 - defb 'the setup', 0 - defb 'options', 0, 0 -cad45 defb 'Header:', 0 -cad46 defb $12, ' Exit Without Saving ', $11, $13, 0 - defb $10, ' ', $10, 0 - defb $10, ' Quit without saving? ', $10, 0 -cad47 defb $12, $11, ' Save Setup Values ', $11, $11, $13, 0 - defb $10, ' ', $10, 0 - defb $10, ' Save configuration? ', $10, 0 -cad48 defb $12, ' Load Previous Values ', $13, 0 - defb $10, ' ', $10, 0 - defb $10, ' Load previous values?', $10, 0 -cad42 defb $10, ' ', $10, 0 - defb $16, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $17, 0 - defb $10, ' Yes No ', $10, 0 -cad43 defb $14, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $15, 0 - defb $12, $11, $11, $11, ' Save and Exit ', $11, $11, $11, $11, $13, 0 - defb $10, ' ', $10, 0 - defb $10, ' Save conf. & Exit? ', $10, 0 -cad44 defb $12, $11, $11, $11, ' Load from tape ', $11, $11, $11, $13, 0 -cad445 defb $12, $11, $11, $11, $11, ' Load from SD ', $11, $11, $11, $11, $13, 0 - defb $10, ' ', $10, 0 - defb $10, ' Are you sure? ', $10, 0 -cad37 defb 'Save Changes & Exit', 0 - defb 'Discard Changes & Exit', 0 - defb 'Save Changes', 0 - defb 'Discard Changes', 0 -cad49 defb 'Press play on', 0 - defb 'tape & follow', 0 - defb 'the progress', 0 - defb 'Break to', 0 - defb 'cancel', 0, 0 -cad50 defb 'Loading Error', 0 -cad51 defb 'Any key to return', 0 -cad52 defb 'Block 1 of 1:', 0 -cad53 defb 'Done', 0 -cad54 defb 'Slot position:', 0 -cad55 defb 'Invalid CRC in ROM 0000. Must be 0000', 0 - defb 'Press any key to continue ', 0 -cad56 defb 'Check CRC in', 0 - defb 'all ROMs. Slow', 0 - defb 'but safer', 0, 0 -cad57 defb 'Machine upgraded', 0 -cad58 defb 'BIOS upgraded', 0 -cad59 defb 'ESXDOS upgraded', 0 -cad60 defb 'Upgrade ESXDOS for ZX', 0 -cad61 defb 'Upgrade BIOS for ZX', 0 -cad615 defb 'Upgrade flash from SD', 0 -cad62 defb 'ZX Spectrum', 0 -cad63 defb 'Status:[ ]', 0 -cad64 defb ' ', $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb ' Recovery ', $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 - defb ' ', $10, ' ', $1e, ' ', $1f, ' Enter accept Break cancel ', $10, 0 - defb ' ', $16, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $17, 0 - defb ' ', $10, 'Name ', $10, 0 - defb ' ', $10, ' ', $10, 0 - defb ' ', $10, 'Slt Siz Bnk Siz p1F p7F Flags ', $10, 0 - defb ' ', $10, ' ', $10, 0 - defb ' ', $14, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11 - defb $11, $11, $11, $11, $11, $11, $11, $15, 0, 0 -cad65 defb 'Performing...', 0 -cad66 defb ' ', 0 -cad67 defb ' OK', 0 -cad68 defb ' Er', 0 -cad69 defb '00', 0 -cad70 defb 'Set timings', 0 - defb '224T if 48K', 0 - defb '228T if 128K', 0, 0 -cad71 defb 'Memory usually', 0 - defb 'contended.', 0 - defb 'Disabled on', 0 - defb 'Pentagon 128K', 0, 0 -cad72 defb 'Performs a', 0 - defb 'tape test', 0, 0 -cad73 defb $1b, 0 -cad74 defb 'Kempston Fuller', 0 - defb 'Break key to return', 0 - defb '234567890' - defb 'Q'+$80, 'WERTYUIOP' - defb 'A'+$80, 'SDFGHJKLe' - defb 'c'+$80, 'ZXCVBNMsb' - defb 'o'+$80, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, 'o', $80 -cad75 defb 'Insert SD with', 0 - defb 'the file on', 0 - defb 'root', 0, 0 -cad76 defb 'Be quiet, avoid brick', 0 -cad77 defb 'SD or partition error', 0 -cad78 defb 'Not found or bad size', 0 -cad79 defb ' Successfully burned ', 0 -cad80 defb 'EAR input', 0 -cad81 defb 'SD file', 0 -cad82 defb 'Input machine\'s name', 0 - IF version=4 -files defb 'ESXDOS ZX1' - defb 'FIRMWAREZX1' - defb 'FLASH ZX1' - defb 'SPECTRUMZX1' -fileco defb 'CORE ZX1' - ELSE - IF version=3 -files defb 'ESXDOS ZZ3' - defb 'FIRMWAREZZ3' - defb 'FLASH ZZ3' - defb 'SPECTRUMZZ3' -fileco defb 'CORE ZZ3' - ELSE - IF version=2 -files defb 'ESXDOS ZZ2' - defb 'FIRMWAREZZ2' - defb 'FLASH ZZ2' - defb 'SPECTRUMZZ2' -fileco defb 'CORE ZZ2' - ELSE - IF version=1 -files defb 'ESXDOS ZXA' - defb 'FIRMWAREZXA' - defb 'FLASH ZXA' - defb 'SPECTRUMZXA' -fileco defb 'CORE ZXA' + include strings.asm ENDIF - ENDIF - ENDIF - ENDIF -cad83 defb 'Input', 0 - defb $11, $11, $11, $11, $11, $11, $11, $11, 0 - defb 'Keyb Layout', 0 - defb 'Joy Keypad', 0 - defb 'Joy DB9', 0 - defb ' ', 0 - defb ' ', 0 - defb 'Output', 0 - defb $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 - defb 'Video', 0 - defb 'Scanlines', 0 - defb 'Frequency', 0 - defb 'CPU Speed', 0, 0 -cad84 defb 'Select PS/2', 0 - defb 'mapping to', 0 - defb 'spectrum', 0, 0 -cad85 defb 'Simulated', 0 - defb 'joystick', 0 - defb 'configuration', 0, 0 -cad86 defb 'Real joystick', 0 - defb 'configuration', 0, 0 -cad87 defb 'Select default', 0 - defb 'video output', 0, 0 -cad99 defb 'Enable VGA', 0 - defb 'scanlines', 0, 0 -cad100 defb 'Set VGA', 0 - defb 'horizontal',0 - defb 'frequency', 0, 0 -cad101 defb 'Set CPU', 0 - defb 'speed', 0, 0 -cad102 defb '50', 0 -cad103 defb '51', 0 -cad104 defb '53.5', 0 -cad105 defb '55.8', 0 -cad106 defb '57.4', 0 -cad107 defb '59.5', 0 -cad108 defb '61.8', 0 -cad109 defb '63.8', 0 -cad110 defb '1X', 0 -cad111 defb '2X', 0 -cad112 defb '4X', 0 -cad113 defb '8X', 0 -cad114 defb 'Break to exit', 0 -cad115 defb 'Slot occupied, select', 0 - defb 'another or delete a', 0 - defb 'ROM to free it', 0 -cad116 defb '2', 0 - defb '3', 0 - defb '4', 0 - defb '5', 0 - defb '6', 0 - defb '7', 0 - defb '8', 0 - defb '9', 0, 0 - -;cad199 defb 'af0000 bc0000 de0000 hl0000 sp0000 ix0000 iy0000', 0 - -fincad - ; todo ; * generar tablas CRC por código ; * descomprimir en lugar de copiar codigo alto diff --git a/firmware/strings.asm b/firmware/strings.asm new file mode 100644 index 0000000..303a4f2 --- /dev/null +++ b/firmware/strings.asm @@ -0,0 +1,377 @@ +cad0 defb 'Core: ',0 +cad1 defm 'http://zxuno.speccy.org', 0 + defm 'ZX-Uno BIOS v0.41', 0 + defm 'Copyleft ', 127, ' 2016 ZX-Uno Team', 0 + defm 'Processor: Z80 3.5MHz', 0 + defm 'Memory: 512K Ok', 0 + defm 'Graphics: normal, hi-color', 0 + defm 'hi-res, ULAplus', 0 + defm 'Booting:', 0 + defm 'Press to Setup Boot Menu', 0 + IF recovery=0 +cad2 defb $12, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 + defm $10, ' Please select boot machine: ', $10, 0 +cad3 defb $16, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $17, 0 +cad4 defm $10, ' ', $10, 0 +cad5 defm $10, ' ', $1c, ' and ', $1d, ' to move selection ', $10, 0 + defm $10, ' ENTER to select boot machine ', $10, 0 + defm $10, ' ESC to boot using defaults ', $10, 0 + defb $14, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $15, 0 +cad6 defb 'Enter Setup', 0 + ENDIF +cad7 defb ' Main ROMs Upgrade Boot Advanced Exit', 0 + defb $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $19, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 +cad8 defm $10, ' ', $10, ' ', $10, 0 + defm $10, 0 +cad9 defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $18, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $15, 0 + defb ' BIOS v0.41 ', $7f, '2016 ZX-Uno Team', 0 + IF recovery=0 +cad10 defb 'Hardware tests', 0 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, 0 + defb $1b, ' Memory test', 0 + defb $1b, ' Sound test', 0 + defb $1b, ' Tape test', 0 + defb $1b, ' Input test', 0 + defb ' ', 0 + defb 'Options', 0 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 + defb 'Quiet Boot', 0 + defb 'Check CRC', 0 + defb 'Keyboard', 0 + defb 'Timing', 0 + defb 'Contended', 0 + defb 'DivMMC', 0 + defb 'NMI-DivMMC', 0, 0 + ENDIF +cad11 defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $16, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $17, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0 + defb ' ', $10, 0, 0 + IF recovery=0 +cad12 defb 'Name Slot', 0 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 + defb $11, $11, $11, $11, 0 + ENDIF +cad13 defb $1e, ' ', $1f, ' Sel.Screen', 0 + defb $1c, ' ', $1d, ' Sel.Item', 0 + defb 'Enter Change', 0 + defb 'Graph Save&Exi', 0 + defb 'Break Exit', 0 + defb 'N New Entry', 0 + defb 'R Recovery', 0 + IF recovery=0 +cad14 defb 'Run a diagnos-', 0 + defb 'tic test on', 0 + defb 'your system', 0 + defb 'memory', 0, 0 +cad15 defb 'Performs a', 0 + defb 'sound test on', 0 + defb 'your system', 0, 0 +cad16 defb 'Performs a', 0 + defb 'keyboard &', 0 + defb 'joystick test', 0, 0 +cad17 defb 'Hide the whole', 0 + defb 'boot screen', 0 + defb 'when enabled', 0, 0 +cad18 defb 'Enable RAM and', 0 + defb 'ROM on DivMMC ', 0 + defb 'interface.', 0 + defb 'Ports are', 0 + defb 'available', 0, 0 +cad19 defb 'Disable for', 0 + defb 'better compa-', 0 + defb 'tibility with', 0 + defb 'SE Basic IV', 0, 0 +cad20 defb 'Behaviour of', 0 + defb 'bit 6 on port', 0 + defb '$FE depends', 0 + defb 'on hardware', 0 + defb 'issue', 0, 0 + ENDIF +cad21 defb $12, $11, $11, $11, ' Options ', $11, $11, $11, $13, 0 +cad22 defb $10, ' ', $10, 0 + defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $15, 0 + IF recovery=0 +cad88 defb 'Spanish', 0 +cad89 defb 'English', 0 +cad90 defb 'Spectrum', 0 +cad91 defb 'Kempston', 0 +cad92 defb 'SJS1', 0 +cad93 defb 'SJS2', 0 +cad94 defb 'Protek', 0 +cad95 defb 'Fuller', 0 +cad96 defb 'PAL', 0 +cad97 defb 'NTSC', 0 +cad98 defb 'VGA', 0 +cad28 defb 'Disabled', 0 +cad29 defb 'Enabled', 0 +cad30 defb 'Issue 2', 0 +cad31 defb 'Issue 3', 0 +cadv2 defb 'Auto', 0 +cadv3 defb '48K', 0 +cadv4 defb '128K', 0 +cadv5 defb 'Pentagon', 0 +cad32 defb 'Move Up q', 0 +cad33 defb 'Set Active', 0 +cad34 defb 'Move Down a', 0 +cad35 defb 'Rename', 0 +cad36 defb 'Delete', 0 + defb ' ', $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb ' Rename ', $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 + defb ' ', $10, ' ', $1e, ' ', $1f, ' Enter accept Break cancel ', $10, 0 + defb ' ', $16, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $17, 0 + defb ' ', $10, ' ', $10, 0 + defb ' ', $14, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $15, 0 +cad38 defb 'Exit system', 0 + defb 'setup after', 0 + defb 'saving the', 0 + defb 'changes', 0, 0 +cad39 defb 'Exit system', 0 + defb 'setup without', 0 + defb 'saving any', 0 + defb 'changes', 0, 0 +cad40 defb 'Save Changes', 0 + defb 'done so far to', 0 + defb 'any of the', 0 + defb 'setup options', 0, 0 +cad41 defb 'Discard Chan-', 0 + defb 'ges done so', 0 + defb 'far to any of', 0 + defb 'the setup', 0 + defb 'options', 0, 0 + ENDIF +cad45 defb 'Header:', 0 + IF recovery=0 +cad46 defb $12, ' Exit Without Saving ', $11, $13, 0 + defb $10, ' ', $10, 0 + defb $10, ' Quit without saving? ', $10, 0 +cad47 defb $12, $11, ' Save Setup Values ', $11, $11, $13, 0 + defb $10, ' ', $10, 0 + defb $10, ' Save configuration? ', $10, 0 +cad48 defb $12, ' Load Previous Values ', $13, 0 + defb $10, ' ', $10, 0 + defb $10, ' Load previous values?', $10, 0 + ENDIF +cad42 defb $10, ' ', $10, 0 + defb $16, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $17, 0 + defb $10, ' Yes No ', $10, 0 +cad43 defb $14, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $15, 0 + IF recovery=0 + defb $12, $11, $11, $11, ' Save and Exit ', $11, $11, $11, $11, $13, 0 + defb $10, ' ', $10, 0 + defb $10, ' Save conf. & Exit? ', $10, 0 + ENDIF +cad44 defb $12, $11, $11, $11, ' Load from tape ', $11, $11, $11, $13, 0 +cad445 defb $12, $11, $11, $11, $11, ' Load from SD ', $11, $11, $11, $11, $13, 0 + defb $10, ' ', $10, 0 + defb $10, ' Are you sure? ', $10, 0 + IF recovery=0 +cad37 defb 'Save Changes & Exit', 0 + defb 'Discard Changes & Exit', 0 + defb 'Save Changes', 0 + defb 'Discard Changes', 0 + ENDIF +cad49 defb 'Press play on', 0 + defb 'tape & follow', 0 + defb 'the progress', 0 + defb 'Break to', 0 + defb 'cancel', 0, 0 +cad50 defb 'Loading Error', 0 +cad51 defb 'Any key to return', 0 +cad52 defb 'Block 1 of 1:', 0 +cad53 defb 'Done', 0 + IF recovery=0 +cad54 defb 'Slot position:', 0 +cad55 defb 'Invalid CRC in ROM 0000. Must be 0000', 0 + defb 'Press any key to continue ', 0 +cad56 defb 'Check CRC in', 0 + defb 'all ROMs. Slow', 0 + defb 'but safer', 0, 0 + ENDIF +cad57 defb 'Machine upgraded', 0 +cad58 defb 'BIOS upgraded', 0 +cad59 defb 'ESXDOS upgraded', 0 +cad60 defb 'Upgrade ESXDOS for ZX', 0 +cad61 defb 'Upgrade BIOS for ZX', 0 +cad615 defb 'Upgrade flash from SD', 0 +cad62 defb 'ZX Spectrum', 0 +cad63 defb 'Status:[ ]', 0 +cad64 + IF recovery=0 + defb ' ', $12, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb ' Recovery ', $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $13, 0 + defb ' ', $10, ' ', $1e, ' ', $1f, ' Enter accept Break cancel ', $10, 0 + defb ' ', $16, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $17, 0 + defb ' ', $10, 'Name ', $10, 0 + defb ' ', $10, ' ', $10, 0 + defb ' ', $10, 'Slt Siz Bnk Siz p1F p7F Flags ', $10, 0 + defb ' ', $10, ' ', $10, 0 + defb ' ', $14, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11 + defb $11, $11, $11, $11, $11, $11, $11, $15, 0, 0 +cad65 defb 'Performing...', 0 +cad66 defb ' ', 0 +cad67 defb ' OK', 0 +cad68 defb ' Er', 0 +cad69 defb '00', 0 +cad70 defb 'Set timings', 0 + defb '224T if 48K', 0 + defb '228T if 128K', 0, 0 +cad71 defb 'Memory usually', 0 + defb 'contended.', 0 + defb 'Disabled on', 0 + defb 'Pentagon 128K', 0, 0 +cad72 defb 'Performs a', 0 + defb 'tape test', 0, 0 + ENDIF +cad73 defb $1b, 0 + IF recovery=0 +cad74 defb 'Kempston Fuller', 0 + defb 'Break key to return', 0 + defb '234567890' + defb 'Q'+$80, 'WERTYUIOP' + defb 'A'+$80, 'SDFGHJKLe' + defb 'c'+$80, 'ZXCVBNMsb' + defb 'o'+$80, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, 'o', $80 + ENDIF +cad75 defb 'Insert SD with', 0 + defb 'the file on', 0 + defb 'root', 0, 0 +cad76 defb 'Be quiet, avoid brick', 0 +cad77 defb 'SD or partition error', 0 +cad78 defb 'Not found or bad size', 0 +cad79 defb ' Successfully burned ', 0 +cad80 defb 'EAR input', 0 +cad81 defb 'SD file', 0 +cad82 defb 'Input machine\'s name', 0 + IF version=4 +files defb 'ESXDOS ZX1' + defb 'FIRMWAREZX1' + defb 'FLASH ZX1' + defb 'SPECTRUMZX1' +fileco defb 'CORE ZX1' + ELSE + IF version=3 +files defb 'ESXDOS ZZ3' + defb 'FIRMWAREZZ3' + defb 'FLASH ZZ3' + defb 'SPECTRUMZZ3' +fileco defb 'CORE ZZ3' + ELSE + IF version=2 +files defb 'ESXDOS ZZ2' + defb 'FIRMWAREZZ2' + defb 'FLASH ZZ2' + defb 'SPECTRUMZZ2' +fileco defb 'CORE ZZ2' + ELSE + IF version=1 +files defb 'ESXDOS ZXA' + defb 'FIRMWAREZXA' + defb 'FLASH ZXA' + defb 'SPECTRUMZXA' +fileco defb 'CORE ZXA' + ENDIF + ENDIF + ENDIF + ENDIF + IF recovery=0 +cad83 defb 'Input', 0 + defb $11, $11, $11, $11, $11, $11, $11, $11, 0 + defb 'Keyb Layout', 0 + defb 'Joy Keypad', 0 + defb 'Joy DB9', 0 + defb ' ', 0 + defb ' ', 0 + defb 'Output', 0 + defb $11, $11, $11, $11, $11, $11, $11, $11, $11, 0 + defb 'Video', 0 + defb 'Scanlines', 0 + defb 'Frequency', 0 + defb 'CPU Speed', 0, 0 +cad84 defb 'Select PS/2', 0 + defb 'mapping to', 0 + defb 'spectrum', 0, 0 +cad85 defb 'Simulated', 0 + defb 'joystick', 0 + defb 'configuration', 0, 0 +cad86 defb 'Real joystick', 0 + defb 'configuration', 0, 0 +cad87 defb 'Select default', 0 + defb 'video output', 0, 0 +cad99 defb 'Enable VGA', 0 + defb 'scanlines', 0, 0 +cad100 defb 'Set VGA', 0 + defb 'horizontal',0 + defb 'frequency', 0, 0 +cad101 defb 'Set CPU', 0 + defb 'speed', 0, 0 +cad102 defb '50', 0 +cad103 defb '51', 0 +cad104 defb '53.5', 0 +cad105 defb '55.8', 0 +cad106 defb '57.4', 0 +cad107 defb '59.5', 0 +cad108 defb '61.8', 0 +cad109 defb '63.8', 0 +cad110 defb '1X', 0 +cad111 defb '2X', 0 +cad112 defb '4X', 0 +cad113 defb '8X', 0 +cad114 defb 'Break to exit', 0 +cad115 defb 'Slot occupied, select', 0 + defb 'another or delete a', 0 + defb 'ROM to free it', 0 + ENDIF +cad116 defb '2', 0 + defb '3', 0 + defb '4', 0 + defb '5', 0 + defb '6', 0 + defb '7', 0 + defb '8', 0 + defb '9', 0, 0 + +;cad199 defb 'af0000 bc0000 de0000 hl0000 sp0000 ix0000 iy0000', 0 + +fincad