summaryrefslogtreecommitdiff
path: root/frontends/calculator/CEdev/examples/fileio_factorize
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2019-04-10 15:14:00 -0400
committerAndrew Opalach <andrew@akon.city> 2019-04-10 15:14:00 -0400
commit60699af63f92f43cc4b4b9e3050fcdd2a8468281 (patch)
tree20a18af2774daa43ae7f4352dd032a24f7e06075 /frontends/calculator/CEdev/examples/fileio_factorize
parent4527bc20241068731c62101d0467d416119ec0c4 (diff)
downloadcetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.gz
cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.bz2
cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.zip
add opengl fronend, remove sdl frontend, refactor build system
Diffstat (limited to 'frontends/calculator/CEdev/examples/fileio_factorize')
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson37
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/makefile15
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/readme.md12
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/screenshot.pngbin0 -> 2335 bytes
-rw-r--r--frontends/calculator/CEdev/examples/fileio_factorize/src/main.c75
5 files changed, 139 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson
new file mode 100644
index 0000000..1e97c78
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson
@@ -0,0 +1,37 @@
+{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch", --> type input in Ans ; expect known output back in Ans
+ "delay|500",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hash|2"
+ ],
+
+******* Broken JSON TODO :
+******* implement autotester var handling feature *******
+
+ "hashes": {
+ "1": {
+ "description": "Variable Ans is a list [TODO]",
+ "start": "var_complex_B",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/makefile b/frontends/calculator/CEdev/examples/fileio_factorize/makefile
new file mode 100644
index 0000000..1f1b36b
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/makefile
@@ -0,0 +1,15 @@
+# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/readme.md b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md
new file mode 100644
index 0000000..196474c
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md
@@ -0,0 +1,12 @@
+### FileIO Factorize Demo
+
+This demo demonstrates a way to compute the factors of a input number in Ans
+
+![Screenshot](screenshot.png)
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
+
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png b/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png
new file mode 100644
index 0000000..924c14d
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/screenshot.png
Binary files differ
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c
new file mode 100644
index 0000000..3be9992
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c
@@ -0,0 +1,75 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <fileioc.h>
+
+void prime_factors(unsigned int n);
+
+int primes[512];
+unsigned int total_primes = 0;
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ real_t *real_in;
+ list_t *list_out;
+ unsigned i;
+ int in;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Get the answer variable */
+ if (ti_RclVar(TI_REAL_TYPE, ti_Ans, &real_in)) return;
+ if ((in = os_RealToInt24(real_in)) < 1) return;
+
+ /* Get the prime factors of the input */
+ prime_factors((unsigned)in);
+
+ /* Create a list to store the primes */
+ if (!total_primes) return;
+ list_out = ti_MallocList(total_primes); // Same as ti_AllocList(total_primes, malloc)
+
+ /* Write out the list of primes */
+ for (i=0; i<total_primes; i++) {
+ list_out->items[i] = os_Int24ToReal(primes[i]);
+ }
+
+ /* Set the new answer */
+ ti_SetVar(TI_REAL_LIST_TYPE, ti_Ans, list_out);
+}
+
+/* Store to an array all the prime numbers */
+void prime_factors(unsigned int n) {
+ unsigned int div, end;
+
+ while (!(n % 2)) {
+ primes[total_primes++] = 2;
+ n /= 2;
+ }
+
+ if (n == 1) return;
+
+ div = 3;
+ end = sqrt(n);
+
+ while (div <= end) {
+ if (!(n % div)) {
+ do {
+ primes[total_primes++] = div;
+ n /= div;
+ } while (!(n % div));
+ if (n == 1) return;
+ end = sqrt(n);
+ }
+ div += 2;
+ }
+
+ primes[total_primes++] = n;
+}