commit 9f20121db44d67387d2838f76c81d087d94e5d49 Author: Lephenixnoir Date: Sat Apr 17 15:35:23 2021 +0200 21 calculators, JSON convert, HTML export, all photos diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b16dcc --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__ + +# Output folder +/out diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..23758e7 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +#! /usr/bin/env make -f + +all: json json-min html-fr html-en + +json: out/calcdb.json +json-min: out/calcdb-min.json +html-fr: out/calcdb-fr.html +html-en: out/calcdb-en.html + +DEPS = $(wildcard calculators/* lang/*) model.yaml tools/calcdb.py | out/ + +out/calcdb.json: tools/convert-json.py $(DEPS) + tools/convert-json.py > out/calcdb.json + +out/calcdb-min.json: tools/convert-json.py $(DEPS) + tools/convert-json.py --min > out/calcdb-min.json + +out/calcdb-fr.html: tools/render-html.py $(DEPS) + tools/render-html.py fr > out/calcdb-fr.html + +out/calcdb-en.html: tools/render-html.py $(DEPS) + tools/render-html.py en > out/calcdb-en.html + +%/: + @ mkdir -p $@ + +.PHONY: json json-min html-fr html-en diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f42549 --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# Base de données des calculatrices CASIO + +Ce dépôt contient des images, métadonnées et propriétés sur les calculatrices +graphiques et formelles CASIO modernes (la plupart des modèles après 2000). Ces +informations sont utilisées par l'index des calculatrices sur Planète Casio. + +## Format + +Chaque calculatrice est décrite par un fichier YAML dans le dossier +`calculators`. Les propriétés sont classées en catégories avec différents +champs dans chaque catégorie. Les champs peuvent être de types différents et +les valeurs autorisées sont au cas-par-cas, mais souvent on rencontre: + +* Du texte brut : `full_name: "Graph 90+E"` +* Des booléens : `touch_screen: no` +* Des entiers: `default_cpu_frequency: 56000000 # Hz` +* Des énumérations : `audience: audience.high_school` + +Les énumérations commençent toujours par le nom du champ. Beaucoup de champs +qui acceptent des énumérations acceptent aussi des booléens. Certains champs +acceptent des listes. + +Le fichier `model.yaml` décrit le modèle des données : il liste toutes les +catégories, tous les champs, et toutes les calculatrices ; il donnes les unités +pour les champs numériques concernés ; et il attribute des scores aux valeurs +des champs pour permettre de faire des comparatifs. + +Les valeurs peuvent contenir du Markdown ainsi que que des marqueurs de la +forme `@lang{...}` pour insérer du texte qui n'est visible que quand les +données sont affichées dans une certaine langue. Les fichiers `lang/*.yaml` +traduisent les noms des catégories, des champs, et les valeurs énumérées, et +`@lang{...}` n'est utilisé que pour les quelques passages de texte qui n'y +sont pas listés. + +## Outils et utilisation + +On peut soit utiliser la base directement en YAML, soit utiliser le module +Python `calcdb` dans le dossier `tools`. On peut aussi utiliser la version JSON +générée avec `tools/convert-json.py` si c'est plus pratique. + +Trois outils sont fournis dans `tools` : + +* La bibliothèque `calcdb.py` fournit de quoi manipuler la base en Python. La + classe principale est `CalcDB`, qui charge les fichiers YAML depuis la racine + de ce dépôt. Une class `Lang` représente les différents langages, et présente + quelques méthodes pour simplifier la traduction. Enfin, une fonction + `render()` implémente toutes les règles d'affichage pour fournir le texte à + afficher pour chaque valeur dans un tableau. + +* Le script `convert-json.py` permet de convertir la base en JSON. Utilisez + `make json` ou `make json-min` et récupérez le fichier de sortie dans `out`. + +* Le script `render-html.py` génère un tableau HTML avec les informations. Ce + tableau contient des attributs CSS et HTML permettant de le manipuler en + Javascript, et est notamment utilisé sur l'index des calculatrices de Planète + Casio. Utilisez `make html-fr` ou `make html-en` pour générer une page web + autonome pour consulter le tableau, ou `make index-fr` ou `make index-en` + pour générer la version utilisée sur Planète Casio. + +## Résumé des dossiers + +* `calculators`: Fichiers YAML avec les propriétés de tous les modèles. +* `lang`: Traduction des noms de catégories, champs, et valeurs énumérées. +* `model.yaml`: Liste de catégories, champs, calculatrices, et scores pour + toutes les valeurs énumérées comparables. +* `images`: Petites et grandes photos de tous les modèles, en JPG. Les grandes + photos sont généralements limitées à 1000 pixels de haut ; les petites sont + toutes fixées à 150 pixels de haut. Le dossier `small` a une image + supplémentaire `g35+.jpg` avec les deux générations de Graph 35+ + côte-à-côte. +* `tools`: Scripts Python pour manipuler la base de données, et un module + Python `calcdb` réutilisable pour extraire efficacement des informations. + +Ces dossiers ne sont pas indexés par le dépôt : +* `out`: Dossier de sortie pour tous les fichiers générés par les scripts. + +## TODO + +* Ajouter des liens vers les émulateurs. +* Télécharger les manuels et les héberger sur Planète Casio. +* Télécharger tous les OS updaters, les héberger sur Planète Casio, et les + ajouter à la base de données. diff --git a/calculators/cg20.yaml b/calculators/cg20.yaml new file mode 100644 index 0000000..062e6d1 --- /dev/null +++ b/calculators/cg20.yaml @@ -0,0 +1,80 @@ +cg20: + general: + full_name: "Prizm" + international_name: "fx-CG 10/20" + year_launched: 2011 + exam_mode: no + predecessor: no + successor: g90+e + family: family.prizm + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.khicas_cg + packaging: + size: [20.6, 89.5, 189] # mm + weight: 230 # g + power: power.4aaa + power_runtime: 140 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.prizmsdk, add_ins_sdk.fxsdk] + python: no + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 56000000 # Hz + overclock_tools: ["Pover", "Ptune"] + max_cpu_frequency: 94000000 # Hz + ram_chip: 2000000 # bytes + rom_chip: 32000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 16000000 # bytes + sd_card: no + devices: + display: display.r61524 + backlit_display: backlit_display.brightness_5levels + color_mode: color_mode.rgb565 + touch_screen: no + display_size_pixels: [396, 224, "384x216"] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.scsi, protocols.p7] + transfer_software: [transfer_software.file_browser] + misc: + price_range: [120, 180] # euros + last_os_version: "3.12" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20110218025938/http://www.casio-education.fr/calculatrice_casio_fx-CG20.html) (2011)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fxcg10_20/) (2021)" + manuals: + software_french_fr: + "2.02": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v202_FR.pdf" + "3.10": "https://support.casio.com/fr/manual/004/fx-CG10_20_Soft_v310_FR.pdf" + "3.11": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v311_FR.pdf" + "3.12": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v312_FR.pdf" + software_international_fr: + "2.02": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v202_FR.pdf" + "3.10": "https://support.casio.com/fr/manual/004/fx-CG10_20_Soft_v310_FR.pdf" + "3.11": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v311_FR.pdf" + "3.12": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Soft_v312_FR.pdf" + software_international_en: + "2.02": "https://support.casio.com/en/manual/004/fx-CG10_20_Soft_v202_EN.pdf" + "3.10": "https://support.casio.com/en/manual/004/fx-CG10_20_Soft_v310_EN.pdf" + "3.11": "https://support.casio.com/en/manual/004/fx-CG10_20_Soft_v311_EN.pdf" + "3.12": "https://support.casio.com/en/manual/004/fx-CG10_20_Soft_v312_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG10_20_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/en/manual/004/fx-CG10_20_Hard_EN.pdf" diff --git a/calculators/cp300.yaml b/calculators/cp300.yaml new file mode 100644 index 0000000..2b2ac86 --- /dev/null +++ b/calculators/cp300.yaml @@ -0,0 +1,66 @@ +cp300: + general: + full_name: "Classpad 300" + international_name: "Classpad 300" + year_launched: 2003 + exam_mode: no + predecessor: no + successor: cp330 + family: family.cas + active: no + teaching: + audience: audience.high_school_college + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.cas + cas: cas.native + packaging: + size: [21, 84, 185.5] # mm + weight: 280 # g + power: power.4aaa + power_runtime: null + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.cpsdk] + python: no + hardware: + mpu: "SH7291" + cpu: "SH3..." + default_cpu_frequency: null + overclock_tools: [] + max_cpu_frequency: null + ram_chip: null + rom_chip: 16000000 # bytes + ram_storage: 515000 # bytes + rom_storage: 4500000 # bytes + sd_card: no + devices: + display: null + backlit_display: no + color_mode: color_mode.mono + touch_screen: yes + display_size_pixels: [160, 240] # pixels + display_size_text: display_size_text.variable + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: null + transfer_software: [transfer_software.facp1, transfer_software.classpad_manager, transfer_software.classpad_addin_installer] + misc: + price_range: [140, 200] # euros + last_os_version: "3.03" + links: + casio_france: no + casio_international: no + manuals: + software_french_fr: + "@fr{Manuel}@en{Manual} (2004)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP300_UsersGuide_FR.pdf" + software_international_fr: + "@fr{Manuel}@en{Manual} (2004)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP300_UsersGuide_FR.pdf" + software_international_en: + "@fr{Manuel}@en{Manual} (2004)": "https://support.casio.com/en/manual/004/CP300_UsersGuide_EN.pdf" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/cp330+.yaml b/calculators/cp330+.yaml new file mode 100644 index 0000000..70d4a52 --- /dev/null +++ b/calculators/cp330+.yaml @@ -0,0 +1,71 @@ +cp330+: + general: + full_name: "Classpad 330+" + international_name: "Classpad 330+" + year_launched: 2012 + exam_mode: no + predecessor: cp330 + successor: cp400 + family: family.cas + active: no + teaching: + audience: audience.high_school_college + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.cas + cas: cas.native + packaging: + size: [21, 84, 189.5] # mm + weight: 260 # g + power: power.4aaa + power_runtime: 140 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.no_sdk + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH-4..." + default_cpu_frequency: null + overclock_tools: [] + max_cpu_frequency: null + ram_chip: null + rom_chip: 16000000 # bytes + ram_storage: 515000 # bytes + rom_storage: 5400000 # bytes + sd_card: no + devices: + display: null + backlit_display: no + color_mode: color_mode.mono + touch_screen: yes + display_size_pixels: [160, 240] # pixels + display_size_text: display_size_text.variable + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: null + transfer_software: [transfer_software.facp1, transfer_software.classpad_manager, transfer_software.classpad_addin_installer] + misc: + price_range: [140, 200] # euros + last_os_version: "3.10" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20120516022353/http://www.casio-education.fr/calculatrice_casio_classpad330.html) (2012)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/cg/cp330plus/) (2021)" + manuals: + software_french_fr: + "3.10": "https://support.casio.com/fr/manual/004/CP330PLUSver310_Soft_FR.pdf" + software_international_fr: + "3.10": "https://support.casio.com/fr/manual/004/CP330PLUSver310_Soft_FR.pdf" + software_international_en: + "3.10": "https://support.casio.com/en/manual/004/CP330PLUSver310_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330PLUS_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330PLUS_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/en/manual/004/CP330PLUS_Hard_EN.pdf" diff --git a/calculators/cp330.yaml b/calculators/cp330.yaml new file mode 100644 index 0000000..8485042 --- /dev/null +++ b/calculators/cp330.yaml @@ -0,0 +1,79 @@ +cp330: + general: + full_name: "Classpad 300+/330" + international_name: "Classpad 300+/330" + year_launched: [2005,2007] + exam_mode: no + predecessor: cp300 + successor: cp330+ + family: family.cas + active: no + teaching: + audience: audience.high_school_college + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.cas + cas: cas.native + packaging: + size: [21, 84, 189.5] # mm + weight: 280 # g + power: power.4aaa + power_runtime: 140 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.cpsdk] + python: no + hardware: + mpu: "SH7291" + cpu: "SH3..." + default_cpu_frequency: null + overclock_tools: [] + max_cpu_frequency: null + ram_chip: null + rom_chip: 16000000 # bytes + ram_storage: 515000 # bytes + rom_storage: 5400000 # bytes + sd_card: no + devices: + display: null + backlit_display: no + color_mode: color_mode.mono + touch_screen: yes + display_size_pixels: [160, 240] # pixels + display_size_text: display_size_text.variable + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: null + transfer_software: [transfer_software.facp1, transfer_software.classpad_manager, transfer_software.classpad_addin_installer] + misc: + price_range: [140, 200] # euros + last_os_version: "3.06" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20080914095625/http://www.casio-education.fr/classpad330.php) (2008)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/cg/cp_v302/) (2021)" + manuals: + software_french_fr: + "2.20": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP300ver022_FR.pdf" + "3.03": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330ver303_FR.pdf" + "3.04": "https://support.casio.com/fr/manual/004/CP330ver304_FR.pdf" + "3.06": "https://support.casio.com/fr/manual/004/CP330ver306_Soft_FR.pdf" + software_international_fr: + "2.20": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP300ver022_FR.pdf" + "3.03": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330ver303_FR.pdf" + "3.04": "https://support.casio.com/fr/manual/004/CP330ver304_FR.pdf" + "3.06": "https://support.casio.com/fr/manual/004/CP330ver306_Soft_FR.pdf" + software_international_en: + "3.03": "https://support.casio.com/en/manual/004/CP330ver303_EN.pdf" + "3.04": "https://support.casio.com/en/manual/004/CP330ver304_EN.pdf" + "3.06": "https://support.casio.com/en/manual/004/CP330ver306_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330ver306_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/CP330ver306_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/en/manual/004/CP330ver306_Hard_EN.pdf" diff --git a/calculators/cp400+e.yaml b/calculators/cp400+e.yaml new file mode 100644 index 0000000..2920e09 --- /dev/null +++ b/calculators/cp400+e.yaml @@ -0,0 +1,69 @@ +cp400+e: + general: + full_name: "Classpad 400+E" + international_name: "fx-CP 400+E/fx-CG 500" + year_launched: 2016 + exam_mode: yes + predecessor: cp400 + successor: no + family: family.cas + active: yes + teaching: + audience: audience.high_school_college + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.cas + cas: cas.native + packaging: + size: [21.1, 89, 206] # mm + weight: 315 # g + power: power.4aaa + power_runtime: null + programming: + casio_basic: casio_basic.native + add_ins: add_ins.vendor_only + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH-4..." + default_cpu_frequency: 116000000 # Hz + overclock_tools: [] + max_cpu_frequency: 116000000 # Hz + ram_chip: 2000000 # bytes + rom_chip: 64000000 # bytes + ram_storage: 512000 # bytes + rom_storage: 5500000 # bytes + sd_card: no + devices: + display: null + backlit_display: yes + color_mode: color_mode.rgb565 + touch_screen: yes + display_size_pixels: [320, 528] # pixels + display_size_text: display_size_text.variable + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.scsi, protocols.p7] + transfer_software: [transfer_software.file_browser] + misc: + price_range: [140, 200] # euros + last_os_version: "2.01" + links: + casio_france: + "[Casio Éducation](https://www.casio-education.fr/produits/fx-cp400e/) (2021)" + casio_international: + "[casioeducation.com](https://www.casioeducation.com/products/calculators/graphing/fx-cg500prizm) (2021)" + manuals: + software_french_fr: + "@fr{Manuel}@en{Manual} (2016-2020)": "https://support.casio.com/fr/manual/004/ClassPadII_fx-CP400+E_UG_FR.pdf" + software_international_fr: + "@fr{Manuel}@en{Manual} (2017-2020)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG500_UG_FR.pdf" + software_international_en: + "fx-CP 400+E": "https://support.casio.com/storage/en/manual/pdf/EN/004/ClassPadII_fx-CP400+E_UG_EN.pdf" + "fx-CG 500": "https://support.casio.com/en/manual/004/fx-CG500_UG_EN.pdf" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/cp400.yaml b/calculators/cp400.yaml new file mode 100644 index 0000000..1fea6aa --- /dev/null +++ b/calculators/cp400.yaml @@ -0,0 +1,69 @@ +cp400: + general: + full_name: "Classpad 400" + international_name: "fx-CP 400/fx-CG 500" + year_launched: 2013 + exam_mode: no + predecessor: cp330+ + successor: cp400+e + family: family.cas + active: no + teaching: + audience: audience.high_school_college + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.cas + cas: cas.native + packaging: + size: [21.1, 89, 206] # mm + weight: 315 # g + power: power.4aaa + power_runtime: null + programming: + casio_basic: casio_basic.native + add_ins: add_ins.vendor_only + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH-4..." + default_cpu_frequency: 116000000 # Hz + overclock_tools: [] + max_cpu_frequency: 116000000 # Hz + ram_chip: 2000000 # bytes + rom_chip: 64000000 # bytes + ram_storage: 512000 # bytes + rom_storage: 5500000 # bytes + sd_card: no + devices: + display: null + backlit_display: yes + color_mode: color_mode.rgb565 + touch_screen: yes + display_size_pixels: [320, 528] # pixels + display_size_text: display_size_text.variable + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.scsi, protocols.p7] + transfer_software: [transfer_software.file_browser] + misc: + price_range: [140, 200] # euros + last_os_version: "2.01" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20130930030415/http://www.casio-education.fr/calculatrice_casio_fx-CP400.html) (2013)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/cg/cp2/) (2021)" + manuals: + software_french_fr: + "@fr{Manuel}@en{Manual} (2014-2020)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/ClassPadII_UG_FR.pdf" + software_international_fr: + "@fr{Manuel}@en{Manual} (2017-2020)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG500_UG_FR.pdf" + software_international_en: + "fx-CP 400": "https://support.casio.com/en/manual/004/ClassPadII_UG_EN.pdf" + "fx-CG 500": "https://support.casio.com/en/manual/004/fx-CG500_UG_EN.pdf" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/g25+e.yaml b/calculators/g25+e.yaml new file mode 100644 index 0000000..d4ec354 --- /dev/null +++ b/calculators/g25+e.yaml @@ -0,0 +1,70 @@ +g25+e: + general: + full_name: "Graph 25+E" + international_name: "fx-7400G II" + year_launched: 2015 + exam_mode: exam_mode.bad + predecessor: g25+pro + successor: g25+e2 + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: math_input.hidden_option + pretty_print: pretty_print.hidden_option + matrices: no + complex_calculus: yes + symbolic_calculus: symbolic_calculus.Q + cas: no + packaging: + size: [21, 89, 181] # mm + weight: 205 # g + power: power.4aaa + power_runtime: 230 # hours + programming: + casio_basic: casio_basic.native + add_ins: no + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH-4A..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: [] + max_cpu_frequency: 29000000 # Hz + ram_chip: null + rom_chip: 2000000 # bytes + ram_storage: 20000 # bytes + rom_storage: no + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: no + protocols: [protocols.p7] + transfer_software: [transfer_software.sb88_fa124] + misc: + price_range: [40, 60] # euros + last_os_version: "2.09" + links: + casio_france: "[Casio Éducation](https://web.archive.org/web/20150506100103/http://www.casio-education.fr/calculatrice_casio_graph25plus-E.html) (2015)" + casio_international: "[edu.casio.com](https://edu.casio.com/products/graphic/fx7400g2/) (2021)" + manuals: + software_french_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.04": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.04": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g25+e2.yaml b/calculators/g25+e2.yaml new file mode 100644 index 0000000..11113d4 --- /dev/null +++ b/calculators/g25+e2.yaml @@ -0,0 +1,70 @@ +g25+e2: + general: + full_name: "Graph 25+E II" + international_name: "fx-7400G III" + year_launched: 2020 + exam_mode: exam_mode.bad + predecessor: g25+e + successor: no + family: family.mono + active: yes + teaching: + audience: audience.high_school + math_input: no + pretty_print: no + matrices: no + complex_calculus: yes + symbolic_calculus: symbolic_calculus.Q + cas: no + packaging: + size: [21, 89, 181] # mm + weight: 205 # g + power: power.4aaa + power_runtime: 230 # hours + programming: + casio_basic: casio_basic.native + add_ins: no + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 59000000 # Hz + overclock_tools: [] + max_cpu_frequency: 59000000 # Hz + ram_chip: null + rom_chip: 2000000 # bytes + ram_storage: 20000 # bytes + rom_storage: no + sd_card: no + devices: + display: display.t6k11_variant + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: no + protocols: [protocols.p7] + transfer_software: [transfer_software.sb88_fa124] + misc: + price_range: [40, 60] # euros + last_os_version: "3.20" + links: + casio_france: + "[Casio Éducation](https://www.casio-education.fr/produits/graph-25e/) (2021)" + casio_international: no + manuals: + software_french_fr: + "3.20": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+EII_Soft_v330_FR.pdf" + software_international_fr: + "3.20": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9750GIII_Soft_v321_FR.pdf" + software_international_en: + "3.20": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9750GIII_Soft_v321_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH25+EII_hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GIII_9750GIII_7400GIII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/EN/004/fx-9860GIII_9750GIII_7400GIII_Hard_EN.pdf" diff --git a/calculators/g25+pro.yaml b/calculators/g25+pro.yaml new file mode 100644 index 0000000..e9c2fd2 --- /dev/null +++ b/calculators/g25+pro.yaml @@ -0,0 +1,71 @@ +g25+pro: + general: + full_name: "Graph 25+ Pro" + international_name: "fx-7400G II" + year_launched: 2010 + exam_mode: no + predecessor: g25+ + successor: g25+e + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: math_input.hidden_option + pretty_print: pretty_print.hidden_option + matrices: no + complex_calculus: yes + symbolic_calculus: symbolic_calculus.Q + cas: no + packaging: + size: [21, 89, 181] # mm + weight: 205 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: no + add_ins_sdk: [] + python: no + hardware: + mpu: "SH7305" + cpu: "SH-4A..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: [] + max_cpu_frequency: 29000000 # Hz + ram_chip: null + rom_chip: 2000000 # bytes + ram_storage: 20000 # bytes + rom_storage: no + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: no + protocols: [protocols.p7] + transfer_software: [transfer_software.sb88_fa124] + misc: + price_range: [40, 60] # euros + last_os_version: "2.09" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20100902034231/http://www.casio-education.fr/calculatrice_casio_graph25plus.html) (2010)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx7400g2/) (2021)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + software_international_fr: + "2.04": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.04": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: no + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g35+.yaml b/calculators/g35+.yaml new file mode 100644 index 0000000..9ef656b --- /dev/null +++ b/calculators/g35+.yaml @@ -0,0 +1,69 @@ +g35+: + general: + full_name: "Graph 35+" + international_name: "fx-9750G+" + year_launched: 2008 + exam_mode: no + predecessor: g35 + successor: g35+usb3 + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.3, 87.5, 180.5] # mm + weight: 212 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.os_upgrade + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7355" + cpu: "SH3..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Rev-FX", "Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: [256000, 512000] # bytes + rom_chip: 2000000 # bytes + ram_storage: 62000 # bytes + rom_storage: rom_storage.os_upgrade + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: no + protocols: [protocols.p7] + transfer_software: [transfer_software.sb88_fa124] + misc: + price_range: [60, 100] # euros + last_os_version: "2.10" + + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20081118021017if_/http://www.casio-education.fr/graph35.php) (2008)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/9750gap/) (fx-9740GA+)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + "@fr{Probablement 1.x}@en{Likely 1.x}": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35_65_FR.pdf" + software_international_fr: no + software_international_en: + "@fr{Multi-parties}@en{Multi-part}": "https://support.casio.com/en/manual/manualfile.php?cid=004008016" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/g35+e.yaml b/calculators/g35+e.yaml new file mode 100644 index 0000000..d0983e5 --- /dev/null +++ b/calculators/g35+e.yaml @@ -0,0 +1,72 @@ +g35+e: + general: + full_name: "Graph 35+E" + international_name: "fx-9750G II" + year_launched: 2015 + exam_mode: yes + predecessor: g35+usb4 + successor: g35+e2 + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.3, 87.5, 180.5] # mm + weight: 195 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.os_upgrade + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune 2"] + max_cpu_frequency: 235000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: rom_storage.os_upgrade + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [60, 100] # euros + last_os_version: "2.10" + + links: + casio_france: "[Casio Éducation](https://web.archive.org/web/20150505191720/http://www.casio-education.fr/calculatrice_casio_graph35plus-E.html) (2015)" + casio_international: "[edu.casio.com](https://edu.casio.com/products/graphic/fx9750g2/) (2021)" + manuals: + software_french_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Soft_FR.pdf" + "2.10": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.04": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.04": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g35+e2.yaml b/calculators/g35+e2.yaml new file mode 100644 index 0000000..a0cccca --- /dev/null +++ b/calculators/g35+e2.yaml @@ -0,0 +1,77 @@ +g35+e2: + general: + full_name: "Graph 35+E II" + international_name: "fx-9750G/9860G III" + year_launched: 2019 + exam_mode: yes + predecessor: g35+e + successor: no + family: family.mono + active: yes + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.khicas_fx + packaging: + size: [18.7, 83.5, 175] # mm + weight: 190 # g + power: power.4aaa + power_runtime: 230 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.native_os310 + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 59000000 # Hz + overclock_tools: ["Ftune 3"] + max_cpu_frequency: 235000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 8000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 3000000 # bytes + sd_card: no + devices: + display: display.t6k11_variant + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.scsi, protocols.p7] + transfer_software: [transfer_software.file_browser] + misc: + price_range: [60, 100] # euros + last_os_version: "3.40" + links: + casio_france: + "[Casio Éducation](https://www.casio-education.fr/produits/graph-35e-ii/) (2021)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g3/) (2021)" + manuals: + software_french_fr: + "3.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+EII_Soft_v300_FR.pdf" + "3.10": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+EII_Soft_v310_FR.pdf" + "3.30": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+EII_Soft_v330_FR.pdf" + "3.40": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+EII_Soft_v340_FR.pdf" + software_international_fr: + "3.21": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9750GIII_Soft_v321_FR.pdf" + "3.40": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9750GIII_Soft_v340_FR.pdf" + software_international_en: + "3.21": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9750GIII_Soft_v321_EN.pdf" + "3.40": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GIII_Soft_v340_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH25+EII_hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GIII_9750GIII_7400GIII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GIII_9750GIII_7400GIII_Hard_EN.pdf" + diff --git a/calculators/g35+usb3.yaml b/calculators/g35+usb3.yaml new file mode 100644 index 0000000..2f149c4 --- /dev/null +++ b/calculators/g35+usb3.yaml @@ -0,0 +1,70 @@ +g35+usb3: + general: + full_name: "Graph 35+USB (SH3)" + international_name: "fx-9750G II" + year_launched: 2009 + exam_mode: no + predecessor: g35+ + successor: g35+usb4 + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.3, 87.5, 180.5] # mm + weight: 195 # g + power: power.4aaa + power_runtime: 230 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.os_upgrade + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7355" + cpu: "SH3..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: [256000, 512000] # bytes + rom_chip: 2000000 # bytes + ram_storage: 62000 # bytes + rom_storage: rom_storage.os_upgrade + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [60, 100] # euros + last_os_version: "2.10" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20091008213128/http://www.casio-education.fr/calculatrice_casio_graph35plus.html) (2009)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9750g2/) (2021)" + manuals: + software_french_fr: no + software_international_fr: + "2.04": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.04": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: no + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g35+usb4.yaml b/calculators/g35+usb4.yaml new file mode 100644 index 0000000..066dea1 --- /dev/null +++ b/calculators/g35+usb4.yaml @@ -0,0 +1,71 @@ +g35+usb4: + general: + full_name: "Graph 35+USB (SH4)" + international_name: "fx-9750G II" + year_launched: 2011 + exam_mode: no + predecessor: g35+usb3 + successor: g35+e + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.3, 87.5, 180.5] # mm + weight: 195 # g + power: power.4aaa + power_runtime: 230 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.os_upgrade + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7305" + cpu: "SH-4A..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune 2"] + max_cpu_frequency: 235000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: rom_storage.os_upgrade + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [60, 100] # euros + last_os_version: "2.10" + + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20091008213128/http://www.casio-education.fr/calculatrice_casio_graph35plus.html) (2009)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9750g2/) (2021)" + manuals: + software_french_fr: no + software_international_fr: + "2.04": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.04": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: no + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g75+.yaml b/calculators/g75+.yaml new file mode 100644 index 0000000..431e0a2 --- /dev/null +++ b/calculators/g75+.yaml @@ -0,0 +1,72 @@ +g75+: + general: + full_name: "Graph 75+" + international_name: "fx-9860G II" + year_launched: 2014 + exam_mode: no + predecessor: g75 + successor: g75+e + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.2, 91.5, 184] # mm + weight: 225 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune 2"] + max_cpu_frequency: 235000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: no + devices: + display: display.t6k11 + backlit_display: backlit_display.toggleable + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [80, 120] # euros + last_os_version: "2.09" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20091123175010/http://www.casio-education.fr:80/calculatrice_casio_graph75usb.html) (2009)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g2/) (2021)" + manuals: + software_french_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.09": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g75+e.yaml b/calculators/g75+e.yaml new file mode 100644 index 0000000..868b734 --- /dev/null +++ b/calculators/g75+e.yaml @@ -0,0 +1,72 @@ +g75+e: + general: + full_name: "Graph 75+E" + international_name: "fx-9860G II" + year_launched: 2015 + exam_mode: yes + predecessor: g75+ + successor: g35+e2 + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.2, 91.5, 184] # mm + weight: 220 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune 2"] + max_cpu_frequency: 235000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: no + devices: + display: display.t6k11 + backlit_display: backlit_display.toggleable + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [80, 120] # euros + last_os_version: "2.09" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20150506100108/http://www.casio-education.fr/calculatrice_casio_graph75plus-E.html) (2015)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g2/) (2021)" + manuals: + software_french_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.09": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g75.yaml b/calculators/g75.yaml new file mode 100644 index 0000000..af80956 --- /dev/null +++ b/calculators/g75.yaml @@ -0,0 +1,73 @@ +g75: + general: + full_name: "Graph 75" + international_name: "fx-9860G II" + year_launched: 2009 + exam_mode: no + predecessor: g85 + successor: g75+ + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.2, 91.5, 184] # mm + weight: 225 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: python.casiopython + hardware: + mpu: "SH7355" + cpu: "SH3..." + default_cpu_frequency: 29000000 # Hz + overclock_tools: ["Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: 512000 # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: no + devices: + display: display.t6k11 + backlit_display: backlit_display.toggleable + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [80, 120] # euros + last_os_version: "2.09" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20091123175010/http://www.casio-education.fr:80/calculatrice_casio_graph75usb.html) (2009)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g2/) (2021)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.09": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/calculators/g85.yaml b/calculators/g85.yaml new file mode 100644 index 0000000..0e62c91 --- /dev/null +++ b/calculators/g85.yaml @@ -0,0 +1,69 @@ +g85: + general: + full_name: "Graph 85" + international_name: "fx-9860G" + year_launched: 2005 + exam_mode: no + predecessor: g65usb + successor: [g75, g95] + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [24, 92.5, 184] # mm + weight: 260 # g + power: power.4aaa + power_runtime: 220 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: no + hardware: + mpu: "SH7337" + cpu: "SH3..." + default_cpu_frequency: 12000000 # Hz + overclock_tools: ["Rev-FX", "Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: [256000, 512000] # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: no + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [80, 120] # euros + last_os_version: "2.01" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20080914095631/http://www.casio-education.fr/graph85.php) (2008)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g/) (2021)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + "@fr{Vieux}@en{Old} (2007)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH85SD_85_FR.pdf" + software_international_fr: + "1.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx9860GSD_9860G_FR.pdf" + software_international_en: + "1.00": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx9860GSD_9860G_EN.pdf" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/g85sd.yaml b/calculators/g85sd.yaml new file mode 100644 index 0000000..f06c04b --- /dev/null +++ b/calculators/g85sd.yaml @@ -0,0 +1,69 @@ +g85sd: + general: + full_name: "Graph 85 SD" + international_name: "fx-9860G SD" + year_launched: 2005 + exam_mode: no + predecessor: g65usb + successor: [g75, g95] + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [24, 92.5, 184] # mm + weight: 265 # g + power: power.4aaa + power_runtime: 220 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: no + hardware: + mpu: "SH7337" + cpu: "SH3..." + default_cpu_frequency: 12000000 # Hz + overclock_tools: ["Rev-FX", "Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: [256000, 512000] # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: 1000000000 # bytes + devices: + display: display.t6k11 + backlit_display: no + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [100, 140] # euros + last_os_version: "2.01" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20080914095631/http://www.casio-education.fr/graph85.php) (2008)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g/) (2021)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + "@fr{Vieux}@en{Old} (2007)": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH85SD_85_FR.pdf" + software_international_fr: + "1.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx9860GSD_9860G_FR.pdf" + software_international_en: + "1.00": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx9860GSD_9860G_EN.pdf" + hardware_french_fr: no + hardware_international_fr: no + hardware_international_en: no diff --git a/calculators/g90+e.yaml b/calculators/g90+e.yaml new file mode 100644 index 0000000..06a0172 --- /dev/null +++ b/calculators/g90+e.yaml @@ -0,0 +1,89 @@ +g90+e: + general: + full_name: "Graph 90+E" + international_name: "fx-CG 50" + year_launched: 2017 + exam_mode: yes + predecessor: cg20 + successor: no + family: family.prizm + active: yes + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.khicas_cg + packaging: + size: [18.6, 89, 189] # mm + weight: 227 # g + power: power.4aaa + power_runtime: 170 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.prizmsdk, add_ins_sdk.fxsdk] + python: python.native_os320 + hardware: + mpu: "SH7305" + cpu: "SH4AL-DSP" + default_cpu_frequency: 116000000 # Hz + overclock_tools: ["Ptune 2"] + max_cpu_frequency: 232000000 # Hz + ram_chip: 2000000 # bytes + rom_chip: 32000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 16000000 # bytes + sd_card: no + devices: + display: display.r61524 + backlit_display: backlit_display.brightness_5levels + color_mode: color_mode.rgb565 + touch_screen: no + display_size_pixels: [396, 224, "384x216"] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.scsi, protocols.p7] + transfer_software: [transfer_software.file_browser] + misc: + price_range: [80, 120] # euros + last_os_version: "3.50" + links: + casio_france: + "[Casio Éducation](https://www.casio-education.fr/produits/graph-90-e/) (2021)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fxcg50/) (2021)" + manuals: + software_french_fr: + "3.00": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_v300_FR.pdf" + "3.10": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_v310_FR.pdf" + "3.11": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_v311_FR.pdf" + "3.20": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_v320_FR.pdf" + "3.30": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_V330_FR.pdf" + "3.40": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_V340_FR.pdf" + "3.50": "https://support.casio.com/fr/manual/004/GRAPH90+E_Soft_V350_FR.pdf" + software_international_fr: + "3.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_FR.pdf" + "3.10": "https://support.casio.com/fr/manual/004/fx-CG50_Soft_v310_FR.pdf" + "3.11": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_v311_FR.pdf" + "3.20": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_v320_FR.pdf" + "3.30": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_v330_FR.pdf" + "3.40": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_v340_FR.pdf" + "3.50": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Soft_v350_FR.pdf" + software_international_en: + "3.00": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-CG50_Soft_EN.pdf" + "3.10": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v310_EN.pdf" + "3.11": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v311_EN.pdf" + "3.20": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v320_EN.pdf" + "3.30": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v330_EN.pdf" + "3.40": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v340_EN.pdf" + "3.50": "https://support.casio.com/en/manual/004/fx-CG50_Soft_v350_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/fr/manual/004/GRAPH90+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-CG50_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/en/manual/004/fx-CG50_Hard_EN.pdf" diff --git a/calculators/g95.yaml b/calculators/g95.yaml new file mode 100644 index 0000000..d262fc2 --- /dev/null +++ b/calculators/g95.yaml @@ -0,0 +1,73 @@ +g95: + general: + full_name: "Graph 95 (SD)" + international_name: "fx-9860G II SD" + year_launched: 2009 + exam_mode: no + predecessor: [g85, g85sd] + successor: g75+e + family: family.mono + active: no + teaching: + audience: audience.high_school + math_input: yes + pretty_print: yes + matrices: yes + complex_calculus: yes + symbolic_calculus: symbolic_calculus.QPiRac + cas: cas.eigenmath + packaging: + size: [21.2, 91.5, 184] # mm + weight: 220 # g + power: power.4aaa + power_runtime: 200 # hours + programming: + casio_basic: casio_basic.native + add_ins: add_ins.native + add_ins_sdk: [add_ins_sdk.fx9860g_sdk, add_ins_sdk.fxsdk] + python: no + hardware: + mpu: "SH7355" + cpu: "SH3..." + default_cpu_frequency: 12000000 # Hz + overclock_tools: ["Rev-FX", "Ftune"] + max_cpu_frequency: 117000000 # Hz + ram_chip: [256000, 512000] # bytes + rom_chip: 4000000 # bytes + ram_storage: 62000 # bytes + rom_storage: 1500000 # bytes + sd_card: 2000000000 # bytes + devices: + display: display.t6k11 + backlit_display: backlit_display.toggleable + color_mode: color_mode.mono + touch_screen: no + display_size_pixels: [128, 64] # pixels + display_size_text: [21, 7] # characters + serial_connection: serial_connection.jack_25 + usb_connection: usb_connection.mini_usb_b + protocols: [protocols.p7] + transfer_software: [transfer_software.fa124, transfer_software.usb_connector, transfer_software.p7] + misc: + price_range: [100, 140] # euros + last_os_version: "2.09" + links: + casio_france: + "[Casio Éducation](https://web.archive.org/web/20091123175010/http://www.casio-education.fr:80/calculatrice_casio_graph75usb.html) (2009)" + casio_international: + "[edu.casio.com](https://edu.casio.com/products/graphic/fx9860g2/) (2021)" + manuals: + software_french_fr: + "2.00": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH95-75-85SD-85-35PLUS-25PLUSPro-Soft_FR.pdf" + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH35+E_Soft_V210_FR.pdf" + software_international_fr: + "2.09": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Soft_FR.pdf" + software_international_en: + "2.00": "https://support.casio.com/pdf/004/fx-9750GII_Soft_E.pdf" + "2.09": "https://support.casio.com/storage/en/manual/pdf/EN/004/fx-9860GII_Soft_EN.pdf" + hardware_french_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/GRAPH75+E_35+E_25+E_Hard_FR.pdf" + hardware_international_fr: + "support.casio.com": "https://support.casio.com/storage/fr/manual/pdf/FR/004/fx-9860GII_Hard_FR.pdf" + hardware_international_en: + "support.casio.com": "https://support.casio.com/pdf/004/fx-9860GII_Hard_E.pdf" diff --git a/images/large/cg10.jpg b/images/large/cg10.jpg new file mode 100644 index 0000000..43ee692 Binary files /dev/null and b/images/large/cg10.jpg differ diff --git a/images/large/cg20.jpg b/images/large/cg20.jpg new file mode 100644 index 0000000..4d830ce Binary files /dev/null and b/images/large/cg20.jpg differ diff --git a/images/large/cg50.jpg b/images/large/cg50.jpg new file mode 100644 index 0000000..bc2aa38 Binary files /dev/null and b/images/large/cg50.jpg differ diff --git a/images/large/cg500.jpg b/images/large/cg500.jpg new file mode 100644 index 0000000..f4590ae Binary files /dev/null and b/images/large/cg500.jpg differ diff --git a/images/large/cp300+.jpg b/images/large/cp300+.jpg new file mode 100644 index 0000000..23dfdad Binary files /dev/null and b/images/large/cp300+.jpg differ diff --git a/images/large/cp300.jpg b/images/large/cp300.jpg new file mode 100644 index 0000000..497b263 Binary files /dev/null and b/images/large/cp300.jpg differ diff --git a/images/large/cp330+.jpg b/images/large/cp330+.jpg new file mode 100644 index 0000000..31ab94c Binary files /dev/null and b/images/large/cp330+.jpg differ diff --git a/images/large/cp330.jpg b/images/large/cp330.jpg new file mode 100644 index 0000000..925d90a Binary files /dev/null and b/images/large/cp330.jpg differ diff --git a/images/large/cp400+e.jpg b/images/large/cp400+e.jpg new file mode 100644 index 0000000..33dac98 Binary files /dev/null and b/images/large/cp400+e.jpg differ diff --git a/images/large/cp400.jpg b/images/large/cp400.jpg new file mode 100644 index 0000000..2fd7217 Binary files /dev/null and b/images/large/cp400.jpg differ diff --git a/images/large/fx92+sc.jpg b/images/large/fx92+sc.jpg new file mode 100644 index 0000000..cf5707f Binary files /dev/null and b/images/large/fx92+sc.jpg differ diff --git a/images/large/fx92c2d.jpg b/images/large/fx92c2d.jpg new file mode 100644 index 0000000..3fba4a9 Binary files /dev/null and b/images/large/fx92c2d.jpg differ diff --git a/images/large/fx92sc.jpg b/images/large/fx92sc.jpg new file mode 100644 index 0000000..b0e27ef Binary files /dev/null and b/images/large/fx92sc.jpg differ diff --git a/images/large/g100+.jpg b/images/large/g100+.jpg new file mode 100644 index 0000000..9c01810 Binary files /dev/null and b/images/large/g100+.jpg differ diff --git a/images/large/g100.jpg b/images/large/g100.jpg new file mode 100644 index 0000000..8e8ea86 Binary files /dev/null and b/images/large/g100.jpg differ diff --git a/images/large/g100p+alt.jpg b/images/large/g100p+alt.jpg new file mode 100644 index 0000000..3f2ebfe Binary files /dev/null and b/images/large/g100p+alt.jpg differ diff --git a/images/large/g20.jpg b/images/large/g20.jpg new file mode 100644 index 0000000..27efbef Binary files /dev/null and b/images/large/g20.jpg differ diff --git a/images/large/g25+.jpg b/images/large/g25+.jpg new file mode 100644 index 0000000..a2665c3 Binary files /dev/null and b/images/large/g25+.jpg differ diff --git a/images/large/g25+e.jpg b/images/large/g25+e.jpg new file mode 100644 index 0000000..6f22b2a Binary files /dev/null and b/images/large/g25+e.jpg differ diff --git a/images/large/g25+e2.jpg b/images/large/g25+e2.jpg new file mode 100644 index 0000000..4936a3a Binary files /dev/null and b/images/large/g25+e2.jpg differ diff --git a/images/large/g25+pro.jpg b/images/large/g25+pro.jpg new file mode 100644 index 0000000..1da6b19 Binary files /dev/null and b/images/large/g25+pro.jpg differ diff --git a/images/large/g25.jpg b/images/large/g25.jpg new file mode 100644 index 0000000..c0a2986 Binary files /dev/null and b/images/large/g25.jpg differ diff --git a/images/large/g30.jpg b/images/large/g30.jpg new file mode 100644 index 0000000..52395ad Binary files /dev/null and b/images/large/g30.jpg differ diff --git a/images/large/g35+e.jpg b/images/large/g35+e.jpg new file mode 100644 index 0000000..e4ac0f8 Binary files /dev/null and b/images/large/g35+e.jpg differ diff --git a/images/large/g35+e2.jpg b/images/large/g35+e2.jpg new file mode 100644 index 0000000..b48cbe8 Binary files /dev/null and b/images/large/g35+e2.jpg differ diff --git a/images/large/g35+gen1.jpg b/images/large/g35+gen1.jpg new file mode 100644 index 0000000..cc6dc33 Binary files /dev/null and b/images/large/g35+gen1.jpg differ diff --git a/images/large/g35+gen2.jpg b/images/large/g35+gen2.jpg new file mode 100644 index 0000000..3e416b8 Binary files /dev/null and b/images/large/g35+gen2.jpg differ diff --git a/images/large/g35+usb3.jpg b/images/large/g35+usb3.jpg new file mode 100644 index 0000000..074a3e8 Binary files /dev/null and b/images/large/g35+usb3.jpg differ diff --git a/images/large/g35+usb4.jpg b/images/large/g35+usb4.jpg new file mode 100644 index 0000000..074a3e8 Binary files /dev/null and b/images/large/g35+usb4.jpg differ diff --git a/images/large/g35.jpg b/images/large/g35.jpg new file mode 100644 index 0000000..6e297d5 Binary files /dev/null and b/images/large/g35.jpg differ diff --git a/images/large/g60.jpg b/images/large/g60.jpg new file mode 100644 index 0000000..5a88fd9 Binary files /dev/null and b/images/large/g60.jpg differ diff --git a/images/large/g65.jpg b/images/large/g65.jpg new file mode 100644 index 0000000..ecffd10 Binary files /dev/null and b/images/large/g65.jpg differ diff --git a/images/large/g65usb.jpg b/images/large/g65usb.jpg new file mode 100644 index 0000000..c81f888 Binary files /dev/null and b/images/large/g65usb.jpg differ diff --git a/images/large/g75+.jpg b/images/large/g75+.jpg new file mode 100644 index 0000000..2deb70d Binary files /dev/null and b/images/large/g75+.jpg differ diff --git a/images/large/g75+e.jpg b/images/large/g75+e.jpg new file mode 100644 index 0000000..26d3be3 Binary files /dev/null and b/images/large/g75+e.jpg differ diff --git a/images/large/g75.jpg b/images/large/g75.jpg new file mode 100644 index 0000000..789f93c Binary files /dev/null and b/images/large/g75.jpg differ diff --git a/images/large/g80.jpg b/images/large/g80.jpg new file mode 100644 index 0000000..7d950dd Binary files /dev/null and b/images/large/g80.jpg differ diff --git a/images/large/g85.jpg b/images/large/g85.jpg new file mode 100644 index 0000000..4c42a1e Binary files /dev/null and b/images/large/g85.jpg differ diff --git a/images/large/g85sd.jpg b/images/large/g85sd.jpg new file mode 100644 index 0000000..7a676cf Binary files /dev/null and b/images/large/g85sd.jpg differ diff --git a/images/large/g90+e.jpg b/images/large/g90+e.jpg new file mode 100644 index 0000000..ca95f9d Binary files /dev/null and b/images/large/g90+e.jpg differ diff --git a/images/large/g95.jpg b/images/large/g95.jpg new file mode 100644 index 0000000..aec44e2 Binary files /dev/null and b/images/large/g95.jpg differ diff --git a/images/small/cg10.jpg b/images/small/cg10.jpg new file mode 100644 index 0000000..4e2b506 Binary files /dev/null and b/images/small/cg10.jpg differ diff --git a/images/small/cg20.jpg b/images/small/cg20.jpg new file mode 100644 index 0000000..d6373d8 Binary files /dev/null and b/images/small/cg20.jpg differ diff --git a/images/small/cg50.jpg b/images/small/cg50.jpg new file mode 100644 index 0000000..795aa6a Binary files /dev/null and b/images/small/cg50.jpg differ diff --git a/images/small/cg500.jpg b/images/small/cg500.jpg new file mode 100644 index 0000000..061ce8e Binary files /dev/null and b/images/small/cg500.jpg differ diff --git a/images/small/cp300+.jpg b/images/small/cp300+.jpg new file mode 100644 index 0000000..d6525bd Binary files /dev/null and b/images/small/cp300+.jpg differ diff --git a/images/small/cp300.jpg b/images/small/cp300.jpg new file mode 100644 index 0000000..05438ed Binary files /dev/null and b/images/small/cp300.jpg differ diff --git a/images/small/cp330+.jpg b/images/small/cp330+.jpg new file mode 100644 index 0000000..7a130d7 Binary files /dev/null and b/images/small/cp330+.jpg differ diff --git a/images/small/cp330.jpg b/images/small/cp330.jpg new file mode 100644 index 0000000..c2751c1 Binary files /dev/null and b/images/small/cp330.jpg differ diff --git a/images/small/cp400+e.jpg b/images/small/cp400+e.jpg new file mode 100644 index 0000000..d706e5b Binary files /dev/null and b/images/small/cp400+e.jpg differ diff --git a/images/small/cp400.jpg b/images/small/cp400.jpg new file mode 100644 index 0000000..460256c Binary files /dev/null and b/images/small/cp400.jpg differ diff --git a/images/small/fx92+sc.jpg b/images/small/fx92+sc.jpg new file mode 100644 index 0000000..bb41608 Binary files /dev/null and b/images/small/fx92+sc.jpg differ diff --git a/images/small/fx92c2d.jpg b/images/small/fx92c2d.jpg new file mode 100644 index 0000000..8c313b0 Binary files /dev/null and b/images/small/fx92c2d.jpg differ diff --git a/images/small/fx92sc.jpg b/images/small/fx92sc.jpg new file mode 100644 index 0000000..c44deea Binary files /dev/null and b/images/small/fx92sc.jpg differ diff --git a/images/small/g100+.jpg b/images/small/g100+.jpg new file mode 100644 index 0000000..4475ea5 Binary files /dev/null and b/images/small/g100+.jpg differ diff --git a/images/small/g100.jpg b/images/small/g100.jpg new file mode 100644 index 0000000..e8fda3f Binary files /dev/null and b/images/small/g100.jpg differ diff --git a/images/small/g100p+alt.jpg b/images/small/g100p+alt.jpg new file mode 100644 index 0000000..1b2eb3c Binary files /dev/null and b/images/small/g100p+alt.jpg differ diff --git a/images/small/g20.jpg b/images/small/g20.jpg new file mode 100644 index 0000000..e48af03 Binary files /dev/null and b/images/small/g20.jpg differ diff --git a/images/small/g25+.jpg b/images/small/g25+.jpg new file mode 100644 index 0000000..5bbe76a Binary files /dev/null and b/images/small/g25+.jpg differ diff --git a/images/small/g25+e.jpg b/images/small/g25+e.jpg new file mode 100644 index 0000000..4bfe2e9 Binary files /dev/null and b/images/small/g25+e.jpg differ diff --git a/images/small/g25+e2.jpg b/images/small/g25+e2.jpg new file mode 100644 index 0000000..8d6a522 Binary files /dev/null and b/images/small/g25+e2.jpg differ diff --git a/images/small/g25+pro.jpg b/images/small/g25+pro.jpg new file mode 100644 index 0000000..1e541fe Binary files /dev/null and b/images/small/g25+pro.jpg differ diff --git a/images/small/g25.jpg b/images/small/g25.jpg new file mode 100644 index 0000000..0524d5d Binary files /dev/null and b/images/small/g25.jpg differ diff --git a/images/small/g30.jpg b/images/small/g30.jpg new file mode 100644 index 0000000..c282f6d Binary files /dev/null and b/images/small/g30.jpg differ diff --git a/images/small/g35+.jpg b/images/small/g35+.jpg new file mode 100644 index 0000000..640175d Binary files /dev/null and b/images/small/g35+.jpg differ diff --git a/images/small/g35+e.jpg b/images/small/g35+e.jpg new file mode 100644 index 0000000..ed7d001 Binary files /dev/null and b/images/small/g35+e.jpg differ diff --git a/images/small/g35+e2.jpg b/images/small/g35+e2.jpg new file mode 100644 index 0000000..c7ba6bf Binary files /dev/null and b/images/small/g35+e2.jpg differ diff --git a/images/small/g35+gen1.jpg b/images/small/g35+gen1.jpg new file mode 100644 index 0000000..2d69e44 Binary files /dev/null and b/images/small/g35+gen1.jpg differ diff --git a/images/small/g35+gen2.jpg b/images/small/g35+gen2.jpg new file mode 100644 index 0000000..025b985 Binary files /dev/null and b/images/small/g35+gen2.jpg differ diff --git a/images/small/g35+usb3.jpg b/images/small/g35+usb3.jpg new file mode 100644 index 0000000..a38fc25 Binary files /dev/null and b/images/small/g35+usb3.jpg differ diff --git a/images/small/g35+usb4.jpg b/images/small/g35+usb4.jpg new file mode 100644 index 0000000..a38fc25 Binary files /dev/null and b/images/small/g35+usb4.jpg differ diff --git a/images/small/g35.jpg b/images/small/g35.jpg new file mode 100644 index 0000000..7b25df4 Binary files /dev/null and b/images/small/g35.jpg differ diff --git a/images/small/g60.jpg b/images/small/g60.jpg new file mode 100644 index 0000000..ae1db24 Binary files /dev/null and b/images/small/g60.jpg differ diff --git a/images/small/g65.jpg b/images/small/g65.jpg new file mode 100644 index 0000000..461173c Binary files /dev/null and b/images/small/g65.jpg differ diff --git a/images/small/g65usb.jpg b/images/small/g65usb.jpg new file mode 100644 index 0000000..a0d12ea Binary files /dev/null and b/images/small/g65usb.jpg differ diff --git a/images/small/g75+.jpg b/images/small/g75+.jpg new file mode 100644 index 0000000..9a0a5f2 Binary files /dev/null and b/images/small/g75+.jpg differ diff --git a/images/small/g75+e.jpg b/images/small/g75+e.jpg new file mode 100644 index 0000000..e6f6951 Binary files /dev/null and b/images/small/g75+e.jpg differ diff --git a/images/small/g75.jpg b/images/small/g75.jpg new file mode 100644 index 0000000..8bb1882 Binary files /dev/null and b/images/small/g75.jpg differ diff --git a/images/small/g80.jpg b/images/small/g80.jpg new file mode 100644 index 0000000..80affcb Binary files /dev/null and b/images/small/g80.jpg differ diff --git a/images/small/g85.jpg b/images/small/g85.jpg new file mode 100644 index 0000000..d29d5d4 Binary files /dev/null and b/images/small/g85.jpg differ diff --git a/images/small/g85sd.jpg b/images/small/g85sd.jpg new file mode 100644 index 0000000..52482fd Binary files /dev/null and b/images/small/g85sd.jpg differ diff --git a/images/small/g90+e.jpg b/images/small/g90+e.jpg new file mode 100644 index 0000000..88d68f6 Binary files /dev/null and b/images/small/g90+e.jpg differ diff --git a/images/small/g95.jpg b/images/small/g95.jpg new file mode 100644 index 0000000..a65ee15 Binary files /dev/null and b/images/small/g95.jpg differ diff --git a/lang/en.yaml b/lang/en.yaml new file mode 100644 index 0000000..1542920 --- /dev/null +++ b/lang/en.yaml @@ -0,0 +1,192 @@ +constants: + empty_list: "None" + no: "No" + yes: "Yes" + +categories: + general: "General information" + teaching: "Teaching" + packaging: "Packaging and power" + programming: "Programming" + hardware: "Hardware" + devices: "Devices" + misc: "Miscellaneous" + links: "Links" + manuals: "Manuals" + +fields: + general: + international_name: "International name" + year_launched: "Year of launch" + exam_mode: "Exam mode support" + predecessor: "Predecessor" + successor: "Successor" + family: "Family" + teaching: + audience: "Target audience" + math_input: "Math input" + pretty_print: "Math output (pretty-print)" + matrices: "Matrices" + complex_calculus: "Complex calculus" + symbolic_calculus: "Symbolic calculus" + cas: "Computer Algebra (CAS)" + packaging: + size: "Size (mm)" + weight: "Weight with batteries" + power: "Power" + power_runtime: "Power runtime" + programming: + casio_basic: "Basic CASIO" + add_ins: "Add-ins" + add_ins_sdk: "SDK for add-in development" + python: "Python" + hardware: + mpu: "MPU" + cpu: "Processor" + default_cpu_frequency: "Default CPU frequency" + overclock_tools: "Overclocking tools" + max_cpu_frequency: "Maximal CPU frequency" + ram_chip: "RAM chip size" + rom_chip: "ROM chip size" + ram_storage: "User storage in RAM" + rom_storage: "User storage in ROM" + sd_card: "External SD card" + devices: + display: "Display" + backlit_display: "Backlit display" + color_mode: "Color mode" + touch_screen: "Touch screen" + display_size_pixels: "Screen size (pixels)" + display_size_text: "Screen size (default text)" + serial_connection: "Serial connection" + usb_connection: "USB connection" + protocols: "Communication protocols" + transfer_software: "File transfer software" + misc: + price_range: "Price range" + last_os_version: "Last OS version" + links: + casio_france: "CASIO France" + casio_international: "CASIO International" + manuals: + software_french_fr: "Software for French model (FR)" + software_international_fr: "Software for international model (FR)" + software_international_en: "Software for international model (EN)" + hardware_french_fr: "Hardware for French model (FR)" + hardware_international_fr: "Hardware for international model (FR)" + hardware_international_en: "Hardware for international model (EN)" + +enums: + general: + exam_mode: + bad: "Hard to use" + family: + mono: "Monochromes" + prizm: "Color" + cas: "CAS" + predecessor: + no: "None" + successor: + no: "None" + + teaching: + audience: + high_school: "High school" + high_school_college: "High school/College" + college: "College" + math_input: + hidden_option: "Hidden option" + pretty_print: + hidden_option: "Hidden option" + symbolic_calculus: + Q: "ℚ" + QPiRac: "ℚ, π, Square roots" + cas: "CAS" + cas: + eigenmath: "[Eigenmath](https://www.planet-casio.com/Fr/programmes/programme3035-1-eigenmath-nemhardy-utilitaires-add-ins.html) add-in" + khicas_fx: "[KhiCAS](https://www.planet-casio.com/Fr/forums/topic15689-1-sdk-gcc-pour-addin-35e2portage-khicas.html) add-in" + khicas_cg: "[KhiCAS](https://www.planet-casio.com/Fr/programmes/programme3599-1-khicas-parisse-course-activities-add-ins.html) add-in" + native: "Native" + + packaging: + power: + 4aaa: "4 AAA batteries" + battery: "Accu" + + programming: + casio_basic: + native: "Native" + add_ins: + no_sdk: "No SDK" + vendor_only: "Vendor only" + os_upgrade: "OS Upgrade" + native: "Native" + add_ins_sdk: + fx9860g_sdk: "[fx-9860G SDK](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=76)" + fxsdk: "[fxSDK](https://www.planet-casio.com/Fr/forums/topic13164-1-fxsdk-un-sdk-alternatif-pour-ecrire-des-add-ins.html)" + prizmsdk: "[PrizmSDK](https://www.planet-casio.com/Fr/forums/topic15023-1-prizm-fx-cg1020-g90-et-fx-cg50-environnement-de-develop.html)" + cpsdk: "[CPSDK](https://wiki.planet-casio.com/fr/CPSDK)" + python: + casiopython: "[CasioPython](https://www.planet-casio.com/Fr/programmes/programme3603-1-casiopython-zezombye-utilitaires-add-ins.html) add-in" + native_os310: "Native (OS ≥ 3.10)" + native_os320: "Native (OS ≥ 3.20)" + native: "Native" + + hardware: + ram_storage: + no: "None" + rom_storage: + no: "None" + os_upgrade: "OS Upgrade" + sd_card: + no: "None" + + devices: + display: + t6k11: "T6K11" + t6k11_variant: "TK611 (Variant)" + r61524: "R61524" + backlit_display: + toggleable: "Yes" + brightness_5levels: "5 brightness levels" + color_mode: + mono: "Black and white" + rgb565: "65536 colors (`RGB565`)" + display_size_text: + variable: "Variable" + serial_connection: + jack_25: "Jack 2.5 mm" + usb_connection: + mini_usb_b: "Mini-USB type B" + protocols: + p7: "Protocol 7.00" + scsi: "USB file transfer" + transfer_software: + sb88_fa124: "[FA-124](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=16) avec câble SB-88" + fa124: "[FA-124](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=16)" + p7: "[p7](https://www.planet-casio.com/Fr/forums/topic14487-1-gnulinux-p7-pour-des-transferts-a-repasser.html)" + usb_connector: "[UsbConnector](https://www.planet-casio.com/Fr/forums/topic13656-1-usbconnector-remplacement-de-fa124-multi-os.html)" + file_browser: "Explorateur de fichiers" + facp1: "[FA-CP1](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=94)" + classpad_manager: "[ClassPad Manager](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=6)" + classpad_addin_installer: "[ClassPad Add-In Installer](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=22)" + + links: + casio_france: + no: "No result" + casio_international: + no: "No result" + + manuals: + software_french_fr: + no: "No result" + software_international_fr: + no: "No result" + software_international_en: + no: "No result" + hardware_french_fr: + no: "No result" + hardware_international_fr: + no: "No result" + hardware_international_en: + no: "No result" diff --git a/lang/fr.yaml b/lang/fr.yaml new file mode 100644 index 0000000..0c17661 --- /dev/null +++ b/lang/fr.yaml @@ -0,0 +1,192 @@ +constants: + empty_list: "Aucun" + no: "Non" + yes: "Oui" + +categories: + general: "Informations générales" + teaching: "Enseignement" + packaging: "Caractéristiques physiques" + programming: "Programmation" + hardware: "Matériel" + devices: "Périphériques" + misc: "Divers" + links: "Liens" + manuals: "Manuels" + +fields: + general: + international_name: "Correspondance internationale" + year_launched: "Année de sortie" + exam_mode: "Mode Examen" + predecessor: "Précédesseur" + successor: "Successeur" + family: "Famille" + teaching: + audience: "Type de public" + math_input: "Saisie en écriture naturelle" + pretty_print: "Résultats en écriture naturelle" + matrices: "Matrices" + complex_calculus: "Complexes" + symbolic_calculus: "Calcul exact" + cas: "Calcul formel" + packaging: + size: "Dimensions (mm)" + weight: "Masse avec piles" + power: "Alimentation" + power_runtime: "Durée d'utilisation" + programming: + casio_basic: "Basic CASIO" + add_ins: "Add-ins" + add_ins_sdk: "SDK pour les add-ins" + python: "Python" + hardware: + mpu: "MPU" + cpu: "Processeur" + default_cpu_frequency: "Fréquence CPU par défaut" + overclock_tools: "Outils d'overclock" + max_cpu_frequency: "Fréquence CPU maximale" + ram_chip: "Taille de la puce RAM" + rom_chip: "Taille de la puce ROM" + ram_storage: "Stockage utilisateur RAM" + rom_storage: "Stockage utilisateur ROM" + sd_card: "Carte SD externe" + devices: + display: "Écran" + backlit_display: "Écran rétroéclairé" + color_mode: "Format de couleurs" + touch_screen: "Écran tactile" + display_size_pixels: "Dimensions de l'écran (pixels)" + display_size_text: "Taille de l'écran (texte par défaut)" + serial_connection: "Connectique série" + usb_connection: "Connectique USB" + protocols: "Protocoles de communication" + transfer_software: "Logiciels de transfert" + misc: + price_range: "Gamme de prix" + last_os_version: "Dernière version OS" + links: + casio_france: "Lien CASIO France" + casio_international: "Lien CASIO International" + manuals: + software_french_fr: "Logiciel modèle français (FR)" + software_international_fr: "Logiciel modèle international (FR)" + software_international_en: "Logiciel modèle international (EN)" + hardware_french_fr: "Matériel modèle français (FR)" + hardware_international_fr: "Matériel modèle international (FR)" + hardware_international_en: "Matériel modèle international (EN)" + +enums: + general: + exam_mode: + bad: "Compliqué" + family: + mono: "Monochromes" + prizm: "Couleur" + cas: "Formelles" + predecessor: + no: "Aucun" + successor: + no: "Aucun" + + teaching: + audience: + high_school: "Lycée" + high_school_college: "Lycée/Supérieur" + college: "Supérieur" + math_input: + hidden_option: "Activable" + pretty_print: + hidden_option: "Activable" + symbolic_calculus: + Q: "ℚ" + QPiRac: "ℚ, π, Racines" + cas: "Formel" + cas: + eigenmath: "Add-in [Eigenmath](https://www.planet-casio.com/Fr/programmes/programme3035-1-eigenmath-nemhardy-utilitaires-add-ins.html)" + khicas_fx: "Add-in [KhiCAS](https://www.planet-casio.com/Fr/forums/topic15689-1-sdk-gcc-pour-addin-35e2portage-khicas.html)" + khicas_cg: "Add-in [KhiCAS](https://www.planet-casio.com/Fr/programmes/programme3599-1-khicas-parisse-course-activities-add-ins.html)" + native: "Natif" + + packaging: + power: + 4aaa: "4 piles AAA" + battery: "Batterie" + + programming: + casio_basic: + native: "Natif" + add_ins: + no_sdk: "Pas de SDK" + vendor_only: "Officiels seulement" + os_upgrade: "Mise à jour OS" + native: "Natif" + add_ins_sdk: + fx9860g_sdk: "[fx-9860G SDK](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=76)" + fxsdk: "[fxSDK](https://www.planet-casio.com/Fr/forums/topic13164-1-fxsdk-un-sdk-alternatif-pour-ecrire-des-add-ins.html)" + prizmsdk: "[PrizmSDK](https://www.planet-casio.com/Fr/forums/topic15023-1-prizm-fx-cg1020-g90-et-fx-cg50-environnement-de-develop.html)" + cpsdk: "[CPSDK](https://wiki.planet-casio.com/fr/CPSDK)" + python: + casiopython: "Add-in [CasioPython](https://www.planet-casio.com/Fr/programmes/programme3603-1-casiopython-zezombye-utilitaires-add-ins.html)" + native_os310: "Natif (OS ≥ 3.10)" + native_os320: "Natif (OS ≥ 3.20)" + native: "Natif" + + hardware: + ram_storage: + no: "Aucun" + rom_storage: + no: "Aucun" + os_upgrade: "Mise à jour OS" + sd_card: + no: "Aucune" + + devices: + display: + t6k11: "T6K11" + t6k11_variant: "TK611 (Variante)" + r61524: "R61524" + backlit_display: + toggleable: "Oui" + brightness_5levels: "5 niveaux de luminosité" + color_mode: + mono: "Noir et blanc" + rgb565: "65536 couleurs (`RGB565`)" + display_size_text: + variable: "Variable" + serial_connection: + jack_25: "Jack 2.5 mm" + usb_connection: + mini_usb_b: "Mini-USB type B" + protocols: + p7: "Protocole 7.00" + scsi: "Transfert de fichiers USB" + transfer_software: + sb88_fa124: "[FA-124](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=16) avec câble SB-88" + fa124: "[FA-124](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=16)" + p7: "[p7](https://www.planet-casio.com/Fr/forums/topic14487-1-gnulinux-p7-pour-des-transferts-a-repasser.html)" + usb_connector: "[UsbConnector](https://www.planet-casio.com/Fr/forums/topic13656-1-usbconnector-remplacement-de-fa124-multi-os.html)" + file_browser: "Explorateur de fichiers" + facp1: "[FA-CP1](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=94)" + classpad_manager: "[ClassPad Manager](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=6)" + classpad_addin_installer: "[ClassPad Add-In Installer](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=22)" + + links: + casio_france: + no: "Aucun résultat" + casio_international: + no: "Aucun résultat" + + manuals: + software_french_fr: + no: "Aucun résultat" + software_international_fr: + no: "Aucun résultat" + software_international_en: + no: "Aucun résultat" + hardware_french_fr: + no: "Aucun résultat" + hardware_international_fr: + no: "Aucun résultat" + hardware_international_en: + no: "Aucun résultat" diff --git a/model.yaml b/model.yaml new file mode 100644 index 0000000..bbdccc7 --- /dev/null +++ b/model.yaml @@ -0,0 +1,169 @@ +scores: + general: + exam_mode: + no: 0 + bad: 1 + yes: 2 + + teaching: + math_input: + no: 0 + hidden_option: 1 + yes: 2 + pretty_print: + no: 0 + hidden_option: 1 + yes: 2 + symbolic_calculus: + none: 0 + Q: 1 + QPiRac: 2 + cas: 3 + cas: + none: 0 + eigenmath: 1 + khicas_fx: 2 + khicas_cg: 2 + native: 3 + + programming: + casio_basic: + native: 0 + add_ins: + none: 0 + no_sdk: 0 + vendor_only: 1 + os_upgrade: 2 + native: 3 + python: + none: 0 + casiopython: 1 + native_os320: 2 + native: 2 + + hardware: + ram_storage: + no: 0 + rom_storage: + no: 0 + os_upgrade: 1500000 + + devices: + color_mode: + mono: 0 + rgb565: 1 + serial_connection: + no: 0 + jack_25: 1 + usb_connection: + no: 0 + mini_usb_b: 1 + +units: + packaging: + weight: "g" + hardware: + default_cpu_frequency: "Hz" + max_cpu_frequency: "Hz" + ram_chip: "@fr{o}@en{B}" + rom_chip: "@fr{o}@en{B}" + ram_storage: "@fr{o}@en{B}" + rom_storage: "@fr{o}@en{B}" + sd_card: "@fr{o}@en{B}" + +all_categories: + - general + - teaching + - packaging + - programming + - hardware + - devices + - misc + - links + - manuals + +all_fields: + general: + - full_name + - international_name + - year_launched + - exam_mode + - predecessor + - successor + - family + teaching: + - audience + - math_input + - pretty_print + - matrices + - complex_calculus + - symbolic_calculus + - cas + packaging: + - size + - weight + - power + - power_runtime + programming: + - casio_basic + - add_ins + - add_ins_sdk + - python + hardware: + - mpu + - cpu + - default_cpu_frequency + - overclock_tools + - max_cpu_frequency + - ram_chip + - rom_chip + - ram_storage + - rom_storage + - sd_card + devices: + - display + - backlit_display + - color_mode + - touch_screen + - display_size_pixels + - display_size_text + - serial_connection + - usb_connection + - protocols + - transfer_software + misc: + - price_range + - last_os_version + links: + - casio_france + - casio_international + manuals: + - software_french_fr + - software_international_fr + - software_international_en + - hardware_french_fr + - hardware_international_fr + - hardware_international_en + +all_calcs: + - g25+pro + - g25+e + - g25+e2 + - g35+ + - g35+usb3 + - g35+usb4 + - g35+e + - g35+e2 + - g75 + - g75+ + - g75+e + - g85 + - g85sd + - g95 + - cg20 + - g90+e + - cp300 + - cp330 + - cp330+ + - cp400 + - cp400+e diff --git a/tools/calcdb.py b/tools/calcdb.py new file mode 100644 index 0000000..ed379a4 --- /dev/null +++ b/tools/calcdb.py @@ -0,0 +1,162 @@ +""" +calcdb: Utility to load and manipulate the database in Python +""" + +import yaml +import os +import os.path +import re + +class CalcDB: + """The calculator database.""" + def __init__(self, base): + self.calcs = {} + self.lang = {} + + for (path, name) in self._list_folder(f"{base}/calculators"): + self.calcs.update(self._load_yaml(path)) + + for (path, name) in self._list_folder(f"{base}/lang"): + self.lang[name] = Lang(self._load_yaml(path)) + self.lang[name]["name"] = name + + self.model = self._load_yaml(f"{base}/model.yaml") + + @staticmethod + def _load_yaml(path): + """Safely load a YAML file.""" + with open(path, "r") as fp: + return yaml.safe_load(fp.read()) + + @staticmethod + def _list_folder(folder): + """List elements of folder, with prefix.""" + for file in os.listdir(folder): + yield (f"{folder}/{file}", os.path.splitext(file)[0]) + + def all_calcs(self): + return ((name, self.calcs[name]) for name in self.model["all_calcs"]) + def all_categories(self): + return self.model["all_categories"] + def all_fields(self, category): + return self.model["all_fields"].get(category) + +class Lang: + """A language-data dictionary extended with methods for easy access.""" + def __init__(self, data): + self.data = data + def __getitem__(self, key): + return self.data[key] + def __setitem__(self, key, value): + self.data[key] = value + def get(self, key, default=None): + return self.data.get(key, default) + + def category(self, name): + return self.data["categories"].get(name, None) + + def field(self, category, field): + return self.data["fields"].get(category, {}).get(field, None) + + def unit(self, name): + return self.data.get("units", {}).get(name, None) + + def filter(self, text): + regex = re.compile(r'@([a-z]+){([^}]+)}') + return regex.sub( + lambda match: match[2] if match[1] == self.data["name"] else "", + text) + +def render(db, lang, category, field, value): + """ + Render a CalcDB field into text (Markdown when applicable) in the specified + language. Returns a pair (text, style) where "text" is the string to + display, and "style" is a list of named styles (for CSS mainly). + """ + + is_numeric = isinstance(value, (int,float)) and value not in [True, False] + is_base = isinstance(value, (int,float,bool,str)) + is_str = isinstance(value, str) + is_list = isinstance(value, list) + is_dict = isinstance(value, dict) + + f = f"{category}.{field}" + styles = [] + + # Unknown values + if value is None: + return ("?", ["bad"]) + + # Styles for some fixed field/value pairs + if f == "general.exam_mode": + styles = { False: ["bad"], "exam_mode.bad": ["warn"], True: ["good"] } + styles = styles.get(value,[]) + if (category == "links" or category == "manuals") and value == False: + styles = ["warn"] + + # Apply units for numeric values with units + if is_numeric: + unit = db.model["units"].get(category,{}).get(field) + suffixes = [(1e0, ""), (1e3, "k"), (1e6, "M"), (1e9, "G")] + + if unit: + i = 0 + while i+1 < len(suffixes) and value >= suffixes[i+1][0]: + i += 1 + value /= suffixes[i][0] + + # Reform an integer if possible + if int(value) == value: + value = int(value) + value = f"{value} {suffixes[i][1]}{unit}" + + # Use enumerated values + if is_base: + if is_str and value.startswith(field + "."): + v2 = value[len(field)+1:] + else: + v2 = value + + enum = lang["enums"].get(category,{}).get(field,{}).get(v2) + if enum is not None: + return (enum, styles) + + # Use constants + if is_base and lang["constants"].get(value): + return (lang["constants"].get(value), styles) + + # Query the full calculator name of fields holding a model name + if f in ["general.predecessor", "general.successor"] and is_str: + if value not in db.calcs: + return (str(value), styles) + else: + return (db.calcs[value]["general"]["full_name"], styles) + + # Fixed formats for some fields + if f == "packaging.size": + return ("{} x {} x {}".format(*value), styles) + if f == "packaging.power_runtime": + return (f"~{value} @fr{{heures}}@en{{hours}}", styles) + if f == "hardware.sd_card": + return (f"@fr{{Carte SD}}@en{{SD card}} ≤ {value}", styles) + if f == "devices.display_size_pixels" and len(value) == 3: + return ("{}x{} ({})".format(*value), styles) + if f == "devices.display_size_pixels": + return ("{}x{}".format(*value), styles) + if f == "devices.display_size_text": + return ("{}x{}".format(*value), styles) + if f == "misc.price_range": + return ("{}-{} €".format(*value), styles) + if category == "manuals": + links = [ f"[{name}]({url})" for (name, url) in value.items() ] + return (", ".join(links), styles) + + # For lists, use the empty constant or process each item individually + if value == []: + return (lang["constants"]["empty_list"], styles) + elif is_list: + value, styles = zip(*(render(db, lang, category, field, element) + for element in value)) + return (", ".join(value), set().union(*styles)) + + return (str(value), styles) diff --git a/tools/convert-json.py b/tools/convert-json.py new file mode 100755 index 0000000..c59c532 --- /dev/null +++ b/tools/convert-json.py @@ -0,0 +1,29 @@ +#! /usr/bin/env python3 + +import json +import sys +import calcdb + +# Parse arguments + +args = sys.argv[1:] +if args != [] and args != ["--min"]: + print(f"usage: {sys.argv[0]} [--min]", file=sys.stderr) + sys.exit(1) + +minify = ("--min" in args) + +# Run conversion + +db = calcdb.CalcDB(".") + +dictionary = { + "calcs": db.calcs, + "lang": { code: db.lang[code].data for code in db.lang }, + "model": db.model, +} + +if minify: + print(json.dumps(dictionary, ensure_ascii=False, separators=(',', ':'))) +else: + print(json.dumps(dictionary, ensure_ascii=False, indent=2)) diff --git a/tools/render-html.py b/tools/render-html.py new file mode 100755 index 0000000..c2f9b7f --- /dev/null +++ b/tools/render-html.py @@ -0,0 +1,134 @@ +#! /usr/bin/env python3 + +import yaml +import os +import sys +import markdown +import calcdb + +db = calcdb.CalcDB(".") +md = markdown.Markdown() + +# Parse arguments + +args = sys.argv[1:] +if len(args) != 1: + print(f"usage: {sys.argv[0]} ", file=sys.stderr) + sys.exit(1) + +if args[0] not in db.lang: + print(f"error: no language data for '{args[0]}'", file=sys.stderr) + sys.exit(1) + +lang = db.lang[args[0]] + +# HTML bits + +print(""" + + + + + + + + """) + +# Photo +print(f"") +for (name, calc) in db.all_calcs(): + print(f"") +# Full name +print(f"") +for (name, calc) in db.all_calcs(): + value = calc["general"]["full_name"] + active = " st-active" if calc["general"]["active"] else "" + print(f"") +print("") + +for category in db.all_categories(): + r = lang.category(category) + print(f"") + print(f" ") + print(f" ") + print(f"") + + for field in db.all_fields(category): + if category == "general" and field == "full_name": + continue + + r = lang.field(category, field) + print(f"") + + for (name, calc) in db.all_calcs(): + value = calc.get(category,{}).get(field) + + r, styles = calcdb.render(db, lang, category, field, value) + r = lang.filter(r) + r = md.convert(r) + + classes = "" + if styles != []: + classes = " class='" + " ".join(f"st-{c}" for c in styles)+"'" + + print(f"{r}") + print("") + +print(""" +
") +print("
{value}
{r}
{r}
+ +""")