From 15546b582d757ac900b8f659efb56f40766fc3be Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Thu, 18 Jan 2018 17:31:37 -0800 Subject: [PATCH] Added Device module support for loading JSON configurations from separate files --- _data/machines.json | 12 +- ...-introducing-programmable-calculator-js.md | 209 +-------- ...11-10-the-ti-57-programmable-calculator.md | 209 +-------- ...11-29-the-ti-55-programmable-calculator.md | 400 +----------------- _posts/2017-12-20-wordstar-on-the-pc.md | 44 +- devices/leds/life/README.md | 68 +-- devices/leds/life/colors/README.md | 96 +---- devices/leds/life/colors/life.json | 94 ++++ devices/leds/life/life.json | 66 +++ devices/leds/litebrite/README.md | 85 +--- devices/leds/litebrite/litebrite.json | 83 ++++ devices/leds/scroller/ATT4425.json | 55 +++ devices/leds/scroller/README.md | 57 +-- devices/leds/scroller/helvetica.json | 55 +++ devices/leds/symbols/README.md | 44 +- devices/leds/symbols/symbols.json | 42 ++ devices/ti42/machine/README.md | 196 +-------- devices/ti42/machine/diags/README.md | 210 +-------- devices/ti42/machine/diags/ti42.json | 208 +++++++++ devices/ti55/machine/README.md | 200 +-------- devices/ti55/machine/diags/README.md | 214 +--------- devices/ti55/machine/diags/ti55.json | 212 ++++++++++ devices/ti57/machine/README.md | 200 +-------- devices/ti57/machine/rev0/README.md | 214 +--------- devices/ti57/machine/rev0/ti57.json | 212 ++++++++++ devices/ti57/machine/rev1/README.md | 214 +--------- devices/ti57/machine/rev1/ti57.json | 212 ++++++++++ devices/ti57/tips/README.md | 200 +-------- gulpfile.js | 9 +- modules/devices/README.md | 4 + modules/devices/device.js | 116 ++++- modules/devices/input.js | 2 +- modules/devices/led.js | 2 +- modules/devices/ledctrl.js | 4 +- modules/devices/machine.js | 196 ++++++--- modules/devices/rom.js | 2 +- modules/devices/time.js | 2 +- modules/devices/tms1500.js | 13 +- modules/markout/lib/markout.js | 4 +- 39 files changed, 1528 insertions(+), 2937 deletions(-) create mode 100644 devices/leds/life/colors/life.json create mode 100644 devices/leds/life/life.json create mode 100644 devices/leds/litebrite/litebrite.json create mode 100644 devices/leds/scroller/ATT4425.json create mode 100644 devices/leds/scroller/helvetica.json create mode 100644 devices/leds/symbols/symbols.json create mode 100644 devices/ti42/machine/diags/ti42.json create mode 100644 devices/ti55/machine/diags/ti55.json create mode 100644 devices/ti57/machine/rev0/ti57.json create mode 100644 devices/ti57/machine/rev1/ti57.json diff --git a/_data/machines.json b/_data/machines.json index 0cc58e9c28..51b193f337 100644 --- a/_data/machines.json +++ b/_data/machines.json @@ -1,6 +1,6 @@ { "shared": { - "version": "1.50.0", + "appversion": "1.50.0", "externs": [ "./modules/shared/lib/externs.js" ], @@ -74,10 +74,11 @@ "leds": { "name": "LEDs", "class": "leds", - "version": "1.11", + "version": 1.21, "defines": [ "COMPILED", - "DEBUG" + "DEBUG", + "VERSION" ], "folder": "devices", "creator": "new LEDs", @@ -302,10 +303,11 @@ "ti57": { "name": "TI57", "class": "ti57", - "version": "1.11", + "version": 1.21, "defines": [ "COMPILED", - "DEBUG" + "DEBUG", + "VERSION" ], "folder": "devices", "creator": "new TMS1500", diff --git a/_posts/2017-11-05-introducing-programmable-calculator-js.md b/_posts/2017-11-05-introducing-programmable-calculator-js.md index 63698ac4e2..5a43942ee5 100644 --- a/_posts/2017-11-05-introducing-programmable-calculator-js.md +++ b/_posts/2017-11-05-introducing-programmable-calculator-js.md @@ -7,214 +7,7 @@ machines: - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI57", - "print": "printTI57" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI57", - "speed": "speedTI57", - "step": "stepTI57" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57", - "reset": "resetTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: /devices/ti57/machine/rev0/ti57.json styles: _ti57: position: relative; diff --git a/_posts/2017-11-10-the-ti-57-programmable-calculator.md b/_posts/2017-11-10-the-ti-57-programmable-calculator.md index 5a6a272f0c..d9aeee8782 100644 --- a/_posts/2017-11-10-the-ti-57-programmable-calculator.md +++ b/_posts/2017-11-10-the-ti-57-programmable-calculator.md @@ -7,214 +7,7 @@ machines: - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI57", - "print": "printTI57" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI57", - "speed": "speedTI57", - "step": "stepTI57" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57", - "reset": "resetTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: /devices/ti57/machine/rev0/ti57.json styles: _ti57: position: relative; diff --git a/_posts/2017-11-29-the-ti-55-programmable-calculator.md b/_posts/2017-11-29-the-ti-55-programmable-calculator.md index cbe657b0eb..343ab823db 100644 --- a/_posts/2017-11-29-the-ti-55-programmable-calculator.md +++ b/_posts/2017-11-29-the-ti-55-programmable-calculator.md @@ -7,407 +7,11 @@ machines: - id: ti55 type: ti55 name: TI-55 Programmable Calculator - config: | - { - "ti55": { - "class": "Machine", - "type": "TI55", - "name": "TI-55 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1503", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2ndTI55", - "INV": "indINVTI55", - "Deg": "indDegTI55", - "Rad": "indRadTI55", - "Grad": "indGradTI55" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI55" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], - "map": [ - ["2nd", "sin", "cos", "tan", "clr"], - ["inv", "pct", "lnx", "epow", "root"], - ["xchg", "sq", "sqrt", "rcp", "ypow"], - ["sigma","ee", "(", ")", "/"], - ["sto", "7", "8", "9", "*"], - ["rcl", "4", "5", "6", "-"], - ["sum", "1", "2", "3", "+"], - ["\\b", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI55", - "power": "powerTI55" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "tmc1503le.bin", - "reference": "", - "chipID": "TMC1503NL DD 8035", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4400,5066,3089,6364,3237,543,813,813,3233,6371,3198,6266,3245,6364,1991,5556, - 1865,103,3587,6187,6815,3296,3308,6290,6148,3098,6578,2265,3188,5365,6271,2055, - 3587,6807,6257,6217,3194,6154,3198,3256,6364,3257,6156,3194,6286,3198,3193,7798, - 3184,6805,6752,6221,3194,6609,3240,6285,3194,3879,6463,7004,3252,6902,1863,3589, - 6991,6809,6279,6843,3194,7169,2087,6603,6363,3194,7864,4110,6364,3194,7866,5780, - 6364,6446,3096,6591,3096,6573,3096,6563,3194,6603,2279,3198,7263,3188,5164,3090, - 6242,3300,3217,5136,3198,6248,5164,6249,5167,5136,3198,6253,5167,3302,6364,3088, - 6364,3194,3112,7614,5167,5099,3110,6644,5556,6364,543,813,813,3495,3112,3124, - 6515,5099,1887,2119,3098,7694,6671,3194,6283,5104,5570,5768,6364,4057,5099,1822, - 5989,6643,5365,3194,3321,6295,3320,3198,6302,3304,3298,6302,3194,7375,3288,5174, - 3198,3194,7643,3877,6619,3298,6313,3322,7376,3118,7361,2055,3594,3584,1863,1815, - 1991,3298,7371,3310,6331,3322,6361,3302,6360,3588,6361,2271,3903,3322,6344,5565, - 6345,3300,3117,3112,2055,3594,3589,6318,5473,3584,1815,3302,7667,3590,6644,2079, - 3118,6355,3104,2241,3585,3584,2079,1879,3590,1806,6364,3091,3186,3233,3913,3321, - 3325,7817,5365,5174,3194,7400,3877,7487,3225,5117,711,1815,3877,7928,2561,2265, - 1504,3586,2080,3118,7485,3118,7495,3879,3329,3233,1121,1125,6399,3092,5543,621, - 1127,1120,3174,7437,616,3592,97,7439,76,7437,97,6419,3088,552,6404,616, - 5540,101,7439,5668,3190,6380,5453,5514,5642,549,7452,3236,1793,1487,3170,6435, - 5563,6364,5476,4112,1505,6434,1999,549,1822,7388,4111,1822,5471,6439,3194,6455, - 401,257,3594,3588,3590,2208,6450,329,2193,5128,473,3585,3588,257,3237,1793, - 5272,1038,616,1038,3473,3877,7517,3218,7515,3216,679,672,680,592,3592,1380, - 7515,1317,6491,1100,6491,1377,7515,1320,4127,1328,6514,3221,6514,3841,3194,7416, - 3222,7511,549,6502,3218,6511,719,744,2024,2024,3282,6514,1038,616,1038,2055, - 1087,552,5174,2121,3593,3873,7517,3873,7410,3194,7415,3873,6534,2080,3114,6389, - 3198,7502,3244,3220,1353,6514,3118,6391,3222,6545,1100,1127,7538,3592,1097,1121, - 7538,2121,2144,1896,79,3895,3122,7570,3167,2145,7538,5086,6553,1999,5471,1806, - 5564,5164,6694,3108,3194,6595,3098,7593,3304,3308,3649,3588,6579,3112,3194,6595, - 3098,6579,3300,3232,3196,5155,5158,5570,3649,5159,5471,3601,3590,6846,3193,3116, - 3296,3194,7193,3234,7644,3232,3242,6646,3241,3585,6637,3242,7297,3234,6646,3236, - 6627,5099,3232,3872,3134,6616,3126,7643,3588,287,6370,1815,3236,6364,5565,3242, - 7388,2079,5989,4065,6646,4057,3594,2081,2085,2561,7660,2079,1815,3588,6370,3877, - 7690,3873,2277,3588,287,6364,5099,2151,3877,2085,6652,2119,2149,7686,2141,6639, - 3318,6660,3314,7643,4064,3594,287,3841,3105,6637,1887,1806,3162,6671,3128,2120, - 7701,2120,7646,5473,6623,2079,3242,6681,3601,3588,1999,1806,3182,7581,549,7722, - 5668,5679,1806,3589,5565,5768,4158,1999,2247,6623,3154,6701,6116,613,6694,5452, - 5514,5668,6694,3193,3841,3198,7763,3094,3326,7742,1313,1317,1312,6736,5768,1991, - 5563,1991,3322,7751,3326,6727,3128,5473,4112,72,3326,7911,1822,5570,5475,6887, - 769,39,6364,3326,6764,4110,3322,7773,3282,6750,3281,3132,6750,3155,5779,5476, - 5679,3134,6758,3133,3088,6364,3194,6364,804,7388,5104,6888,4112,1991,5476,1822, - 4112,5475,5564,5679,3324,6728,5099,2199,3090,2303,6780,3188,5555,5124,3237,5570, - 1822,5570,5779,3238,6790,3300,5124,3841,5824,1822,1887,5099,613,7826,5570,5124, - 1815,6264,5447,1806,6329,3120,3320,3124,3324,3194,7731,3321,3325,2263,5824,3665, - 4945,3589,5570,3649,4946,4110,3681,4946,3589,3617,4945,4110,3633,4946,3194,7860, - 3589,4112,5476,3588,5514,3697,4946,6902,5155,6364,3324,3194,6432,3233,5155,4110, - 4941,5570,3633,3198,7878,3681,4941,5475,1991,4112,3697,3584,3326,6863,5471,5555, - 3326,7247,3234,6364,3298,7920,4940,5564,3302,7388,3590,5155,5570,5158,5471,3310, - 6364,3306,7914,3649,4158,5475,4940,1806,5564,6364,1991,4940,3649,3589,5766,6364, - 5780,4940,5564,3198,3197,7611,1815,6365,2085,8007,2080,1793,3198,6911,3128,3118, - 7998,3114,6942,3110,6964,3106,6931,6133,6130,6136,6130,6095,6140,3092,5116,5117, - 1319,6056,6364,6136,6104,6099,6132,6016,6016,6104,6099,6133,5116,6929,3106,6947, - 3131,6045,6364,2009,3284,2029,3284,3280,2029,1511,3841,3100,1837,3088,1837,1879, - 3198,7918,1822,6734,3106,6971,6138,6132,5116,5117,6926,3131,6037,6364,3249,3253, - 3110,7228,3106,8005,6902,3248,6902,1927,5120,5033,1815,6902,3601,1863,3584,1806, - 3587,1991,4941,3194,6998,3128,5473,3590,1823,3585,3587,5029,3237,3592,5120,3126, - 8027,1793,2593,8038,544,7010,5117,1991,5036,3877,7022,2600,1497,7036,3118,7033, - 3117,3943,3192,3848,3134,7033,3126,7033,3841,5134,1535,1512,5061,1528,1823,5272, - 616,616,872,872,2377,5117,872,872,5524,3188,5174,3194,7057,1503,2623,3116, - 7061,3877,8085,1503,2623,2759,2084,7071,3122,8093,3130,8027,7071,3126,7479,5120, - 5038,5029,2597,7479,7004,5120,2592,3126,7082,2561,3590,3587,3293,7087,3292,3593, - 2639,639,3401,5090,2145,8125,5061,1399,296,3424,1288,8130,7092,3294,7111,2591, - 3429,7094,3588,2639,639,3847,3587,2759,7107,1927,769,6104,6099,6130,6136,6095, - 6099,6016,6107,6136,6133,5117,967,768,839,768,3093,3587,2081,557,1901,3152, - 3164,3587,2632,2561,2569,2593,3133,3913,5061,3594,7150,3871,3594,455,3589,3587, - 1863,1793,6138,6136,808,6138,6130,6099,6130,808,6095,6136,808,808,808,3587, - 3665,3584,2631,3587,4158,3588,1807,3587,257,3601,3588,3617,6149,3873,2080,3587, - 2007,5514,5642,1822,1887,5471,1822,1865,3156,3160,1901,3156,1383,1806,3198,7201, - 3128,5565,6500,3617,3198,7207,3665,1991,4942,3697,3584,6588,5540,5540,6692,5548, - 5548,6692,3236,5033,3261,799,3262,3229,7351,3324,3193,3327,3262,7351,3593,975, - 3592,3591,3591,7233,3401,3545,2592,7330,5268,3591,3591,6214,2623,5276,3591,3591, - 6214,3130,6228,3125,5450,1535,3114,6272,3126,7281,3122,6257,3194,6272,3130,3190, - 7296,2080,3118,2081,6272,3230,7222,3262,3263,7222,975,5272,3591,3591,7276,863, - 6327,5133,3118,6285,3194,6268,3127,3123,3877,7350,3127,3123,3126,7296,3841,2605, - 3114,3110,3877,3126,3130,7395,3106,6283,3190,7395,6203,3195,6206,2080,3118,7295, - 3872,3872,3872,6285,3238,6303,3122,6300,841,3592,865,7327,3593,863,3592,3591, - 3591,3587,3424,6216,3552,3286,6216,3545,5272,3593,1376,3591,3591,7244,2592,3126, - 6315,2561,1359,3455,1901,6315,3228,3190,7395,967,3593,3290,3289,7374,3238,7220, - 3545,3401,3591,3591,6350,2623,2080,3118,2081,6350,3123,3877,3123,7389,5120,2592, - 3590,3190,7218,5090,2145,7384,296,6356,3877,7392,3118,3117,6366,3192,1823,6228, - 1823,5450,1535,3592,3189,3229,3326,3325,3197,6388,3196,3127,3111,3107,2597,3107, - 3111,3127,6388,3245,3587,5668,3585,4941,2009,3258,6412,1479,1383,1376,1376,1481, - 6399,1370,7427,3094,6408,1509,7432,1371,1503,2097,6412,2049,1865,3156,5086,3090, - 6418,3431,2119,3258,3246,7453,1351,864,864,877,616,1381,7509,1505,7457,5547, - 6429,2081,5084,5084,3118,6435,1028,6457,5085,711,544,1252,6447,749,6443,741, - 6458,545,967,1815,5538,804,6390,799,6458,5085,2149,6464,1061,6464,1125,7481, - 552,616,3286,7504,3094,6481,1120,3282,6475,3091,2567,3587,3130,3090,6482,3236, - 1377,1121,3587,5540,557,3094,7507,3284,1317,7457,5547,2081,6488,2049,6488,3128, - 1806,3130,6500,3091,1423,3129,3158,7549,3094,1299,7554,1445,6496,3090,6518,3154, - 7544,525,7520,521,1887,6692,3154,7537,520,6516,557,5539,6516,3094,6496,1299, - 7520,1445,613,7533,1028,557,6536,544,5540,6500,4112,783,3329,1353,3129,549, - 6555,1351,2121,1281,1377,8146,6029,6548,808,1376,3092,37,7576,1294,1356,7122, - 544,7122,513,39,3094,7137,1313,1317,6570,3093,3587,621,3094,8161,1313,6570, - 1319,3092,3587,3128,1887,6589,5515,2527,1343,3154,6692,4112,3128,3130,6594,549, - 8171,3095,1935,583,3338,3089,3154,6601,3088,3217,3346,3222,7665,1288,8163,513, - 5543,1425,1353,613,677,7540,3130,7673,534,941,1057,6627,557,549,6636,535, - 1367,5534,6516,850,6618,941,877,167,5540,804,7540,6618,101,6617,872,5548, - 6618,1293,6645,3095,1294,1289,6607,905,544,909,6647,877,37,6659,552,549, - 6649,5548,6649,905,840,840,905,7540,5536,6516,1814,841,3169,3094,7716,941, - 5548,3094,7711,872,613,7703,3168,5658,552,6672,533,7602,529,864,6682,5540, - 936,3094,7716,5658,3129,6698,37,6701,552,5548,549,6694,1793,1927,6567,3122, - 7817,5453,1991,4112,5471,3094,6716,1441,1424,1453,1445,6692,1823,1927,1287,3447, - 1325,1287,3575,1281,3088,549,8164,5521,841,3122,6734,103,549,7606,798,769, - 2063,2081,8106,2081,8117,2081,8125,2081,8131,2081,8135,39,6024,798,3122,6763, - 797,7792,793,911,790,6024,790,848,6752,791,856,903,6024,790,786,6761, - 2144,3182,6734,3178,6734,3122,7606,5106,777,5516,841,1901,3557,7809,3423,1901, - 1383,3222,6788,3152,1822,5105,5570,6500,3120,5104,5642,3328,3170,8163,3545,2265, - 1359,2552,6727,5476,5453,1793,677,7716,4112,1441,7843,1441,7839,1312,6809,3222, - 6818,1312,621,3217,2121,1287,2424,1281,1425,6841,877,813,6840,897,897,776, - 901,6829,777,786,6837,165,6826,936,877,869,6830,5516,3351,2383,1343,6516, - 3237,5668,3198,7989,3128,6033,3238,6858,3300,6958,5066,3237,768,5642,5975,5521, - 5065,768,3090,6869,787,3329,5066,909,853,7901,3191,3126,6891,901,7907,897, - 3126,6883,3091,3122,3877,6960,909,7915,787,3091,3191,925,7919,851,3128,791, - 3527,798,841,913,167,3198,7929,5995,6906,6023,965,7947,963,798,3198,6917, - 6024,786,5995,778,6901,6023,776,782,6024,897,6901,2144,741,6901,783,3130, - 6934,3198,6933,5065,851,790,5516,5447,3198,8007,1814,5516,1879,5564,3089,5447, - 3126,6954,4110,3125,5779,5563,5447,3238,6954,5676,3281,3190,6958,3280,2207,4316, - 909,7987,787,851,6891,5975,3527,3126,6975,4110,5475,5780,3238,8006,5564,3094, - 549,8004,5563,3128,5521,6897,4596,3122,6990,5065,5515,1879,5475,3089,1927,3190, - 6997,5066,3329,1879,5476,6033,6958,657,936,912,677,8041,3094,7017,3198,8007, - 3122,6958,1991,5514,6958,3097,3290,7017,3096,1927,3587,769,2063,2081,8056,2081, - 8066,39,2081,7048,6091,6095,6106,7128,6094,6106,6099,6107,6130,6138,6133,6095, - 808,7137,6092,6106,6106,6099,7128,791,2063,7051,813,2081,7050,1287,816,813, - 3587,3250,8146,3254,7069,6107,6136,6106,6016,6095,6103,6140,7077,6130,6104,6138, - 6129,6103,6129,6016,6136,3329,808,6016,1879,6589,6129,6136,6016,808,6016,6104, - 6095,6099,808,6133,6749,6094,6130,808,6135,808,6099,6130,7105,6093,6130,5117, - 6135,6136,6749,6092,6130,5116,6749,6091,6130,808,6749,6095,6095,6095,6095,808, - 1317,816,3587,808,800,800,7132,6104,808,7125,6107,808,800,800,800,800, - 800,1312,6570,3094,769,8169,801,3093,8175,1313,8174,613,3343,7140,39,3236, - 6692,6095,808,7133,6130,808,7134,6136,808,7135,808,7136,6138,6136,6104,3587 - ] - } - } + config: /devices/ti55/machine/diags/ti55.json - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2ndTI57", - "INV": "indINVTI57", - "Deg": "indDegTI57", - "Rad": "indRadTI57", - "Grad": "indGradTI57" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: /devices/ti57/machine/rev0/ti57.json styles: _ti55: position: relative; diff --git a/_posts/2017-12-20-wordstar-on-the-pc.md b/_posts/2017-12-20-wordstar-on-the-pc.md index 5bff7c67d8..e050ce458e 100644 --- a/_posts/2017-12-20-wordstar-on-the-pc.md +++ b/_posts/2017-12-20-wordstar-on-the-pc.md @@ -16,49 +16,7 @@ machines: - id: scrollLEDs type: leds name: LED Scroller - config: | - { - "scrollLEDs": { - "class": "Machine", - "type": "leds", - "name": "LED Scroller", - "version": 1.11, - "autoStart": true, - "autoRestore": false, - "overrides": ["autoStart","autoRestore"] - }, - "scrollChip": { - "class": "Chip", - "rule": "L1", - "message": "Happy New Year!$c$30b$30o$30b$30o$90s", - "overrides": ["message"] - }, - "scrollClock": { - "class": "Time", - "cyclesPerSecond": 60, - "cyclesMinimum": 1, - "cyclesMaximum": 120, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","clockByFrame","requestAnimationFrame"] - }, - "scrollDisplay": { - "class": "LED", - "type": 0, - "cols": 256, - "rows": 16, - "colsExtra": 16, - "color": "red", - "backgroundColor": "black", - "highlight": false, - "bindings": { - "container": "displayScroll" - }, - "overrides": ["color","backgroundColor"] - }, - "scrollInput": { - "class": "Input", - "drag": true - } - } + config: /devices/leds/scroller/ATT4425.json styles: _scrollLEDs: position: relative; diff --git a/devices/leds/life/README.md b/devices/leds/life/README.md index a8af6a003c..b4e41c291f 100644 --- a/devices/leds/life/README.md +++ b/devices/leds/life/README.md @@ -8,73 +8,7 @@ machines: - id: lifeDemo type: leds name: Game of Life Demo - config: | - { - "lifeDemo": { - "class": "Machine", - "type": "leds", - "name": "Game of Life Demo", - "version": 1.10, - "autoStart": false, - "bindings": { - "clear": "clearLife", - "print": "printLife" - }, - "overrides": ["autoStart"] - }, - "lifeChip": { - "class": "Chip", - "rule": "B3/S23", - "pattern": "gliderGun", - "patterns": { - "gliderGun": [ - "#N Gosper Glider Gun", - "#C This was the first gun discovered.", - "#C As its name suggests, it was discovered by Bill Gosper.", - "x = 36, y = 9, rule = B3/S23", - "24bo$22bobo$12b2o6b2o12b2o$11bo3bo4b2o12b2o$2o8bo5bo3b2o$2o8bo3bob2o4b", - "obo$10bo5bo7bo$11bo3bo$12b2o!" - ] - }, - "bindings": { - "patterns": "patternsLife", - "saveToURL": "saveLife" - }, - "overrides": ["wrap","pattern"] - }, - "lifeClock": { - "class": "Time", - "cyclesPerSecond": 1, - "cyclesMinimum": 1, - "cyclesMaximum": 120, - "bindings": { - "run": "runLife", - "speed": "speedLife", - "step": "stepLife", - "throttle": "throttleLife" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] - }, - "lifeDisplay": { - "class": "LED", - "type": 1, - "cols": 38, - "rows": 26, - "color": "green", - "backgroundColor": "black", - "bindings": { - "container": "displayLife" - }, - "overrides": ["color","backgroundColor"] - }, - "lifeInput": { - "class": "Input", - "drag": true, - "bindings": { - "reset": "resetLife" - } - } - } + config: life.json styles: _lifeDemo: position: relative; diff --git a/devices/leds/life/colors/README.md b/devices/leds/life/colors/README.md index 294e706168..f5c9ff0656 100644 --- a/devices/leds/life/colors/README.md +++ b/devices/leds/life/colors/README.md @@ -6,101 +6,7 @@ machines: - id: lifeColorDemo type: leds name: Game of Life Color Demo - config: | - { - "lifeColorDemo": { - "class": "Machine", - "type": "leds", - "name": "Game of Life Demo", - "version": 1.10, - "autoStart": false, - "bindings": { - "clear": "clearLife", - "print": "printLife" - }, - "overrides": ["autoStart"] - }, - "lifeChip": { - "class": "Chip", - "rule": "B3/S23", - "pattern": "gliderGun", - "patterns": { - "gliderGun": [ - "#N Gosper Glider Gun", - "#C This was the first gun discovered.", - "#C As its name suggests, it was discovered by Bill Gosper.", - "x = 36, y = 9, rule = B3/S23", - "24bo$22bobo$12b2o6b2o12b2o$11bo3bo4b2o12b2o$2o8bo5bo3b2o$2o8bo3bob2o4b", - "obo$10bo5bo7bo$11bo3bo$12b2o!" - ] - }, - "bindings": { - "colorPalette": "colorPaletteLife", - "colorSelection": "colorSelectionLife", - "colorSwatchSelected": "colorSwatchLife", - "patterns": "patternsLife", - "saveToURL": "saveLife" - }, - "colors": { - "Primary": { - "Navy": "#000080", - "Green": "#008000", - "Teal": "#008080", - "Maroon": "#800000", - "Purple": "#800080", - "Olive": "#808000", - "Gray": "#808080", - "Blue": "#0000ff", - "Lime": "#00ff00", - "Cyan": "#00ffff", - "Red": "#ff0000", - "Magenta": "#ff00ff", - "Yellow": "#ffff00", - "White": "#ffffff" - }, - "Pastels": { - "Pink": "#ffb3ba", - "Beige": "#ffdfba", - "Yellow": "#ffffba", - "Green": "#baffc9", - "Blue": "#bae1ff" - } - }, - "overrides": ["wrap","pattern"] - }, - "lifeClock": { - "class": "Time", - "cyclesPerSecond": 1, - "cyclesMinimum": 1, - "cyclesMaximum": 120, - "bindings": { - "run": "runLife", - "speed": "speedLife", - "step": "stepLife", - "throttle": "throttleLife" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] - }, - "lifeDisplay": { - "class": "LED", - "type": 1, - "cols": 38, - "rows": 26, - "color": "green", - "backgroundColor": "black", - "bindings": { - "container": "displayLife" - }, - "overrides": ["color","backgroundColor"] - }, - "lifeInput": { - "class": "Input", - "drag": true, - "bindings": { - "reset": "resetLife" - } - } - } + config: life.json styles: _lifeColorDemo: position: relative; diff --git a/devices/leds/life/colors/life.json b/devices/leds/life/colors/life.json new file mode 100644 index 0000000000..857097b3bc --- /dev/null +++ b/devices/leds/life/colors/life.json @@ -0,0 +1,94 @@ +{ + "lifeColorDemo": { + "class": "Machine", + "type": "leds", + "name": "Game of Life Demo", + "version": 1.20, + "autoStart": false, + "bindings": { + "clear": "clearLife", + "print": "printLife" + }, + "overrides": ["autoStart"] + }, + "lifeChip": { + "class": "Chip", + "rule": "B3/S23", + "pattern": "gliderGun", + "patterns": { + "gliderGun": [ + "#N Gosper Glider Gun", + "#C This was the first gun discovered.", + "#C As its name suggests, it was discovered by Bill Gosper.", + "x = 36, y = 9, rule = B3/S23", + "24bo$22bobo$12b2o6b2o12b2o$11bo3bo4b2o12b2o$2o8bo5bo3b2o$2o8bo3bob2o4b", + "obo$10bo5bo7bo$11bo3bo$12b2o!" + ] + }, + "bindings": { + "colorPalette": "colorPaletteLife", + "colorSelection": "colorSelectionLife", + "colorSwatchSelected": "colorSwatchLife", + "patterns": "patternsLife", + "saveToURL": "saveLife" + }, + "colors": { + "Primary": { + "Navy": "#000080", + "Green": "#008000", + "Teal": "#008080", + "Maroon": "#800000", + "Purple": "#800080", + "Olive": "#808000", + "Gray": "#808080", + "Blue": "#0000ff", + "Lime": "#00ff00", + "Cyan": "#00ffff", + "Red": "#ff0000", + "Magenta": "#ff00ff", + "Yellow": "#ffff00", + "White": "#ffffff" + }, + "Pastels": { + "Pink": "#ffb3ba", + "Beige": "#ffdfba", + "Yellow": "#ffffba", + "Green": "#baffc9", + "Blue": "#bae1ff" + } + }, + "overrides": ["wrap","pattern"] + }, + "lifeClock": { + "class": "Time", + "cyclesPerSecond": 1, + "cyclesMinimum": 1, + "cyclesMaximum": 120, + "bindings": { + "run": "runLife", + "speed": "speedLife", + "step": "stepLife", + "throttle": "throttleLife" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] + }, + "lifeDisplay": { + "class": "LED", + "type": 1, + "cols": 38, + "rows": 26, + "color": "green", + "backgroundColor": "black", + "bindings": { + "container": "displayLife" + }, + "overrides": ["color","backgroundColor"] + }, + "lifeInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetLife" + } + } +} diff --git a/devices/leds/life/life.json b/devices/leds/life/life.json new file mode 100644 index 0000000000..c0da0721b4 --- /dev/null +++ b/devices/leds/life/life.json @@ -0,0 +1,66 @@ +{ + "lifeDemo": { + "class": "Machine", + "type": "leds", + "name": "Game of Life Demo", + "version": 1.20, + "autoStart": false, + "bindings": { + "clear": "clearLife", + "print": "printLife" + }, + "overrides": ["autoStart"] + }, + "lifeChip": { + "class": "Chip", + "rule": "B3/S23", + "pattern": "gliderGun", + "patterns": { + "gliderGun": [ + "#N Gosper Glider Gun", + "#C This was the first gun discovered.", + "#C As its name suggests, it was discovered by Bill Gosper.", + "x = 36, y = 9, rule = B3/S23", + "24bo$22bobo$12b2o6b2o12b2o$11bo3bo4b2o12b2o$2o8bo5bo3b2o$2o8bo3bob2o4b", + "obo$10bo5bo7bo$11bo3bo$12b2o!" + ] + }, + "bindings": { + "patterns": "patternsLife", + "saveToURL": "saveLife" + }, + "overrides": ["wrap","pattern"] + }, + "lifeClock": { + "class": "Time", + "cyclesPerSecond": 1, + "cyclesMinimum": 1, + "cyclesMaximum": 120, + "bindings": { + "run": "runLife", + "speed": "speedLife", + "step": "stepLife", + "throttle": "throttleLife" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] + }, + "lifeDisplay": { + "class": "LED", + "type": 1, + "cols": 38, + "rows": 26, + "color": "green", + "backgroundColor": "black", + "bindings": { + "container": "displayLife" + }, + "overrides": ["color","backgroundColor"] + }, + "lifeInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetLife" + } + } +} diff --git a/devices/leds/litebrite/README.md b/devices/leds/litebrite/README.md index 9ba7686edc..05458d415c 100644 --- a/devices/leds/litebrite/README.md +++ b/devices/leds/litebrite/README.md @@ -6,90 +6,7 @@ machines: - id: lbDemo type: leds name: Lite-Brite Demo - config: | - { - "lbDemo": { - "class": "Machine", - "type": "leds", - "name": "Lite-Brite Demo", - "version": 1.10, - "autoStart": false, - "bindings": { - "clear": "clearLB", - "print": "printLB" - }, - "overrides": ["autoStart"] - }, - "lbChip": { - "class": "Chip", - "rule": "A4", - "toggleColor": true, - "bindings": { - "colorPalette": "colorPaletteLB", - "colorSelection": "colorSelectionLB", - "colorSwatch1": "colorSwatchLB1", - "colorSwatch2": "colorSwatchLB2", - "colorSwatch3": "colorSwatchLB3", - "colorSwatch4": "colorSwatchLB4", - "colorSwatch5": "colorSwatchLB5", - "colorSwatch6": "colorSwatchLB6", - "colorSwatch7": "colorSwatchLB7", - "colorSwatch8": "colorSwatchLB8", - "countInit": "countInit", - "countOn": "countOn", - "countOff": "countOff", - "countCycle": "countCycle", - "backgroundImage": "backgroundImage", - "saveToURL": "saveLB" - }, - "colors": { - "Original": { - "Blue": "#3067c1", - "Green": "#2f9a27", - "Violet": "#9f3c92", - "Red": "#ff0000", - "Orange": "#fa7d14", - "Pink": "#ff1493", - "Yellow": "#fadc4e", - "White": "#fffff9" - } - }, - "overrides": ["blue","green","violet","red","orange","pink","yellow","white","wrap","backgroundImage","pattern"] - }, - "lbClock": { - "class": "Time", - "cyclesPerSecond": 1, - "cyclesMinimum": 1, - "cyclesMaximum": 120, - "bindings": { - "run": "runLB", - "speed": "speedLB", - "step": "stepLB", - "throttle": "throttleLB" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] - }, - "lbDisplay": { - "class": "LED", - "type": 1, - "cols": 45, - "rows": 39, - "backgroundColor": "black", - "hexagonal": true, - "highlight": false, - "bindings": { - "container": "displayLB" - }, - "overrides": ["color","backgroundColor"] - }, - "lbInput": { - "class": "Input", - "drag": true, - "bindings": { - "reset": "resetLB" - } - } - } + config: litebrite.json styles: _lbDemo: position: relative; diff --git a/devices/leds/litebrite/litebrite.json b/devices/leds/litebrite/litebrite.json new file mode 100644 index 0000000000..3921fe2d4f --- /dev/null +++ b/devices/leds/litebrite/litebrite.json @@ -0,0 +1,83 @@ +{ + "lbDemo": { + "class": "Machine", + "type": "leds", + "name": "Lite-Brite Demo", + "version": 1.20, + "autoStart": false, + "bindings": { + "clear": "clearLB", + "print": "printLB" + }, + "overrides": ["autoStart"] + }, + "lbChip": { + "class": "Chip", + "rule": "A4", + "toggleColor": true, + "bindings": { + "colorPalette": "colorPaletteLB", + "colorSelection": "colorSelectionLB", + "colorSwatch1": "colorSwatchLB1", + "colorSwatch2": "colorSwatchLB2", + "colorSwatch3": "colorSwatchLB3", + "colorSwatch4": "colorSwatchLB4", + "colorSwatch5": "colorSwatchLB5", + "colorSwatch6": "colorSwatchLB6", + "colorSwatch7": "colorSwatchLB7", + "colorSwatch8": "colorSwatchLB8", + "countInit": "countInit", + "countOn": "countOn", + "countOff": "countOff", + "countCycle": "countCycle", + "backgroundImage": "backgroundImage", + "saveToURL": "saveLB" + }, + "colors": { + "Original": { + "Blue": "#3067c1", + "Green": "#2f9a27", + "Violet": "#9f3c92", + "Red": "#ff0000", + "Orange": "#fa7d14", + "Pink": "#ff1493", + "Yellow": "#fadc4e", + "White": "#fffff9" + } + }, + "overrides": ["blue","green","violet","red","orange","pink","yellow","white","wrap","backgroundImage","pattern"] + }, + "lbClock": { + "class": "Time", + "cyclesPerSecond": 1, + "cyclesMinimum": 1, + "cyclesMaximum": 120, + "bindings": { + "run": "runLB", + "speed": "speedLB", + "step": "stepLB", + "throttle": "throttleLB" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","requestAnimationFrame"] + }, + "lbDisplay": { + "class": "LED", + "type": 1, + "cols": 45, + "rows": 39, + "backgroundColor": "black", + "hexagonal": true, + "highlight": false, + "bindings": { + "container": "displayLB" + }, + "overrides": ["color","backgroundColor"] + }, + "lbInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetLB" + } + } +} diff --git a/devices/leds/scroller/ATT4425.json b/devices/leds/scroller/ATT4425.json new file mode 100644 index 0000000000..dfb4627889 --- /dev/null +++ b/devices/leds/scroller/ATT4425.json @@ -0,0 +1,55 @@ +{ + "scrollLEDs": { + "class": "Machine", + "type": "leds", + "name": "LED Scroller", + "version": 1.20, + "autoStart": true, + "bindings": { + "clear": "clearScroll", + "print": "printScroll" + }, + "overrides": ["autoStart"] + }, + "scrollChip": { + "class": "Chip", + "font": "ATT4425", + "message": "Happy New Year!$c$30b$30o$30b$30o$90s", + "rule": "L1", + "overrides": ["message"] + }, + "scrollClock": { + "class": "Time", + "cyclesPerSecond": 60, + "cyclesMinimum": 1, + "cyclesMaximum": 120, + "bindings": { + "run": "runScroll", + "speed": "speedScroll", + "step": "stepScroll", + "throttle": "throttleScroll" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","clockByFrame","requestAnimationFrame"] + }, + "scrollDisplay": { + "class": "LED", + "type": 0, + "cols": 256, + "rows": 16, + "colsExtra": 16, + "color": "red", + "backgroundColor": "black", + "highlight": false, + "bindings": { + "container": "displayScroll" + }, + "overrides": ["color","backgroundColor"] + }, + "scrollInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetScroll" + } + } +} diff --git a/devices/leds/scroller/README.md b/devices/leds/scroller/README.md index 3de16d7c48..5a88385002 100644 --- a/devices/leds/scroller/README.md +++ b/devices/leds/scroller/README.md @@ -6,62 +6,7 @@ machines: - id: scrollLEDs type: leds name: LED Scroller - config: | - { - "scrollLEDs": { - "class": "Machine", - "type": "leds", - "name": "LED Scroller", - "version": 1.11, - "autoStart": true, - "bindings": { - "clear": "clearScroll", - "print": "printScroll" - }, - "overrides": ["autoStart"] - }, - "scrollChip": { - "class": "Chip", - "font": "ATT4425", - "message": "Happy New Year!$c$30b$30o$30b$30o$90s", - "rule": "L1", - "overrides": ["message"] - }, - "scrollClock": { - "class": "Time", - "cyclesPerSecond": 60, - "cyclesMinimum": 1, - "cyclesMaximum": 120, - "bindings": { - "run": "runScroll", - "speed": "speedScroll", - "step": "stepScroll", - "throttle": "throttleScroll" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","clockByFrame","requestAnimationFrame"] - }, - "scrollDisplay": { - "class": "LED", - "type": 0, - "cols": 256, - "rows": 16, - "colsExtra": 16, - "color": "red", - "backgroundColor": "black", - "highlight": false, - "bindings": { - "container": "displayScroll" - }, - "overrides": ["color","backgroundColor"] - }, - "scrollInput": { - "class": "Input", - "drag": true, - "bindings": { - "reset": "resetScroll" - } - } - } + config: helvetica.json styles: _scrollLEDs: position: relative; diff --git a/devices/leds/scroller/helvetica.json b/devices/leds/scroller/helvetica.json new file mode 100644 index 0000000000..0303ed7ac6 --- /dev/null +++ b/devices/leds/scroller/helvetica.json @@ -0,0 +1,55 @@ +{ + "scrollLEDs": { + "class": "Machine", + "type": "leds", + "name": "LED Scroller", + "version": 1.20, + "autoStart": true, + "bindings": { + "clear": "clearScroll", + "print": "printScroll" + }, + "overrides": ["autoStart"] + }, + "scrollChip": { + "class": "Chip", + "font": "Helvetica", + "message": "Happy New Year!$c$30b$30o$30b$30o$90s", + "rule": "L1", + "overrides": ["message"] + }, + "scrollClock": { + "class": "Time", + "cyclesPerSecond": 60, + "cyclesMinimum": 1, + "cyclesMaximum": 120, + "bindings": { + "run": "runScroll", + "speed": "speedScroll", + "step": "stepScroll", + "throttle": "throttleScroll" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate","cyclesMinimum","cyclesMaximum","clockByFrame","requestAnimationFrame"] + }, + "scrollDisplay": { + "class": "LED", + "type": 0, + "cols": 256, + "rows": 16, + "colsExtra": 16, + "color": "red", + "backgroundColor": "black", + "highlight": false, + "bindings": { + "container": "displayScroll" + }, + "overrides": ["color","backgroundColor"] + }, + "scrollInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetScroll" + } + } +} diff --git a/devices/leds/symbols/README.md b/devices/leds/symbols/README.md index fdda819dc9..4ac3afec04 100644 --- a/devices/leds/symbols/README.md +++ b/devices/leds/symbols/README.md @@ -6,49 +6,7 @@ machines: - id: symbolLEDs type: leds name: LED Symbol - config: | - { - "symbolLEDs": { - "class": "Machine", - "type": "leds", - "name": "LED Symbol", - "version": 1.11, - "autoStart": false, - "bindings": { - "clear": "clearSymbol", - "print": "printSymbol" - }, - "overrides": ["autoStart"] - }, - "symbolChip": { - "class": "Chip", - "bindings": { - "save": "saveSymbol", - "symbolInput": "inputSymbol", - "symbolPreview": "previewSymbol" - }, - "overrides": ["backgroundImage"] - }, - "symbolDisplay": { - "class": "LED", - "type": 1, - "cols": 9, - "rows": 13, - "color": "red", - "highlight": false, - "bindings": { - "container": "displaySymbol" - }, - "overrides": ["color","backgroundColor"] - }, - "symbolInput": { - "class": "Input", - "drag": true, - "bindings": { - "reset": "resetSymbol" - } - } - } + config: symbols.json styles: _symbolLEDs: position: relative; diff --git a/devices/leds/symbols/symbols.json b/devices/leds/symbols/symbols.json new file mode 100644 index 0000000000..5b1c81622e --- /dev/null +++ b/devices/leds/symbols/symbols.json @@ -0,0 +1,42 @@ +{ + "symbolLEDs": { + "class": "Machine", + "type": "leds", + "name": "LED Symbol", + "version": 1.20, + "autoStart": false, + "bindings": { + "clear": "clearSymbol", + "print": "printSymbol" + }, + "overrides": ["autoStart"] + }, + "symbolChip": { + "class": "Chip", + "bindings": { + "save": "saveSymbol", + "symbolInput": "inputSymbol", + "symbolPreview": "previewSymbol" + }, + "overrides": ["backgroundImage"] + }, + "symbolDisplay": { + "class": "LED", + "type": 1, + "cols": 9, + "rows": 13, + "color": "red", + "highlight": false, + "bindings": { + "container": "displaySymbol" + }, + "overrides": ["color","backgroundColor"] + }, + "symbolInput": { + "class": "Input", + "drag": true, + "bindings": { + "reset": "resetSymbol" + } + } +} diff --git a/devices/ti42/machine/README.md b/devices/ti42/machine/README.md index 4280e776ed..8f2c9dca83 100644 --- a/devices/ti42/machine/README.md +++ b/devices/ti42/machine/README.md @@ -6,201 +6,7 @@ machines: - id: ti42 type: ti42 name: TI-42 Programmable Calculator - config: | - { - "ti42": { - "class": "Machine", - "type": "TI42", - "name": "TI-42 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1502", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2ndTI42" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI42" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], - "map": [ - ["2nd", "cpt", "lnx", "sq", "clr"], - ["n", "pcti", "pmt", "pv", "fv"], - ["pct", "rcp", "dbd", "xchg", "sigma"], - ["rst", "rs", "(", ")", "/"], - ["sto", "7", "8", "9", "*"], - ["rcl", "4", "5", "6", "-"], - ["sum", "1", "2", "3", "+"], - ["\\b", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI42", - "power": "powerTI42" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "tmc1502le.bin", - "reference": "http://seanriddle.com/tmc1502.bin", - "chipID": "TMC1502", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4685,2279,3308,2241,3585,3584,2079,1879,3590,1806,7143,5967,7143,5986,7143,3194, - 7886,6217,6257,6249,7045,6654,3308,6667,3194,6240,5533,5182,3194,7905,3877,6881, - 6145,6243,6271,6159,7034,3194,7999,6189,3194,7179,5869,7143,4057,5493,1822,5112, - 6905,6184,6298,6205,3194,8001,6877,3587,3879,6750,5415,5422,6309,3194,6586,3248, - 6188,6236,6312,6181,3194,8002,2087,6871,7142,5731,7143,5493,1887,2119,3098,7956, - 6933,6731,6332,6953,3096,6834,3096,6842,3194,3304,7871,6871,3194,7181,5464,7143, - 543,6030,7145,3194,3241,6247,3240,3244,7144,3194,3112,7885,5492,3110,6906,5724, - 7143,3194,7513,3246,7300,6269,5869,5389,5461,5869,1863,5384,5422,3633,6337,3194, - 7615,3246,7301,6292,3184,5411,1829,6340,5415,5395,3186,7286,1991,5407,5731,3588, - 1807,5865,5638,5452,1991,5507,3649,3590,1823,7143,3194,7534,3246,6309,5861,5846, - 5413,1829,7226,5422,5738,3665,5470,6337,3194,7669,3246,6330,3184,5411,1829,6370, - 5861,3186,7350,1863,5424,6336,5731,1863,5415,5738,3681,6337,3194,7515,3246,7341, - 3697,3590,3185,7143,3186,6377,5461,5389,5411,3242,6349,1879,5738,3633,3590,3589, - 5869,3588,5413,1829,6361,5415,5455,5462,6365,5455,5132,5643,5731,5869,1863,5384, - 5732,6269,5861,5846,5392,3186,6336,5422,6330,5415,1829,7419,1863,5413,1829,7419, - 5639,1991,5407,5392,5644,5395,1991,5407,5462,5732,6408,5413,1863,5415,5643,5429, - 1991,5458,1999,5458,1991,1807,5731,5639,3649,3089,3590,5398,3186,7617,5861,5846, - 5389,1823,5387,5428,5738,1991,5426,5639,1863,5384,1991,5644,3588,1999,3242,6435, - 5461,5732,1879,5409,5732,5382,1814,3588,2007,5461,5732,1863,5407,5738,1991,1863, - 5382,5422,3588,1991,5384,5422,3588,1999,5428,5644,5405,5731,5643,3242,6464,5638, - 5384,1879,5422,1863,5405,5644,3590,3254,613,7506,3158,6412,1376,1376,7506,1389, - 1381,7436,3186,7664,5452,3590,5398,5409,6292,3184,5638,5862,5846,5392,1991,5424, - 5639,3186,7143,5409,1879,5738,1991,1863,5411,5639,5126,1807,5126,6338,5126,1879, - 5643,3697,3590,1807,5862,5846,5392,1991,5424,5639,3186,7551,3184,5126,6516,5126, - 1879,5643,1991,5415,5392,5644,6338,5389,5448,5449,5507,5350,5387,1935,5432,5434, - 6126,5738,6131,5643,5432,5434,5462,5345,5435,1991,5505,1863,3589,5639,3588,1999, - 5462,5738,5432,5448,5449,5452,3588,5418,5432,5507,3588,5435,3088,5443,5418,5432, - 1815,3186,7606,3184,5126,6535,1863,5126,5643,6338,3112,3096,3318,6861,6882,1793, - 5389,1793,5387,3601,3588,3585,3588,5373,3601,3584,5359,3617,3584,5359,5407,5359, - 5409,5359,5411,5359,5413,5359,5415,5359,3649,5358,3665,5358,3681,5358,3697,5358, - 3601,3589,1991,5382,1863,3585,3584,5643,5422,1991,5384,1879,5644,3588,3184,6471, - 5384,5967,5638,5452,6338,5126,5862,1879,5126,5422,1863,5413,5644,6337,3194,6665, - 3585,3584,1793,3590,2272,3594,3310,6657,7032,3296,3308,5533,2121,3194,6672,3324, - 5182,3194,7905,3877,7709,3118,6722,3122,2561,3108,3116,6685,3104,3118,7734,2055, - 3594,3584,1863,1815,1991,3298,7742,3310,6704,3326,3325,6153,3302,6152,3588,6153, - 3129,3326,3325,6717,5733,6718,3300,3117,3112,2055,3594,3589,6690,5644,3302,7929, - 3590,6906,3106,6881,3110,3114,7905,3872,3872,2605,6685,3194,6740,401,257,3594, - 3588,3590,2208,6735,257,329,473,3594,3588,3194,7847,257,3592,3253,1793,5315, - 1097,3473,3877,7786,3218,7820,3216,1127,1120,6796,3841,549,6767,3218,6794,719, - 647,2144,749,941,1247,3895,3122,6769,3182,6792,3174,6792,1453,1445,6796,3126, - 7820,5484,3156,73,2145,7817,5599,6788,616,552,2055,1087,813,877,5182,2121, - 3593,808,872,3873,7786,3873,7844,3873,6812,3118,7780,6823,3118,6823,5484,3167, - 2145,7820,5599,6816,2080,3118,7769,3879,3329,2193,5510,7154,3130,7559,5643,5452, - 5422,6949,3112,3194,6863,3098,6840,3296,3300,6850,3108,3194,6863,3098,7874,3308, - 3585,3588,3236,3244,5497,5500,5738,3649,5501,5639,3601,3590,6978,3193,3116,3238, - 7906,3236,3250,6908,3249,3585,6899,3250,7243,3238,6908,3252,6889,5493,3236,3872, - 6905,1815,3252,7143,5733,3250,8167,2079,5112,4065,6908,4057,3594,2081,2085,2561, - 7922,2079,1815,3588,7144,3877,7952,3873,2277,3588,287,7143,5493,2151,3877,2085, - 6914,2119,2149,7948,2141,6901,3318,6922,3314,7905,4064,3594,287,3841,3105,6899, - 1887,1806,3162,6933,3128,2120,7963,2120,7908,5641,6885,2079,3250,6943,3601,3588, - 1999,1806,3182,7852,5865,5466,1999,2247,6885,3665,5474,3589,5738,3649,5475,5464, - 3681,5475,3589,3617,5474,5464,3633,5475,3589,5462,3588,5682,3697,5475,7032,5497, - 7143,3232,5497,5464,5470,5738,3633,3246,8010,3681,5470,5643,1991,5415,3234,6993, - 5638,5723,3234,7181,3238,7143,3298,8050,5469,5732,3302,8167,3590,5497,5738,5500, - 5639,3310,7143,3306,8043,3585,5466,5643,5469,5422,7143,1991,5469,3585,3589,5738, - 5644,7143,5986,5469,5732,3246,3245,7882,1815,7143,3194,7038,3260,7145,3258,3259, - 8167,3591,3591,8065,7145,3194,8080,1927,5120,2561,3590,1815,3258,8169,7032,5135, - 3592,3253,5120,3126,8079,1793,2593,8090,544,7062,6056,1991,3593,5141,3877,7075, - 2600,1497,7089,3118,7086,3117,3943,3192,3848,3134,7086,3126,7086,3841,5110,1535, - 1512,5124,1528,1823,5315,3593,616,616,872,872,2377,6056,872,872,3592,5692, - 3196,5182,3194,7122,3107,3127,2597,8080,3111,2597,8079,3123,3127,2597,7764,3107, - 3111,3123,3118,7129,3193,3126,7129,3872,2081,3877,8158,3194,7134,3116,2759,3593, - 5120,5143,5135,2597,7764,7056,3091,2193,5533,5182,3194,8174,3877,7774,3225,6056, - 711,1815,2561,2265,1504,3586,2080,3587,3097,3290,7164,3096,1927,3587,0,0, - 3665,3584,2631,3587,3847,3587,5493,1822,5112,3588,287,3587,1865,103,3587,5120, - 2592,3126,6427,2561,6427,3293,6168,3292,2639,639,3401,5168,2145,7205,5124,1399, - 296,3424,1288,7210,6172,3294,6190,2591,3429,6174,3588,591,2687,3587,2759,6187, - 2632,2561,2569,2593,3133,3913,5124,3594,6409,3252,2561,3257,3261,799,3193,3258, - 3262,7300,3593,975,3592,3591,3591,7237,3401,3545,2592,7373,5311,3591,3591,6218, - 2623,5319,3591,3591,6218,3198,7265,3194,6241,3127,3111,3107,2597,3107,3111,3127, - 7300,3130,6244,3125,5589,1535,3114,6261,3126,7276,3122,7285,2080,3873,3118,6269, - 3126,7285,3841,2605,3193,2085,6332,3126,3130,3877,7356,3195,6210,2080,3118,7283, - 3872,3872,3872,6269,967,3593,3254,7227,3401,3545,3262,7322,3591,3591,6298,3194, - 7322,2623,3122,7322,3126,6298,3110,6298,3106,7340,5120,2592,3590,3126,6305,3122, - 7225,5168,2145,7334,296,6306,3877,7340,3118,3117,6316,3192,1823,5589,1535,2080, - 3118,2081,6332,3122,7352,3130,7354,6332,3126,6332,2080,3873,3261,3592,3587,3254, - 6346,3122,6343,841,3592,865,7370,3593,863,3592,3591,3591,3587,3424,6220,3552, - 3286,6220,3545,5315,3593,1376,3591,3591,7248,2592,3126,6358,2561,1359,3455,1901, - 6358,1865,103,96,96,6756,1879,1793,6120,6106,6115,6135,6106,6762,3589,1879, - 5422,1991,5382,1879,5644,3588,5380,5738,3601,3589,1879,5644,3588,5380,5462,3588, - 5384,1879,5738,6991,3585,6409,3617,6409,3633,3589,3587,3617,6414,3633,3588,3587, - 1863,5411,6762,1863,5413,6756,5413,1829,6428,5415,3091,3590,3587,1991,6433,3633, - 6440,3649,6440,3665,6440,3681,6440,3697,3584,3587,1865,103,96,584,1806,6756, - 5413,6762,5415,6453,5413,1863,5411,6756,3192,6459,1927,2007,5682,5809,1887,5643, - 3194,3193,6348,1863,5382,5644,3588,6408,1927,2007,5682,5809,5708,5708,6859,1863, - 5409,5738,1863,5407,6756,5409,5132,6668,1991,6748,1863,3589,6496,3601,1863,3584, - 1806,3587,1991,5470,3194,6503,3128,5641,3590,1823,3585,3587,2121,2144,1896,79, - 3895,3122,7533,3587,5507,3871,3594,455,6409,3617,3246,7549,3665,1991,5471,5415, - 6756,5507,5507,5716,5716,6859,1127,1120,79,3447,101,7574,3166,7569,3154,6545, - 3088,3158,7579,616,552,6536,616,3592,5708,101,7574,3592,6859,5835,3585,5470, - 2009,1865,3156,5599,3090,6567,3431,2119,1351,1389,1381,7653,2081,5597,5597,3118, - 6574,1028,6596,5598,711,544,1252,6586,749,6582,741,6597,545,967,1815,5706, - 804,6558,799,6597,5598,2149,6603,1061,6603,1125,7620,3286,7667,552,616,3094, - 6619,1120,3282,6614,3091,2567,3587,3130,3090,6620,3252,1121,3587,2081,557,1901, - 3152,3164,3587,5708,557,3094,7651,1317,7663,5715,2081,6631,2049,6631,5598,2081, - 6638,3284,6577,813,1377,7647,1312,6738,3094,769,7678,801,3093,7684,1313,7683, - 613,3343,6649,39,3252,6859,5132,3128,1806,3130,6668,3091,1423,3129,3158,7717, - 3094,1299,7722,1445,6664,3090,6686,3154,7712,525,7688,521,1887,6859,3154,7705, - 520,6684,557,5707,6684,3094,6664,1299,7688,1445,613,7701,1028,557,6704,544, - 5708,6668,5132,783,3329,1353,3129,549,6723,1351,2121,1281,1377,8106,6039,6716, - 808,1376,3092,37,7744,1294,1356,7082,544,7082,513,39,3094,6646,1313,1317, - 6738,3093,3587,621,3094,7670,1313,6738,1319,3092,3587,3128,1887,6757,5683,2527, - 1343,3154,6859,5132,3128,3130,6762,549,7680,3095,1935,583,3338,3089,3154,6769, - 3088,3217,3346,3222,7832,1288,7672,513,5711,1425,1353,677,7708,3130,7840,534, - 941,1057,6794,557,549,6803,535,1367,5702,6684,850,6785,941,877,167,5708, - 804,7708,6785,101,6784,872,5716,6785,1293,6812,3095,1294,1289,6775,905,544, - 909,6814,877,37,6826,552,549,6816,5716,6816,905,840,840,905,7708,5704, - 6684,1814,841,3169,3094,7883,941,5716,3094,7878,872,613,7870,3168,5825,552, - 6839,533,7770,529,864,6849,5708,936,3094,7883,5825,3129,6865,37,6868,552, - 5716,549,6861,1793,1927,6735,5389,5638,1806,1999,5409,5732,3242,6879,5644,3633, - 3589,1991,1879,1815,3587,5407,5389,5461,3633,549,8026,5835,3232,3121,3122,8016, - 5592,1991,5638,3094,6908,1441,1424,1453,1445,7932,5835,6984,1823,1927,1287,3447, - 1325,1287,3575,1281,3088,549,7673,5689,841,3122,6926,103,549,7774,798,769, - 2063,2081,8107,2081,8118,2081,8126,2081,8132,2081,8136,39,6034,798,3122,6955, - 797,7984,793,911,790,6034,790,848,6944,791,856,903,6034,790,786,6953, - 2144,3182,6926,3178,6926,3122,7774,6045,777,5684,841,1901,3557,8001,3423,1901, - 1383,3222,6980,3152,1822,6044,5738,5644,3234,3233,8012,3587,1806,3589,5733,3120, - 6043,5809,3328,3170,7672,3545,2265,1359,2552,6919,3154,7005,5625,613,6987,5591, - 5682,6859,5592,1793,677,7883,5132,1441,8049,1441,8045,1312,7015,3222,7024,1312, - 621,3217,2121,1287,2424,1281,1425,7047,877,813,7046,897,897,776,901,7035, - 777,786,7043,165,7032,936,877,869,7036,5684,3351,2383,1343,6684,3253,3237, - 813,7065,2063,7061,813,2081,7060,1287,816,813,3587,1863,1793,6122,6120,808, - 6122,6115,6100,6115,808,6096,6120,808,808,808,3587,6114,6120,6124,808,6124, - 6104,6096,6100,808,6117,6941,6095,6115,808,6119,808,6100,6115,7106,6094,6115, - 6056,6119,6120,6941,6093,6115,6055,6941,6092,6115,808,6941,6096,6096,6096,6096, - 808,1317,816,3587,808,800,800,7131,808,7126,808,800,800,800,800,800, - 800,3587,6096,808,7132,808,7133,6120,808,7134,808,7135,808,7136,6138,808, - 6106,6135,7148,6138,808,6120,7153,6055,6055,7079,1863,1793,7144,0,0,0 - ] - } - } + config: diags/ti42.json styles: _ti42: position: relative; diff --git a/devices/ti42/machine/diags/README.md b/devices/ti42/machine/diags/README.md index 8c490be954..3fa3e28b8b 100644 --- a/devices/ti42/machine/diags/README.md +++ b/devices/ti42/machine/diags/README.md @@ -6,215 +6,7 @@ machines: - id: ti42 type: ti42 name: TI-42 Programmable Calculator - config: | - { - "ti42": { - "class": "Machine", - "type": "TI42", - "name": "TI-42 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI42", - "print": "printTI42" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1502", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2ndTI42" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI42", - "speed": "speedTI42", - "step": "stepTI42" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI42" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], - "map": [ - ["2nd", "cpt", "lnx", "sq", "clr"], - ["n", "pcti", "pmt", "pv", "fv"], - ["pct", "rcp", "dbd", "xchg", "sigma"], - ["rst", "rs", "(", ")", "/"], - ["sto", "7", "8", "9", "*"], - ["rcl", "4", "5", "6", "-"], - ["sum", "1", "2", "3", "+"], - ["\\b", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI42", - "power": "powerTI42", - "reset": "resetTI42" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "tmc1502le.bin", - "reference": "http://seanriddle.com/tmc1502.bin", - "chipID": "TMC1502", - "revision": "0", - "bindings": { - "array": "romArrayTI42", - "cellDesc": "romCellTI42" - }, - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4685,2279,3308,2241,3585,3584,2079,1879,3590,1806,7143,5967,7143,5986,7143,3194, - 7886,6217,6257,6249,7045,6654,3308,6667,3194,6240,5533,5182,3194,7905,3877,6881, - 6145,6243,6271,6159,7034,3194,7999,6189,3194,7179,5869,7143,4057,5493,1822,5112, - 6905,6184,6298,6205,3194,8001,6877,3587,3879,6750,5415,5422,6309,3194,6586,3248, - 6188,6236,6312,6181,3194,8002,2087,6871,7142,5731,7143,5493,1887,2119,3098,7956, - 6933,6731,6332,6953,3096,6834,3096,6842,3194,3304,7871,6871,3194,7181,5464,7143, - 543,6030,7145,3194,3241,6247,3240,3244,7144,3194,3112,7885,5492,3110,6906,5724, - 7143,3194,7513,3246,7300,6269,5869,5389,5461,5869,1863,5384,5422,3633,6337,3194, - 7615,3246,7301,6292,3184,5411,1829,6340,5415,5395,3186,7286,1991,5407,5731,3588, - 1807,5865,5638,5452,1991,5507,3649,3590,1823,7143,3194,7534,3246,6309,5861,5846, - 5413,1829,7226,5422,5738,3665,5470,6337,3194,7669,3246,6330,3184,5411,1829,6370, - 5861,3186,7350,1863,5424,6336,5731,1863,5415,5738,3681,6337,3194,7515,3246,7341, - 3697,3590,3185,7143,3186,6377,5461,5389,5411,3242,6349,1879,5738,3633,3590,3589, - 5869,3588,5413,1829,6361,5415,5455,5462,6365,5455,5132,5643,5731,5869,1863,5384, - 5732,6269,5861,5846,5392,3186,6336,5422,6330,5415,1829,7419,1863,5413,1829,7419, - 5639,1991,5407,5392,5644,5395,1991,5407,5462,5732,6408,5413,1863,5415,5643,5429, - 1991,5458,1999,5458,1991,1807,5731,5639,3649,3089,3590,5398,3186,7617,5861,5846, - 5389,1823,5387,5428,5738,1991,5426,5639,1863,5384,1991,5644,3588,1999,3242,6435, - 5461,5732,1879,5409,5732,5382,1814,3588,2007,5461,5732,1863,5407,5738,1991,1863, - 5382,5422,3588,1991,5384,5422,3588,1999,5428,5644,5405,5731,5643,3242,6464,5638, - 5384,1879,5422,1863,5405,5644,3590,3254,613,7506,3158,6412,1376,1376,7506,1389, - 1381,7436,3186,7664,5452,3590,5398,5409,6292,3184,5638,5862,5846,5392,1991,5424, - 5639,3186,7143,5409,1879,5738,1991,1863,5411,5639,5126,1807,5126,6338,5126,1879, - 5643,3697,3590,1807,5862,5846,5392,1991,5424,5639,3186,7551,3184,5126,6516,5126, - 1879,5643,1991,5415,5392,5644,6338,5389,5448,5449,5507,5350,5387,1935,5432,5434, - 6126,5738,6131,5643,5432,5434,5462,5345,5435,1991,5505,1863,3589,5639,3588,1999, - 5462,5738,5432,5448,5449,5452,3588,5418,5432,5507,3588,5435,3088,5443,5418,5432, - 1815,3186,7606,3184,5126,6535,1863,5126,5643,6338,3112,3096,3318,6861,6882,1793, - 5389,1793,5387,3601,3588,3585,3588,5373,3601,3584,5359,3617,3584,5359,5407,5359, - 5409,5359,5411,5359,5413,5359,5415,5359,3649,5358,3665,5358,3681,5358,3697,5358, - 3601,3589,1991,5382,1863,3585,3584,5643,5422,1991,5384,1879,5644,3588,3184,6471, - 5384,5967,5638,5452,6338,5126,5862,1879,5126,5422,1863,5413,5644,6337,3194,6665, - 3585,3584,1793,3590,2272,3594,3310,6657,7032,3296,3308,5533,2121,3194,6672,3324, - 5182,3194,7905,3877,7709,3118,6722,3122,2561,3108,3116,6685,3104,3118,7734,2055, - 3594,3584,1863,1815,1991,3298,7742,3310,6704,3326,3325,6153,3302,6152,3588,6153, - 3129,3326,3325,6717,5733,6718,3300,3117,3112,2055,3594,3589,6690,5644,3302,7929, - 3590,6906,3106,6881,3110,3114,7905,3872,3872,2605,6685,3194,6740,401,257,3594, - 3588,3590,2208,6735,257,329,473,3594,3588,3194,7847,257,3592,3253,1793,5315, - 1097,3473,3877,7786,3218,7820,3216,1127,1120,6796,3841,549,6767,3218,6794,719, - 647,2144,749,941,1247,3895,3122,6769,3182,6792,3174,6792,1453,1445,6796,3126, - 7820,5484,3156,73,2145,7817,5599,6788,616,552,2055,1087,813,877,5182,2121, - 3593,808,872,3873,7786,3873,7844,3873,6812,3118,7780,6823,3118,6823,5484,3167, - 2145,7820,5599,6816,2080,3118,7769,3879,3329,2193,5510,7154,3130,7559,5643,5452, - 5422,6949,3112,3194,6863,3098,6840,3296,3300,6850,3108,3194,6863,3098,7874,3308, - 3585,3588,3236,3244,5497,5500,5738,3649,5501,5639,3601,3590,6978,3193,3116,3238, - 7906,3236,3250,6908,3249,3585,6899,3250,7243,3238,6908,3252,6889,5493,3236,3872, - 6905,1815,3252,7143,5733,3250,8167,2079,5112,4065,6908,4057,3594,2081,2085,2561, - 7922,2079,1815,3588,7144,3877,7952,3873,2277,3588,287,7143,5493,2151,3877,2085, - 6914,2119,2149,7948,2141,6901,3318,6922,3314,7905,4064,3594,287,3841,3105,6899, - 1887,1806,3162,6933,3128,2120,7963,2120,7908,5641,6885,2079,3250,6943,3601,3588, - 1999,1806,3182,7852,5865,5466,1999,2247,6885,3665,5474,3589,5738,3649,5475,5464, - 3681,5475,3589,3617,5474,5464,3633,5475,3589,5462,3588,5682,3697,5475,7032,5497, - 7143,3232,5497,5464,5470,5738,3633,3246,8010,3681,5470,5643,1991,5415,3234,6993, - 5638,5723,3234,7181,3238,7143,3298,8050,5469,5732,3302,8167,3590,5497,5738,5500, - 5639,3310,7143,3306,8043,3585,5466,5643,5469,5422,7143,1991,5469,3585,3589,5738, - 5644,7143,5986,5469,5732,3246,3245,7882,1815,7143,3194,7038,3260,7145,3258,3259, - 8167,3591,3591,8065,7145,3194,8080,1927,5120,2561,3590,1815,3258,8169,7032,5135, - 3592,3253,5120,3126,8079,1793,2593,8090,544,7062,6056,1991,3593,5141,3877,7075, - 2600,1497,7089,3118,7086,3117,3943,3192,3848,3134,7086,3126,7086,3841,5110,1535, - 1512,5124,1528,1823,5315,3593,616,616,872,872,2377,6056,872,872,3592,5692, - 3196,5182,3194,7122,3107,3127,2597,8080,3111,2597,8079,3123,3127,2597,7764,3107, - 3111,3123,3118,7129,3193,3126,7129,3872,2081,3877,8158,3194,7134,3116,2759,3593, - 5120,5143,5135,2597,7764,7056,3091,2193,5533,5182,3194,8174,3877,7774,3225,6056, - 711,1815,2561,2265,1504,3586,2080,3587,3097,3290,7164,3096,1927,3587,0,0, - 3665,3584,2631,3587,3847,3587,5493,1822,5112,3588,287,3587,1865,103,3587,5120, - 2592,3126,6427,2561,6427,3293,6168,3292,2639,639,3401,5168,2145,7205,5124,1399, - 296,3424,1288,7210,6172,3294,6190,2591,3429,6174,3588,591,2687,3587,2759,6187, - 2632,2561,2569,2593,3133,3913,5124,3594,6409,3252,2561,3257,3261,799,3193,3258, - 3262,7300,3593,975,3592,3591,3591,7237,3401,3545,2592,7373,5311,3591,3591,6218, - 2623,5319,3591,3591,6218,3198,7265,3194,6241,3127,3111,3107,2597,3107,3111,3127, - 7300,3130,6244,3125,5589,1535,3114,6261,3126,7276,3122,7285,2080,3873,3118,6269, - 3126,7285,3841,2605,3193,2085,6332,3126,3130,3877,7356,3195,6210,2080,3118,7283, - 3872,3872,3872,6269,967,3593,3254,7227,3401,3545,3262,7322,3591,3591,6298,3194, - 7322,2623,3122,7322,3126,6298,3110,6298,3106,7340,5120,2592,3590,3126,6305,3122, - 7225,5168,2145,7334,296,6306,3877,7340,3118,3117,6316,3192,1823,5589,1535,2080, - 3118,2081,6332,3122,7352,3130,7354,6332,3126,6332,2080,3873,3261,3592,3587,3254, - 6346,3122,6343,841,3592,865,7370,3593,863,3592,3591,3591,3587,3424,6220,3552, - 3286,6220,3545,5315,3593,1376,3591,3591,7248,2592,3126,6358,2561,1359,3455,1901, - 6358,1865,103,96,96,6756,1879,1793,6120,6106,6115,6135,6106,6762,3589,1879, - 5422,1991,5382,1879,5644,3588,5380,5738,3601,3589,1879,5644,3588,5380,5462,3588, - 5384,1879,5738,6991,3585,6409,3617,6409,3633,3589,3587,3617,6414,3633,3588,3587, - 1863,5411,6762,1863,5413,6756,5413,1829,6428,5415,3091,3590,3587,1991,6433,3633, - 6440,3649,6440,3665,6440,3681,6440,3697,3584,3587,1865,103,96,584,1806,6756, - 5413,6762,5415,6453,5413,1863,5411,6756,3192,6459,1927,2007,5682,5809,1887,5643, - 3194,3193,6348,1863,5382,5644,3588,6408,1927,2007,5682,5809,5708,5708,6859,1863, - 5409,5738,1863,5407,6756,5409,5132,6668,1991,6748,1863,3589,6496,3601,1863,3584, - 1806,3587,1991,5470,3194,6503,3128,5641,3590,1823,3585,3587,2121,2144,1896,79, - 3895,3122,7533,3587,5507,3871,3594,455,6409,3617,3246,7549,3665,1991,5471,5415, - 6756,5507,5507,5716,5716,6859,1127,1120,79,3447,101,7574,3166,7569,3154,6545, - 3088,3158,7579,616,552,6536,616,3592,5708,101,7574,3592,6859,5835,3585,5470, - 2009,1865,3156,5599,3090,6567,3431,2119,1351,1389,1381,7653,2081,5597,5597,3118, - 6574,1028,6596,5598,711,544,1252,6586,749,6582,741,6597,545,967,1815,5706, - 804,6558,799,6597,5598,2149,6603,1061,6603,1125,7620,3286,7667,552,616,3094, - 6619,1120,3282,6614,3091,2567,3587,3130,3090,6620,3252,1121,3587,2081,557,1901, - 3152,3164,3587,5708,557,3094,7651,1317,7663,5715,2081,6631,2049,6631,5598,2081, - 6638,3284,6577,813,1377,7647,1312,6738,3094,769,7678,801,3093,7684,1313,7683, - 613,3343,6649,39,3252,6859,5132,3128,1806,3130,6668,3091,1423,3129,3158,7717, - 3094,1299,7722,1445,6664,3090,6686,3154,7712,525,7688,521,1887,6859,3154,7705, - 520,6684,557,5707,6684,3094,6664,1299,7688,1445,613,7701,1028,557,6704,544, - 5708,6668,5132,783,3329,1353,3129,549,6723,1351,2121,1281,1377,8106,6039,6716, - 808,1376,3092,37,7744,1294,1356,7082,544,7082,513,39,3094,6646,1313,1317, - 6738,3093,3587,621,3094,7670,1313,6738,1319,3092,3587,3128,1887,6757,5683,2527, - 1343,3154,6859,5132,3128,3130,6762,549,7680,3095,1935,583,3338,3089,3154,6769, - 3088,3217,3346,3222,7832,1288,7672,513,5711,1425,1353,677,7708,3130,7840,534, - 941,1057,6794,557,549,6803,535,1367,5702,6684,850,6785,941,877,167,5708, - 804,7708,6785,101,6784,872,5716,6785,1293,6812,3095,1294,1289,6775,905,544, - 909,6814,877,37,6826,552,549,6816,5716,6816,905,840,840,905,7708,5704, - 6684,1814,841,3169,3094,7883,941,5716,3094,7878,872,613,7870,3168,5825,552, - 6839,533,7770,529,864,6849,5708,936,3094,7883,5825,3129,6865,37,6868,552, - 5716,549,6861,1793,1927,6735,5389,5638,1806,1999,5409,5732,3242,6879,5644,3633, - 3589,1991,1879,1815,3587,5407,5389,5461,3633,549,8026,5835,3232,3121,3122,8016, - 5592,1991,5638,3094,6908,1441,1424,1453,1445,7932,5835,6984,1823,1927,1287,3447, - 1325,1287,3575,1281,3088,549,7673,5689,841,3122,6926,103,549,7774,798,769, - 2063,2081,8107,2081,8118,2081,8126,2081,8132,2081,8136,39,6034,798,3122,6955, - 797,7984,793,911,790,6034,790,848,6944,791,856,903,6034,790,786,6953, - 2144,3182,6926,3178,6926,3122,7774,6045,777,5684,841,1901,3557,8001,3423,1901, - 1383,3222,6980,3152,1822,6044,5738,5644,3234,3233,8012,3587,1806,3589,5733,3120, - 6043,5809,3328,3170,7672,3545,2265,1359,2552,6919,3154,7005,5625,613,6987,5591, - 5682,6859,5592,1793,677,7883,5132,1441,8049,1441,8045,1312,7015,3222,7024,1312, - 621,3217,2121,1287,2424,1281,1425,7047,877,813,7046,897,897,776,901,7035, - 777,786,7043,165,7032,936,877,869,7036,5684,3351,2383,1343,6684,3253,3237, - 813,7065,2063,7061,813,2081,7060,1287,816,813,3587,1863,1793,6122,6120,808, - 6122,6115,6100,6115,808,6096,6120,808,808,808,3587,6114,6120,6124,808,6124, - 6104,6096,6100,808,6117,6941,6095,6115,808,6119,808,6100,6115,7106,6094,6115, - 6056,6119,6120,6941,6093,6115,6055,6941,6092,6115,808,6941,6096,6096,6096,6096, - 808,1317,816,3587,808,800,800,7131,808,7126,808,800,800,800,800,800, - 800,3587,6096,808,7132,808,7133,6120,808,7134,808,7135,808,7136,6138,808, - 6106,6135,7148,6138,808,6120,7153,6055,6055,7079,1863,1793,7144,0,0,0 - ] - } - } + config: ti42.json styles: _ti42: position: relative; diff --git a/devices/ti42/machine/diags/ti42.json b/devices/ti42/machine/diags/ti42.json new file mode 100644 index 0000000000..bdd1ed1f08 --- /dev/null +++ b/devices/ti42/machine/diags/ti42.json @@ -0,0 +1,208 @@ +{ + "ti42": { + "class": "Machine", + "type": "TI42", + "name": "TI-42 Emulator", + "version": 1.20, + "bindings": { + "clear": "clearTI42", + "print": "printTI42" + } + }, + "chip": { + "class": "Chip", + "type": "TMS-1502", + "input": "buttons", + "output": "display", + "bindings": { + "2nd": "ind2ndTI42" + } + }, + "clock": { + "class": "Time", + "cyclesPerSecond": 650000, + "bindings": { + "run": "runTI42", + "speed": "speedTI42", + "step": "stepTI42" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] + }, + "display": { + "class": "LED", + "type": 3, + "cols": 12, + "rows": 1, + "color": "red", + "bindings": { + "container": "displayTI42" + }, + "overrides": ["color","backgroundColor"] + }, + "buttons": { + "class": "Input", + "buttonDelay": 50, + "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], + "map": [ + ["2nd", "cpt", "lnx", "sq", "clr"], + ["n", "pcti", "pmt", "pv", "fv"], + ["pct", "rcp", "dbd", "xchg", "sigma"], + ["rst", "rs", "(", ")", "/"], + ["sto", "7", "8", "9", "*"], + ["rcl", "4", "5", "6", "-"], + ["sum", "1", "2", "3", "+"], + ["\\b", "0", ".", "+/-", "=|\\r"] + ], + "bindings": { + "surface": "imageTI42", + "power": "powerTI42", + "reset": "resetTI42" + } + }, + "rom": { + "class": "ROM", + "wordSize": 13, + "valueSize": 16, + "valueTotal": 2048, + "littleEndian": true, + "file": "tmc1502le.bin", + "reference": "http://seanriddle.com/tmc1502.bin", + "chipID": "TMC1502", + "revision": "0", + "bindings": { + "array": "romArrayTI42", + "cellDesc": "romCellTI42" + }, + "overrides": ["colorROM","backgroundColorROM"], + "values": [ + 4685,2279,3308,2241,3585,3584,2079,1879,3590,1806,7143,5967,7143,5986,7143,3194, + 7886,6217,6257,6249,7045,6654,3308,6667,3194,6240,5533,5182,3194,7905,3877,6881, + 6145,6243,6271,6159,7034,3194,7999,6189,3194,7179,5869,7143,4057,5493,1822,5112, + 6905,6184,6298,6205,3194,8001,6877,3587,3879,6750,5415,5422,6309,3194,6586,3248, + 6188,6236,6312,6181,3194,8002,2087,6871,7142,5731,7143,5493,1887,2119,3098,7956, + 6933,6731,6332,6953,3096,6834,3096,6842,3194,3304,7871,6871,3194,7181,5464,7143, + 543,6030,7145,3194,3241,6247,3240,3244,7144,3194,3112,7885,5492,3110,6906,5724, + 7143,3194,7513,3246,7300,6269,5869,5389,5461,5869,1863,5384,5422,3633,6337,3194, + 7615,3246,7301,6292,3184,5411,1829,6340,5415,5395,3186,7286,1991,5407,5731,3588, + 1807,5865,5638,5452,1991,5507,3649,3590,1823,7143,3194,7534,3246,6309,5861,5846, + 5413,1829,7226,5422,5738,3665,5470,6337,3194,7669,3246,6330,3184,5411,1829,6370, + 5861,3186,7350,1863,5424,6336,5731,1863,5415,5738,3681,6337,3194,7515,3246,7341, + 3697,3590,3185,7143,3186,6377,5461,5389,5411,3242,6349,1879,5738,3633,3590,3589, + 5869,3588,5413,1829,6361,5415,5455,5462,6365,5455,5132,5643,5731,5869,1863,5384, + 5732,6269,5861,5846,5392,3186,6336,5422,6330,5415,1829,7419,1863,5413,1829,7419, + 5639,1991,5407,5392,5644,5395,1991,5407,5462,5732,6408,5413,1863,5415,5643,5429, + 1991,5458,1999,5458,1991,1807,5731,5639,3649,3089,3590,5398,3186,7617,5861,5846, + 5389,1823,5387,5428,5738,1991,5426,5639,1863,5384,1991,5644,3588,1999,3242,6435, + 5461,5732,1879,5409,5732,5382,1814,3588,2007,5461,5732,1863,5407,5738,1991,1863, + 5382,5422,3588,1991,5384,5422,3588,1999,5428,5644,5405,5731,5643,3242,6464,5638, + 5384,1879,5422,1863,5405,5644,3590,3254,613,7506,3158,6412,1376,1376,7506,1389, + 1381,7436,3186,7664,5452,3590,5398,5409,6292,3184,5638,5862,5846,5392,1991,5424, + 5639,3186,7143,5409,1879,5738,1991,1863,5411,5639,5126,1807,5126,6338,5126,1879, + 5643,3697,3590,1807,5862,5846,5392,1991,5424,5639,3186,7551,3184,5126,6516,5126, + 1879,5643,1991,5415,5392,5644,6338,5389,5448,5449,5507,5350,5387,1935,5432,5434, + 6126,5738,6131,5643,5432,5434,5462,5345,5435,1991,5505,1863,3589,5639,3588,1999, + 5462,5738,5432,5448,5449,5452,3588,5418,5432,5507,3588,5435,3088,5443,5418,5432, + 1815,3186,7606,3184,5126,6535,1863,5126,5643,6338,3112,3096,3318,6861,6882,1793, + 5389,1793,5387,3601,3588,3585,3588,5373,3601,3584,5359,3617,3584,5359,5407,5359, + 5409,5359,5411,5359,5413,5359,5415,5359,3649,5358,3665,5358,3681,5358,3697,5358, + 3601,3589,1991,5382,1863,3585,3584,5643,5422,1991,5384,1879,5644,3588,3184,6471, + 5384,5967,5638,5452,6338,5126,5862,1879,5126,5422,1863,5413,5644,6337,3194,6665, + 3585,3584,1793,3590,2272,3594,3310,6657,7032,3296,3308,5533,2121,3194,6672,3324, + 5182,3194,7905,3877,7709,3118,6722,3122,2561,3108,3116,6685,3104,3118,7734,2055, + 3594,3584,1863,1815,1991,3298,7742,3310,6704,3326,3325,6153,3302,6152,3588,6153, + 3129,3326,3325,6717,5733,6718,3300,3117,3112,2055,3594,3589,6690,5644,3302,7929, + 3590,6906,3106,6881,3110,3114,7905,3872,3872,2605,6685,3194,6740,401,257,3594, + 3588,3590,2208,6735,257,329,473,3594,3588,3194,7847,257,3592,3253,1793,5315, + 1097,3473,3877,7786,3218,7820,3216,1127,1120,6796,3841,549,6767,3218,6794,719, + 647,2144,749,941,1247,3895,3122,6769,3182,6792,3174,6792,1453,1445,6796,3126, + 7820,5484,3156,73,2145,7817,5599,6788,616,552,2055,1087,813,877,5182,2121, + 3593,808,872,3873,7786,3873,7844,3873,6812,3118,7780,6823,3118,6823,5484,3167, + 2145,7820,5599,6816,2080,3118,7769,3879,3329,2193,5510,7154,3130,7559,5643,5452, + 5422,6949,3112,3194,6863,3098,6840,3296,3300,6850,3108,3194,6863,3098,7874,3308, + 3585,3588,3236,3244,5497,5500,5738,3649,5501,5639,3601,3590,6978,3193,3116,3238, + 7906,3236,3250,6908,3249,3585,6899,3250,7243,3238,6908,3252,6889,5493,3236,3872, + 6905,1815,3252,7143,5733,3250,8167,2079,5112,4065,6908,4057,3594,2081,2085,2561, + 7922,2079,1815,3588,7144,3877,7952,3873,2277,3588,287,7143,5493,2151,3877,2085, + 6914,2119,2149,7948,2141,6901,3318,6922,3314,7905,4064,3594,287,3841,3105,6899, + 1887,1806,3162,6933,3128,2120,7963,2120,7908,5641,6885,2079,3250,6943,3601,3588, + 1999,1806,3182,7852,5865,5466,1999,2247,6885,3665,5474,3589,5738,3649,5475,5464, + 3681,5475,3589,3617,5474,5464,3633,5475,3589,5462,3588,5682,3697,5475,7032,5497, + 7143,3232,5497,5464,5470,5738,3633,3246,8010,3681,5470,5643,1991,5415,3234,6993, + 5638,5723,3234,7181,3238,7143,3298,8050,5469,5732,3302,8167,3590,5497,5738,5500, + 5639,3310,7143,3306,8043,3585,5466,5643,5469,5422,7143,1991,5469,3585,3589,5738, + 5644,7143,5986,5469,5732,3246,3245,7882,1815,7143,3194,7038,3260,7145,3258,3259, + 8167,3591,3591,8065,7145,3194,8080,1927,5120,2561,3590,1815,3258,8169,7032,5135, + 3592,3253,5120,3126,8079,1793,2593,8090,544,7062,6056,1991,3593,5141,3877,7075, + 2600,1497,7089,3118,7086,3117,3943,3192,3848,3134,7086,3126,7086,3841,5110,1535, + 1512,5124,1528,1823,5315,3593,616,616,872,872,2377,6056,872,872,3592,5692, + 3196,5182,3194,7122,3107,3127,2597,8080,3111,2597,8079,3123,3127,2597,7764,3107, + 3111,3123,3118,7129,3193,3126,7129,3872,2081,3877,8158,3194,7134,3116,2759,3593, + 5120,5143,5135,2597,7764,7056,3091,2193,5533,5182,3194,8174,3877,7774,3225,6056, + 711,1815,2561,2265,1504,3586,2080,3587,3097,3290,7164,3096,1927,3587,0,0, + 3665,3584,2631,3587,3847,3587,5493,1822,5112,3588,287,3587,1865,103,3587,5120, + 2592,3126,6427,2561,6427,3293,6168,3292,2639,639,3401,5168,2145,7205,5124,1399, + 296,3424,1288,7210,6172,3294,6190,2591,3429,6174,3588,591,2687,3587,2759,6187, + 2632,2561,2569,2593,3133,3913,5124,3594,6409,3252,2561,3257,3261,799,3193,3258, + 3262,7300,3593,975,3592,3591,3591,7237,3401,3545,2592,7373,5311,3591,3591,6218, + 2623,5319,3591,3591,6218,3198,7265,3194,6241,3127,3111,3107,2597,3107,3111,3127, + 7300,3130,6244,3125,5589,1535,3114,6261,3126,7276,3122,7285,2080,3873,3118,6269, + 3126,7285,3841,2605,3193,2085,6332,3126,3130,3877,7356,3195,6210,2080,3118,7283, + 3872,3872,3872,6269,967,3593,3254,7227,3401,3545,3262,7322,3591,3591,6298,3194, + 7322,2623,3122,7322,3126,6298,3110,6298,3106,7340,5120,2592,3590,3126,6305,3122, + 7225,5168,2145,7334,296,6306,3877,7340,3118,3117,6316,3192,1823,5589,1535,2080, + 3118,2081,6332,3122,7352,3130,7354,6332,3126,6332,2080,3873,3261,3592,3587,3254, + 6346,3122,6343,841,3592,865,7370,3593,863,3592,3591,3591,3587,3424,6220,3552, + 3286,6220,3545,5315,3593,1376,3591,3591,7248,2592,3126,6358,2561,1359,3455,1901, + 6358,1865,103,96,96,6756,1879,1793,6120,6106,6115,6135,6106,6762,3589,1879, + 5422,1991,5382,1879,5644,3588,5380,5738,3601,3589,1879,5644,3588,5380,5462,3588, + 5384,1879,5738,6991,3585,6409,3617,6409,3633,3589,3587,3617,6414,3633,3588,3587, + 1863,5411,6762,1863,5413,6756,5413,1829,6428,5415,3091,3590,3587,1991,6433,3633, + 6440,3649,6440,3665,6440,3681,6440,3697,3584,3587,1865,103,96,584,1806,6756, + 5413,6762,5415,6453,5413,1863,5411,6756,3192,6459,1927,2007,5682,5809,1887,5643, + 3194,3193,6348,1863,5382,5644,3588,6408,1927,2007,5682,5809,5708,5708,6859,1863, + 5409,5738,1863,5407,6756,5409,5132,6668,1991,6748,1863,3589,6496,3601,1863,3584, + 1806,3587,1991,5470,3194,6503,3128,5641,3590,1823,3585,3587,2121,2144,1896,79, + 3895,3122,7533,3587,5507,3871,3594,455,6409,3617,3246,7549,3665,1991,5471,5415, + 6756,5507,5507,5716,5716,6859,1127,1120,79,3447,101,7574,3166,7569,3154,6545, + 3088,3158,7579,616,552,6536,616,3592,5708,101,7574,3592,6859,5835,3585,5470, + 2009,1865,3156,5599,3090,6567,3431,2119,1351,1389,1381,7653,2081,5597,5597,3118, + 6574,1028,6596,5598,711,544,1252,6586,749,6582,741,6597,545,967,1815,5706, + 804,6558,799,6597,5598,2149,6603,1061,6603,1125,7620,3286,7667,552,616,3094, + 6619,1120,3282,6614,3091,2567,3587,3130,3090,6620,3252,1121,3587,2081,557,1901, + 3152,3164,3587,5708,557,3094,7651,1317,7663,5715,2081,6631,2049,6631,5598,2081, + 6638,3284,6577,813,1377,7647,1312,6738,3094,769,7678,801,3093,7684,1313,7683, + 613,3343,6649,39,3252,6859,5132,3128,1806,3130,6668,3091,1423,3129,3158,7717, + 3094,1299,7722,1445,6664,3090,6686,3154,7712,525,7688,521,1887,6859,3154,7705, + 520,6684,557,5707,6684,3094,6664,1299,7688,1445,613,7701,1028,557,6704,544, + 5708,6668,5132,783,3329,1353,3129,549,6723,1351,2121,1281,1377,8106,6039,6716, + 808,1376,3092,37,7744,1294,1356,7082,544,7082,513,39,3094,6646,1313,1317, + 6738,3093,3587,621,3094,7670,1313,6738,1319,3092,3587,3128,1887,6757,5683,2527, + 1343,3154,6859,5132,3128,3130,6762,549,7680,3095,1935,583,3338,3089,3154,6769, + 3088,3217,3346,3222,7832,1288,7672,513,5711,1425,1353,677,7708,3130,7840,534, + 941,1057,6794,557,549,6803,535,1367,5702,6684,850,6785,941,877,167,5708, + 804,7708,6785,101,6784,872,5716,6785,1293,6812,3095,1294,1289,6775,905,544, + 909,6814,877,37,6826,552,549,6816,5716,6816,905,840,840,905,7708,5704, + 6684,1814,841,3169,3094,7883,941,5716,3094,7878,872,613,7870,3168,5825,552, + 6839,533,7770,529,864,6849,5708,936,3094,7883,5825,3129,6865,37,6868,552, + 5716,549,6861,1793,1927,6735,5389,5638,1806,1999,5409,5732,3242,6879,5644,3633, + 3589,1991,1879,1815,3587,5407,5389,5461,3633,549,8026,5835,3232,3121,3122,8016, + 5592,1991,5638,3094,6908,1441,1424,1453,1445,7932,5835,6984,1823,1927,1287,3447, + 1325,1287,3575,1281,3088,549,7673,5689,841,3122,6926,103,549,7774,798,769, + 2063,2081,8107,2081,8118,2081,8126,2081,8132,2081,8136,39,6034,798,3122,6955, + 797,7984,793,911,790,6034,790,848,6944,791,856,903,6034,790,786,6953, + 2144,3182,6926,3178,6926,3122,7774,6045,777,5684,841,1901,3557,8001,3423,1901, + 1383,3222,6980,3152,1822,6044,5738,5644,3234,3233,8012,3587,1806,3589,5733,3120, + 6043,5809,3328,3170,7672,3545,2265,1359,2552,6919,3154,7005,5625,613,6987,5591, + 5682,6859,5592,1793,677,7883,5132,1441,8049,1441,8045,1312,7015,3222,7024,1312, + 621,3217,2121,1287,2424,1281,1425,7047,877,813,7046,897,897,776,901,7035, + 777,786,7043,165,7032,936,877,869,7036,5684,3351,2383,1343,6684,3253,3237, + 813,7065,2063,7061,813,2081,7060,1287,816,813,3587,1863,1793,6122,6120,808, + 6122,6115,6100,6115,808,6096,6120,808,808,808,3587,6114,6120,6124,808,6124, + 6104,6096,6100,808,6117,6941,6095,6115,808,6119,808,6100,6115,7106,6094,6115, + 6056,6119,6120,6941,6093,6115,6055,6941,6092,6115,808,6941,6096,6096,6096,6096, + 808,1317,816,3587,808,800,800,7131,808,7126,808,800,800,800,800,800, + 800,3587,6096,808,7132,808,7133,6120,808,7134,808,7135,808,7136,6138,808, + 6106,6135,7148,6138,808,6120,7153,6055,6055,7079,1863,1793,7144,0,0,0 + ] + } +} diff --git a/devices/ti55/machine/README.md b/devices/ti55/machine/README.md index 4c2726f705..3bd6dad208 100644 --- a/devices/ti55/machine/README.md +++ b/devices/ti55/machine/README.md @@ -6,205 +6,7 @@ machines: - id: ti55 type: ti55 name: TI-55 Programmable Calculator - config: | - { - "ti55": { - "class": "Machine", - "type": "TI55", - "name": "TI-55 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1503", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI55" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], - "map": [ - ["2nd", "sin", "cos", "tan", "clr"], - ["inv", "pct", "lnx", "epow", "root"], - ["xchg", "sq", "sqrt", "rcp", "ypow"], - ["sigma","ee", "(", ")", "/"], - ["sto", "7", "8", "9", "*"], - ["rcl", "4", "5", "6", "-"], - ["sum", "1", "2", "3", "+"], - ["\\b", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI55", - "power": "powerTI55" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "tmc1503le.bin", - "reference": "http://seanriddle.com/tmc1503.bin", - "chipID": "TMC1503NL DD 8035", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4400,5066,3089,6364,3237,543,813,813,3233,6371,3198,6266,3245,6364,1991,5556, - 1865,103,3587,6187,6815,3296,3308,6290,6148,3098,6578,2265,3188,5365,6271,2055, - 3587,6807,6257,6217,3194,6154,3198,3256,6364,3257,6156,3194,6286,3198,3193,7798, - 3184,6805,6752,6221,3194,6609,3240,6285,3194,3879,6463,7004,3252,6902,1863,3589, - 6991,6809,6279,6843,3194,7169,2087,6603,6363,3194,7864,4110,6364,3194,7866,5780, - 6364,6446,3096,6591,3096,6573,3096,6563,3194,6603,2279,3198,7263,3188,5164,3090, - 6242,3300,3217,5136,3198,6248,5164,6249,5167,5136,3198,6253,5167,3302,6364,3088, - 6364,3194,3112,7614,5167,5099,3110,6644,5556,6364,543,813,813,3495,3112,3124, - 6515,5099,1887,2119,3098,7694,6671,3194,6283,5104,5570,5768,6364,4057,5099,1822, - 5989,6643,5365,3194,3321,6295,3320,3198,6302,3304,3298,6302,3194,7375,3288,5174, - 3198,3194,7643,3877,6619,3298,6313,3322,7376,3118,7361,2055,3594,3584,1863,1815, - 1991,3298,7371,3310,6331,3322,6361,3302,6360,3588,6361,2271,3903,3322,6344,5565, - 6345,3300,3117,3112,2055,3594,3589,6318,5473,3584,1815,3302,7667,3590,6644,2079, - 3118,6355,3104,2241,3585,3584,2079,1879,3590,1806,6364,3091,3186,3233,3913,3321, - 3325,7817,5365,5174,3194,7400,3877,7487,3225,5117,711,1815,3877,7928,2561,2265, - 1504,3586,2080,3118,7485,3118,7495,3879,3329,3233,1121,1125,6399,3092,5543,621, - 1127,1120,3174,7437,616,3592,97,7439,76,7437,97,6419,3088,552,6404,616, - 5540,101,7439,5668,3190,6380,5453,5514,5642,549,7452,3236,1793,1487,3170,6435, - 5563,6364,5476,4112,1505,6434,1999,549,1822,7388,4111,1822,5471,6439,3194,6455, - 401,257,3594,3588,3590,2208,6450,329,2193,5128,473,3585,3588,257,3237,1793, - 5272,1038,616,1038,3473,3877,7517,3218,7515,3216,679,672,680,592,3592,1380, - 7515,1317,6491,1100,6491,1377,7515,1320,4127,1328,6514,3221,6514,3841,3194,7416, - 3222,7511,549,6502,3218,6511,719,744,2024,2024,3282,6514,1038,616,1038,2055, - 1087,552,5174,2121,3593,3873,7517,3873,7410,3194,7415,3873,6534,2080,3114,6389, - 3198,7502,3244,3220,1353,6514,3118,6391,3222,6545,1100,1127,7538,3592,1097,1121, - 7538,2121,2144,1896,79,3895,3122,7570,3167,2145,7538,5086,6553,1999,5471,1806, - 5564,5164,6694,3108,3194,6595,3098,7593,3304,3308,3649,3588,6579,3112,3194,6595, - 3098,6579,3300,3232,3196,5155,5158,5570,3649,5159,5471,3601,3590,6846,3193,3116, - 3296,3194,7193,3234,7644,3232,3242,6646,3241,3585,6637,3242,7297,3234,6646,3236, - 6627,5099,3232,3872,3134,6616,3126,7643,3588,287,6370,1815,3236,6364,5565,3242, - 7388,2079,5989,4065,6646,4057,3594,2081,2085,2561,7660,2079,1815,3588,6370,3877, - 7690,3873,2277,3588,287,6364,5099,2151,3877,2085,6652,2119,2149,7686,2141,6639, - 3318,6660,3314,7643,4064,3594,287,3841,3105,6637,1887,1806,3162,6671,3128,2120, - 7701,2120,7646,5473,6623,2079,3242,6681,3601,3588,1999,1806,3182,7581,549,7722, - 5668,5679,1806,3589,5565,5768,4158,1999,2247,6623,3154,6701,6116,613,6694,5452, - 5514,5668,6694,3193,3841,3198,7763,3094,3326,7742,1313,1317,1312,6736,5768,1991, - 5563,1991,3322,7751,3326,6727,3128,5473,4112,72,3326,7911,1822,5570,5475,6887, - 769,39,6364,3326,6764,4110,3322,7773,3282,6750,3281,3132,6750,3155,5779,5476, - 5679,3134,6758,3133,3088,6364,3194,6364,804,7388,5104,6888,4112,1991,5476,1822, - 4112,5475,5564,5679,3324,6728,5099,2199,3090,2303,6780,3188,5555,5124,3237,5570, - 1822,5570,5779,3238,6790,3300,5124,3841,5824,1822,1887,5099,613,7826,5570,5124, - 1815,6264,5447,1806,6329,3120,3320,3124,3324,3194,7731,3321,3325,2263,5824,3665, - 4945,3589,5570,3649,4946,4110,3681,4946,3589,3617,4945,4110,3633,4946,3194,7860, - 3589,4112,5476,3588,5514,3697,4946,6902,5155,6364,3324,3194,6432,3233,5155,4110, - 4941,5570,3633,3198,7878,3681,4941,5475,1991,4112,3697,3584,3326,6863,5471,5555, - 3326,7247,3234,6364,3298,7920,4940,5564,3302,7388,3590,5155,5570,5158,5471,3310, - 6364,3306,7914,3649,4158,5475,4940,1806,5564,6364,1991,4940,3649,3589,5766,6364, - 5780,4940,5564,3198,3197,7611,1815,6365,2085,8007,2080,1793,3198,6911,3128,3118, - 7998,3114,6942,3110,6964,3106,6931,6133,6130,6136,6130,6095,6140,3092,5116,5117, - 1319,6056,6364,6136,6104,6099,6132,6016,6016,6104,6099,6133,5116,6929,3106,6947, - 3131,6045,6364,2009,3284,2029,3284,3280,2029,1511,3841,3100,1837,3088,1837,1879, - 3198,7918,1822,6734,3106,6971,6138,6132,5116,5117,6926,3131,6037,6364,3249,3253, - 3110,7228,3106,8005,6902,3248,6902,1927,5120,5033,1815,6902,3601,1863,3584,1806, - 3587,1991,4941,3194,6998,3128,5473,3590,1823,3585,3587,5029,3237,3592,5120,3126, - 8027,1793,2593,8038,544,7010,5117,1991,5036,3877,7022,2600,1497,7036,3118,7033, - 3117,3943,3192,3848,3134,7033,3126,7033,3841,5134,1535,1512,5061,1528,1823,5272, - 616,616,872,872,2377,5117,872,872,5524,3188,5174,3194,7057,1503,2623,3116, - 7061,3877,8085,1503,2623,2759,2084,7071,3122,8093,3130,8027,7071,3126,7479,5120, - 5038,5029,2597,7479,7004,5120,2592,3126,7082,2561,3590,3587,3293,7087,3292,3593, - 2639,639,3401,5090,2145,8125,5061,1399,296,3424,1288,8130,7092,3294,7111,2591, - 3429,7094,3588,2639,639,3847,3587,2759,7107,1927,769,6104,6099,6130,6136,6095, - 6099,6016,6107,6136,6133,5117,967,768,839,768,3093,3587,2081,557,1901,3152, - 3164,3587,2632,2561,2569,2593,3133,3913,5061,3594,7150,3871,3594,455,3589,3587, - 1863,1793,6138,6136,808,6138,6130,6099,6130,808,6095,6136,808,808,808,3587, - 3665,3584,2631,3587,4158,3588,1807,3587,257,3601,3588,3617,6149,3873,2080,3587, - 2007,5514,5642,1822,1887,5471,1822,1865,3156,3160,1901,3156,1383,1806,3198,7201, - 3128,5565,6500,3617,3198,7207,3665,1991,4942,3697,3584,6588,5540,5540,6692,5548, - 5548,6692,3236,5033,3261,799,3262,3229,7351,3324,3193,3327,3262,7351,3593,975, - 3592,3591,3591,7233,3401,3545,2592,7330,5268,3591,3591,6214,2623,5276,3591,3591, - 6214,3130,6228,3125,5450,1535,3114,6272,3126,7281,3122,6257,3194,6272,3130,3190, - 7296,2080,3118,2081,6272,3230,7222,3262,3263,7222,975,5272,3591,3591,7276,863, - 6327,5133,3118,6285,3194,6268,3127,3123,3877,7350,3127,3123,3126,7296,3841,2605, - 3114,3110,3877,3126,3130,7395,3106,6283,3190,7395,6203,3195,6206,2080,3118,7295, - 3872,3872,3872,6285,3238,6303,3122,6300,841,3592,865,7327,3593,863,3592,3591, - 3591,3587,3424,6216,3552,3286,6216,3545,5272,3593,1376,3591,3591,7244,2592,3126, - 6315,2561,1359,3455,1901,6315,3228,3190,7395,967,3593,3290,3289,7374,3238,7220, - 3545,3401,3591,3591,6350,2623,2080,3118,2081,6350,3123,3877,3123,7389,5120,2592, - 3590,3190,7218,5090,2145,7384,296,6356,3877,7392,3118,3117,6366,3192,1823,6228, - 1823,5450,1535,3592,3189,3229,3326,3325,3197,6388,3196,3127,3111,3107,2597,3107, - 3111,3127,6388,3245,3587,5668,3585,4941,2009,3258,6412,1479,1383,1376,1376,1481, - 6399,1370,7427,3094,6408,1509,7432,1371,1503,2097,6412,2049,1865,3156,5086,3090, - 6418,3431,2119,3258,3246,7453,1351,864,864,877,616,1381,7509,1505,7457,5547, - 6429,2081,5084,5084,3118,6435,1028,6457,5085,711,544,1252,6447,749,6443,741, - 6458,545,967,1815,5538,804,6390,799,6458,5085,2149,6464,1061,6464,1125,7481, - 552,616,3286,7504,3094,6481,1120,3282,6475,3091,2567,3587,3130,3090,6482,3236, - 1377,1121,3587,5540,557,3094,7507,3284,1317,7457,5547,2081,6488,2049,6488,3128, - 1806,3130,6500,3091,1423,3129,3158,7549,3094,1299,7554,1445,6496,3090,6518,3154, - 7544,525,7520,521,1887,6692,3154,7537,520,6516,557,5539,6516,3094,6496,1299, - 7520,1445,613,7533,1028,557,6536,544,5540,6500,4112,783,3329,1353,3129,549, - 6555,1351,2121,1281,1377,8146,6029,6548,808,1376,3092,37,7576,1294,1356,7122, - 544,7122,513,39,3094,7137,1313,1317,6570,3093,3587,621,3094,8161,1313,6570, - 1319,3092,3587,3128,1887,6589,5515,2527,1343,3154,6692,4112,3128,3130,6594,549, - 8171,3095,1935,583,3338,3089,3154,6601,3088,3217,3346,3222,7665,1288,8163,513, - 5543,1425,1353,613,677,7540,3130,7673,534,941,1057,6627,557,549,6636,535, - 1367,5534,6516,850,6618,941,877,167,5540,804,7540,6618,101,6617,872,5548, - 6618,1293,6645,3095,1294,1289,6607,905,544,909,6647,877,37,6659,552,549, - 6649,5548,6649,905,840,840,905,7540,5536,6516,1814,841,3169,3094,7716,941, - 5548,3094,7711,872,613,7703,3168,5658,552,6672,533,7602,529,864,6682,5540, - 936,3094,7716,5658,3129,6698,37,6701,552,5548,549,6694,1793,1927,6567,3122, - 7817,5453,1991,4112,5471,3094,6716,1441,1424,1453,1445,6692,1823,1927,1287,3447, - 1325,1287,3575,1281,3088,549,8164,5521,841,3122,6734,103,549,7606,798,769, - 2063,2081,8106,2081,8117,2081,8125,2081,8131,2081,8135,39,6024,798,3122,6763, - 797,7792,793,911,790,6024,790,848,6752,791,856,903,6024,790,786,6761, - 2144,3182,6734,3178,6734,3122,7606,5106,777,5516,841,1901,3557,7809,3423,1901, - 1383,3222,6788,3152,1822,5105,5570,6500,3120,5104,5642,3328,3170,8163,3545,2265, - 1359,2552,6727,5476,5453,1793,677,7716,4112,1441,7843,1441,7839,1312,6809,3222, - 6818,1312,621,3217,2121,1287,2424,1281,1425,6841,877,813,6840,897,897,776, - 901,6829,777,786,6837,165,6826,936,877,869,6830,5516,3351,2383,1343,6516, - 3237,5668,3198,7989,3128,6033,3238,6858,3300,6958,5066,3237,768,5642,5975,5521, - 5065,768,3090,6869,787,3329,5066,909,853,7901,3191,3126,6891,901,7907,897, - 3126,6883,3091,3122,3877,6960,909,7915,787,3091,3191,925,7919,851,3128,791, - 3527,798,841,913,167,3198,7929,5995,6906,6023,965,7947,963,798,3198,6917, - 6024,786,5995,778,6901,6023,776,782,6024,897,6901,2144,741,6901,783,3130, - 6934,3198,6933,5065,851,790,5516,5447,3198,8007,1814,5516,1879,5564,3089,5447, - 3126,6954,4110,3125,5779,5563,5447,3238,6954,5676,3281,3190,6958,3280,2207,4316, - 909,7987,787,851,6891,5975,3527,3126,6975,4110,5475,5780,3238,8006,5564,3094, - 549,8004,5563,3128,5521,6897,4596,3122,6990,5065,5515,1879,5475,3089,1927,3190, - 6997,5066,3329,1879,5476,6033,6958,657,936,912,677,8041,3094,7017,3198,8007, - 3122,6958,1991,5514,6958,3097,3290,7017,3096,1927,3587,769,2063,2081,8056,2081, - 8066,39,2081,7048,6091,6095,6106,7128,6094,6106,6099,6107,6130,6138,6133,6095, - 808,7137,6092,6106,6106,6099,7128,791,2063,7051,813,2081,7050,1287,816,813, - 3587,3250,8146,3254,7069,6107,6136,6106,6016,6095,6103,6140,7077,6130,6104,6138, - 6129,6103,6129,6016,6136,3329,808,6016,1879,6589,6129,6136,6016,808,6016,6104, - 6095,6099,808,6133,6749,6094,6130,808,6135,808,6099,6130,7105,6093,6130,5117, - 6135,6136,6749,6092,6130,5116,6749,6091,6130,808,6749,6095,6095,6095,6095,808, - 1317,816,3587,808,800,800,7132,6104,808,7125,6107,808,800,800,800,800, - 800,1312,6570,3094,769,8169,801,3093,8175,1313,8174,613,3343,7140,39,3236, - 6692,6095,808,7133,6130,808,7134,6136,808,7135,808,7136,6138,6136,6104,3587 - ] - } - } + config: diags/ti55.json styles: _ti55: position: relative; diff --git a/devices/ti55/machine/diags/README.md b/devices/ti55/machine/diags/README.md index 02508e812f..58f99e1a51 100644 --- a/devices/ti55/machine/diags/README.md +++ b/devices/ti55/machine/diags/README.md @@ -6,219 +6,7 @@ machines: - id: ti55 type: ti55 name: TI-55 Programmable Calculator - config: | - { - "ti55": { - "class": "Machine", - "type": "TI55", - "name": "TI-55 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI55", - "print": "printTI55" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1503", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI55", - "speed": "speedTI55", - "step": "stepTI55" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI55" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], - "map": [ - ["2nd", "sin", "cos", "tan", "clr"], - ["inv", "pct", "lnx", "epow", "root"], - ["xchg", "sq", "sqrt", "rcp", "ypow"], - ["sigma","ee", "(", ")", "/"], - ["sto", "7", "8", "9", "*"], - ["rcl", "4", "5", "6", "-"], - ["sum", "1", "2", "3", "+"], - ["\\b", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI55", - "power": "powerTI55", - "reset": "resetTI55" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "tmc1503le.bin", - "reference": "http://seanriddle.com/tmc1503.bin", - "chipID": "TMC1503NL DD 8035", - "revision": "0", - "bindings": { - "array": "romArrayTI55", - "cellDesc": "romCellTI55" - }, - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4400,5066,3089,6364,3237,543,813,813,3233,6371,3198,6266,3245,6364,1991,5556, - 1865,103,3587,6187,6815,3296,3308,6290,6148,3098,6578,2265,3188,5365,6271,2055, - 3587,6807,6257,6217,3194,6154,3198,3256,6364,3257,6156,3194,6286,3198,3193,7798, - 3184,6805,6752,6221,3194,6609,3240,6285,3194,3879,6463,7004,3252,6902,1863,3589, - 6991,6809,6279,6843,3194,7169,2087,6603,6363,3194,7864,4110,6364,3194,7866,5780, - 6364,6446,3096,6591,3096,6573,3096,6563,3194,6603,2279,3198,7263,3188,5164,3090, - 6242,3300,3217,5136,3198,6248,5164,6249,5167,5136,3198,6253,5167,3302,6364,3088, - 6364,3194,3112,7614,5167,5099,3110,6644,5556,6364,543,813,813,3495,3112,3124, - 6515,5099,1887,2119,3098,7694,6671,3194,6283,5104,5570,5768,6364,4057,5099,1822, - 5989,6643,5365,3194,3321,6295,3320,3198,6302,3304,3298,6302,3194,7375,3288,5174, - 3198,3194,7643,3877,6619,3298,6313,3322,7376,3118,7361,2055,3594,3584,1863,1815, - 1991,3298,7371,3310,6331,3322,6361,3302,6360,3588,6361,2271,3903,3322,6344,5565, - 6345,3300,3117,3112,2055,3594,3589,6318,5473,3584,1815,3302,7667,3590,6644,2079, - 3118,6355,3104,2241,3585,3584,2079,1879,3590,1806,6364,3091,3186,3233,3913,3321, - 3325,7817,5365,5174,3194,7400,3877,7487,3225,5117,711,1815,3877,7928,2561,2265, - 1504,3586,2080,3118,7485,3118,7495,3879,3329,3233,1121,1125,6399,3092,5543,621, - 1127,1120,3174,7437,616,3592,97,7439,76,7437,97,6419,3088,552,6404,616, - 5540,101,7439,5668,3190,6380,5453,5514,5642,549,7452,3236,1793,1487,3170,6435, - 5563,6364,5476,4112,1505,6434,1999,549,1822,7388,4111,1822,5471,6439,3194,6455, - 401,257,3594,3588,3590,2208,6450,329,2193,5128,473,3585,3588,257,3237,1793, - 5272,1038,616,1038,3473,3877,7517,3218,7515,3216,679,672,680,592,3592,1380, - 7515,1317,6491,1100,6491,1377,7515,1320,4127,1328,6514,3221,6514,3841,3194,7416, - 3222,7511,549,6502,3218,6511,719,744,2024,2024,3282,6514,1038,616,1038,2055, - 1087,552,5174,2121,3593,3873,7517,3873,7410,3194,7415,3873,6534,2080,3114,6389, - 3198,7502,3244,3220,1353,6514,3118,6391,3222,6545,1100,1127,7538,3592,1097,1121, - 7538,2121,2144,1896,79,3895,3122,7570,3167,2145,7538,5086,6553,1999,5471,1806, - 5564,5164,6694,3108,3194,6595,3098,7593,3304,3308,3649,3588,6579,3112,3194,6595, - 3098,6579,3300,3232,3196,5155,5158,5570,3649,5159,5471,3601,3590,6846,3193,3116, - 3296,3194,7193,3234,7644,3232,3242,6646,3241,3585,6637,3242,7297,3234,6646,3236, - 6627,5099,3232,3872,3134,6616,3126,7643,3588,287,6370,1815,3236,6364,5565,3242, - 7388,2079,5989,4065,6646,4057,3594,2081,2085,2561,7660,2079,1815,3588,6370,3877, - 7690,3873,2277,3588,287,6364,5099,2151,3877,2085,6652,2119,2149,7686,2141,6639, - 3318,6660,3314,7643,4064,3594,287,3841,3105,6637,1887,1806,3162,6671,3128,2120, - 7701,2120,7646,5473,6623,2079,3242,6681,3601,3588,1999,1806,3182,7581,549,7722, - 5668,5679,1806,3589,5565,5768,4158,1999,2247,6623,3154,6701,6116,613,6694,5452, - 5514,5668,6694,3193,3841,3198,7763,3094,3326,7742,1313,1317,1312,6736,5768,1991, - 5563,1991,3322,7751,3326,6727,3128,5473,4112,72,3326,7911,1822,5570,5475,6887, - 769,39,6364,3326,6764,4110,3322,7773,3282,6750,3281,3132,6750,3155,5779,5476, - 5679,3134,6758,3133,3088,6364,3194,6364,804,7388,5104,6888,4112,1991,5476,1822, - 4112,5475,5564,5679,3324,6728,5099,2199,3090,2303,6780,3188,5555,5124,3237,5570, - 1822,5570,5779,3238,6790,3300,5124,3841,5824,1822,1887,5099,613,7826,5570,5124, - 1815,6264,5447,1806,6329,3120,3320,3124,3324,3194,7731,3321,3325,2263,5824,3665, - 4945,3589,5570,3649,4946,4110,3681,4946,3589,3617,4945,4110,3633,4946,3194,7860, - 3589,4112,5476,3588,5514,3697,4946,6902,5155,6364,3324,3194,6432,3233,5155,4110, - 4941,5570,3633,3198,7878,3681,4941,5475,1991,4112,3697,3584,3326,6863,5471,5555, - 3326,7247,3234,6364,3298,7920,4940,5564,3302,7388,3590,5155,5570,5158,5471,3310, - 6364,3306,7914,3649,4158,5475,4940,1806,5564,6364,1991,4940,3649,3589,5766,6364, - 5780,4940,5564,3198,3197,7611,1815,6365,2085,8007,2080,1793,3198,6911,3128,3118, - 7998,3114,6942,3110,6964,3106,6931,6133,6130,6136,6130,6095,6140,3092,5116,5117, - 1319,6056,6364,6136,6104,6099,6132,6016,6016,6104,6099,6133,5116,6929,3106,6947, - 3131,6045,6364,2009,3284,2029,3284,3280,2029,1511,3841,3100,1837,3088,1837,1879, - 3198,7918,1822,6734,3106,6971,6138,6132,5116,5117,6926,3131,6037,6364,3249,3253, - 3110,7228,3106,8005,6902,3248,6902,1927,5120,5033,1815,6902,3601,1863,3584,1806, - 3587,1991,4941,3194,6998,3128,5473,3590,1823,3585,3587,5029,3237,3592,5120,3126, - 8027,1793,2593,8038,544,7010,5117,1991,5036,3877,7022,2600,1497,7036,3118,7033, - 3117,3943,3192,3848,3134,7033,3126,7033,3841,5134,1535,1512,5061,1528,1823,5272, - 616,616,872,872,2377,5117,872,872,5524,3188,5174,3194,7057,1503,2623,3116, - 7061,3877,8085,1503,2623,2759,2084,7071,3122,8093,3130,8027,7071,3126,7479,5120, - 5038,5029,2597,7479,7004,5120,2592,3126,7082,2561,3590,3587,3293,7087,3292,3593, - 2639,639,3401,5090,2145,8125,5061,1399,296,3424,1288,8130,7092,3294,7111,2591, - 3429,7094,3588,2639,639,3847,3587,2759,7107,1927,769,6104,6099,6130,6136,6095, - 6099,6016,6107,6136,6133,5117,967,768,839,768,3093,3587,2081,557,1901,3152, - 3164,3587,2632,2561,2569,2593,3133,3913,5061,3594,7150,3871,3594,455,3589,3587, - 1863,1793,6138,6136,808,6138,6130,6099,6130,808,6095,6136,808,808,808,3587, - 3665,3584,2631,3587,4158,3588,1807,3587,257,3601,3588,3617,6149,3873,2080,3587, - 2007,5514,5642,1822,1887,5471,1822,1865,3156,3160,1901,3156,1383,1806,3198,7201, - 3128,5565,6500,3617,3198,7207,3665,1991,4942,3697,3584,6588,5540,5540,6692,5548, - 5548,6692,3236,5033,3261,799,3262,3229,7351,3324,3193,3327,3262,7351,3593,975, - 3592,3591,3591,7233,3401,3545,2592,7330,5268,3591,3591,6214,2623,5276,3591,3591, - 6214,3130,6228,3125,5450,1535,3114,6272,3126,7281,3122,6257,3194,6272,3130,3190, - 7296,2080,3118,2081,6272,3230,7222,3262,3263,7222,975,5272,3591,3591,7276,863, - 6327,5133,3118,6285,3194,6268,3127,3123,3877,7350,3127,3123,3126,7296,3841,2605, - 3114,3110,3877,3126,3130,7395,3106,6283,3190,7395,6203,3195,6206,2080,3118,7295, - 3872,3872,3872,6285,3238,6303,3122,6300,841,3592,865,7327,3593,863,3592,3591, - 3591,3587,3424,6216,3552,3286,6216,3545,5272,3593,1376,3591,3591,7244,2592,3126, - 6315,2561,1359,3455,1901,6315,3228,3190,7395,967,3593,3290,3289,7374,3238,7220, - 3545,3401,3591,3591,6350,2623,2080,3118,2081,6350,3123,3877,3123,7389,5120,2592, - 3590,3190,7218,5090,2145,7384,296,6356,3877,7392,3118,3117,6366,3192,1823,6228, - 1823,5450,1535,3592,3189,3229,3326,3325,3197,6388,3196,3127,3111,3107,2597,3107, - 3111,3127,6388,3245,3587,5668,3585,4941,2009,3258,6412,1479,1383,1376,1376,1481, - 6399,1370,7427,3094,6408,1509,7432,1371,1503,2097,6412,2049,1865,3156,5086,3090, - 6418,3431,2119,3258,3246,7453,1351,864,864,877,616,1381,7509,1505,7457,5547, - 6429,2081,5084,5084,3118,6435,1028,6457,5085,711,544,1252,6447,749,6443,741, - 6458,545,967,1815,5538,804,6390,799,6458,5085,2149,6464,1061,6464,1125,7481, - 552,616,3286,7504,3094,6481,1120,3282,6475,3091,2567,3587,3130,3090,6482,3236, - 1377,1121,3587,5540,557,3094,7507,3284,1317,7457,5547,2081,6488,2049,6488,3128, - 1806,3130,6500,3091,1423,3129,3158,7549,3094,1299,7554,1445,6496,3090,6518,3154, - 7544,525,7520,521,1887,6692,3154,7537,520,6516,557,5539,6516,3094,6496,1299, - 7520,1445,613,7533,1028,557,6536,544,5540,6500,4112,783,3329,1353,3129,549, - 6555,1351,2121,1281,1377,8146,6029,6548,808,1376,3092,37,7576,1294,1356,7122, - 544,7122,513,39,3094,7137,1313,1317,6570,3093,3587,621,3094,8161,1313,6570, - 1319,3092,3587,3128,1887,6589,5515,2527,1343,3154,6692,4112,3128,3130,6594,549, - 8171,3095,1935,583,3338,3089,3154,6601,3088,3217,3346,3222,7665,1288,8163,513, - 5543,1425,1353,613,677,7540,3130,7673,534,941,1057,6627,557,549,6636,535, - 1367,5534,6516,850,6618,941,877,167,5540,804,7540,6618,101,6617,872,5548, - 6618,1293,6645,3095,1294,1289,6607,905,544,909,6647,877,37,6659,552,549, - 6649,5548,6649,905,840,840,905,7540,5536,6516,1814,841,3169,3094,7716,941, - 5548,3094,7711,872,613,7703,3168,5658,552,6672,533,7602,529,864,6682,5540, - 936,3094,7716,5658,3129,6698,37,6701,552,5548,549,6694,1793,1927,6567,3122, - 7817,5453,1991,4112,5471,3094,6716,1441,1424,1453,1445,6692,1823,1927,1287,3447, - 1325,1287,3575,1281,3088,549,8164,5521,841,3122,6734,103,549,7606,798,769, - 2063,2081,8106,2081,8117,2081,8125,2081,8131,2081,8135,39,6024,798,3122,6763, - 797,7792,793,911,790,6024,790,848,6752,791,856,903,6024,790,786,6761, - 2144,3182,6734,3178,6734,3122,7606,5106,777,5516,841,1901,3557,7809,3423,1901, - 1383,3222,6788,3152,1822,5105,5570,6500,3120,5104,5642,3328,3170,8163,3545,2265, - 1359,2552,6727,5476,5453,1793,677,7716,4112,1441,7843,1441,7839,1312,6809,3222, - 6818,1312,621,3217,2121,1287,2424,1281,1425,6841,877,813,6840,897,897,776, - 901,6829,777,786,6837,165,6826,936,877,869,6830,5516,3351,2383,1343,6516, - 3237,5668,3198,7989,3128,6033,3238,6858,3300,6958,5066,3237,768,5642,5975,5521, - 5065,768,3090,6869,787,3329,5066,909,853,7901,3191,3126,6891,901,7907,897, - 3126,6883,3091,3122,3877,6960,909,7915,787,3091,3191,925,7919,851,3128,791, - 3527,798,841,913,167,3198,7929,5995,6906,6023,965,7947,963,798,3198,6917, - 6024,786,5995,778,6901,6023,776,782,6024,897,6901,2144,741,6901,783,3130, - 6934,3198,6933,5065,851,790,5516,5447,3198,8007,1814,5516,1879,5564,3089,5447, - 3126,6954,4110,3125,5779,5563,5447,3238,6954,5676,3281,3190,6958,3280,2207,4316, - 909,7987,787,851,6891,5975,3527,3126,6975,4110,5475,5780,3238,8006,5564,3094, - 549,8004,5563,3128,5521,6897,4596,3122,6990,5065,5515,1879,5475,3089,1927,3190, - 6997,5066,3329,1879,5476,6033,6958,657,936,912,677,8041,3094,7017,3198,8007, - 3122,6958,1991,5514,6958,3097,3290,7017,3096,1927,3587,769,2063,2081,8056,2081, - 8066,39,2081,7048,6091,6095,6106,7128,6094,6106,6099,6107,6130,6138,6133,6095, - 808,7137,6092,6106,6106,6099,7128,791,2063,7051,813,2081,7050,1287,816,813, - 3587,3250,8146,3254,7069,6107,6136,6106,6016,6095,6103,6140,7077,6130,6104,6138, - 6129,6103,6129,6016,6136,3329,808,6016,1879,6589,6129,6136,6016,808,6016,6104, - 6095,6099,808,6133,6749,6094,6130,808,6135,808,6099,6130,7105,6093,6130,5117, - 6135,6136,6749,6092,6130,5116,6749,6091,6130,808,6749,6095,6095,6095,6095,808, - 1317,816,3587,808,800,800,7132,6104,808,7125,6107,808,800,800,800,800, - 800,1312,6570,3094,769,8169,801,3093,8175,1313,8174,613,3343,7140,39,3236, - 6692,6095,808,7133,6130,808,7134,6136,808,7135,808,7136,6138,6136,6104,3587 - ] - } - } + config: ti55.json styles: _ti55: position: relative; diff --git a/devices/ti55/machine/diags/ti55.json b/devices/ti55/machine/diags/ti55.json new file mode 100644 index 0000000000..9035d91b93 --- /dev/null +++ b/devices/ti55/machine/diags/ti55.json @@ -0,0 +1,212 @@ +{ + "ti55": { + "class": "Machine", + "type": "TI55", + "name": "TI-55 Emulator", + "version": 1.20, + "bindings": { + "clear": "clearTI55", + "print": "printTI55" + } + }, + "chip": { + "class": "Chip", + "type": "TMS-1503", + "input": "buttons", + "output": "display", + "bindings": { + "2nd": "ind2nd", + "INV": "indINV", + "Deg": "indDeg", + "Rad": "indRad", + "Grad": "indGrad" + } + }, + "clock": { + "class": "Time", + "cyclesPerSecond": 650000, + "bindings": { + "run": "runTI55", + "speed": "speedTI55", + "step": "stepTI55" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] + }, + "display": { + "class": "LED", + "type": 3, + "cols": 12, + "rows": 1, + "color": "red", + "bindings": { + "container": "displayTI55" + }, + "overrides": ["color","backgroundColor"] + }, + "buttons": { + "class": "Input", + "buttonDelay": 50, + "location": [56, 322, 358, 462, 0.34, 0.5, 465, 832, 322, 182, 74, 36], + "map": [ + ["2nd", "sin", "cos", "tan", "clr"], + ["inv", "pct", "lnx", "epow", "root"], + ["xchg", "sq", "sqrt", "rcp", "ypow"], + ["sigma","ee", "(", ")", "/"], + ["sto", "7", "8", "9", "*"], + ["rcl", "4", "5", "6", "-"], + ["sum", "1", "2", "3", "+"], + ["\\b", "0", ".", "+/-", "=|\\r"] + ], + "bindings": { + "surface": "imageTI55", + "power": "powerTI55", + "reset": "resetTI55" + } + }, + "rom": { + "class": "ROM", + "wordSize": 13, + "valueSize": 16, + "valueTotal": 2048, + "littleEndian": true, + "file": "tmc1503le.bin", + "reference": "http://seanriddle.com/tmc1503.bin", + "chipID": "TMC1503NL DD 8035", + "revision": "0", + "bindings": { + "array": "romArrayTI55", + "cellDesc": "romCellTI55" + }, + "overrides": ["colorROM","backgroundColorROM"], + "values": [ + 4400,5066,3089,6364,3237,543,813,813,3233,6371,3198,6266,3245,6364,1991,5556, + 1865,103,3587,6187,6815,3296,3308,6290,6148,3098,6578,2265,3188,5365,6271,2055, + 3587,6807,6257,6217,3194,6154,3198,3256,6364,3257,6156,3194,6286,3198,3193,7798, + 3184,6805,6752,6221,3194,6609,3240,6285,3194,3879,6463,7004,3252,6902,1863,3589, + 6991,6809,6279,6843,3194,7169,2087,6603,6363,3194,7864,4110,6364,3194,7866,5780, + 6364,6446,3096,6591,3096,6573,3096,6563,3194,6603,2279,3198,7263,3188,5164,3090, + 6242,3300,3217,5136,3198,6248,5164,6249,5167,5136,3198,6253,5167,3302,6364,3088, + 6364,3194,3112,7614,5167,5099,3110,6644,5556,6364,543,813,813,3495,3112,3124, + 6515,5099,1887,2119,3098,7694,6671,3194,6283,5104,5570,5768,6364,4057,5099,1822, + 5989,6643,5365,3194,3321,6295,3320,3198,6302,3304,3298,6302,3194,7375,3288,5174, + 3198,3194,7643,3877,6619,3298,6313,3322,7376,3118,7361,2055,3594,3584,1863,1815, + 1991,3298,7371,3310,6331,3322,6361,3302,6360,3588,6361,2271,3903,3322,6344,5565, + 6345,3300,3117,3112,2055,3594,3589,6318,5473,3584,1815,3302,7667,3590,6644,2079, + 3118,6355,3104,2241,3585,3584,2079,1879,3590,1806,6364,3091,3186,3233,3913,3321, + 3325,7817,5365,5174,3194,7400,3877,7487,3225,5117,711,1815,3877,7928,2561,2265, + 1504,3586,2080,3118,7485,3118,7495,3879,3329,3233,1121,1125,6399,3092,5543,621, + 1127,1120,3174,7437,616,3592,97,7439,76,7437,97,6419,3088,552,6404,616, + 5540,101,7439,5668,3190,6380,5453,5514,5642,549,7452,3236,1793,1487,3170,6435, + 5563,6364,5476,4112,1505,6434,1999,549,1822,7388,4111,1822,5471,6439,3194,6455, + 401,257,3594,3588,3590,2208,6450,329,2193,5128,473,3585,3588,257,3237,1793, + 5272,1038,616,1038,3473,3877,7517,3218,7515,3216,679,672,680,592,3592,1380, + 7515,1317,6491,1100,6491,1377,7515,1320,4127,1328,6514,3221,6514,3841,3194,7416, + 3222,7511,549,6502,3218,6511,719,744,2024,2024,3282,6514,1038,616,1038,2055, + 1087,552,5174,2121,3593,3873,7517,3873,7410,3194,7415,3873,6534,2080,3114,6389, + 3198,7502,3244,3220,1353,6514,3118,6391,3222,6545,1100,1127,7538,3592,1097,1121, + 7538,2121,2144,1896,79,3895,3122,7570,3167,2145,7538,5086,6553,1999,5471,1806, + 5564,5164,6694,3108,3194,6595,3098,7593,3304,3308,3649,3588,6579,3112,3194,6595, + 3098,6579,3300,3232,3196,5155,5158,5570,3649,5159,5471,3601,3590,6846,3193,3116, + 3296,3194,7193,3234,7644,3232,3242,6646,3241,3585,6637,3242,7297,3234,6646,3236, + 6627,5099,3232,3872,3134,6616,3126,7643,3588,287,6370,1815,3236,6364,5565,3242, + 7388,2079,5989,4065,6646,4057,3594,2081,2085,2561,7660,2079,1815,3588,6370,3877, + 7690,3873,2277,3588,287,6364,5099,2151,3877,2085,6652,2119,2149,7686,2141,6639, + 3318,6660,3314,7643,4064,3594,287,3841,3105,6637,1887,1806,3162,6671,3128,2120, + 7701,2120,7646,5473,6623,2079,3242,6681,3601,3588,1999,1806,3182,7581,549,7722, + 5668,5679,1806,3589,5565,5768,4158,1999,2247,6623,3154,6701,6116,613,6694,5452, + 5514,5668,6694,3193,3841,3198,7763,3094,3326,7742,1313,1317,1312,6736,5768,1991, + 5563,1991,3322,7751,3326,6727,3128,5473,4112,72,3326,7911,1822,5570,5475,6887, + 769,39,6364,3326,6764,4110,3322,7773,3282,6750,3281,3132,6750,3155,5779,5476, + 5679,3134,6758,3133,3088,6364,3194,6364,804,7388,5104,6888,4112,1991,5476,1822, + 4112,5475,5564,5679,3324,6728,5099,2199,3090,2303,6780,3188,5555,5124,3237,5570, + 1822,5570,5779,3238,6790,3300,5124,3841,5824,1822,1887,5099,613,7826,5570,5124, + 1815,6264,5447,1806,6329,3120,3320,3124,3324,3194,7731,3321,3325,2263,5824,3665, + 4945,3589,5570,3649,4946,4110,3681,4946,3589,3617,4945,4110,3633,4946,3194,7860, + 3589,4112,5476,3588,5514,3697,4946,6902,5155,6364,3324,3194,6432,3233,5155,4110, + 4941,5570,3633,3198,7878,3681,4941,5475,1991,4112,3697,3584,3326,6863,5471,5555, + 3326,7247,3234,6364,3298,7920,4940,5564,3302,7388,3590,5155,5570,5158,5471,3310, + 6364,3306,7914,3649,4158,5475,4940,1806,5564,6364,1991,4940,3649,3589,5766,6364, + 5780,4940,5564,3198,3197,7611,1815,6365,2085,8007,2080,1793,3198,6911,3128,3118, + 7998,3114,6942,3110,6964,3106,6931,6133,6130,6136,6130,6095,6140,3092,5116,5117, + 1319,6056,6364,6136,6104,6099,6132,6016,6016,6104,6099,6133,5116,6929,3106,6947, + 3131,6045,6364,2009,3284,2029,3284,3280,2029,1511,3841,3100,1837,3088,1837,1879, + 3198,7918,1822,6734,3106,6971,6138,6132,5116,5117,6926,3131,6037,6364,3249,3253, + 3110,7228,3106,8005,6902,3248,6902,1927,5120,5033,1815,6902,3601,1863,3584,1806, + 3587,1991,4941,3194,6998,3128,5473,3590,1823,3585,3587,5029,3237,3592,5120,3126, + 8027,1793,2593,8038,544,7010,5117,1991,5036,3877,7022,2600,1497,7036,3118,7033, + 3117,3943,3192,3848,3134,7033,3126,7033,3841,5134,1535,1512,5061,1528,1823,5272, + 616,616,872,872,2377,5117,872,872,5524,3188,5174,3194,7057,1503,2623,3116, + 7061,3877,8085,1503,2623,2759,2084,7071,3122,8093,3130,8027,7071,3126,7479,5120, + 5038,5029,2597,7479,7004,5120,2592,3126,7082,2561,3590,3587,3293,7087,3292,3593, + 2639,639,3401,5090,2145,8125,5061,1399,296,3424,1288,8130,7092,3294,7111,2591, + 3429,7094,3588,2639,639,3847,3587,2759,7107,1927,769,6104,6099,6130,6136,6095, + 6099,6016,6107,6136,6133,5117,967,768,839,768,3093,3587,2081,557,1901,3152, + 3164,3587,2632,2561,2569,2593,3133,3913,5061,3594,7150,3871,3594,455,3589,3587, + 1863,1793,6138,6136,808,6138,6130,6099,6130,808,6095,6136,808,808,808,3587, + 3665,3584,2631,3587,4158,3588,1807,3587,257,3601,3588,3617,6149,3873,2080,3587, + 2007,5514,5642,1822,1887,5471,1822,1865,3156,3160,1901,3156,1383,1806,3198,7201, + 3128,5565,6500,3617,3198,7207,3665,1991,4942,3697,3584,6588,5540,5540,6692,5548, + 5548,6692,3236,5033,3261,799,3262,3229,7351,3324,3193,3327,3262,7351,3593,975, + 3592,3591,3591,7233,3401,3545,2592,7330,5268,3591,3591,6214,2623,5276,3591,3591, + 6214,3130,6228,3125,5450,1535,3114,6272,3126,7281,3122,6257,3194,6272,3130,3190, + 7296,2080,3118,2081,6272,3230,7222,3262,3263,7222,975,5272,3591,3591,7276,863, + 6327,5133,3118,6285,3194,6268,3127,3123,3877,7350,3127,3123,3126,7296,3841,2605, + 3114,3110,3877,3126,3130,7395,3106,6283,3190,7395,6203,3195,6206,2080,3118,7295, + 3872,3872,3872,6285,3238,6303,3122,6300,841,3592,865,7327,3593,863,3592,3591, + 3591,3587,3424,6216,3552,3286,6216,3545,5272,3593,1376,3591,3591,7244,2592,3126, + 6315,2561,1359,3455,1901,6315,3228,3190,7395,967,3593,3290,3289,7374,3238,7220, + 3545,3401,3591,3591,6350,2623,2080,3118,2081,6350,3123,3877,3123,7389,5120,2592, + 3590,3190,7218,5090,2145,7384,296,6356,3877,7392,3118,3117,6366,3192,1823,6228, + 1823,5450,1535,3592,3189,3229,3326,3325,3197,6388,3196,3127,3111,3107,2597,3107, + 3111,3127,6388,3245,3587,5668,3585,4941,2009,3258,6412,1479,1383,1376,1376,1481, + 6399,1370,7427,3094,6408,1509,7432,1371,1503,2097,6412,2049,1865,3156,5086,3090, + 6418,3431,2119,3258,3246,7453,1351,864,864,877,616,1381,7509,1505,7457,5547, + 6429,2081,5084,5084,3118,6435,1028,6457,5085,711,544,1252,6447,749,6443,741, + 6458,545,967,1815,5538,804,6390,799,6458,5085,2149,6464,1061,6464,1125,7481, + 552,616,3286,7504,3094,6481,1120,3282,6475,3091,2567,3587,3130,3090,6482,3236, + 1377,1121,3587,5540,557,3094,7507,3284,1317,7457,5547,2081,6488,2049,6488,3128, + 1806,3130,6500,3091,1423,3129,3158,7549,3094,1299,7554,1445,6496,3090,6518,3154, + 7544,525,7520,521,1887,6692,3154,7537,520,6516,557,5539,6516,3094,6496,1299, + 7520,1445,613,7533,1028,557,6536,544,5540,6500,4112,783,3329,1353,3129,549, + 6555,1351,2121,1281,1377,8146,6029,6548,808,1376,3092,37,7576,1294,1356,7122, + 544,7122,513,39,3094,7137,1313,1317,6570,3093,3587,621,3094,8161,1313,6570, + 1319,3092,3587,3128,1887,6589,5515,2527,1343,3154,6692,4112,3128,3130,6594,549, + 8171,3095,1935,583,3338,3089,3154,6601,3088,3217,3346,3222,7665,1288,8163,513, + 5543,1425,1353,613,677,7540,3130,7673,534,941,1057,6627,557,549,6636,535, + 1367,5534,6516,850,6618,941,877,167,5540,804,7540,6618,101,6617,872,5548, + 6618,1293,6645,3095,1294,1289,6607,905,544,909,6647,877,37,6659,552,549, + 6649,5548,6649,905,840,840,905,7540,5536,6516,1814,841,3169,3094,7716,941, + 5548,3094,7711,872,613,7703,3168,5658,552,6672,533,7602,529,864,6682,5540, + 936,3094,7716,5658,3129,6698,37,6701,552,5548,549,6694,1793,1927,6567,3122, + 7817,5453,1991,4112,5471,3094,6716,1441,1424,1453,1445,6692,1823,1927,1287,3447, + 1325,1287,3575,1281,3088,549,8164,5521,841,3122,6734,103,549,7606,798,769, + 2063,2081,8106,2081,8117,2081,8125,2081,8131,2081,8135,39,6024,798,3122,6763, + 797,7792,793,911,790,6024,790,848,6752,791,856,903,6024,790,786,6761, + 2144,3182,6734,3178,6734,3122,7606,5106,777,5516,841,1901,3557,7809,3423,1901, + 1383,3222,6788,3152,1822,5105,5570,6500,3120,5104,5642,3328,3170,8163,3545,2265, + 1359,2552,6727,5476,5453,1793,677,7716,4112,1441,7843,1441,7839,1312,6809,3222, + 6818,1312,621,3217,2121,1287,2424,1281,1425,6841,877,813,6840,897,897,776, + 901,6829,777,786,6837,165,6826,936,877,869,6830,5516,3351,2383,1343,6516, + 3237,5668,3198,7989,3128,6033,3238,6858,3300,6958,5066,3237,768,5642,5975,5521, + 5065,768,3090,6869,787,3329,5066,909,853,7901,3191,3126,6891,901,7907,897, + 3126,6883,3091,3122,3877,6960,909,7915,787,3091,3191,925,7919,851,3128,791, + 3527,798,841,913,167,3198,7929,5995,6906,6023,965,7947,963,798,3198,6917, + 6024,786,5995,778,6901,6023,776,782,6024,897,6901,2144,741,6901,783,3130, + 6934,3198,6933,5065,851,790,5516,5447,3198,8007,1814,5516,1879,5564,3089,5447, + 3126,6954,4110,3125,5779,5563,5447,3238,6954,5676,3281,3190,6958,3280,2207,4316, + 909,7987,787,851,6891,5975,3527,3126,6975,4110,5475,5780,3238,8006,5564,3094, + 549,8004,5563,3128,5521,6897,4596,3122,6990,5065,5515,1879,5475,3089,1927,3190, + 6997,5066,3329,1879,5476,6033,6958,657,936,912,677,8041,3094,7017,3198,8007, + 3122,6958,1991,5514,6958,3097,3290,7017,3096,1927,3587,769,2063,2081,8056,2081, + 8066,39,2081,7048,6091,6095,6106,7128,6094,6106,6099,6107,6130,6138,6133,6095, + 808,7137,6092,6106,6106,6099,7128,791,2063,7051,813,2081,7050,1287,816,813, + 3587,3250,8146,3254,7069,6107,6136,6106,6016,6095,6103,6140,7077,6130,6104,6138, + 6129,6103,6129,6016,6136,3329,808,6016,1879,6589,6129,6136,6016,808,6016,6104, + 6095,6099,808,6133,6749,6094,6130,808,6135,808,6099,6130,7105,6093,6130,5117, + 6135,6136,6749,6092,6130,5116,6749,6091,6130,808,6749,6095,6095,6095,6095,808, + 1317,816,3587,808,800,800,7132,6104,808,7125,6107,808,800,800,800,800, + 800,1312,6570,3094,769,8169,801,3093,8175,1313,8174,613,3343,7140,39,3236, + 6692,6095,808,7133,6130,808,7134,6136,808,7135,808,7136,6138,6136,6104,3587 + ] + } +} diff --git a/devices/ti57/machine/README.md b/devices/ti57/machine/README.md index 0515563b95..c465af28dd 100644 --- a/devices/ti57/machine/README.md +++ b/devices/ti57/machine/README.md @@ -6,205 +6,7 @@ machines: - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "http://seanriddle.com/ti57.bin", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: rev0/ti57.json styles: _ti57: position: relative; diff --git a/devices/ti57/machine/rev0/README.md b/devices/ti57/machine/rev0/README.md index a4c11462dc..e75df7285c 100644 --- a/devices/ti57/machine/rev0/README.md +++ b/devices/ti57/machine/rev0/README.md @@ -6,219 +6,7 @@ machines: - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI57", - "print": "printTI57" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI57", - "speed": "speedTI57", - "step": "stepTI57" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57", - "reset": "resetTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "http://seanriddle.com/ti57.bin", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "bindings": { - "array": "romArrayTI57", - "cellDesc": "romCellTI57" - }, - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: ti57.json styles: _ti57: position: relative; diff --git a/devices/ti57/machine/rev0/ti57.json b/devices/ti57/machine/rev0/ti57.json new file mode 100644 index 0000000000..8d18e60e52 --- /dev/null +++ b/devices/ti57/machine/rev0/ti57.json @@ -0,0 +1,212 @@ +{ + "ti57": { + "class": "Machine", + "type": "TI57", + "name": "TI-57 Emulator", + "version": 1.20, + "bindings": { + "clear": "clearTI57", + "print": "printTI57" + } + }, + "chip": { + "class": "Chip", + "type": "TMS-1501", + "input": "buttons", + "output": "display", + "bindings": { + "2nd": "ind2nd", + "INV": "indINV", + "Deg": "indDeg", + "Rad": "indRad", + "Grad": "indGrad" + } + }, + "clock": { + "class": "Time", + "cyclesPerSecond": 650000, + "bindings": { + "run": "runTI57", + "speed": "speedTI57", + "step": "stepTI57" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] + }, + "display": { + "class": "LED", + "type": 3, + "cols": 12, + "rows": 1, + "color": "red", + "bindings": { + "container": "displayTI57" + }, + "overrides": ["color","backgroundColor"] + }, + "buttons": { + "class": "Input", + "buttonDelay": 50, + "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], + "map": [ + ["2nd", "inv", "lnx", "\\b", "clr"], + ["lrn", "xchg", "sq", "sqrt", "rcp"], + ["sst", "sto", "rcl", "sum", "ypow"], + ["bst", "ee", "(", ")", "/"], + ["gto", "7", "8", "9", "*"], + ["sbr", "4", "5", "6", "-"], + ["rst", "1", "2", "3", "+"], + ["r/s", "0", ".", "+/-", "=|\\r"] + ], + "bindings": { + "surface": "imageTI57", + "power": "powerTI57", + "reset": "resetTI57" + } + }, + "rom": { + "class": "ROM", + "wordSize": 13, + "valueSize": 16, + "valueTotal": 2048, + "littleEndian": true, + "file": "ti57le.bin", + "reference": "http://seanriddle.com/ti57.bin", + "chipID": "TMC1501NC DI 7741", + "revision": "0", + "bindings": { + "array": "romArrayTI57", + "cellDesc": "romCellTI57" + }, + "overrides": ["colorROM","backgroundColorROM"], + "values": [ + 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, + 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, + 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, + 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, + 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, + 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, + 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, + 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, + 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, + 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, + 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, + 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, + 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, + 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, + 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, + 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, + 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, + 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, + 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, + 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, + 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, + 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, + 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, + 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, + 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, + 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, + 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, + 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, + 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, + 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, + 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, + 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, + 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, + 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, + 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, + 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, + 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, + 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, + 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, + 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, + 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, + 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, + 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, + 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, + 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, + 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, + 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, + 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, + 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, + 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, + 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, + 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, + 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, + 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, + 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, + 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, + 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, + 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, + 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, + 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, + 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, + 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, + 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, + 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, + 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, + 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, + 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, + 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, + 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, + 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, + 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, + 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, + 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, + 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, + 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, + 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, + 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, + 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, + 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, + 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, + 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, + 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, + 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, + 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, + 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, + 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, + 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, + 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, + 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, + 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, + 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, + 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, + 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, + 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, + 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, + 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, + 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, + 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, + 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, + 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, + 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, + 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, + 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, + 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, + 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, + 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, + 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, + 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, + 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, + 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, + 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, + 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, + 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, + 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, + 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, + 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, + 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, + 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, + 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, + 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, + 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, + 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, + 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, + 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, + 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, + 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, + 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, + 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 + ] + } +} diff --git a/devices/ti57/machine/rev1/README.md b/devices/ti57/machine/rev1/README.md index 2e710d4ea3..2ff6a744be 100644 --- a/devices/ti57/machine/rev1/README.md +++ b/devices/ti57/machine/rev1/README.md @@ -6,219 +6,7 @@ machines: - id: ti57Rev1 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57Rev1": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10, - "bindings": { - "clear": "clearTI57", - "print": "printTI57" - } - }, - "chip": { - "class": "Chip", - "type": "TMS-1501", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "bindings": { - "run": "runTI57", - "speed": "speedTI57", - "step": "stepTI57" - }, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57", - "reset": "resetTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57rev1le.bin", - "reference": "http://seanriddle.com/ti57.bin", - "chipID": "unknown", - "revision": "1", - "bindings": { - "array": "romArrayTI57", - "cellDesc": "romCellTI57" - }, - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3601,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5116,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,3089,2271,3587,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,407,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: ti57.json styles: _ti57Rev1: position: relative; diff --git a/devices/ti57/machine/rev1/ti57.json b/devices/ti57/machine/rev1/ti57.json new file mode 100644 index 0000000000..95e69c2b88 --- /dev/null +++ b/devices/ti57/machine/rev1/ti57.json @@ -0,0 +1,212 @@ +{ + "ti57Rev1": { + "class": "Machine", + "type": "TI57", + "name": "TI-57 Emulator", + "version": 1.20, + "bindings": { + "clear": "clearTI57", + "print": "printTI57" + } + }, + "chip": { + "class": "Chip", + "type": "TMS-1501", + "input": "buttons", + "output": "display", + "bindings": { + "2nd": "ind2nd", + "INV": "indINV", + "Deg": "indDeg", + "Rad": "indRad", + "Grad": "indGrad" + } + }, + "clock": { + "class": "Time", + "cyclesPerSecond": 650000, + "bindings": { + "run": "runTI57", + "speed": "speedTI57", + "step": "stepTI57" + }, + "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] + }, + "display": { + "class": "LED", + "type": 3, + "cols": 12, + "rows": 1, + "color": "red", + "bindings": { + "container": "displayTI57" + }, + "overrides": ["color","backgroundColor"] + }, + "buttons": { + "class": "Input", + "buttonDelay": 50, + "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], + "map": [ + ["2nd", "inv", "lnx", "\\b", "clr"], + ["lrn", "xchg", "sq", "sqrt", "rcp"], + ["sst", "sto", "rcl", "sum", "ypow"], + ["bst", "ee", "(", ")", "/"], + ["gto", "7", "8", "9", "*"], + ["sbr", "4", "5", "6", "-"], + ["rst", "1", "2", "3", "+"], + ["r/s", "0", ".", "+/-", "=|\\r"] + ], + "bindings": { + "surface": "imageTI57", + "power": "powerTI57", + "reset": "resetTI57" + } + }, + "rom": { + "class": "ROM", + "wordSize": 13, + "valueSize": 16, + "valueTotal": 2048, + "littleEndian": true, + "file": "ti57rev1le.bin", + "reference": "http://seanriddle.com/ti57.bin", + "chipID": "unknown", + "revision": "1", + "bindings": { + "array": "romArrayTI57", + "cellDesc": "romCellTI57" + }, + "overrides": ["colorROM","backgroundColorROM"], + "values": [ + 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, + 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, + 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, + 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, + 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, + 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, + 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, + 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, + 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, + 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, + 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, + 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, + 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, + 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, + 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, + 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, + 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, + 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, + 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, + 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, + 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, + 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, + 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, + 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, + 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, + 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, + 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, + 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, + 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, + 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, + 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, + 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, + 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, + 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, + 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, + 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, + 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, + 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, + 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, + 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, + 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, + 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, + 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, + 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, + 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, + 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, + 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, + 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, + 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, + 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, + 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, + 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, + 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, + 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, + 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, + 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, + 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, + 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, + 3194,8101,5426,5186,5253,3090,7080,2279,3601,5238,3194,7086,5253,7087,5574,5238, + 3194,7091,5574,5116,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, + 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, + 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, + 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, + 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,3089,2271,3587,0, + 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, + 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, + 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, + 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, + 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, + 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, + 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, + 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, + 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, + 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, + 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, + 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, + 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, + 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, + 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, + 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, + 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, + 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, + 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, + 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, + 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, + 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, + 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, + 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, + 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, + 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, + 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, + 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, + 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, + 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, + 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, + 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, + 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, + 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, + 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, + 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, + 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, + 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, + 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, + 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, + 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, + 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, + 3222,6819,3088,1895,407,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, + 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, + 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, + 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, + 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, + 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, + 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, + 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, + 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, + 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, + 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, + 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, + 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, + 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, + 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, + 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, + 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, + 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, + 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, + 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, + 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, + 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 + ] + } +} diff --git a/devices/ti57/tips/README.md b/devices/ti57/tips/README.md index 5dcb7213cc..263a6036d1 100644 --- a/devices/ti57/tips/README.md +++ b/devices/ti57/tips/README.md @@ -6,205 +6,7 @@ machines: - id: ti57 type: ti57 name: TI-57 Programmable Calculator - config: | - { - "ti57": { - "class": "Machine", - "type": "TI57", - "name": "TI-57 Emulator", - "version": 1.10 - }, - "chip": { - "class": "Chip", - "type": "TMS-1500", - "input": "buttons", - "output": "display", - "bindings": { - "2nd": "ind2nd", - "INV": "indINV", - "Deg": "indDeg", - "Rad": "indRad", - "Grad": "indGrad" - } - }, - "clock": { - "class": "Time", - "cyclesPerSecond": 650000, - "overrides": ["cyclesPerSecond","yieldsPerSecond","yieldsPerUpdate"] - }, - "display": { - "class": "LED", - "type": 3, - "cols": 12, - "rows": 1, - "color": "red", - "bindings": { - "container": "displayTI57" - }, - "overrides": ["color","backgroundColor"] - }, - "buttons": { - "class": "Input", - "buttonDelay": 50, - "location": [45, 316, 372, 478, 0.34, 0.5, 459, 832, 322, 168, 75, 38], - "map": [ - ["2nd", "inv", "lnx", "\\b", "clr"], - ["lrn", "xchg", "sq", "sqrt", "rcp"], - ["sst", "sto", "rcl", "sum", "ypow"], - ["bst", "ee", "(", ")", "/"], - ["gto", "7", "8", "9", "*"], - ["sbr", "4", "5", "6", "-"], - ["rst", "1", "2", "3", "+"], - ["r/s", "0", ".", "+/-", "=|\\r"] - ], - "bindings": { - "surface": "imageTI57", - "power": "powerTI57" - } - }, - "rom": { - "class": "ROM", - "wordSize": 13, - "valueSize": 16, - "valueTotal": 2048, - "littleEndian": true, - "file": "ti57le.bin", - "reference": "", - "chipID": "TMC1501NC DI 7741", - "revision": "0", - "overrides": ["colorROM","backgroundColorROM"], - "values": [ - 4623,4386,5106,7051,3246,6152,5813,5628,5805,7051,4386,3246,7911,5132,1822,6798, - 2600,1497,6539,6471,6642,6462,6899,6939,6660,3246,7587,4388,6648,4386,5634,7051, - 4386,5692,7051,6154,6392,3246,7434,4388,3186,3197,7755,3194,8074,3495,3184,6731, - 4065,6775,6300,6893,6327,3246,7273,4386,6768,4388,3246,8118,3186,7719,3879,6686, - 2087,6236,6266,6890,6328,4386,3246,7317,6208,4388,3246,8140,3186,7761,3219,6743, - 3261,6799,6679,6896,6755,3288,6240,3288,6311,4386,3246,8141,3238,6801,3188,6782, - 3112,3246,6762,3290,3296,6314,4386,3217,7050,3250,6253,3194,6565,4386,6393,2079, - 2241,5133,2079,1879,3588,1806,7051,5090,3329,7051,4388,3246,7300,3189,3186,7710, - 3250,3237,7055,3587,5132,1793,3194,6325,5112,2272,2272,3310,6288,3584,1793,3590, - 2273,3594,3310,7703,6277,5551,5511,3194,8075,1887,5587,7051,4386,3194,7172,5736, - 3246,7051,804,8075,5813,5635,7051,3108,3246,6762,3359,4388,5132,3129,3133,3298, - 7349,3128,3290,7349,3132,5234,7055,3308,3250,7590,4386,5426,3246,6335,3232,3194, - 6342,3304,3298,6342,3246,7279,2271,3583,5276,3592,3551,2303,3877,6775,3298,6354, - 3234,7280,3118,7799,2080,3114,6365,3118,7389,3110,3108,6367,3107,3115,3300,2055, - 3594,5138,1815,1991,3298,7414,3310,6380,3234,6261,5230,6261,3306,3129,6384,3128, - 3234,6388,5636,6389,5585,5138,5229,6799,3246,3296,6327,4224,5120,5136,2573,6406, - 2657,5142,2656,5155,2657,6397,2777,5155,6475,5217,4224,5123,2599,3120,3124,2629, - 6406,2656,5142,2657,5155,2656,6412,3186,3592,6427,5186,3225,1815,5537,3919,3587, - 3246,6455,3250,6423,3250,3237,6431,3233,1505,2623,3194,6445,3116,3246,6450,3943, - 3192,3848,2759,5123,5155,3234,7499,3233,5120,5136,2573,6678,2592,6469,4224,3246, - 7463,5136,3233,2593,7499,3588,6475,3246,8095,3250,7702,3592,3248,5123,2593,7506, - 544,6478,813,1028,808,6489,3589,2561,6469,5826,1991,3593,5142,3877,7184,3118, - 6500,3117,3309,1255,3943,3192,3849,3877,6523,3292,3848,5255,3877,6526,1823,1061, - 1281,557,2247,3232,3236,7660,3294,6633,6117,6045,6542,3849,3877,7530,2591,6056, - 1535,1512,3134,6539,3130,3126,6539,3130,3122,7623,3841,5488,1528,1823,5416,616, - 616,872,872,1061,7574,1127,2377,5826,872,872,5561,3234,7055,1384,3238,7055, - 3233,5221,6706,4224,3308,3256,3237,3232,145,3194,6572,167,3495,3228,3220,3246, - 6578,3488,3298,7608,3310,7464,3488,3488,3224,6440,3234,6450,3233,3258,7645,3118, - 7474,3479,3903,165,7474,3116,6450,2599,2592,3124,3314,7631,4065,3128,3872,3318, - 7635,3872,3321,3322,7638,3872,3232,3236,3310,3309,6527,1255,6527,1503,2623,3257, - 3226,6447,3222,6630,3116,6447,3218,7621,6450,6118,6090,6542,3294,1312,6520,6115, - 6096,6542,3250,7456,3246,7433,3252,6658,3262,7680,1999,5416,3591,3591,7676,1887, - 3254,8079,3263,7055,3246,3296,7963,4388,5135,2561,3588,5133,3121,3125,6325,401, - 257,3594,3588,2208,3590,6673,3249,4388,257,2193,329,473,3594,3588,1793,5416, - 3184,1038,616,1038,3473,3877,7736,3218,7726,3216,679,672,680,592,3221,7055, - 1320,5110,1328,7055,3250,7610,3186,6686,3222,7728,549,6718,3218,6727,719,744, - 2024,2024,3282,7055,1038,616,1038,2055,1087,552,7055,3194,7726,3196,3220,1353, - 7055,3222,6743,3308,5221,1144,5007,2121,2144,1896,79,3895,3122,7768,3167,2145, - 8079,5492,6751,4386,3246,7287,3116,3194,6762,3288,4386,6019,3238,7799,3236,6801, - 5127,3236,3872,3134,6777,3126,6777,3188,7050,5234,7054,5636,2079,6019,4065,6801, - 4057,3594,2081,2085,2561,7815,2079,1815,3588,7054,3877,7843,3873,2277,3588,287, - 7051,5127,2151,3877,2085,6807,2119,2149,7839,2141,6794,4064,3594,3322,7216,287, - 3841,3105,6792,1887,1806,3162,6824,3128,2120,7854,2120,7803,5585,6780,2079,3588, - 1999,1806,549,7870,5537,5736,1806,3589,5636,5805,5213,1999,2247,6780,3154,6849, - 6124,613,6842,6137,5552,5537,6842,5132,3919,3090,2303,6861,3232,1887,5635,5112, - 3189,5628,1822,5628,5691,3190,6872,3300,5112,3841,5857,1863,5133,613,7908,5628, - 5112,1815,5627,7051,5485,1806,6260,3194,7879,3240,3120,3246,6176,3124,3246,6145, - 3246,6173,5855,3250,6903,3246,6565,4386,3246,6973,5135,549,3094,7941,5108,3399, - 3157,5583,3195,3588,6924,1793,6914,5132,5582,3298,6924,3090,549,7951,3232,3194, - 6930,3235,1951,3234,7050,3262,3254,7050,5136,2592,7049,3250,6944,3246,3194,6564, - 4386,3246,7943,5132,3194,8060,3262,3254,7980,3121,3125,6967,3126,7799,3872,3588, - 3697,5211,3697,3588,5136,1807,3681,5234,3254,8026,3240,3262,8026,5426,5276,3877, - 7034,3246,7002,2349,3527,5276,3877,3551,1535,1512,2055,3592,1528,7034,5136,2561, - 3242,6996,3241,3260,1500,7799,1505,8073,2592,6998,2413,2413,1503,2687,2009,2265, - 3551,5183,2629,2573,1504,7029,3593,296,296,3592,2272,3310,7010,3552,3294,8056, - 3290,7007,3286,8032,7007,2408,2408,6990,2408,2408,2193,6775,3122,3123,3126,3125, - 6224,3588,3665,5211,3665,3588,3697,5214,3681,3588,1815,3242,2193,7899,5426,3254, - 7061,3262,3261,8085,3253,5276,3593,3877,2265,7732,3289,2305,1504,1508,3586,4386, - 3194,8101,5426,5186,5253,3090,7080,2279,3089,5238,3194,7086,5253,7087,5574,5238, - 3194,7091,5574,5221,3376,7051,4386,3300,5132,5627,3633,5213,5226,3681,5223,5106, - 3697,5223,5133,3302,3303,8125,5552,3649,5223,3665,5223,7050,3296,4386,3194,8145, - 3300,3681,5138,5136,3298,7333,1991,1807,5628,1806,5635,3697,1863,5138,5587,1806, - 6309,1927,769,6093,6090,6099,6104,6112,6090,6045,6103,6101,5826,967,768,839, - 768,3587,1991,5627,1865,103,2055,3587,5213,3588,1807,3587,0,0,0,0, - 2663,3936,7164,5136,2631,1793,3587,3871,3594,455,3589,3587,1991,3649,6154,1991, - 3665,6154,3302,7262,3584,6239,3293,6180,3294,6177,2591,3429,6187,3590,591,2687, - 3587,2759,6174,3292,2639,639,3401,2575,5170,2145,7192,5488,1399,296,3424,1288, - 7197,6185,2560,3130,6205,3126,6205,2085,7229,3114,8188,3872,2049,2119,3847,3594, - 3584,3587,1100,3237,3185,3329,7241,3092,5570,621,1127,1120,616,97,7254,76, - 7252,97,6561,3088,552,6220,616,5567,101,7254,6561,3589,3681,1863,3589,1806, - 3587,5423,2592,3134,6241,2271,3587,1991,5138,1823,3855,5585,5138,1815,3302,7282, - 3590,6259,3588,1823,2567,3587,5537,5551,5511,1822,5582,1822,1865,3156,3160,1901, - 3156,1383,3855,3131,6826,5567,6591,3114,6293,3126,7309,3122,7317,3873,2080,3118, - 6333,3126,7317,3841,2605,3587,2561,3588,3188,3261,3253,799,3192,3245,3195,3262, - 3254,7364,975,3591,3591,7331,5411,3591,3591,6310,2623,3130,6318,3125,5420,5236, - 1535,5255,3130,3877,7473,2085,6449,3122,6302,3126,7473,3247,6303,2080,3118,7316, - 3872,3872,3872,6333,967,3593,3190,7321,3254,7389,3591,3591,6365,2623,3126,3130, - 7389,2080,3118,6358,2081,6395,2080,3106,3110,7389,3114,6365,5217,5136,2592,3588, - 2593,5170,3190,7318,2145,7400,296,6372,3877,7419,3118,6382,3117,3192,5488,3391, - 3431,3160,3337,3365,3335,7419,3895,3337,3365,6417,3244,5235,1535,3877,7473,5255, - 3877,6449,3246,3194,7430,5007,4375,3194,7435,799,4899,3246,7438,4954,2279,3308, - 4208,2265,2193,3090,7447,3361,2215,3098,6426,3296,3094,7453,3308,3194,6432,3304, - 1823,4375,4306,3190,6447,2592,3122,6444,841,3592,865,7471,3593,863,3592,3591, - 3591,3587,3592,5537,3649,5213,1865,3156,5492,2009,3090,6461,3431,2119,3198,7494, - 1479,992,992,1005,1509,7549,3284,2081,5490,5490,3118,6473,1028,6495,5491,711, - 544,1252,6485,749,6481,741,6496,545,967,1815,5565,804,6452,799,6496,5491, - 2149,6502,1061,6502,1125,7519,552,616,3286,6520,3094,6521,1120,3282,6513,3091, - 3847,3587,2081,557,1901,3152,3164,3587,1377,1121,3587,5567,557,3094,7547,1317, - 7495,621,5575,2081,6527,2049,6527,1814,841,3169,3094,7585,941,5575,3094,7580, - 872,613,7572,3168,5527,552,6541,533,7629,529,864,6551,5567,936,3094,7585, - 5527,3129,6567,37,6570,552,5575,549,6563,1793,3130,3129,8105,1927,6594,2007, - 5108,783,3329,1281,3128,6563,1351,2121,1281,1377,8105,813,6585,513,39,3094, - 7145,1313,1317,6597,3093,3587,5575,3094,8169,1313,6597,1319,3092,3587,1887,3128, - 1806,3130,6612,3091,1423,3129,3158,7665,3094,1299,7670,1445,6608,1937,3090,6631, - 3154,7657,525,7632,521,1887,6561,3154,7650,520,6687,557,877,5566,804,7653, - 6687,3094,6608,1299,7632,1445,613,7645,557,5567,6612,1887,3129,6665,5553,1303, - 3154,6561,5108,3128,3130,6652,549,8179,3095,1935,583,3338,3089,3154,6672,3088, - 3217,3346,3222,7721,1288,8171,513,1425,1353,5570,677,7653,3130,7729,557,1185, - 6633,685,677,7653,101,6686,872,5575,6687,1293,6701,3095,1294,1289,6678,905, - 544,909,6703,37,6629,877,552,549,6705,5575,6705,5588,6138,1793,677,7585, - 5108,1441,7755,1441,7751,1312,6721,3222,6730,1312,621,3217,2121,1287,2424,1281, - 1425,6753,877,813,6752,897,897,776,901,6741,777,786,6749,165,6738,936, - 877,869,6742,5554,3351,2383,1343,6629,3841,6138,1281,3088,549,8172,5558,841, - 3122,6773,103,549,7678,798,769,2063,2081,7877,2081,7887,2081,7894,2081,7899, - 39,6052,798,3122,6800,797,7829,793,655,534,6052,534,592,6789,535,856, - 647,6052,534,530,6798,2144,749,741,6773,3122,7678,5814,1991,521,5554,1822, - 3222,6819,3088,1895,1431,127,1453,621,1431,127,1806,5636,6612,3120,5813,5511, - 3328,3170,8171,1423,6766,1863,1793,6106,6104,808,6106,6099,6090,6099,808,6112, - 6104,808,808,808,3587,6098,6104,6045,808,6045,6093,6112,6090,5826,6786,6111, - 6099,808,6104,6104,808,6860,6110,6099,5826,6106,6861,6109,6099,5825,6786,4386, - 2303,3189,5537,3194,8019,3128,6058,5090,3189,768,5511,6005,5558,5089,768,3090, - 6898,787,3329,5090,909,853,7930,3235,3126,6920,901,7936,897,3126,6912,3091, - 3122,3877,6990,909,7944,787,3091,3235,925,7948,851,3128,791,3527,798,841, - 913,167,3194,7958,6024,6935,6051,965,7976,963,798,3194,6946,6052,786,6024, - 778,6930,6051,776,782,6052,897,6930,2144,741,6930,783,3130,6963,3194,6962, - 5089,851,790,5554,5485,3194,8037,1814,5554,1879,5635,3089,5485,3126,6983,5106, - 3125,5691,5634,5485,3190,6983,5545,3281,3234,6987,3280,2271,3967,5003,909,8017, - 787,851,6920,6005,3527,3126,7005,5106,5587,5692,3190,8036,5635,3094,549,8034, - 5634,3128,5558,6926,4751,3122,7020,5089,5553,1879,5587,3089,1927,3234,7027,5090, - 3329,1879,5588,6058,6987,657,936,912,677,7597,3094,6573,3194,8037,3122,6987, - 1991,5552,6987,3097,3290,6573,3096,6573,769,2063,2081,8085,2081,8095,39,2081, - 7076,6108,6112,6095,7117,6111,6095,6090,6096,6099,6106,6101,6112,808,7145,6109, - 6095,6095,7068,791,2063,813,2081,7077,2080,3587,5488,2175,5132,2349,2062,2600, - 3182,8129,3178,7283,6099,6093,6106,6098,6092,6098,6045,6104,3329,808,6045,1879, - 6660,6103,6095,6045,6112,6092,6106,6104,6093,7100,808,7138,6093,808,7139,6096, - 808,7140,6112,808,7141,808,7142,6096,808,7143,808,7144,6112,6112,6112,6112, - 808,800,800,800,800,800,800,800,800,1312,6597,3094,769,8177,801,3093, - 8183,1313,8182,613,3343,7148,39,3188,6561,3130,3090,7165,3188,3587,0,0 - ] - } - } + config: /devices/ti57/machine/rev0/ti57.json styles: _ti57: position: relative; diff --git a/gulpfile.js b/gulpfile.js index 06e97c5180..e06707a11c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,7 +33,7 @@ * * Recompiles all machine scripts in their respective version folder (under /versions) that * are out-of-date with respect to the individual files (under /modules). The target version - * comes from _data/machines.json:shared.version. + * comes from _data/machines.json:shared.appversion. * * It does this by running the `concat`, `compile`, `copy`, and `disks` tasks for all machines, * in that order. @@ -69,7 +69,7 @@ * `gulp version` * * Updates the version number in all project machine XML files to match the version contained in - * _data/machines.json:shared.version. + * _data/machines.json:shared.appversion. * * `gulp copyright` * @@ -126,7 +126,7 @@ aMachines.forEach(function(machineType) { machineConfig = machines[machineConfig.alias]; } - let machineVersion = (machineConfig.version || machines.shared.version); + let machineVersion = (machineConfig.version || machines.shared.appversion); let machineReleaseDir = "./versions/" + machineConfig['folder'] + "/" + machineVersion; let machineReleaseFile = machineType + ".js"; let machineUncompiledFile = machineType + "-uncompiled.js"; @@ -137,6 +137,7 @@ aMachines.forEach(function(machineType) { let define = machineConfig.defines[i]; switch(define) { case "APPVERSION": + case "VERSION": machineDefines[define] = machineVersion; break; case "SITEHOST": @@ -331,7 +332,7 @@ gulp.task("disks", function() { gulp.task("version", function() { let baseDir = "./"; return gulp.src(["apps/**/*.xml", "devices/**/*.xml", "disks/**/*.xml", "pubs/**/*.xml"], {base: baseDir}) - .pipe(gulpReplace(/href="\/versions\/([^\/]*)\/[0-9.]*\/(machine|manifest|outline)\.xsl"/g, 'href="/versions/$1/' + machines.shared.version + '/$2.xsl"')) + .pipe(gulpReplace(/href="\/versions\/([^\/]*)\/[0-9.]*\/(machine|manifest|outline)\.xsl"/g, 'href="/versions/$1/' + machines.shared.appversion + '/$2.xsl"')) .pipe(gulp.dest(baseDir)); }); diff --git a/modules/devices/README.md b/modules/devices/README.md index 89138eb1ff..1fbcaad053 100644 --- a/modules/devices/README.md +++ b/modules/devices/README.md @@ -281,3 +281,7 @@ and then you need to add the new scripts, preferably in the order shown above: and then you can create the machine: new Machine('ti57','{insert JSON blob here}'); + +Alternatively, the JSON can be stored in a separate file and its URL passed to the Machine constructor: + + new Machine('ti57','ti57.json'); diff --git a/modules/devices/device.js b/modules/devices/device.js index c1f9ad5cf7..75955ef18a 100644 --- a/modules/devices/device.js +++ b/modules/devices/device.js @@ -43,6 +43,11 @@ var DEBUG = true; // (window.location.hostname == "pcjs" || window.location.host */ var MACHINE = "Machine"; +/** + * @define {number} + */ +var VERSION = 0; + /** * The following properties are the standard set of properties a Device's config object may contain. * Other devices will generally define their own extended versions (eg, LEDConfig, InputConfig, etc). @@ -196,9 +201,9 @@ class Device { if (element) { this.bindings[binding] = element; this.addBinding(binding, element); - } else { - if (!fDirectBindings) this.println("unable to find device ID: " + id); + continue; } + if (DEBUG && !fDirectBindings) this.println("unable to find device ID: " + id); } } @@ -305,7 +310,7 @@ class Device { * value, so it is the responsibility of the component with overridable properties to validate them. */ if (config['overrides']) { - let parms = Device.getURLParms(); + let parms = this.getURLParms(); for (let prop in parms) { if (config['overrides'].indexOf(prop) >= 0) { let value; @@ -621,13 +626,112 @@ class Device { return /** @type {string} */ (this.getDefault(idConfig, defaultValue)); } + /** + * getHost() + * + * @this {Device} + * @return {string} + */ + getHost() + { + return ("http://" + (window? window.location.host : "localhost")); + } + + /** + * getHostURL() + * + * @this {Device} + * @return {string|null} + */ + getHostURL() + { + return (window? window.location.href : null); + } + + /** + * getHostProtocol() + * + * @this {Device} + * @return {string} + */ + getHostProtocol() + { + return (window? window.location.protocol : "file:"); + } + + /** + * getResource(sURL, done) + * + * Request the specified resource, and once the request is complete, notify done(). + * + * done() is passed four parameters: + * + * done(sURL, sResource, readyState, nErrorCode) + * + * readyState comes from the request's 'readyState' property, and the operation should not be considered complete + * until readyState is 4. + * + * If nErrorCode is zero, sResource should contain the requested data; otherwise, an error occurred. + * + * @param {string} sURL + * @param {function(string,string,number,number)} done + */ + getResource(sURL, done) + { + let nErrorCode = 0, sResource = null; + + if (DEBUG) { + /* + * The larger resources we put on archive.pcjs.org should also be available locally. + * + * NOTE: "http://archive.pcjs.org" is now "https://s3-us-west-2.amazonaws.com/archive.pcjs.org" + */ + sURL = sURL.replace(/^(http:\/\/archive\.pcjs\.org|https:\/\/s3-us-west-2\.amazonaws\.com\/archive\.pcjs\.org)(\/.*)\/([^\/]*)$/, "$2/archive/$3"); + } + + let xmlHTTP = (window.XMLHttpRequest? new window.XMLHttpRequest() : new window.ActiveXObject("Microsoft.XMLHTTP")); + xmlHTTP.onreadystatechange = function() + { + if (xmlHTTP.readyState !== 4) { + done(sURL, sResource, xmlHTTP.readyState, nErrorCode); + return; + } + + /* + * The following line was recommended for WebKit, as a work-around to prevent the handler firing multiple + * times when debugging. Unfortunately, that's not the only XMLHttpRequest problem that occurs when + * debugging, so I think the WebKit problem is deeper than that. When we have multiple XMLHttpRequests + * pending, any debugging activity means most of them simply get dropped on floor, so what may actually be + * happening are mis-notifications rather than redundant notifications. + * + * xmlHTTP.onreadystatechange = undefined; + */ + sResource = xmlHTTP.responseText; + + /* + * The normal "success" case is an HTTP status code of 200, but when testing with files loaded + * from the local file system (ie, when using the "file:" protocol), we have to be a bit more "flexible". + */ + if (xmlHTTP.status == 200 || !xmlHTTP.status && sResource.length && this.getHostProtocol() == "file:") { + // if (MAXDEBUG) Web.log("xmlHTTP.onreadystatechange(" + sURL + "): returned " + sResource.length + " bytes"); + } + else { + nErrorCode = xmlHTTP.status || -1; + } + done(sURL, sResource, xmlHTTP.readyState, nErrorCode); + }; + + xmlHTTP.open("GET", sURL, true); + xmlHTTP.send(); + } + /** * getURLParms(sParms) * * @param {string} [sParms] containing the parameter portion of a URL (ie, after the '?') * @returns {Object} containing properties for each parameter found */ - static getURLParms(sParms) + getURLParms(sParms) { let parms = Device.URLParms; if (!parms) { @@ -962,7 +1066,7 @@ class Device { } } if (precision) { - arg = Math.trunc((arg - Math.trunc(arg)) * Math.pow(10, precision)); + arg = Math.round((arg - Math.trunc(arg)) * Math.pow(10, precision)); s += '.' + ("0000000000" + Math.abs(arg)).slice(-precision); } buffer += s; @@ -1028,7 +1132,7 @@ Device.CATEGORY = { }; Device.COMMANDS = [ - "c\tset category" + "c\t\tset category" ]; Device.HANDLER = { diff --git a/modules/devices/input.js b/modules/devices/input.js index 56803925eb..605e05531c 100644 --- a/modules/devices/input.js +++ b/modules/devices/input.js @@ -753,4 +753,4 @@ Input.KEYCODE = { // keyCode from keydown/keyup events Input.BUTTON_DELAY = 50; // minimum number of milliseconds to ensure between button presses and releases -Input.VERSION = 1.11; +Input.VERSION = VERSION || 1.20; diff --git a/modules/devices/led.js b/modules/devices/led.js index 876a4fbfee..4983045425 100644 --- a/modules/devices/led.js +++ b/modules/devices/led.js @@ -1283,4 +1283,4 @@ LED.SYMBOL_SEGMENTS = { '.': ['P'] }; -LED.VERSION = 1.11; +LED.VERSION = VERSION || 1.20; diff --git a/modules/devices/ledctrl.js b/modules/devices/ledctrl.js index 178e2745ee..ff73ad36d4 100644 --- a/modules/devices/ledctrl.js +++ b/modules/devices/ledctrl.js @@ -883,7 +883,7 @@ class Chip extends Device { this.println("Chip state error: " + err.message); return false; } - if (!Device.getURLParms()['message'] && !Device.getURLParms()['pattern'] && !Device.getURLParms()[Chip.BINDING.IMAGE_SELECTION]) { + if (!this.getURLParms()['message'] && !this.getURLParms()['pattern'] && !this.getURLParms()[Chip.BINDING.IMAGE_SELECTION]) { let stateLEDs = state['stateLEDs'] || state[1]; if (stateLEDs && this.leds) { if (!this.leds.loadState(stateLEDs)) return false; @@ -1749,6 +1749,6 @@ Chip.FONTS = { } }; -Chip.VERSION = 1.11; +Chip.VERSION = VERSION || 1.20; MACHINE = "LEDs"; diff --git a/modules/devices/machine.js b/modules/devices/machine.js index 7bdc43ed34..e32fb2751a 100644 --- a/modules/devices/machine.js +++ b/modules/devices/machine.js @@ -31,11 +31,19 @@ /** * @class {Machine} * @unrestricted + * @property {Chip} chip + * @property {string} sConfigFile + * @property {boolean} fConfigLoaded + * @property {boolean} fPageLoaded */ class Machine extends Device { /** * Machine(idMachine, sConfig) - * + * + * If sConfig contains a JSON object definition, then we parse it immediately and save the result in this.config; + * otherwise, we assume it's the URL of an JSON object definition, so we request the resource, and once it's loaded, + * we parse it. + * * Sample config: * * { @@ -117,42 +125,44 @@ class Machine extends Device { constructor(idMachine, sConfig) { super(idMachine, idMachine, Machine.VERSION); - try { - this.config = JSON.parse(sConfig); - let config = this.config[idMachine]; - this.checkVersion(config); - this.checkOverrides(config); - this.addBindings(config['bindings']); - this.fAutoStart = (config['autoStart'] !== false); - this.fAutoRestore = (config['autoRestore'] !== false); - } catch(err) { - let sError = err.message; - let match = sError.match(/position ([0-9]+)/); - if (match) { - sError += " ('" + sConfig.substr(+match[1], 40).replace(/\s+/g, ' ') + "...')"; - } - this.println("machine '" + idMachine + "' initialization error: " + sError); + + let machine = this; + this.chip = null; + this.sConfigFile = ""; + this.fConfigLoaded = this.fPageLoaded = false; + + sConfig = sConfig.trim(); + + if (sConfig[0] == '{') { + this.loadConfig(sConfig); + } else { + this.sConfigFile = sConfig; + this.getResource(this.sConfigFile, function onLoadConfig(sURL, sResource, readyState, nErrorCode) { + if (readyState == 4) { + if (!nErrorCode && sResource) { + machine.loadConfig(sResource); + machine.initDevices(); + } + else { + machine.printf("Error (%d) loading configuration: %s\n", nErrorCode, sURL); + } + } + }); } + /* * Device initialization is now deferred until after the page is fully loaded, for the benefit * of devices (eg, Input) that may be dependent on page resources. * * Strangely, for these page events, I must use the window object rather than the document object. */ - let machine = this, chip = null; - window.addEventListener('load', function onLoad(event) { - chip = machine.initDevices(); - if (chip) { - if (chip.onLoad && machine.fAutoRestore) chip.onLoad(); - if (chip.onPower && machine.fAutoStart) chip.onPower(true); - } + window.addEventListener('load', function onLoadPage(event) { + machine.fPageLoaded = true; + machine.initDevices(); }); let sEvent = this.isUserAgent("iOS")? 'pagehide' : (this.isUserAgent("Opera")? 'unload' : undefined); - window.addEventListener(sEvent || 'beforeunload', function onUnload(event) { - if (chip) { - if (chip.onSave) chip.onSave(); - if (chip.onPower) chip.onPower(false); - } + window.addEventListener(sEvent || 'beforeunload', function onUnloadPage(event) { + machine.killDevices(); }); } @@ -163,53 +173,101 @@ class Machine extends Device { * to ensure that their timer services are available to other devices. * * @this {Machine} - * @returns {Chip|undefined} */ initDevices() { - let idDevice, sClass, device, chip; - for (let iClass = 0; iClass < Machine.CLASSORDER.length; iClass++) { - for (idDevice in this.config) { - try { - let config = this.config[idDevice], sStatus = ""; - sClass = config['class']; - if (sClass != Machine.CLASSORDER[iClass]) continue; - switch (sClass) { - case Machine.CLASS.CHIP: - device = new Chip(this.idMachine, idDevice, config); - chip = device; - break; - case Machine.CLASS.INPUT: - device = new Input(this.idMachine, idDevice, config); - break; - case Machine.CLASS.LED: - device = new LED(this.idMachine, idDevice, config); - break; - case Machine.CLASS.ROM: - device = new ROM(this.idMachine, idDevice, config); - if (device.config['revision']) sStatus = "revision " + device.config['revision']; - break; - case Machine.CLASS.TIME: - device = new Time(this.idMachine, idDevice, config); - break; - case Machine.CLASS.MACHINE: - this.printf("PCjs %s v%3.2f\n", config['name'], Machine.VERSION); - this.println(Machine.COPYRIGHT); - this.println(Machine.LICENSE); - continue; - default: - this.println("unrecognized device class: " + sClass); - continue; + if (this.fConfigLoaded && this.fPageLoaded) { + for (let iClass = 0; iClass < Machine.CLASSORDER.length; iClass++) { + for (let idDevice in this.config) { + let device, sClass; + try { + let config = this.config[idDevice], sStatus = ""; + sClass = config['class']; + if (sClass != Machine.CLASSORDER[iClass]) continue; + switch (sClass) { + case Machine.CLASS.CHIP: + device = new Chip(this.idMachine, idDevice, config); + this.chip = device; + break; + case Machine.CLASS.INPUT: + device = new Input(this.idMachine, idDevice, config); + break; + case Machine.CLASS.LED: + device = new LED(this.idMachine, idDevice, config); + break; + case Machine.CLASS.ROM: + device = new ROM(this.idMachine, idDevice, config); + if (device.config['revision']) sStatus = "revision " + device.config['revision']; + break; + case Machine.CLASS.TIME: + device = new Time(this.idMachine, idDevice, config); + break; + case Machine.CLASS.MACHINE: + this.printf("PCjs %s v%3.2f\n", config['name'], Machine.VERSION); + this.println(Machine.COPYRIGHT); + this.println(Machine.LICENSE); + if (this.sConfigFile) this.println("Configuration: " + this.sConfigFile); + continue; + default: + this.println("unrecognized device class: " + sClass); + continue; + } + this.println(sClass + " device initialized" + (sStatus? " (" + sStatus + ")" : "")); + } + catch (err) { + this.println("error initializing " + sClass + " device '" + idDevice + "':\n" + err.message); + this.removeDevice(idDevice); } - this.println(sClass + " device initialized" + (sStatus? " (" + sStatus + ")" : "")); - } - catch(err) { - this.println("error initializing " + sClass + " device '" + idDevice + "':\n" + err.message); - this.removeDevice(idDevice); } } + let chip = this.chip; + if (chip) { + if (chip.onLoad && this.fAutoRestore) chip.onLoad(); + if (chip.onPower && this.fAutoStart) chip.onPower(true); + } + } + } + + /** + * killDevices() + * + * @this {Machine} + */ + killDevices() + { + let chip; + if (chip = this.chip) { + if (chip.onSave) chip.onSave(); + if (chip.onPower) chip.onPower(false); + } + + } + + /** + * loadConfig(sConfig) + * + * @this {Machine} + * @param {string} sConfig + */ + loadConfig(sConfig) + { + try { + this.config = JSON.parse(sConfig); + let config = this.config[this.idMachine]; + this.checkVersion(config); + this.checkOverrides(config); + this.addBindings(config['bindings']); + this.fAutoStart = (config['autoStart'] !== false); + this.fAutoRestore = (config['autoRestore'] !== false); + this.fConfigLoaded = true; + } catch(err) { + let sError = err.message; + let match = sError.match(/position ([0-9]+)/); + if (match) { + sError += " ('" + sConfig.substr(+match[1], 40).replace(/\s+/g, ' ') + "...')"; + } + this.println("machine '" + this.idMachine + "' initialization error: " + sError); } - return chip; } } @@ -234,6 +292,6 @@ Machine.CLASSORDER = [ Machine.COPYRIGHT = "Copyright © 2012-2018 Jeff Parsons "; Machine.LICENSE = "License: GPL version 3 or later "; -Machine.VERSION = 1.11; +Machine.VERSION = VERSION || 1.20; window[MACHINE] = Machine; diff --git a/modules/devices/rom.js b/modules/devices/rom.js index c9e1e07361..d8fe446292 100644 --- a/modules/devices/rom.js +++ b/modules/devices/rom.js @@ -238,4 +238,4 @@ ROM.BINDING = { CELLDESC: "cellDesc" }; -ROM.VERSION = 1.11; +ROM.VERSION = VERSION || 1.20; diff --git a/modules/devices/time.js b/modules/devices/time.js index 9a51428582..bc8f16059d 100644 --- a/modules/devices/time.js +++ b/modules/devices/time.js @@ -1107,4 +1107,4 @@ Time.BINDING = { Time.YIELDS_PER_SECOND = 120; Time.YIELDS_PER_UPDATE = 60; -Time.VERSION = 1.11; +Time.VERSION = VERSION || 1.20; diff --git a/modules/devices/tms1500.js b/modules/devices/tms1500.js index 519c7b1ae6..29eb34e55e 100644 --- a/modules/devices/tms1500.js +++ b/modules/devices/tms1500.js @@ -1200,6 +1200,9 @@ class Chip extends Device { /** * onLoad() * + * Automatically called by the Machine device after all other devices have been powered up (eg, during + * a page load event) AND the machine's 'autoRestore' property is true. It is called BEFORE onPower(). + * * @this {Chip} */ onLoad() @@ -1210,8 +1213,9 @@ class Chip extends Device { /** * onPower(fOn) * - * Automatically called by the Machine device after all other devices have been powered up (eg, after - * a page load event), as well as when all devices are being powered down (eg, before a page unload event). + * Automatically called by the Machine device after all other devices have been powered up (eg, during + * a page load event) AND the machine's 'autoStart' property is true, with fOn set to true. It is also + * called before all devices are powered down (eg, during a page unload event), with fOn set to false. * * May subsequently be called by the Input device to provide notification of a user-initiated power event * (eg, toggling a power button); in this case, fOn should NOT be set, so that no state is loaded or saved. @@ -1253,6 +1257,9 @@ class Chip extends Device { /** * onSave() * + * Automatically called by the Machine device before all other devices have been powered down (eg, during + * a page unload event). + * * @this {Chip} */ onSave() @@ -1752,6 +1759,6 @@ Chip.COMMANDS = [ "u [addr] [n]\tdisassemble (at addr)" ]; -Chip.VERSION = 1.11; +Chip.VERSION = VERSION || 1.20; MACHINE = "TMS1500"; diff --git a/modules/markout/lib/markout.js b/modules/markout/lib/markout.js index 1a210c3aef..0a8db3fb6e 100644 --- a/modules/markout/lib/markout.js +++ b/modules/markout/lib/markout.js @@ -455,7 +455,7 @@ MarkOut.prototype.convertMD = function(sIndent) */ var aStyleDefs = aMatch[1].match(/\nstyles:([\s\S]*?)\n([^\s]|$)/); if (aStyleDefs) { - var reStyle = /\n ([a-z_.][a-z0-9-]*):\n/gi; + var reStyle = /\n {2}([a-z_.][a-z0-9-]*):\n/gi; var aStyles = aStyleDefs[1].split(reStyle); /* * Since the preceding RegExp contains a capture group (representing the ID for the style), @@ -1263,7 +1263,7 @@ MarkOut.prototype.convertMDMachineLinks = function(sBlock) machine = this.aMachineDefs[sMachineID]; sMachineType = machine['type'] || "pcx86"; sMachineXMLFile = machine['config'] || this.sMachineFile || "machine.xml"; - if (sMachineXMLFile.match(/^\s*{/)) { + if (sMachineXMLFile.match(/^\s*{/) || sMachineXMLFile.endsWith(".json")) { sMachineXMLFile = "{}"; machine['parms'] = ""; }