From 929f4ea980f93601cf75558cef370046290feca7 Mon Sep 17 00:00:00 2001 From: Memallox Date: Mon, 1 Oct 2018 18:05:44 +0200 Subject: [PATCH] Squashed 'fontcharacter/' content from commit 1ec490f git-subtree-dir: fontcharacter git-subtree-split: 1ec490fc8000522a1d0e89f7b6168209ce38b1e9 --- .gitignore | 5 + AUTHORS.md | 13 + CONTRIBUTING.md | 29 + FORMAT.md | 24 + LICENSE.md | 157 + Makefile | 96 + Makefile.msg | 57 + Makefile.vars | 62 + README.md | 23 + TODO.md | 3 + UNKNOWN.md | 94 + configure | 123 + formats/BINARY1.md | 113 + formats/SOURCE.md | 176 + reference/categories.yml | 123 + reference/characters.yml | 7582 +++++++++++++++++ reference/fonts.yml | 12 + reference/main.yml | 2 + reference/mini/0x7FXX.pbm | Bin 0 -> 848 bytes reference/mini/0xE5XX.pbm | Bin 0 -> 848 bytes reference/mini/0xE6XX.pbm | Bin 0 -> 848 bytes reference/mini/0xXX.pbm | Bin 0 -> 848 bytes reference/normal/0x7FXX.pbm | Bin 0 -> 1169 bytes reference/normal/0xE5XX.pbm | Bin 0 -> 1169 bytes reference/normal/0xE6XX.pbm | Bin 0 -> 1169 bytes reference/normal/0xE7XX.pbm | Bin 0 -> 1169 bytes reference/normal/0xXX.pbm | Bin 0 -> 1169 bytes reference/sets.yml | 29 + .../__pycache__/fontcharacter.cpython-36.pyc | Bin 0 -> 5134 bytes tools/dumpbin.py | 216 + tools/fontcharacter/__init__.py | 190 + tools/listsets.py | 26 + tools/makebin.py | 183 + 33 files changed, 9338 insertions(+) create mode 100644 .gitignore create mode 100644 AUTHORS.md create mode 100644 CONTRIBUTING.md create mode 100644 FORMAT.md create mode 100644 LICENSE.md create mode 100755 Makefile create mode 100755 Makefile.msg create mode 100755 Makefile.vars create mode 100644 README.md create mode 100644 TODO.md create mode 100644 UNKNOWN.md create mode 100755 configure create mode 100644 formats/BINARY1.md create mode 100644 formats/SOURCE.md create mode 100644 reference/categories.yml create mode 100644 reference/characters.yml create mode 100644 reference/fonts.yml create mode 100644 reference/main.yml create mode 100644 reference/mini/0x7FXX.pbm create mode 100644 reference/mini/0xE5XX.pbm create mode 100644 reference/mini/0xE6XX.pbm create mode 100644 reference/mini/0xXX.pbm create mode 100644 reference/normal/0x7FXX.pbm create mode 100644 reference/normal/0xE5XX.pbm create mode 100644 reference/normal/0xE6XX.pbm create mode 100644 reference/normal/0xE7XX.pbm create mode 100644 reference/normal/0xXX.pbm create mode 100644 reference/sets.yml create mode 100644 tools/__pycache__/fontcharacter.cpython-36.pyc create mode 100755 tools/dumpbin.py create mode 100755 tools/fontcharacter/__init__.py create mode 100755 tools/listsets.py create mode 100755 tools/makebin.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..32ba708 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/Makefile.cfg +/sets + +.*.swp +__pycache__ diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..52b6974 --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,13 @@ +# FONTCHARACTER Reference authors +Copyright (C) 2016-2017 Thomas "Cakeisalie5" Touhey <> + +Thanks to the other contributors for making FONTCHARACTER great again: +* Lephenixnoir (Planète Casio); +* Zezombye (Planète Casio). + +Thanks to the following sources of information: +* Raw OS Data, extracted using a tool based on a technique found by + Simon Lothar; +* “La Casio Graph100”, by Olivier Coupelon (May, 2002); +* Casetta's CASIO Token List, by Florian Birée (May, 2007); +* Various manuals from CASIO. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..982b1d4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing to FONTCHARACTER Reference +Start by reading all of the available documentation, from the `README.md` +to the formats description, `FORMATS.md` -- in order to know how to contribute +to the project, you have to know how to use it! + +## What is left to do +The main thing that is left to do is define the sets, and check which +characters appeared in each of the sets. +The FONTCHARACTER extensions do **not** have priority +(to be honest, the addition of C.Basic was not really planned +straight away...), so please try to concentrate on CASIO's sets first. + +To achieve this, you can use my [Opcode Table C Extracting Tool][extract], and +the OSes on [Planète Casio's Bible][oses]. + +## Any mistake? +You have tried using the reference, but it doesn't match the characters on +your calculator? Yes, it indeed could be a mistake, but it might as well be +a compatibility issue! + +You should check in the sets if your model/OS is supported. If you could try +to correct the reference while not breaking everything (even though the +maintainers will probably be careful), that would be great! + +Otherwise, you can try to contact the current project maintainer(s). +You can find their personal detail in `AUTHORS.md`. + +[extract]: http://www.casiopeia.net/forum/viewtopic.php?p=14742#p14742 +[oses]: http://bible.planet-casio.com/casio/os_boot_setup/ diff --git a/FORMAT.md b/FORMAT.md new file mode 100644 index 0000000..78e82bc --- /dev/null +++ b/FORMAT.md @@ -0,0 +1,24 @@ +# FONTCHARACTER reference formats +To know more about the project itself, and what these formats are, +see `README.md`. + +There are a few formats used by the present FONTCHARACTER reference: + +- The source format: not meant to be used in other projects. + It is the format in which the humans write the reference. + It is not versioned itself, as it is linked to the same commits and + reference project versions; +- The binary formats: these are meant to be used in other projects. + They are versioned, and the version is present in the file so it can be + identified by the decoder, which then decides if it uses it or if it just + spits "Unknown version". + +To use files under the binary formats, the installed generated files will +probably be in a common folder such as `/usr/share/casio/fontcharacter/*.set` +on a Unix-like OS such as any GNU/Linux distribution or MacOS/OS X, or +`C:\Program Files\CASIO\FONTCHARACTER\*.set` under Microsoft Windows +(yet to be confirmed). + +The formats themselves are described under the `formats/` folder, +see `formats/SOURCE.md` for the source format, and `formats/BINARYx.md` for +binary formats, where `x` represents the version number. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..408c98d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,157 @@ +### GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the +terms and conditions of version 3 of the GNU General Public License, +supplemented by the additional permissions listed below. + +#### 0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the +GNU General Public License. + +"The Library" refers to a covered work governed by this License, other +than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + +The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +#### 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +#### 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + +- a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or +- b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +#### 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a +header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + +- a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the object code with a copy of the GNU GPL and this + license document. + +#### 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + +- a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. +- c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. +- d) Do one of the following: + - 0) Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + - 1) Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. +- e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +#### 5. Combined Libraries. + +You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + +- a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. +- b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + +#### 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License "or any later version" applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, you +may choose any version of the GNU Lesser General Public License ever +published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..6490715 --- /dev/null +++ b/Makefile @@ -0,0 +1,96 @@ +#!/usr/bin/make -f +#*****************************************************************************# +# Include variables and message subsystem # +#*****************************************************************************# +include Makefile.vars Makefile.msg +#*****************************************************************************# +# General targets # +#*****************************************************************************# +# Build everything. +all: all-sets + +# Mostly clean everything. +mostlyclean mclean: mostlyclean-sets + +# Clean everything. +fclean clean: clean-sets + +# Clean to original state. +mrproper: clean + $(call rmsg,Removing configuration.) + $(call qcmd,$(RM) Makefile.cfg) + +# Remake everything (clean and build). +re: clean all + +# Install everything. +install: install-sets + +# Make a distribution tarball. +dist: mrproper + $(call bcmd,mkdir,$(NAME)-$(VERSION), $(MD) .dist) + $(call bcmd,cp,* $(NAME)-$(VERSION), $(CP) -R * .dist) + $(call qcmd,$(MV) .dist $(NAME)-$(VERSION)) + $(call bcmd,tarball,$(NAME)-$(VERSION),\ + tar czf $(NAME)-$(VERSION).tar.gz --exclude .git $(NAME)-$(VERSION)) + $(call qcmd,$(RM) -r $(NAME)-$(VERSION)) + +.PHONY: all mostlyclean mclean clean fclean mrproper re +.PHONY: dist install +#*****************************************************************************# +# Configuration (version) checking dependencies # +#*****************************************************************************# +# Define the dependencies. + CHECKCFG := $(if $(shell test -f Makefile.cfg || echo y),check-config, \ + $(if $(shell [ "$(VERSION)" = "$(CONFIG_VERSION)" ] || echo y), \ + check-config-version)) + +# Define the rules. + check-config: + @echo -e "\033[1;31mNo configuration file found!" + @echo -e "You should configure before re-running this target.\033[0m" + @false + check-config-version: + @echo -e "\033[1;31mConfiguration version is incorrect!" + @echo -e "You should re-configure before re-running this target.\033[0m" + @false + +.PHONY: check-config check-config-version +#*****************************************************************************# +# Information getting from the Makefile variables # +#*****************************************************************************# +# Get the project name. + getname: + @echo $(NAME) + +# Get the project version. + getversion: + @echo $(VERSION) + +# Get the maintainer. + getmaintainer: + @echo "Thomas \"Cakeisalie5\" Touhey " + +.PHONY: getname getversion getmaintainer +#*****************************************************************************# +# Sets-related targets # +#*****************************************************************************# +# Make the sets. + all-sets: $(SET_FILES) + $(SET_FILES): $(CHECKCFG) $(REF) tools/makebin.py + $(call bcmd,makebin,$(SETDIR),\ + tools/makebin.py --output $(SETDIR) --refpath $(REFDIR)) + +# Clean all of the sets + clean-sets: + $(call rmsg,Cleaning the sets.) + $(call qcmd,rm -rf $(SETDIR)) + +# Install all of the sets. + install-sets: all-sets + $(call imsg,Installing the sets.) + $(call qcmd,$(MD) "$(ISETDIR)") + $(call qcmd,$(INSTALL) $(SETS) "$(ISETDIR)") + +.PHONY: all-sets clean-sets install-sets +# End of file. diff --git a/Makefile.msg b/Makefile.msg new file mode 100755 index 0000000..bb322ca --- /dev/null +++ b/Makefile.msg @@ -0,0 +1,57 @@ +#!/usr/bin/make -f +# The Makefile message subsystem. +# For nice logs. 5 dollars per log only. +#*****************************************************************************# +# Colors and misc # +#*****************************************************************************# +# Used colors ANSI modifiers escape codes + color_green := 32 + color_red := 31 + color_yellow := 33 + +# Newline - comes handy in some situations +define \n + + +endef +#*****************************************************************************# +# General messages # +#*****************************************************************************# +# Command message - display basic info about the command, and run it. +define cmd +@$(if $(MAKE_FULL_LOG),,\ +printf "\033[1;""$4""m>\033[0m \033[1m%s\033[0m %s\n" "$1" "$2";) + $(if $(MAKE_FULL_LOG),,@)$3 +endef + +# Quiet command - make it non-quiet if full log is enabled. +define qcmd +$(if $(MAKE_FULL_LOG),,@)$1 +endef + +# Normal message - display it. +define msg +$(if $(MAKE_FULL_LOG),,\ +@printf "\033[1;""$2""m>\033[0m \033[1m%s\033[0m\n" "$1") +endef +#*****************************************************************************# +# Commands # +#*****************************************************************************# +# Build command +define bcmd +$(call cmd,$1,$2,$3,$(color_green)) +endef +#*****************************************************************************# +# Messages # +#*****************************************************************************# +# Remove message +define rmsg +$(call msg,$1,$(color_red)) +endef + +# Install message +define imsg +$(call msg,$1,$(color_yellow)) +endef + +# End of file diff --git a/Makefile.vars b/Makefile.vars new file mode 100755 index 0000000..4a8888a --- /dev/null +++ b/Makefile.vars @@ -0,0 +1,62 @@ +#!/usr/bin/make -f +# Include the configuration. +-include Makefile.cfg +#*****************************************************************************# +# Project main information. # +#*****************************************************************************# +# Project name and description. + NAME := refc + DESC := The FONTCHARACTER reference. + +# Project version. + MAJOR := 0 + MINOR := 1 + INDEV := yes + +# Project version string. + VERSION := $(MAJOR).$(MINOR)$(if $(INDEV),-indev) +#*****************************************************************************# +# Project directories # +#*****************************************************************************# +# Reference directory. + REFDIR := ./reference + +# Sets (output) directory. + SETDIR := ./sets +#*****************************************************************************# +# Sets-related information # +#*****************************************************************************# +# List the sets. + SETS := $(shell tools/listsets.py --refpath $(REFDIR)) + +# List the set files. + SET_FILES := $(SETS:%=$(SETDIR)/%.set) +#*****************************************************************************# +# Binary utilities # +#*****************************************************************************# +# Make the binary file. + MAKEBIN := tools/makebin.py + +# Make a directory. + MD := mkdir -p + +# Install. + INSTALL := /usr/bin/install + +# Remove a file. + RM := rm -f +#*****************************************************************************# +# Check for DESTDIR (add as prefix to installation root) # +#*****************************************************************************# +# Save original sets dir. + OISETDIR := $(ISETDIR) + +# Make it. +define add-dest-dir + $1 = $(DESTDIR)$($1) +endef +$(if $(DESTDIR), $(foreach idir,\ +ISETDIR,\ +$(eval $(call add-dest-dir,$(idir))))) + +# End of file. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2989152 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# FONTCHARACTER Reference +## Introduction +`FONTCHARACTER` is how, in the CASIO community, we call CASIO's encoding. +It is an encoding made up for CASIO calculators. It is partially +ASCII retrocompatible. + +It is a simple multi-byte encoding, where some characters are multi-byte +sequence leaders. Each character can occupy up to two bytes (leading character, +then whatever -- a leading character after another one isn't). +For example, if 0xE5 is a leading character, 0xE5 followed by 0xE5 forms +the 0xE5E5 character, and if 0x46 isn't, it forms the 0x46 character. + +This project is here to centralize all the info about it : existing characters, +their appearance in the standard fonts, their Unicode equivalents and defines. +The goal of this project is to give the ability to any project (thanks to +[LGPL3][lgpl3]) to be able to read, write, describe and convert from or to +CASIO's proprietary encoding. + +You can use this reference through its source format, through its binary +format (better), or through [libfontcharacter][libfc] (recommended!). + +[libfc]: https://github.com/PlaneteCasio/libfontcharacter +[lgpl3]: https://www.gnu.org/licenses/lgpl-3.0.en.html diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..82f7872 --- /dev/null +++ b/TODO.md @@ -0,0 +1,3 @@ +# TODO in FONTCHARACTER Reference +- Check out the unknown/undocumented characters (`UNKNOWN.md`); +- Develop the set systems, make them represent the encoding history; diff --git a/UNKNOWN.md b/UNKNOWN.md new file mode 100644 index 0000000..1c50492 --- /dev/null +++ b/UNKNOWN.md @@ -0,0 +1,94 @@ +# Unknown/unused/undocumented characters (in default set) +People should investigate on these. Maybe they're used but I forgot to include +them. Maybe they're not used ('@' or 0xLL40 where 0xLL is the lead character), +yet. Oh, and I may have forgotten some. + + 0x90 + 0x9D + 0xD2 + + 0x7F03 + 0x7F07 + 0x7F13 + 0x7F17 + 0x7F1B-0x7F1C + 0x7F31-0x7F39 + 0x7F58-0x7F5F + 0x7F69 + 0x7F70-0x7F75 + 0x7F7E-0x7F83 + 0x7F8B + 0x7F99-0x7F9B + 0x7F9D-0x7F9F + 0x7FAF + 0x7FB2 + 0x7FB8 + 0x7FBF + 0x7FCF + 0x7FDF + 0x7FE5-0x7FE8 + 0x7FF5-0x7FFA + 0x7FFF + + 0xF70F + 0xF717 + 0xF737-0xF739 + 0xF73B + 0xF73D-0xF73E + 0xF754 + 0xF766 + 0xF772-0xF775 + 0xF77B-0xF77C + 0xF77F + 0xF781-0xF786 + 0xF78A-0xF78B + 0xF79B-0xF79D + 0xF7AE + 0xF7CF + 0xF7DE-0xF7FF + + 0xF900 + 0xF90D-0xF90F + 0xF91A + 0xF91F + 0xF923 + 0xF940-0xF949 + 0xF94C-0xF95A + 0xF95C-0xF95D + 0xF95F-0xF96C + 0xF96E-0xF97F + 0xF998-0xF99F + 0xF9BE-0xF9DF + 0xF9E4-0xF9E7 + 0xF9F3-0xF9FA + 0xF9FF + + 0xE500 + 0xE51F + 0xE536-0xE53F + 0xE559-0xE55F + 0xE57F + 0xE5A8-0xE5AF + 0xE5E0-0xE5FF + + 0xE600 + 0xE636-0xE63F + 0xE659-0xE65F + 0xE67F + 0xE6BA + 0xE6DF-0xE6FF + + 0xE700 + 0xE718 + 0xE730-0xE740 + 0xE77B-0xE7AF + 0xE7B1 + 0xE7BC + 0xE7BE + 0xE7C1 + 0xE7C6 + 0xE7D6 + 0xE7E0-0xE7E1 + 0xE7E5-0xE7E7 + 0xE7F6-0xE7FA + 0xE7FC-0xE7FF diff --git a/configure b/configure new file mode 100755 index 0000000..d732bc8 --- /dev/null +++ b/configure @@ -0,0 +1,123 @@ +#!/bin/sh +cd "$(dirname $0)" +#*****************************************************************************# +# Defaults # +#*****************************************************************************# +# Project variables +[ -f Makefile.cfg ] && mv Makefile.cfg Makefile.cfg.tmp +name="$(make -s getname)" +version="$(make -s getversion)" +maintainer="$(make -s getmaintainer)" +[ -f Makefile.cfg.tmp ] && mv Makefile.cfg.tmp Makefile.cfg + +# Make options. +make_full_log= + +# Build options. +no_unicode= + +# Installation directories. +root='' +prefix='${root}/opt/p7-project' +setdir='${prefix}/share/casio-fontcharacter/' +#*****************************************************************************# +# Help message # +#*****************************************************************************# +usage() { +cat </dev/null 2>/dev/null + +# Do it! +exec 3>&1 1>Makefile.cfg +cat <&3 3>&- +chmod +x Makefile.cfg + +# Print the end message. +echo "Configuration loaded, you can make now." + +# End of file. diff --git a/formats/BINARY1.md b/formats/BINARY1.md new file mode 100644 index 0000000..bd60a7f --- /dev/null +++ b/formats/BINARY1.md @@ -0,0 +1,113 @@ +# Binary format (Version 1) +**This format is a draft. It will be completed as the version 1.0 of the** +**reference is release.** + +The binary file is divided into four zones: + +- the overall header; +- the leading character pool; +- the character pool; +- the data pool. + +Multi-byte integer fields are encoded as **big endian**. + +## Overall header +The file starts with an overall header, describing the structure of the rest +of the file. As all of the files under any binary format representing +a FONTCHARACTER reference set, the file starts with: + +- Magic string (8 bytes): "CASIOFC\x7F"; +- Version byte (1 byte) -- in this version of the format, it is 0x01. + +If the magic string is not verified, the file is either corrupted or of an +other file. If the version byte isn't verified, then the file uses a different +version from the current one, and you should return that the user needs an +upgraded version of your utility (because you'll keep updating it... right?), +or a more recent utility. + +From there, the file is under this specific version of the format. +The overall header continues with the following fields: + +- Number of majors (1 byte): this is the number of entries in the leading + characters pool (second zone of the file); +- Number of characters (2 bytes): the total number of characters; +- Flags (1 byte): the flags: + + - 0x01: Unicode is enabled (see character entry); + - 0x02: CAT tokens are enabled (see character entry); + - 0x04: Newcat tokens are enabled (see character entry); + - 0x08: CTF tokens are enabled (see character entry); + - 0x10: Casemul tokens are enabled (see character entry); +- Picture height (1 byte): the picture width; +- Picture format (2 bytes): the picture format used to represent the + characters, taken from libcasio's [picture.h][picture.h]. + Allowed formats are: + + - 0x0100: monochrome with fill bits; +- Reserved (4 bytes): should be zero; +- Checksum (4 bytes): basic checksum for the leading character pool, + character pool, and data pool (if zero, do not check the checksum); +- File size (4 bytes): the file size; +- Data zone size (4 bytes): the data zone size. + +The checksumming technique is simple: you add all of the data, byte per byte, +in a 32-bit variable. For example, the checksum of \[0xFF, 0x02, 0x03\] is +0x00000104. Overflow is allowed (0xFFFFFFFF + 2 = 0x00000001). + +## Leading character pool +This pool provides quick access to the characters under a leading-character. +Each entry is made of the following: + +- Leading character byte (1 byte), e.g. 0x00 or 0xE5; +- Reserved (1 byte), always zero; +- Starting entry ID in the character pool (2 bytes); + +The offset is to be multiplied by the size of a character entry (which is +constant). + +## Character pool +This pool provides the character entries. For quick access, each entry is +the same size, the variable data being stored in the data pool. +Each entry has the following format: + +- Leading character (1 byte), e.g. 0x00 or 0xE5; +- Main character (1 byte), e.g. 0x45 for 0xE545; +- FONTCHARACTER sequence size (1 byte), 0 if not a FONTCHARACTER sequence; +- Unicode string size (1 byte), 0 if no unicode string; +- CAT token size (1 byte), 0 if no CAT token; +- Newcat token size (1 byte), 0 if no Newcat token; +- CTF token size (1 byte), 0 if no CTF token; +- Casemul token size (1 byte), 0 if no Casemul token; +- FONTCHARACTER sequence offset in data pool (4 bytes); +- (only if Unicode is enabled in the flags) + Unicode string offset in data pool (4 bytes); +- (only if CAT is enabled in the flags) + CAT token offset in data pool (4 bytes); +- (only if Newcat tokens are enabled in the flags) + Newcat token offset in data pool (4 bytes); +- (only if CTF tokens are enabled in the flags) + CTF token offset in data pool (4 bytes); +- (only if Casemul tokens are enabled in the flags) + Casemul token offset in data pool (4 bytes); + +The entry size is indeed different among all of the files, but constant for +one file, as the flags correspond to the overall header flags. + +## Data pool +Raw data is stored here. To get the size of this zone, take the file size +in the overall header and remove the size of the three previous zones. +This size is duplicated in the header, and the correlation between the +calculated and given sizes should be checked. + +Notice that bytes don't need to be in the same order than characters, and +can be indexed several times, which can lead to space optimizations. +For example, if a character points to [0x02, 0x03] and another +one points to [0x01, 0x02] (in any order), you can put [0x01, 0x02, 0x03] in +the data pool, then make the first character point to the offset + 1 of +this tab, and the second one point to the offset of this tab. +This system allows space optimizations to be done to this zone at build time, +although optimizing this depends on the [shortest superstring][superstr] +problem. + +[picture.h]: https://github.com/PlaneteCasio/libcasio/blob/master/include/libcasio/picture.h +[superstr]: https://en.wikipedia.org/wiki/Shortest_common_supersequence_problem diff --git a/formats/SOURCE.md b/formats/SOURCE.md new file mode 100644 index 0000000..4c9f901 --- /dev/null +++ b/formats/SOURCE.md @@ -0,0 +1,176 @@ +# Source format +This format is yet to stabilize. If you just want to use the reference for +conversions between FONTCHARACTER and other character sets (which should +be managed by [libcasio][libcasio] anyway), check out the latest binary +format (`BINARYx.md`). + +YAML has been chosen to store the information, as it's a storage format that +a machine and a human can read and write quite easily. + +## Main file +`main.yml` is the file containing the main information about the source +reference. It only contains two fields for now: + +- `version` is the version of the source reference (`0.1` corresponds to this + version); +- `source` is the link to the FONTCHARACTER reference's source repository, + managed through a VCS (Git, for that matter). + +## Sets +A set is basically a pack of characters appeared at the same time on CASIO +calculators, or in an extension (alternative CASIO Basic +interpreters/compilers). + +`sets.yml` is the sets file. For each set: + +- the `description` field is the description of the set; +- if the `default` field is there, then it is the default set to use + (generally the most recent set made by CASIO); +- if the `leading` field is there, the list of leading characters is in it, + separated by commas; +- if the `parent` field is there, then the set inherits all of the characters + of its parents, and, if the child has no `leading` field, its parent's + leading characters. + +## Categories +`categories.yml` is the categories file. Each category has an `id` field, which +is the identification string, an optional `prefix` field and an optional `sub` +list, which is the subcategories with each an `id` and a `prefix` fields. +To access the subcategory "Latin Capital" in the category "Letter", the +`category` field in the character information will have to be +`Letter/Latin Capital/Mini`. The name of the character will then be prefixed by +`Mini Latin Capital Letter ` (with the spaces between prefixes and an ending +space); the subcategory prefix goes first. If there is a suffix, a space then +it are appended to the character name, for example, ` Digit`. + +There are some more fields -- see the _Embedded CASIO BASIC documentation_ +section. + +## Characters +There are two systems of characters on CASIO calculators: Simon Lothar calls +them the "characters" and the "opcodes". The "characters" are simple characters +with a display, and the "opcodes", which are defined by a set of characters +(e.g. "Locate "). The two are described in two different tables on the +calculator, but the two describe the same encoding, so that's why this +reference considers all "characters" and "opcodes" as characters ("opcodes" +are here called multi-characters). + +`characters.yml` is the file containing data about the characters. For each +character, the `code` field is its `FONTCHARACTER` code, the `name` field is +the complete description of the character, the `flags` are the character flags +and the `category` field is the category(/subcategory) ID (see in the last +paragraph). If there is no category field, the category is "Other", with no +prefix. + +Flags is a list of flag strings. Current flags are: + +* `nl`: the character should be followed by a newline; +* `esc`: the character's CTF token is escaped with a reverse solidus; +* `sep`: the character is a Basic separator; +* `base`: only accessible in BASE programs. + +Some characters have an ASCII token representation, mostly for the *cat*, +*newcat*, *ctf* and *casemul* formats. If the `tokens` field exists, then +it is a dictionary of the tokens in the different formats. +- If the `cat` field of the dictionary doesn't exist, its value is deduced + recursively using the `multi` field is there, or from the `unicode` field + (if all-`ASCII`), and prefixed by a reverse solidus '\\'; +- If the `newcat` field of the dictionary doesn't exist, it takes its + value from the `cat` field; +- If the `ctf` field of the dictionary doesn't exist, it takes its value from + the `cat` field if it was not deduced, otherwise, it is deduced the same way + as the `cat` field, but it is not prefixed with a reverse solidus '\\'; +- If the `casemul` field of the dictionary doesn't exist, it is deduced the + same way than the `ctf` field; +- If the `ref` field of the dictionary doesn't exist, it takes the + (first) value of the `ctf` field. + +There can be multiple tokens for one format; in this case, the value of the +format field is a list. + +It is possible to obtain an ASCII/HTML representation of most characters: +- If tokens exist, take the `ref` token; +- Otherwise, if the `multi` field is specified, then the representation can be + obtained recursively by querying this field's elements; +- Otherwise, no ASCII representation is available. + +The `id` field is an identifier for the character, composed of letters, +numbers and underscores. It can be used for C defines. +If there is no `id` field, it is the value in the `ascii` field if it can +be deduced (or the `name` field if it can't), with hyphens turned into +underscores, and other non-valid characters removed (spaces, parenthesis, ...). + +You have to distinguish multi-characters opcodes and simple opcodes. +Multi-character opcodes are characters that simply are a sequence of simple +characters. You can distinguish them from simple opcodes by checking the +presence of a `multi` field, which then is the `FONTCHARACTER` codes of the +characters in the sequence, separated with commas. + +Multi-characters are distinguishable from simple characters by checking the +presence of a `multi` field. The `multi` field is the `FONTCHARACTER` codes of +the characters composing it, separated by commas. Be careful: there can be +only one character for the multi-character, and Yaml won't interpret this as +a string, but as a number directly! + +If the character is simple, then if there is a unicode sequence equivalent of +the character, the Unicode codes of the sequences separated with commas will be +in the `unicode` field; otherwise, the field doesn't exist. + +If the character data has a `set` field, then the character is in a set; +otherwise, it should be considered as part of the default set. + +### Embedded CASIO BASIC documentation +Some characters will have the `type` field. This type means they have a special +meaning in CASIO Basic. There are two types: `function` and `object`. There is +an associated syntax, which is either `(arg1, arg2)` or +` arg1,arg2`, the first syntax is when `par` is `true` and the second one +is when it is `false`. +Note that for the first syntax, the ending parenthesis is not mandatory. + +If `par` is `false` (or non-existent), then the `fix` field can be +set to `infix`, which means the function will be used with either +`arg1 ` or `arg1 arg2`. + +If the function/object should receive arguments, it can be documented using the +`args` field, and if it has, after these arguments, optional arguments, it can +be documented with the `optn` field. These fields receives a list of argument +strings. An argument type can be imposed by add-in `:` at the end of the +argument string; for example, here are the `For` and `To` entries: + + - + code: 0xF704 + name: For + category: Statement + args: ["to:0xF705"] + action: ... + multi: [0x46, 0x6F, 0x72, 0x20] + - + code: 0xF705 + name: To + category: Operator + args: ["assign:0x0E"] + optn: ["step:0xF706"] + action: ... + multi: [0x20, 0x54, 0x6F, 0x20] + +If the function is supposed to make an action, this action can be documented +using the `action` field. If it is supposed to return something, it should can +be documented using the `return` field. + +## Fonts +`fonts.yml` is the file containing the fonts information. For each font, +`id` is the ID string, `name` is the complete name, `author` is the complete +author name, `width` and `height` are the dimensions of each character in +the font. + +For each font, there is a corresponding folder, named with the font ID. +This folder contains the characters images, organized by the leading multi-byte +character; if there is none, the file `0xXX.pbm` will be chosen, otherwise, +the file `0xLLXX.pbm` will be chosen, where `0xLL` is the leading character. +If the file doesn't exist, the character is to be considered as blank. + +Each existing file is a set of 256 tiles of `width * height` each. Each row is +the tiles going from `0xR0` to `0xRF`, where `0xR` is the row number +(0x0 to 0xF). + +[libcasio]: https://libcasio.planet-casio.com/ diff --git a/reference/categories.yml b/reference/categories.yml new file mode 100644 index 0000000..acbb5dc --- /dev/null +++ b/reference/categories.yml @@ -0,0 +1,123 @@ +#******************************************************************************# +# Letters # +#******************************************************************************# +- + id: Letter + prefix: Letter + sub: + - + id: Latin Capital + prefix: Latin Capital + sub: + - + id: Squared + prefix: Squared + sub: + - + id: Negative + prefix: Negative + - + id: Mini + prefix: Mini + - + id: Latin Small + prefix: Latin Small + sub: + - + id: Mini + prefix: Mini + - + id: Greek Capital + prefix: Greek Capital + - + id: Greek Small + prefix: Greek Small + - + id: Cyrillic Capital + prefix: Cyrillic Capital + - + id: Cyrillic Small + prefix: Cyrillic Small +- + id: Ligature + prefix: Ligature + sub: + - + id: Latin Capital + prefix: Latin Capital + - + id: Latin Small + prefix: Latin Small + +#******************************************************************************# +# Other "normal" categories # +#******************************************************************************# +- + id: Digit + prefix: Digit +- + id: Superscript + prefix: Superscript + sub: + - + id: Sign + suffix: Sign + - + id: Small + prefix: Small +- + id: Subscript + prefix: Subscript + sub: + - + id: Small + prefix: Small + - + id: Sign + suffix: Sign +- + id: Sign + suffix: Sign +- + id: Symbol + suffix: Symbol + +#******************************************************************************# +# CASIO-related categories # +#******************************************************************************# +- + id: Statement + type: function + par: true + suffix: Statement +- + id: Operator + type: function + fix: infix + suffix: Operator + sub: + - id: Prefix + fix: prefix + suffix: Prefix +- + id: Register + type: function + args: [] + suffix: Register +- + id: Object + type: object + par: false + suffix: Statement + sub: + - + id: Infix + fix: infix +- + id: Function + type: function + par: true + suffix: Function +- + id: Unit + suffix: Unit diff --git a/reference/characters.yml b/reference/characters.yml new file mode 100644 index 0000000..7a49f0a --- /dev/null +++ b/reference/characters.yml @@ -0,0 +1,7582 @@ +#******************************************************************************# +# Characters hardcoded in the ASCII table # +#******************************************************************************# +- + code: 0x00 + name: Null Character + id: "null" + ascii: (null) +- + code: 0x01 + name: Femto + category: Symbol + multi: [0x66] + tokens: {cat: "\\femto", newcat: "\\fempto", casemul: fempto} +- + code: 0x02 + name: Pico + category: Symbol + multi: [0x70] + tokens: {cat: "\\pico", casemul: "\\xc1"} +- + code: 0x03 + name: Nano + category: Symbol + multi: [0x6e] + tokens: {cat: "\\nano", casemul: "\\xc2"} +- + code: 0x04 + name: Micro + category: Symbol + multi: [0xE64B] + tokens: {cat: "\\micro", casemul: "\\xc3"} +- + code: 0x05 + name: Milli + category: Symbol + multi: [0x6D] + tokens: {cat: "\\milli", casemul: "\\xc4"} +- + code: 0x06 + name: Kilo + category: Symbol + multi: [0x6B] + tokens: {cat: "\\kilo", casemul: "\\xc5"} +- + code: 0x07 + name: Mega + category: Symbol + multi: [0x4D] + tokens: {cat: "\\Mega", casemul: "\\xc6"} +- + code: 0x08 + name: Giga + category: Symbol + multi: [0x47] + tokens: {cat: "\\Giga", casemul: "\\xc7"} +- + code: 0x09 + name: Tera + category: Symbol + multi: [0x54] + tokens: {cat: "\\Tera", casemul: "\\xc8"} +- + code: 0x0A + name: Peta + category: Symbol + multi: [0x50] + tokens: {cat: "\\Peta", casemul: "\\xc9"} +- + code: 0x0B + name: Exa + category: Symbol + multi: [0x45] + tokens: {cat: "\\Exa", casemul: "\\xca"} +- + code: 0x0C + name: Disp + category: Symbol + flags: [nl, sep] + unicode: [0x25E2] + tokens: {cat: "\\Disp", newcat: ["\\Disp\r", "\\Disp"], ctf: "_\n", + casemul: "\\xbb\r"} + id: disps +- + code: 0x0D + name: Newline + unicode: [0x0D] + flags: [nl, sep] + id: newline +- + code: 0x0E + name: Rightwards Arrow + multi: [0xE691] + tokens: {cat: "\\->", ctf: "->", casemul: "\\x87"} + id: assign +- + code: 0x0F + name: 10 to the power of + tokens: {cat: "\\EE", newcat: "\\E", ctf: "\\exp", casemul: "\\x94", + ref: "x10^"} +- + code: 0x10 + name: Less-Than or Equal To + unicode: [0x2264] + tokens: {cat: "\\<=", ctf: "<=", casemul: "\\xae"} + id: le +- + code: 0x11 + name: Not Equal To + unicode: [0x2260] + tokens: {cat: "\\<>", ctf: "<>", casemul: "\\xac"} + id: nequ +- + code: 0x12 + name: Greater-Than or Equal To + unicode: [0x2265] + tokens: {cat: "\\>=", ctf: ">=", casemul: "\\xaf"} + id: ge +- + code: 0x13 + name: Rightwards Double Arrow + unicode: [0x21D2] + tokens: {cat: "\\=>", ctf: "=>", casemul: "\\xee"} + id: implies +- + code: 0x14 + name: Function Memory 1 + multi: [0x66, 0xE5D1] + tokens: {cat: "\\f1", ctf: ["\\f1", "f1"], casemul: "f\\xf1"} +- + code: 0x15 + name: Function Memory 2 + multi: [0x66, 0xE5D2] + tokens: {cat: "\\f2", ctf: ["\\f2", "f2"], casemul: "f\\xf2"} +- + code: 0x16 + name: Function Memory 3 + multi: [0x66, 0xE5D3] + tokens: {cat: "\\f3", ctf: ["\\f3", "f3"], casemul: "f\\xf3"} +- + code: 0x17 + name: Function Memory 4 + multi: [0x66, 0xE5D4] + tokens: {cat: "\\f4", ctf: ["\\f4", "f4"], casemul: "f\\xf4"} +- + code: 0x18 + name: Function Memory 5 + multi: [0x66, 0xE5D5] + tokens: {cat: "\\f5", ctf: ["\\f5", "f5"], casemul: "f\\xf5"} +- + code: 0x19 + name: Function Memory 6 + multi: [0x66, 0xE5D6] + tokens: {cat: "\\f6", ctf: ["\\f6", "f6"], casemul: "f\\xf6"} +- + code: 0x1A + name: Hexadecimal A + tokens: {cat: "\\hA", ctf: "\\A", casemul: "hA"} + id: hex_a +- + code: 0x1B + name: Hexadecimal B + tokens: {cat: "\\hB", ctf: "\\B", casemul: "hB"} + id: hex_b +- + code: 0x1C + name: Hexadecimal C + tokens: {cat: "\\hC", ctf: "\\C", casemul: "hC"} + id: hex_c +- + code: 0x1D + name: Hexadecimal D + tokens: {cat: "\\hD", ctf: "\\D", casemul: "hD"} + id: hex_d +- + code: 0x1E + name: Hexadecimal E + tokens: {cat: "\\hE", ctf: "\\E", casemul: "hE"} + id: hex_e +- + code: 0x1F + name: Hexadecimal F + tokens: {cat: "\\hF", ctf: "\\F", casemul: "hF"} + id: hex_f +#******************************************************************************# +# ASCII retrocompatible part # +#******************************************************************************# +- + code: 0x20 + name: Space + unicode: [0x20] + id: space +- + code: 0x21 + name: Exclamation mark + flags: [esc] + unicode: [0x21] + id: bang +- + code: 0x22 + name: Quotation mark + unicode: [0x22] + id: quote +- + code: 0x23 + name: Number + category: Sign + unicode: [0x23] + id: sharp +- + code: 0x24 + name: Dollar + category: Sign + unicode: [0x24] + id: dollar +- + code: 0x25 + name: Percent + flags: [esc] + category: Sign + unicode: [0x25] + id: percent +- + code: 0x26 + name: Ampersand + unicode: [0x26] + id: ampersand +- + code: 0x27 + name: Apostrophe + unicode: [0x27] + id: apostrophe +- + code: 0x28 + name: Left Parenthesis + unicode: [0x28] + id: lpar +- + code: 0x29 + name: Right Parenthesis + unicode: [0x29] + id: rpar +- + code: 0x2A + name: Asterisk + flags: [esc] + unicode: [0x2A] + id: asterisk +- + code: 0x2B + name: Plus + flags: [esc] + category: Sign + unicode: [0x2B] + id: plus +- + code: 0x2C + name: Comma + unicode: [0x2C] + id: comma +- + code: 0x2D + name: Hyphen + flags: [esc] + unicode: [0x2010] + ascii: "-" + id: hyphen +- + code: 0x2E + name: Full Stop + unicode: [0x2E] + id: dot +- + code: 0x2F + name: Solidus + flags: [esc] + unicode: [0x2F] + id: slash +- + code: 0x30 + name: Zero + category: Digit + unicode: [0x30] + id: zero +- + code: 0x31 + name: One + category: Digit + unicode: [0x31] + id: one +- + code: 0x32 + name: Two + category: Digit + unicode: [0x32] + id: two +- + code: 0x33 + name: Three + category: Digit + unicode: [0x33] + id: three +- + code: 0x34 + name: Four + category: Digit + unicode: [0x34] + id: four +- + code: 0x35 + name: Five + category: Digit + unicode: [0x35] + id: five +- + code: 0x36 + name: Six + category: Digit + unicode: [0x36] + id: six +- + code: 0x37 + name: Seven + category: Digit + unicode: [0x37] + id: seven +- + code: 0x38 + name: Eight + category: Digit + unicode: [0x38] + id: eight +- + code: 0x39 + name: Nine + category: Digit + unicode: [0x39] + id: nine +- + code: 0x3A + name: Colon + unicode: [0x3A] + tokens: {ctf: "", casemul: "", ref: ":"} + id: colon +- + code: 0x3B + name: Semicolon + flags: [sep] + unicode: [0x3B] + id: semicolon +- + code: 0x3C + name: Less-Than + category: Sign + unicode: [0x3C] + id: lt +- + code: 0x3D + name: Equals + category: Sign + unicode: [0x3D] + id: equ +- + code: 0x3E + name: Greater-Than + category: Sign + unicode: [0x3E] + id: gt +- + code: 0x3F + name: Question Mark + unicode: [0x3F] + tokens: {ctf: "", casemul: "?", ref: "?"} + id: question_mark +- + code: 0x40 + name: Commercial At + unicode: [0x40] + id: at +- + code: 0x41 + name: A + category: Letter/Latin Capital + unicode: [0x41] +- + code: 0x42 + name: B + category: Letter/Latin Capital + unicode: [0x42] +- + code: 0x43 + name: C + category: Letter/Latin Capital + unicode: [0x43] +- + code: 0x44 + name: D + category: Letter/Latin Capital + unicode: [0x44] +- + code: 0x45 + name: E + category: Letter/Latin Capital + unicode: [0x45] +- + code: 0x46 + name: F + category: Letter/Latin Capital + unicode: [0x46] +- + code: 0x47 + name: G + category: Letter/Latin Capital + unicode: [0x47] +- + code: 0x48 + name: H + category: Letter/Latin Capital + unicode: [0x48] +- + code: 0x49 + name: I + category: Letter/Latin Capital + unicode: [0x49] +- + code: 0x4A + name: J + category: Letter/Latin Capital + unicode: [0x4A] +- + code: 0x4B + name: K + category: Letter/Latin Capital + unicode: [0x4B] +- + code: 0x4C + name: L + category: Letter/Latin Capital + unicode: [0x4C] +- + code: 0x4D + name: M + category: Letter/Latin Capital + unicode: [0x4D] +- + code: 0x4E + name: N + category: Letter/Latin Capital + unicode: [0x4E] +- + code: 0x4F + name: O + category: Letter/Latin Capital + unicode: [0x4F] +- + code: 0x50 + name: P + category: Letter/Latin Capital + unicode: [0x50] +- + code: 0x51 + name: Q + category: Letter/Latin Capital + unicode: [0x51] +- + code: 0x52 + name: R + category: Letter/Latin Capital + unicode: [0x52] +- + code: 0x53 + name: S + category: Letter/Latin Capital + unicode: [0x53] +- + code: 0x54 + name: T + category: Letter/Latin Capital + unicode: [0x54] +- + code: 0x55 + name: U + category: Letter/Latin Capital + unicode: [0x55] +- + code: 0x56 + name: V + category: Letter/Latin Capital + unicode: [0x56] +- + code: 0x57 + name: W + category: Letter/Latin Capital + unicode: [0x57] +- + code: 0x58 + name: X + category: Letter/Latin Capital + unicode: [0x58] +- + code: 0x59 + name: Y + category: Letter/Latin Capital + unicode: [0x59] +- + code: 0x5A + name: Z + category: Letter/Latin Capital + unicode: [0x5A] +- + code: 0x5B + name: Left Square Bracket + unicode: [0x5B] + id: lbrac +- + code: 0x5C + name: Reverse Solidus + flags: [esc] + unicode: [0x5C] + id: revslash +- + code: 0x5D + name: Right Square Bracket + unicode: [0x5D] + id: rbrac +- + code: 0x5E + name: Circumflex Accent + flags: [esc] + unicode: [0x5E] + ascii: "\\circum" +- + code: 0x5F + name: Low Line + flags: [esc] + unicode: [0x5F] + tokens: {cat: "", casemul: "", ctf: "\\_"} + id: underscore +- + code: 0x60 + name: Grave Accent + unicode: [0x60] + id: grave +- + code: 0x61 + name: A + category: Letter/Latin Small + unicode: [0x61] + id: a +- + code: 0x62 + name: B + category: Letter/Latin Small + unicode: [0x62] + id: b +- + code: 0x63 + name: C + category: Letter/Latin Small + unicode: [0x63] + id: c +- + code: 0x64 + name: D + category: Letter/Latin Small + unicode: [0x64] + id: d +- + code: 0x65 + name: E + category: Letter/Latin Small + unicode: [0x65] + id: e +- + code: 0x66 + name: F + category: Letter/Latin Small + unicode: [0x66] + id: f +- + code: 0x67 + name: G + category: Letter/Latin Small + unicode: [0x67] + id: g +- + code: 0x68 + name: H + category: Letter/Latin Small + unicode: [0x68] + id: h +- + code: 0x69 + name: I + category: Letter/Latin Small + unicode: [0x69] + id: i +- + code: 0x6A + name: J + category: Letter/Latin Small + unicode: [0x6A] + id: j +- + code: 0x6B + name: K + category: Letter/Latin Small + unicode: [0x6B] + id: k +- + code: 0x6C + name: L + category: Letter/Latin Small + unicode: [0x6C] + id: l +- + code: 0x6D + name: M + category: Letter/Latin Small + unicode: [0x6D] + id: m +- + code: 0x6E + name: N + category: Letter/Latin Small + unicode: [0x6E] + id: n +- + code: 0x6F + name: O + category: Letter/Latin Small + unicode: [0x6F] + id: o +- + code: 0x70 + name: P + category: Letter/Latin Small + unicode: [0x70] + id: p +- + code: 0x71 + name: Q + category: Letter/Latin Small + unicode: [0x71] + id: q +- + code: 0x72 + name: R + category: Letter/Latin Small + unicode: [0x72] + id: r +- + code: 0x73 + name: S + category: Letter/Latin Small + unicode: [0x73] + id: s +- + code: 0x74 + name: T + category: Letter/Latin Small + unicode: [0x74] + id: t +- + code: 0x75 + name: U + category: Letter/Latin Small + unicode: [0x75] + id: u +- + code: 0x76 + name: V + category: Letter/Latin Small + unicode: [0x76] + id: v +- + code: 0x77 + name: W + category: Letter/Latin Small + unicode: [0x77] + id: w +- + code: 0x78 + name: X + category: Letter/Latin Small + unicode: [0x78] + id: x +- + code: 0x79 + name: Y + category: Letter/Latin Small + unicode: [0x79] + id: y +- + code: 0x7A + name: Z + category: Letter/Latin Small + unicode: [0x7A] + id: z +- + code: 0x7B + name: Left Curly Bracket + unicode: [0x7B] + id: lcbrac +- + code: 0x7C + name: Vertical Line + unicode: [0x7C] + id: vline +- + code: 0x7D + name: Right Curly Bracket + unicode: [0x7D] + id: rcbrac +- + code: 0x7E + name: Tilde + unicode: [0x7E] + id: tilde +- + code: 0x7F + name: Multi-byte leader 0x7F + id: mblead_7F +#******************************************************************************# +# Hardcoded in extended ASCII # +#******************************************************************************# +- + code: 0x80 + name: Cartesian To Polar Coordinate Transformation + category: Function + tokens: {cat: "\\Pol(", ctf: "Pol(", casemul: "Pol("} + args: [x, y] + action: Stores the equivalent polar coordinates in theta and r. + multi: [0x50, 0x6F, 0x6C, 0x28] +- + code: 0x81 + name: Sine + category: Function + args: [angle] + return: The sine of the angle. + multi: [0x73, 0x69, 0x6E, 0x20] + id: sin +- + code: 0x82 + name: Cosine + category: Function + args: [angle] + return: The cosine of the angle. + multi: [0x63, 0x6F, 0x73, 0x20] + id: cos +- + code: 0x83 + name: Tangent + category: Function + args: [angle] + return: The tangeant of the angle. + multi: [0x74, 0x61, 0x6E, 0x20] + id: tan +- + code: 0x84 + name: Hexadecimal + flags: [base] + category: Operator/Prefix + args: [number] + return: The decimal equivalent of the hexadecimal value. + multi: [0x68] + id: hex +- # ln + code: 0x85 + name: Natural Logarithm + category: Function + args: [number] + return: The natural logarithm of the number. + multi: [0x6C, 0x6E, 0x20] +- + code: 0x86 + name: Square Root + unicode: [0x221A] + id: sqrt + ascii: "\\sqrt " +- + code: 0x87 + name: Hyphen-Minus + category: Operator/Prefix + args: [number] + return: The negative version of the number. + unicode: [0x2D] + id: hyphen_minus + ascii: "(-)" +- + code: 0x88 + name: Permutations + category: Operator + args: [n, k] + return: The number of k permutations of n. + multi: [0xE5B1] + ascii: + - " nPr " + - " \\perm " +- + code: 0x89 + name: Addition + category: Operator + args: [first number, second number] + return: The sum of the two numbers. + multi: [0x2B] +- + code: 0x8A + name: Exclusive NOR + category: Operator + args: [first number, second number] + return: The exclusive NOR of the two numbers. + multi: [0x78, 0x6E, 0x6F, 0x72] +- + code: 0x8B + name: Square + category: Operator + args: [number] + return: The number multiplied by itself. + multi: [0xE5C2] +- + code: 0x8C + name: Degrees Minutes Seconds + category: Operator + args: [angle] + action: Set the current display string to the degrees/minutes/seconds + description of the angle. + multi: [0xE69E, 0x44, 0x4D, 0x53] + ascii: + - "\\dms" + - "\\." +- + code: 0x8D + name: Integral + category: Function + args: [function, start, end] + return: The integral of the function with x between start and end. + multi: [0xE6BB, 0x28] + ascii: + - "\\Integrate(" + - "$dx(" +- + code: 0x8E + name: Mode + category: Register + return: The most represented variable in an object population. + multi: [0x4D, 0x6F, 0x64] +- + code: 0x8F + name: X Square Sum + category: Register + return: The sum of the squared element. + multi: [0xE551, 0x78, 0xE5C2] + +# TODO +- + code: 0x91 + name: Arcsine + category: Operator/Prefix + args: [number] + return: The arcsine of the number. + multi: [0x73, 0x69, 0x6E, 0xE5CA, 0x20] + ascii: "asin " +- + code: 0x92 + name: Arccosine + category: Function + args: [number] + return: The arccosine of the number. + multi: [0x63, 0x6F, 0x73, 0xE5CA, 0x20] + ascii: "acos " +- + code: 0x93 + name: Arctangent + category: Function + args: [number] + return: The arctangent of the number. + multi: [0x74, 0x61, 0x6E, 0xE5CA, 0x20] + ascii: "atan " +- + code: 0x94 + name: Decimal + flags: [base] + category: Operator/Prefix + args: [number] + return: The decimal equivalent of the decimal value (?). + multi: [0x64] +- + code: 0x95 + name: Base 10 Logarithm + multi: [0x6C, 0x6F, 0x67, 0x20] +- + code: 0x96 + name: Cubic Root + category: Operator/Prefix + args: [number] + return: The cubic root of the number. + unicode: [0x221B] + multi: [0xE5DF, 0x86] +- + code: 0x97 + name: Absolute Value + category: Statement + args: [number] + return: The absolute value of the number. + category: Function + multi: [0x41, 0x62, 0x73, 0x20] +- + code: 0x98 + name: R-subsets of an n-element set + category: Operator + args: [n, r] + return: The number of r-subsets of an n-element set. + multi: [0x1C] + ascii: + - " nCr " + - " \\comb " +- + code: 0x99 + name: Substraction + category: Operator + args: [first number, second number] + return: The substraction of the two numbers. + multi: [0x2D] + ascii: "-" +- + code: 0x9A + name: Exclusive OR + category: Operator + args: [first number, second number] + return: The exclusive OR of the two numbers. + multi: [0x78, 0x6F, 0x72] + ascii: " xor " +- + code: 0x9B + name: Reciprocal + category: Operator + args: [number] + return: Get the reciprocal number. + multi: [0xE5CA] + ascii: + - "\\rcp" + - "\\^-1" +- + code: 0x9C + name: Degree + category: Sign + unicode: [0xB0] + ascii: + - Deg + - (deg) + +# TODO +- + code: 0x9E + name: Median + category: Register + return: The median from the current list. + multi: [0x4D, 0x65, 0x64] +- + code: 0x9F + name: X Simple Sum + category: Register + return: The sum of all the values from the current list. + multi: [0xE551, 0x78] +- + code: 0xA0 + name: Polar To Cartesian Coordinate Transformation + category: Function + args: [r, theta] + action: Stores the equivalent cartesian coordinates in x and y. + multi: [0x52, 0x65, 0x63, 0x28] +- + code: 0xA1 + name: Hyperbolic Sine + category: Function + args: [number] + return: The hyperbolic sine of the number. + multi: [0x73, 0x69, 0x6E, 0x68, 0x20] +- + code: 0xA2 + name: Hyperbolic Cosine + category: Function + args: [number] + return: The hyperbolic cosine of the number. + multi: [0x63, 0x6F, 0x73, 0x68, 0x20] +- + code: 0xA3 + name: Hyperbolic Tangent + category: Function + args: [number] + return: The hyperbolic tangent of the number. + multi: [0x74, 0x61, 0x6E, 0x68, 0x20] +- + code: 0xA4 + name: Octal + flags: [base] + category: Operator/Prefix + args: [number] + return: The decimal equivalent of the octal value. + multi: [0x6F] +- + code: 0xA5 + name: Exponential + category: Function + args: [number] + return: The exponential of the number. + multi: [0x65, 0x5E] +- + code: 0xA6 + name: Floor + category: Function + args: [number] + return: The floor of the number. + multi: [0x49, 0x6E, 0x74, 0x20] +- + code: 0xA7 + name: Bitwise Not + category: Function + args: [number] + return: The bitwise not of the number. + multi: [0x4E, 0x6F, 0x74, 0x20] + id: not +- + code: 0xA8 + name: Power + category: Operator + args: [base, power] + return: The base to a power. + multi: [0x5E] + id: power +- + code: 0xA9 + name: Multiplication + category: Operator + args: [first number, second number] + return: The product of the two numbers. + unicode: [0xD7] + ascii: '*' +- + code: 0xAA + name: Bitwise Or + category: Operator + args: [first number, second number] + return: The bitwise or of the two numbers. + multi: [0x6F, 0x72] +- + code: 0xAB + name: Factorial + category: Operator + args: [number] + return: The factorial of the number. + multi: [0x21] +- + code: 0xAC + name: Radian + category: Sign + unicode: [0x2B3] + ascii: + - Rad + - "(rad)" +- + code: 0xAD + name: Minimum Y + category: Register + return: The minimum value on the Y-axis? + multi: [0x6D, 0x69, 0x6E, 0x59] + ascii: "MinY" +- + code: 0xAE + name: Minimum X + category: Register + return: The minimum value on the X-axis? + multi: [0x6D, 0x69, 0x6E, 0x58] + ascii: "MinX" +- + code: 0xAF + name: Number of entries + category: Register + category: Register + return: The number of entries. + multi: [0x6E] + ascii: "\num" +- + code: 0xB1 + name: Inverse Hyperbolic Sine + category: Function + multi: [0x73, 0x69, 0x6E, 0x68, 0xE5CA, 0x20] + ascii: "asinh " +- + code: 0xB2 + name: Inverse Hyperbolic Cosine + category: Function + multi: [0x63, 0x6F, 0x73, 0x68, 0xE5CA, 0x20] + ascii: "acosh " +- + code: 0xB3 + name: Inverse Hyperbolic Tangent + category: Function + multi: [0x74, 0x61, 0x6E, 0x68, 0xE5CA, 0x20] + ascii: "atanh " +- + code: 0xB4 + name: Binary + flags: [base] + category: Operator/Prefix + args: [number] + return: The decimal equivalent of the binary value. + multi: [0x62] +- + code: 0xB5 + name: Ten + category: Digit + unicode: [0x31, 0x30] +- + code: 0xB6 + name: Fractional Part + category: Statement + args: [number] + return: The fractional part of the number. + multi: [0x46, 0x72, 0x61, 0x63, 0x20] +- + code: 0xB7 + name: Negative + flags: [base] + category: Statement + args: [number] + return: The negative version of the number. + multi: [0x4E, 0x65, 0x67, 0x20] +- + code: 0xB8 + name: Parametric Graph Function X + category: Register + return: The parametric Graph Function X. + multi: [0xE5DD, 0x86] +- + code: 0xB9 + name: Division + category: Operator + args: [dividend, divider] + return: The result of the division of the dividend by the divider. + unicode: [0xF7] + ascii: "/" +- + code: 0xBA + name: and + multi: [0x61, 0x6E, 0x64] +- + code: 0xBB + name: Object/Infix + args: [top, bottom] + unicode: [0x231F] + ascii: "%" +- + code: 0xBC + name: Gradian + category: Sign + unicode: [0x1D4D] + ascii: + - Gra + - "(grad)" + - "(gra)" +- + code: 0xBD + name: Maximum Y + category: Register + return: Maximum on the Y-axis? + multi: [0x6D, 0x61, 0x78, 0x59] +- + code: 0xBE + name: Maximum X + category: Register + return: Maximum on the X-axis? + multi: [0x6D, 0x61, 0x78, 0x58] +- + code: 0xBF + name: Y Square Sum + category: Register + return: The Y Square Sum. + multi: [0xE551, 0x79, 0xE5C2] +- + code: 0xC0 + name: Ans + multi: [0x41, 0x6E, 0x73] +- + code: 0xC1 + name: Random Number Generation + category: Statement + args: [] + return: A random number in [0; 1[. + multi: [0x52, 0x61, 0x6E, 0x23, 0x20] +- + code: 0xC2 + name: x with overline + unicode: [0x78, 0x305] + ascii: (x-overline) +- + code: 0xC3 + name: y with overline + unicode: [0x79, 0x305] + ascii: (y-overline) +- + code: 0xC4 + name: x Rho n + multi: [0x78, 0xE651, 0x6E] +- + code: 0xC4 + name: Rho x + set: CASIOWIN_2.00 + multi: [0xE651, 0x78] +- + code: 0xC5 + name: x Rho n_-1 + multi: [0x78, 0xE651, 0x6E, 0xE5DA] +- + code: 0xC5 + name: sx + set: CASIOWIN_2.00 + multi: [0x73, 0x78] +- + code: 0xC6 + name: y rho ^ + multi: [0x79, 0xE651, 0x6E] +- + code: 0xC6 + name: Rho y + set: CASIOWIN_2.00 + multi: [0xE651, 0x79] +- + code: 0xC7 + name: y rho ^ _-1 + multi: [0x79, 0xE651, 0x6E, 0xE5DA] +- + code: 0xC7 + name: sy + set: CASIOWIN_2.00 + multi: [0x73, 0x79] +- + code: 0xC8 + name: a (Reg) + multi: [0x61] +- + code: 0xC9 + name: b (Reg) + multi: [0x62] +- + code: 0xCA + name: r (Reg) + multi: [0x72] +- + code: 0xCB + name: x with circumflex + unicode: [0x78, 0x302] + ascii: (x-circumflex) +- + code: 0xCC + name: y with circumflex + unicode: [0x79, 0x302] + ascii: (y-circumflex) +- + code: 0xCD + name: r (radius) + unicode: [0x1D69B] + ascii: "\\r" +- + code: 0xCE + name: theta (angle) + multi: [0xE647] + ascii: "\\th" +- + code: 0xCF + name: Y Simple Sum + category: Register + return: The Y Simple Sum. + multi: [0xE551, 0x79] +- + code: 0xD0 + name: Pi + category: Register + return: An approximation of Pi (3.14...). + multi: [0xE64F] +- + code: 0xD1 + name: Clear Screen + category: Statement + args: [] + action: Clear the screen. + multi: [0x43, 0x6C, 0x73] + +# TODO +- + code: 0xD3 + name: Rnd + multi: [0x52, 0x6E, 0x64] +- + code: 0xD4 + name: Decimal mode + multi: [0x44, 0x65, 0x63] +- + code: 0xD5 + name: Hexadecimal mode + multi: [0x48, 0x65, 0x78] +- + code: 0xD6 + name: Binary mode + multi: [0x42, 0x69, 0x6E] +- + code: 0xD7 + name: Octal mode + multi: [0x4F, 0x63, 0x74] +- + code: 0xD8 + name: White Box + ascii: (white box) +- + code: 0xD9 + name: Norm + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x20] +- + code: 0xDA + name: Degree mode + multi: [0x44, 0x65, 0x67] +- + code: 0xDB + name: Radian mode + multi: [0x52, 0x61, 0x64] +- + code: 0xDC + name: Gradian mode + multi: [0x47, 0x72, 0x61] +- + code: 0xDD + name: Eng + multi: [0x45, 0x6E, 0x67] +- + code: 0xDE + name: Intg + multi: [0x49, 0x6E, 0x74, 0x67, 0x20] +- + code: 0xDF + name: Sigma x y + multi: [0xE551, 0x78, 0x79] +- + code: 0xE0 + name: Plot + multi: [0x50, 0x6C, 0x6F, 0x74, 0x20] +- + code: 0xE1 + name: Line + category: Statement + args: [] + action: Draw a line between the two previously defined plots. + multi: [0x4C, 0x69, 0x6E, 0x65] +- + code: 0xE2 + name: Lbl + category: Statement + args: [label] + action: Define a label at the current address. + multi: [0x4C, 0x62, 0x6C, 0x20] +- + code: 0xE3 + name: Fix Display + category: Statement + args: [decimals] + action: Set the number of decimals to display. + multi: [0x46, 0x69, 0x78, 0x20] +- + code: 0xE4 + name: Scientific Display + category: Statement + args: [significant] + action: Displays a result using a scientific form; the argument is the number + of significant digits to display. + multi: [0x53, 0x63, 0x69, 0x20] +#- +# code: 0xE5 +# name: Multi-byte leader 0xE5 +# id: mblead_E5 +#- +# code: 0xE6 +# name: Multi-byte leader 0xE6 +# id: mblead_E6 +#- +# code: 0xE7 +# name: Multi-byte leader 0xE7 +# id: mblead_E7 +- + code: 0xE8 + name: Decrement Skip Zero + category: Statement + args: [variable] + action: Decrement the variable; if after this operation, the variable is equal + to zero, skip the next instruction. + multi: [0x44, 0x73, 0x7A, 0x20] +- + code: 0xE9 + name: Increment Skip Zero + category: Statement + args: [variable] + action: Increment the variable; if after this operation, the variable is equal + to zero, skip the next instruction. + multi: [0x49, 0x73, 0x7A, 0x20] +- + code: 0xEA + name: Factor + multi: [0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x20] +- + code: 0xEB + name: View Window + category: Statement + args: [Xmin, Xmax, Xscale, Ymin, Ymax, Yscale, Tmin, Tmax, Tpitch] + action: Set up the window. + multi: [0x56, 0x69, 0x65, 0x77, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x20] +- + code: 0xEC + name: Go To + category: Statement + args: [label] + action: Jump to a label. + multi: [0x47, 0x6F, 0x74, 0x6F, 0x20] +- + code: 0xED + name: Prog + category: Statement + args: [name] + action: Execute a subprogram. + multi: [0x50, 0x72, 0x6F, 0x67, 0x20] +- + code: 0xEE + name: Graph Y= + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x59, 0x3D] +- + code: 0xEF + name: Graph Intg + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0xE6BB] +- + code: 0xF0 + name: Graph Y> + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x59, 0x3E] +- + code: 0xF1 + name: Graph Y< + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x59, 0x3C] +- + code: 0xF2 + name: Graph Y>= + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x59, 0x12] +- + code: 0xF3 + name: Graph Y<= + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x59, 0x10] +- + code: 0xF4 + name: Graph r= + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x3D] +- + code: 0xF5 + name: Graph(X,Y)=( + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x28, 0x58, 0x2C, 0x59, 0x29, 0x3D, 0x28] +- + code: 0xF6 + name: Comma (?) + multi: [0x2C] +- + code: 0xF7 + name: Multi-byte leader 0xF7 + id: mblead_F7 +#- +# code: 0xF8 +# name: Future multi-byte leader 0xF8? +# id: mblead_F8 +- + code: 0xF9 + name: Multi-byte leader 0xF9 + id: mblead_F9 +- + code: 0xFA + name: Gosub + multi: [0x47, 0x6F, 0x73, 0x75, 0x62, 0x20] + set: C.Basic +- + code: 0xFB + name: P( + multi: [0x50, 0x28] +- + code: 0xFC + name: Q( + multi: [0x51, 0x28] +- + code: 0xFD + name: R( + multi: [0x52, 0x28] +- + code: 0xFE + name: t( + multi: [0x74, 0x28] +- + code: 0xFF + name: Blank character (?) + id: blank + ascii: (blank) +#******************************************************************************# +# 0x7F characters # +#******************************************************************************# +- + code: 0x7F00 + name: View-Window X-min Parameter + category: Register + return: The View-Window minimal abscissa. + multi: [0x58, 0x6D, 0x69, 0x6E] +- + code: 0x7F01 + name: View-Window X-max Parameter + category: Register + return: The View-Window maximal abscissa + multi: [0x58, 0x6D, 0x61, 0x78] +- + code: 0x7F02 + name: View-Window X-scale Parameter + category: Register + return: The View-Window x-axis scale. + multi: [0x58, 0x73, 0x63, 0x6C] + +# TODO +- + code: 0x7F04 + name: View-Window Y-min Parameter + category: Register + return: The View-Window minimal ordinate. + multi: [0x59, 0x6D, 0x69, 0x6E] +- + code: 0x7F05 + name: View-Window Y-max Parameter + category: Register + return: The View-Window maximal ordinate. + multi: [0x59, 0x6D, 0x61, 0x78] +- + code: 0x7F06 + name: View-Window Y-scale Parameter + category: Register + return: The View-Window y-axis scale. + multi: [0x59, 0x73, 0x63, 0x6C] + +# TODO +- + code: 0x7F08 + name: View-Window T-Theta-min Parameter + category: Register + tokens: {ctf: ["Tmin", "\\tmin"], casemul: "T\\x96min"} + return: The T and Theta minimal values. + multi: [0x54, 0xE647, 0x6D, 0x69, 0x6E] +- + code: 0x7F09 + name: View-Window T-Theta-max Parameter + category: Register + tokens: {ctf: ["Tmax", "\\tmax"], casemul: "T\\x96max"} + return: The T and Theta maximal. + multi: [0x54, 0xE647, 0x6D, 0x61, 0x78] +- + code: 0x7F0A + name: View-Window T-Theta-pitch Parameter + category: Register + tokens: {ctf: ["Tptch", "\\tptch", "Tscl", "\\tscl"], casemul: "T\\x96ptch"} + return: The T and Theta step. + multi: [0x54, 0xE647, 0x70, 0x74, 0x63, 0x68] +- + code: 0x7F0B + name: X-Axis Zoom Factor + category: Register + return: The x-axis zoom factor. + multi: [0x58, 0x66, 0x63, 0x74] +- + code: 0x7F0C + name: Y-Axis Zoom Factor + category: Register + return: The y-axis zoom factor. + multi: [0x59, 0x66, 0x63, 0x74] +- + code: 0x7F0D + name: Dynamic Graph Data Coefficient Start Value + tokens: {ctf: ["D Start", "\\dstart"]} + multi: [0x44, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0x7F0E + name: Dynamic Graph Data Coefficient End Value + tokens: {ctf: ["D End", \\dend"]} + multi: [0x44, 0x20, 0x45, 0x6E, 0x64] +- + code: 0x7F0F + name: Dynamic Graph Data Coefficient Pitch + tokens: {ctf: ["D pitch", "\\dpitch"]} + multi: [0x44, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68] +- + code: 0x7F10 + name: View-Window Right X-min Parameter + tokens: {ctf: ["RightXmin", "\\rxmin"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x58, 0x6D, 0x69, 0x6E] +- + code: 0x7F11 + name: View-Window Right X-max Parameter + tokens: {ctf: ["RightXmax", "\\rxmax"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x58, 0x6D, 0x61, 0x78] +- + code: 0x7F12 + name: View-Window Right X-scale Parameter + tokens: {ctf: ["RightXscl", "\\rxscl"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x58, 0x73, 0x63, 0x6C] + +# TODO +- + code: 0x7F14 + name: View-Window Right Y-min Parameter + tokens: {ctf: ["RightYmin", "\\rymin"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x59, 0x6D, 0x69, 0x6E] +- + code: 0x7F15 + name: View-Window Right Y-max Parameter + tokens: {ctf: ["RightYmax", "\\rymax"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x59, 0x6D, 0x61, 0x78] +- + code: 0x7F16 + name: View-Window Right Y-scale Parameter + tokens: {ctf: ["RightYscl", "\\ryscl"]} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x59, 0x73, 0x63, 0x6C] + +# TODO +- + code: 0x7F18 + name: View-Window Right T-Theta-min Parameter + tokens: {cat: "\\RightTmin", ctf: ["RightTmin", "\\rtmin"], + casemul: "RightT\\x96min"} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x54, 0xE647, 0x6D, 0x69, 0x6E] +- + code: 0x7F19 + name: View-Window Right T-Theta-max Parameter + tokens: {cat: "\\RightTmax", ctf: ["RightTmax", "\\rtmax"], + casemul: "RightT\\x96max"} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x54, 0xE647, 0x6D, 0x61, 0x78] +- + code: 0x7F1A + name: View-Window Right T-Theta-pitch Parameter + tokens: {cat: "\\RightTptch", ctf: ["RightTscl", "\\rtscl"], + casemul: "RightT\\x96ptch"} + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x54, 0xE647, 0x70, 0x74, 0x63, 0x68] + +# TODO +- + code: 0x7F1D + name: Regression And Polynomial Coefficient C + tokens: {cat: "", newcat: '\{c}', ctf: ""} + multi: [0x63] +- + code: 0x7F1E + name: Regression And Polynomial Coefficient D + tokens: {cat: "", newcat: '\{d}', ctf: ""} + multi: [0x64] +- + code: 0x7F1F + name: Regression And Polynomial Coefficient E + tokens: {cat: "", newcat: '\{e}', ctf: ""} + multi: [0x65] +- + code: 0x7F20 + name: List Maximum + category: Function + multi: [0x4D, 0x61, 0x78, 0x28] +- + code: 0x7F21 + name: Matrix Determinant + category: Statement + multi: [0x44, 0x65, 0x74, 0x20] +- + code: 0x7F22 + name: Complex Argument + category: Statement + args: [complex] + return: The argument of the complex. + multi: [0x41, 0x72, 0x67, 0x20] +- + code: 0x7F23 + name: Complex Conjugate + category: Statement + tokens: {cat: "\\Conj ", ctf: "Conjg ", casemul: "Conj "} + args: [complex] + return: The conjugate of the complex. + multi: [0x43, 0x6F, 0x6E, 0x6A, 0x67, 0x20] +- + code: 0x7F24 + name: Real part + category: Statement + tokens: {ctf: ["ReP ", "Rep "]} + args: [complex] + return: The real part of the complex. + multi: [0x52, 0x65, 0x50, 0x20] +- + code: 0x7F25 + name: Imaginary Part + category: Statement + tokens: {ctf: ["ImP ", "Imp "]} + args: [complex] + return: The imaginary part of the complex. + multi: [0x49, 0x6D, 0x50, 0x20] +- + code: 0x7F26 + name: Derivative + category: Function + tokens: {ctf: ["$dx(", "\\Integrate("]} + multi: [0x64, 0x2F, 0x64, 0x78, 0x28] +- + code: 0x7F27 + name: Second Derivative + category: Function + tokens: {cat: "\\d2/dxc(", ctf: "d2/dx2(", casemul: "d2\xa4dxc("} + multi: [0x64, 0xE5C2, 0x2F, 0x64, 0x78, 0xE5C2, 0x28] + ascii: d2/dx2 +- + code: 0x7F28 + name: Solve Equation + category: Function + multi: [0x53, 0x6F, 0x6C, 0x76, 0x65, 0x28] +- + code: 0x7F29 + name: Sigma + category: Function + tokens: {cat: "\\Sum(", ctf: "Sum(", \x98("} + multi: [0xE551, 0x28] +- + code: 0x7F2A + name: Function Minimum Calculations + category: Function + tokens: {ctf: "Fmax("} + multi: [0x46, 0x4D, 0x69, 0x6E, 0x28] +- + code: 0x7F2B + name: Function Maximum Calculations + category: Function + multi: [0x46, 0x4D, 0x61, 0x78, 0x28] +- + code: 0x7F2C + name: List Sequence + category: Function + multi: [0x53, 0x65, 0x71, 0x28] +- + code: 0x7F2D + name: List Minimum + multi: [0x4D, 0x69, 0x6E, 0x28] + category: Function +- + code: 0x7F2E + name: List Mean + category: Function + multi: [0x4D, 0x65, 0x61, 0x6E, 0x28] +- + code: 0x7F2F + name: List Median + category: Function + multi: [0x4D, 0x65, 0x64, 0x69, 0x61, 0x6E, 0x28] +- + code: 0x7F30 + name: Numerical Solve Equation + category: Function + set: CASIOWIN_2.00 + multi: [0x53, 0x6F, 0x6C, 0x76, 0x65, 0x4E, 0x28] +#- +# code: 0x7F31 +# tokens: {cat: "\\P/L-Orange", ctf: ["P/L-Orange", "\\plorange"], +# casemul: "P/L-Orange"} +#- +# code: 0x7F32 +# tokens: {cat: "\\P/L-Blue", ctf: ["P/L-Blue", "\\plblue"], +# casemul: "P/L-Blue"} +#- +# code: 0x7F33 +# tokens: {cat: "\\P/L-Green", ctf: ["P/L-Green", "\\plgreen"], +# casemul: "P/L-Green"} +#- +# code: 0x7F34 +# tokens: {cat: "\\Orange ", ctf: "Orange ", casemul: "Orange "} +#- +# code: 0x7F35 +# tokens: {cat: "\\Blue ", ctf: "Blue ", casemul: "Blue "} +#- +# code: 0x7F36 +# tokens: {cat: "\\Green ", ctf: "Green ", casemul: "Green "} +#- +# code: 0x7F37 +# tokens: {cat: "\\OrangeG ", ctf: "OrangeG ", casemul: "OrangeG "} +#- +# code: 0x7F38 +# tokens: {cat: "\\BlueG ", ctf: "BlueG ", casemul: "BlueG "} +#- +# code: 0x7F39 +# tokens: {cat: "\\GreenG ", ctf: "GreenG ", casemul: "GreenG "} +- + code: 0x7F3A + name: Modulo + category: Sign + set: CASIOWIN_2.00 + multi: [0x4D, 0x4F, 0x44, 0x28] +- + code: 0x7F3B + name: Power-Division Remainder + category: Function + set: CASIOWIN_2.00 + multi: [0x4D, 0x4F, 0x44, 0x5F, 0x45, 0x78, 0x70, 0x28] +- + code: 0x7F3C + name: Greatest Common Divisor + category: Function + set: CASIOWIN_2.00 + multi: [0x47, 0x43, 0x44, 0x28] +- + code: 0x7F3D + name: Lowest Common Multiple + category: Function + set: CASIOWIN_2.00 + multi: [0x4C, 0x43, 0x4D, 0x28] +- + code: 0x7F3E + name: Standard Deviation + category: Function + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x64, 0x44, 0x65, 0x76, 0x28] +- + code: 0x7F3F + name: Variance + category: Function + set: CASIOWIN_2.00 + multi: [0x56, 0x61, 0x72, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x28] +- + code: 0x7F40 + name: Matrix + category: Object + args: [id] + multi: [0x4D, 0x61, 0x74, 0x20] +- # Trn + code: 0x7F41 + name: Matricial Transpose + category: Statement + args: Mat + return: Transposes the matrix. + multi: [0x54, 0x72, 0x6E, 0x20] +- # *Row + code: 0x7F42 + name: Matrix Row Scalar Multiplication + category: Statement + tokens: {cat: "\\*Row(", ctf: "*Row"} + args: [multiplier, matrix code, row] + return: The product of the values on the selected row by the multiplier in + a matrix. + multi: [0x2A, 0x52, 0x6F, 0x77, 0x20] +- # *Row+ + code: 0x7F43 + name: Matrix Row Transvection + category: Statement + tokens: {cat: "\\*Row+(", ctf: "*Row+"} + args: Multiplier, Matrix Code, Row, To Row + action: Adds the product of the values on the selected row by the multiplier + to the values on the destination row in a matrix. + multi: [0x2A, 0x52, 0x6F, 0x77, 0x2B, 0x20] +- # Row+ + code: 0x7F44 + name: Matrix Row Addition + category: Statement + tokens: {cat: "\\Row+(", ctf: "Row+"} + args: Matrix Code, Line, To Line + action: Adds the values on the line to the destination line in a matrix. + multi: [0x52, 0x6F, 0x77, 0x2B, 0x20] +- # Swap + code: 0x7F45 + name: Matrix Row Switch + category: Statement + tokens: {cat: "\\Swap(", ctf: "Swap"} + args: Matrix Code, First Line, Second Line + action: Swaps two lines in a matrix. + multi: [0x53, 0x77, 0x61, 0x70, 0x20] +- # Dim + code: 0x7F46 + name: Dimension + category: Statement + args: Object + action: Get (or set) the dimension. + multi: [0x44, 0x69, 0x6D, 0x20] +- # Fill + code: 0x7F47 + name: Object Fill + category: Function + tokens: {ctf: "Fill "} + args: Value, Object + action: Fill the object with the value. + multi: [0x46, 0x69, 0x6C, 0x6C, 0x28] +- + code: 0x7F48 + name: Identity Matrix + category: Statement + multi: [0x49, 0x64, 0x65, 0x6E, 0x74, 0x69, 0x74, 0x79, 0x20] +- + code: 0x7F49 + name: List Append Or Matrix Append + category: Function + multi: [0x41, 0x75, 0x67, 0x6D, 0x65, 0x6E, 0x74, 0x28] +- + code: 0x7F4A + name: List To Matrix Conversion + category: Function + tokens: {casemul: "List\\x87Mat("} + multi: [0x4C, 0x69, 0x73, 0x74, 0xE691, 0x4D, 0x61, 0x74, 0x28] +- + code: 0x7F4B + name: Matrix To List Conversion + category: Function + tokens: {casemul: "Mat\x87List("} + multi: [0x4D, 0x61, 0x74, 0xE691, 0x4C, 0x69, 0x73, 0x74, 0x28] +- + code: 0x7F4C + name: List Sum + category: Statement + multi: [0x53, 0x75, 0x6D, 0x20] +- + code: 0x7F4D + name: List Product + category: Statement + multi: [0x50, 0x72, 0x6F, 0x64, 0x20] +- + code: 0x7F4E + name: List Percentage + category: Statement + multi: [0x50, 0x65, 0x72, 0x63, 0x65, 0x6E, 0x74, 0x20] +- + code: 0x7F4F + name: Cumulative List + category: Statement + multi: [0x43, 0x75, 0x6D, 0x6C, 0x20] +- + code: 0x7F50 + name: Imaginary Number + unicode: [0x2148] + tokens: {cat: '\{i}', ctf: ['\i', '\j'], casemul: '\xb8'} +- + code: 0x7F51 + name: List + category: Object + args: [id] + multi: [0x4C, 0x69, 0x73, 0x74, 0x20] +- + code: 0x7F52 + name: Delta List + tokens: {cat: "\\DeltaList "} + multi: [0xE543, 0x4C, 0x69, 0x73, 0x74, 0x20] +- + code: 0x7F53 + name: Infinity + ascii: "\\inf" +- + code: 0x7F54 + name: Less-Than (2nd) +- + code: 0x7F55 + name: Less-Than (3rd) + multi: [0x7F54] +- + code: 0x7F55 + name: Matrix Row Echelon Form + category: Statement + set: CASIOWIN_1.05 + multi: [0x52, 0x65, 0x66, 0x20] +- + code: 0x7F56 + name: Matrix Row Reduced Echelon Form + category: Statement + set: CASIOWIN_1.05 + multi: [0x52, 0x72, 0x65, 0x66, 0x20] +- + code: 0x7F57 + name: Arrow to the right (2) + set: CASIOWIN_2.00 + multi: [0xE69E] +- + code: 0x7F58 + name: ElemSize( + set: C.Basic + multi: [0x45, 0x6C, 0x65, 0x6D, 0x53, 0x69, 0x7A, 0x65, 0x28] +- + code: 0x7F59 + name: ColSize( + set: C.Basic + multi: [0x43, 0x6F, 0x6C, 0x53, 0x69, 0x7A, 0x65, 0x28] +- + code: 0x7F5A + name: RowSize( + set: C.Basic + multi: [0x52, 0x6F, 0x77, 0x53, 0x69, 0x7A, 0x65, 0x28] + +# TODO +- + code: 0x7F5F + name: Ticks + set: C.Basic + multi: [0x54, 0x69, 0x63, 0x6B, 0x73] +- + code: 0x7F60 + name: Simulation Equation Coefficients + multi: [0x53, 0x69, 0x6D, 0x20, 0x43, 0x6F, 0x65, 0x66] +- + code: 0x7F61 + name: Polynomial Equation Coefficients + multi: [0x50, 0x6C, 0x79, 0x20, 0x43, 0x6F, 0x65, 0x66] +- + code: 0x7F62 + name: Simulation Equation Solutions + multi: [0x53, 0x69, 0x6D, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74] +- + code: 0x7F63 + name: Polynomial Equation Solutions + multi: [0x50, 0x6C, 0x79, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74] +- + code: 0x7F64 + name: TVM Payment Periods + tokens: {cat: '\{n}'} + multi: [0x6E] +- + code: 0x7F65 + name: TMV Interest Rate + tokens: {cat: '\I%'} + multi: [0x49, 0x25] +- + code: 0x7F66 + name: TVM Principal + tokens: {cat: '\PV'} + multi: [0x50, 0x56] +- + code: 0x7F67 + name: TVM Payment Amount + tokens: {cat: \PMT'} + multi: [0x50, 0x4D, 0x54] +- + code: 0x7F68 + name: TVM Account Balance + tokens: {cat: '\FV'} + multi: [0x46, 0x56] + +# TODO +- + code: 0x7F6A + name: List 1 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x31] +- + code: 0x7F6B + name: List 2 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x32] +- + code: 0x7F6C + name: List 3 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x33] +- + code: 0x7F6D + name: List 4 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x34] +- + code: 0x7F6E + name: List 5 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x35] +- + code: 0x7F6F + name: List 6 + category: Object + multi: [0x4C, 0x69, 0x73, 0x74, 0x36] + +# TODO +- + code: 0x7F76 + name: Statistical Data First Quartile + multi: [0x51, 0xE5D1] +- + code: 0x7F77 + name: Statistical Data Third Quartile + multi: [0x51, 0xE5D3] +- + code: 0x7F78 + name: Summary Point X-Coordinate 1 + multi: [0x78, 0xE5D1] +- + code: 0x7F79 + name: Summary Point Y-Coordinate 1 + multi: [0x79, 0xE5D1] +- + code: 0x7F7A + name: Summary Point X-Coordinate 2 + multi: [0x78, 0xE5D2] +- + code: 0x7F7B + name: Summary Point Y-Coordinate 2 + multi: [0x79, 0xE5D2] +- + code: 0x7F7C + name: Summary Point X-Coordinate 3 + multi: [0x78, 0xE5D3] +- + code: 0x7F7D + name: Summary Point Y-Coordinate 3 + multi: [0x79, 0xE5D3] + +# TODO +- + code: 0x7F84 + name: Vector + category: Object + multi: [0x56, 0x63, 0x74, 0x20] + set: CASIOWIN_2.04 +- + code: 0x7F85 + name: General Logarithm + category: Function + multi: [0x6C, 0x6F, 0x67, 0x61, 0x62, 0x28] +- + code: 0x7F86 + name: Round Value + category: Function + multi: [0x52, 0x6E, 0x64, 0x46, 0x69, 0x78, 0x28] +- + code: 0x7F87 + name: Random Integer Between Bounds + category: Function + set: CASIOWIN_2.00 + multi: [0x52, 0x61, 0x6E, 0x49, 0x6E, 0x74, 0x23, 0x28] +- + code: 0x7F88 + name: Random List Of Binary Digits + category: Function + set: CASIOWIN_2.00 + multi: [0x52, 0x61, 0x6E, 0x4C, 0x69, 0x73, 0x74, 0x23, 0x28] +- + code: 0x7F89 + name: Binomial Distribution Random Numbers + category: Function + set: CASIOWIN_2.00 + multi: [0x52, 0x61, 0x6E, 0x42, 0x69, 0x6E, 0x23, 0x28] +- + code: 0x7F8A + name: Normal Distribution 1O-Digit Random Number + category: Function + set: CASIOWIN_2.00 + multi: [0x52, 0x61, 0x6E, 0x4E, 0x6F, 0x72, 0x6D, 0x23, 0x28] + +# TODO +- + code: 0x7F8C + name: PlotPhase Function Setting Sigma an + set: CASIOWIN_2.00 + multi: [0xE551, 0x61, 0xE5DE] +- + code: 0x7F8D + name: PlotPhase Function Setting Sigma bn + set: CASIOWIN_2.00 + multi: [0xE551, 0x62, 0xE5DE] +- + code: 0x7F8E + name: PlotPhase Function Setting Sigma cn + set: CASIOWIN_2.00 + multi: [0xE551, 0x63, 0xE5DE] +- + code: 0x7F8F + name: Getkey + category: Statement + multi: [0x47, 0x65, 0x74, 0x6B, 0x65, 0x79] +- + code: 0x7F90 + name: F Result + multi: [0x46, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74] +- + code: 0x7F91 + name: F Start + multi: [0x46, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0x7F92 + name: F End + multi: [0x46, 0x20, 0x45, 0x6E, 0x64] +- + code: 0x7F93 + name: F pitch + multi: [0x46, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68] +- + code: 0x7F94 + name: R Result + multi: [0x52, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74] +- + code: 0x7F95 + name: R Start + multi: [0x52, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0x7F96 + name: R End + multi: [0x52, 0x20, 0x45, 0x6E, 0x64] +- + code: 0x7F97 + name: H Start + multi: [0x48, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0x7F98 + name: H pitch + multi: [0x48, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68] +#- +# code: 0x7F99 +# tokens: {cat: '\Min(', ctf: 'Min(', casemul: 'Min('} +- + code: 0x7F9C + name: Fraction Simplification + category: Operator + set: CASIOWIN_2.00 + multi: [0xE69E, 0x53, 0x69, 0x6D, 0x70, 0x20] + +# TODO +- + code: 0x7FA0 + name: Recursion Formula Variable an + multi: [0x61, 0xE5DE] +- + code: 0x7FA1 + name: Recursion Formula Variable an+1 + multi: [0x61, 0xE5DE, 0xE5DB, 0xE5CE] +- + code: 0x7FA2 + name: Recursion Formula Variable an+2 + multi: [0x61, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0x7FA3 + name: Recursion Formula Variable n + multi: [0xE5DE] +- + code: 0x7FA4 + name: Recursion Formula Variable a0 + multi: [0x61, 0xE5CD] +- + code: 0x7FA5 + name: Recursion Formula Variable a1 + multi: [0x61, 0xE5CE] +- + code: 0x7FA6 + name: Recursion Formula Variable a2 + multi: [0x61, 0xE5CF] +- + code: 0x7FA7 + name: Recursion Formula Variable bn + multi: [0x62, 0xE5DE] +- + code: 0x7FA8 + name: Recursion Formula Variable bn+1 + multi: [0x62, 0xE5DE, 0xE5DB, 0xE5CE] +- + code: 0x7FA9 + name: Recursion Formula Variable bn+2 + multi: [0x62, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0x7FAA + name: Recursion Formula Variable b0 + multi: [0x62, 0xE5CD] +- + code: 0x7FAB + name: Recursion Formula Variable b1 + multi: [0x62, 0xE5CE] +- + code: 0x7FAC + name: Recursion Formula Variable b2 + multi: [0x62, 0xE5CF] +- + code: 0x7FAD + name: Recursion Formula Origin Setting anStart + multi: [0x61, 0xE5DE, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0x7FAE + name: Recursion Formula Origin Setting bnStart + multi: [0x62, 0xE5DE, 0x53, 0x74, 0x61, 0x72, 0x74] + +# TODO +- + code: 0x7FB0 + name: Logical And + category: Statement + multi: [0x20, 0x41, 0x6E, 0x64, 0x20] +- + code: 0x7FB1 + name: Logical Or + category: Statement + multi: [0x20, 0x4F, 0x72, 0x20] + +# TODO +- + code: 0x7FB3 + name: Logical Not + category: Statement + multi: [0x4E, 0x6F, 0x74, 0x20] +- + code: 0x7FB4 + name: Logical Exclusive Or + category: Statement + set: CASIOWIN_2.00 + multi: [0x20, 0x58, 0x6F, 0x72, 0x20] +- + code: 0x7FB5 + name: PlotPhase Function Setting Sigma an+1 + set: CASIOWIN_2.00 + multi: [0xE551, 0x61, 0xE5DE, 0xE5DB, 0xE5CE] +- + code: 0x7FB6 + name: PlotPhase Function Setting Sigma bn+1 + set: CASIOWIN_2.00 + multi: [0xE551, 0x62, 0xE5DE, 0xE5DB, 0xE5CE] +- + code: 0x7FB7 + name: PlotPhase Function Setting Sigma cn+1 + set: CASIOWIN_2.00 + multi: [0xE551, 0x63, 0xE5DE, 0xE5DB, 0xE5CE] + +# TODO +- + code: 0x7FB9 + name: PlotPhase Function Setting Sigma an+2 + set: CASIOWIN_2.00 + multi: [0xE551, 0x61, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0x7FBA + name: PlotPhase Function Setting Sigma bn+2 + set: CASIOWIN_2.00 + multi: [0xE551, 0x62, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0x7FBB + name: PlotPhase Function Setting Sigma cn+2 + set: CASIOWIN_2.00 + multi: [0xE551, 0x63, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0x7FBC + name: Integer Division Quotient + category: Statement + set: CASIOWIN_2.00 + multi: [0x20, 0x49, 0x6E, 0x74, 0xB9, 0x20] +- + code: 0x7FBD + name: Integer Division Remainder + category: Statement + set: CASIOWIN_2.00 + multi: [0x20, 0x52, 0x6D, 0x64, 0x72, 0x20] +- + code: 0x7FBE + name: Statistical Data Factor A F Value + set: CASIOWIN_2.00 + multi: [0x46, 0x61] + +# TODO +- + code: 0x7FC0 + name: Statistical Data Size Of Sample 1 + multi: [0x6E, 0x31] +- + code: 0x7FC1 + name: Statistical Data Size of Sample 2 + multi: [0x6E, 0x32] +- + code: 0x7FC2 + name: Statistical Data Mean Of Sample 1 + multi: [0xC2, 0x31] +- + code: 0x7FC3 + name: Statistical Data Mean Of Sample 2 + multi: [0xC2, 0x32] +- + code: 0x7FC4 + name: f1 rho n_-1 + multi: [0x78, 0x31, 0xE651, 0x6E, 0xE5DA] +- + code: 0x7FC4 + name: Statistical Data Standard Deviation Of Sample 1 + set: CASIOWIN_2.00 + multi: [0x73, 0x78, 0x31] +- + code: 0x7FC5 + name: f2 rho n_-1 + multi: [0x78, 0x32, 0xE651, 0x6E, 0xE5DA] +- + code: 0x7FC5 + name: Statistical Data Standard Deviation Of Sample 2 + set: CASIOWIN_2.00 + multi: [0x73, 0x78, 0x32] +- + code: 0x7FC6 + name: fp rho n_-1 + multi: [0x78, 0x70, 0xE651, 0x6E, 0xE5DA] +- + code: 0x7FC6 + name: Statistical Data Standard Deviation Of Sample p + set: CASIOWIN_2.00 + multi: [0x73, 0x70] +- + code: 0x7FC7 + name: Statistical Data Estimated Sample Proportion + unicode: [0x70, 0x302] + id: p_circumflex + ascii: (p-circumflex) +- + code: 0x7FC8 + name: Statistical Data Estimated Sample Proportion 1 + multi: [0x7FC7, 0x31] +- + code: 0x7FC9 + name: Statistical Data Estimated Sample Proportion 2 + multi: [0x7FC7, 0x32] +- + code: 0x7FCA + name: Statistical Data Confidence Interval Left Limit + multi: [0x4C, 0x65, 0x66, 0x74] +- + code: 0x7FCB + name: Statistical Data Confidence Interval Right Limit + multi: [0x52, 0x69, 0x67, 0x68, 0x74] +- + code: 0x7FCC + name: TVM Number Of Installment Periods Per Year + multi: [0x50, 0x2F, 0x59] +- + code: 0x7FCD + name: TVM Number of Compounding Periods Per Year + multi: [0x43, 0x2F, 0x59] +- + code: 0x7FCE + name: Statistical Data Factor B F value + set: CASIOWIN_2.00 + multi: [0x46, 0x62] + +# TODO +- + code: 0x7FD0 + name: Statistical Data F Value + multi: [0x46] +- + code: 0x7FD1 + name: Statistical Data z Score + multi: [0x7A] +- + code: 0x7FD2 + name: Statistical Data p Value + multi: [0x70] +- + code: 0x7FD3 + name: Statistical Data t Score + multi: [0x74] +- + code: 0x7FD4 + name: s + multi: [0x73] +- + code: 0x7FD4 + name: Statistical Data Standard Error + set: CASIOWIN_2.00 + multi: [0x73, 0x65] +- + code: 0x7FD5 + name: x² + multi: [0xE656, 0xE5C2] +- + code: 0x7FD6 + name: Statistical Data Coefficient Of Determination + multi: [0x72, 0xE5C2] +- + code: 0x7FD7 + name: Statistical Data Factor Degrees of Freedom + multi: [0x46, 0x64, 0x66] +- + code: 0x7FD7 + name: Statistical Data Factor A Degrees Of Freedom + set: CASIOWIN_2.00 + multi: [0x41, 0x64, 0x66] +- + code: 0x7FD8 + name: Statistical Data Factor E Degrees Of Freedom + multi: [0x45, 0x64, 0x66] +- + code: 0x7FD9 + name: Statistical Data Degrees Of Freedom + multi: [0x64, 0x66] +- + code: 0x7FDA + name: Statistical Data Sum Of Squares + multi: [0x53, 0x53] +- + code: 0x7FDA + name: Statistical Data Factor A Sum Of Squares + set: CASIOWIN_2.00 + multi: [0x53, 0x53, 0x61] +- + code: 0x7FDB + name: Statistical Data Mean Of Squares + multi: [0x4D, 0x53] +- + code: 0x7FDB + name: Statistical Data Factor A Mean Of Squares + set: CASIOWIN_2.00 + multi: [0x4D, 0x53, 0x61] +- + code: 0x7FDC + name: Statistical Data Error Sum Of Squares + multi: [0x53, 0x53, 0x65] +- + code: 0x7FDD + name: Statistical Data Error Mean Of Squares + multi: [0x4D, 0x53, 0x65] +- + code: 0x7FDE + name: Statistical Data Factor AB F Value + set: CASIOWIN_2.00 + multi: [0x46, 0x61, 0x62] + +# TODO +- + code: 0x7FE0 + name: Statistical Data Factor B Degrees Of Freedom + set: CASIOWIN_2.00 + multi: [0x42, 0x64, 0x66] +- + code: 0x7FE1 + name: Statistical Data Factor AB Degrees Of Freedom + set: CASIOWIN_2.00 + multi: [0x41, 0x42, 0x64, 0x66] +- + code: 0x7FE2 + name: Statistical Data Factor A p-Value + set: CASIOWIN_2.00 + multi: [0x70, 0x61] +- + code: 0x7FE3 + name: Statistical Data Factor B p-Value + set: CASIOWIN_2.00 + multi: [0x70, 0x62] +- + code: 0x7FE4 + name: Statistical Data Factor AB p-Value + set: CASIOWIN_2.00 + multi: [0x70, 0x61, 0x62] + +# TODO +- + code: 0x7FE9 + name: Spreadsheet Cell Sum + category: Function + args: [initial cell, end cell] + return: The sum of the values in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x53, 0x75, 0x6D, 0x28] +- + code: 0x7FEA + name: Spreadsheet Cell Product + category: Function + args: [initial cell, end cell] + return: The product of the values in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x50, 0x72, 0x6F, 0x64, 0x28] +- + code: 0x7FEB + name: Spreadsheet Cell Minimum + category: Function + args: [initial cell, end cell] + return: The minimum value in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x4D, 0x69, 0x6E, 0x28] +- + code: 0x7FEC + name: Spreadsheet Cell Maximum + category: Function + args: [initial cell, end cell] + return: The maximum value in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x4D, 0x61, 0x78, 0x28] +- + code: 0x7FED + name: Spreadsheet Cell Average + category: Function + args: [initial cell, end cell] + return: The average value in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x4D, 0x65, 0x61, 0x6E, 0x28] +- + code: 0x7FEE + name: Spreadsheet Cell Median + category: Function + args: [initial cell, end cell] + return: The median value in the [initial cell; end cell] range. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x4D, 0x65, 0x64, 0x69, 0x61, 0x6E, 0x28] +- + code: 0x7FEF + name: Spreadsheet Cell Conditional + category: Function + args: [equation_inequation, expr1, expr2] + return: 1 if the (in)equation is true, 2 otherwise. + multi: [0x43, 0x65, 0x6C, 0x6C, 0x49, 0x66, 0x28] +- + code: 0x7FF0 + name: Rectangular Coordinates Graph Y Function Recall + multi: [0xE5B4] +- + code: 0x7FF1 + name: Polar Coordinates Graph r Function Recall + multi: [0xE5B2] +- + code: 0x7FF2 + name: Parametric Coordinates Graph X Function Recall + multi: [0xE5B3, 0x74] +- + code: 0x7FF3 + name: Parametric Coordinates Graph Y Function Recall + multi: [0xE5B4, 0x74] +- + code: 0x7FF4 + name: Rectangular Coordinates Graph X Function Recall + multi: [0xE5B3] +- + code: 0x7FF5 + name: IsExist( + set: C.Basic + multi: [0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x28] + +# TODO +- + code: 0x7FFB + name: Statistical Data Factor B Sum Of Squares + set: CASIOWIN_2.00 + multi: [0x53, 0x53, 0x62] +- + code: 0x7FFC + name: Statistical Data Factor AB Sum Of Squares + set: CASIOWIN_2.00 + multi: [0x53, 0x53, 0x61, 0x62] +- + code: 0x7FFD + name: Statistical Data Factor B Mean Of Squares + set: CASIOWIN_2.00 + multi: [0x4D, 0x53, 0x62] +- + code: 0x7FFE + name: Statistical Data Factor AB Mean Of Squares + set: CASIOWIN_2.00 + multi: [0x4D, 0x53, 0x61, 0x62] + +# TODO: finish here +#******************************************************************************# +# 0xF7 characters # +#******************************************************************************# +- + code: 0xF700 + name: If + category: Statement + args: [expression] + action: Jumps to the corresponding Then if the expression is evaluated true; + otherwise, jumps to the corresponding Else if it exists, or to the IfEnd. + multi: [0x49, 0x66, 0x20] +- + code: 0xF701 + name: Then + category: Statement + args: [expression] + action: If the last executed instruction was an If, evaluate the expression; + otherwise, jump to the corresponding IfEnd. The official CASIO Basic + interpreter doesn't accept Else statements before Then statements. + multi: [0x54, 0x68, 0x65, 0x6E, 0x20] +- + code: 0xF702 + name: Else + category: Statement + args: [expression] + action: If the last executed instruction was an If, evaluate the expression; + otherwise, jump to the corresponding IfEnd. + multi: [0x45, 0x6C, 0x73, 0x65, 0x20] +- + code: 0xF703 + name: IfEnd + category: Statement + args: [] + action: Does nothing; the most interesting thing about this instruction is + its offset. + multi: [0x49, 0x66, 0x45, 0x6E, 0x64] +- + code: 0xF704 + name: For + category: Statement + args: ["to:0xF705"] + action: If the last instruction wasn't a Next, call the To to initialize; + otherwise, iterate. If the final value is achieved or exceeded, jump to the + instruction right after the corresponding Next; otherwise, assign the + counter to the counter variable, and jump to the next instruction. + multi: [0x46, 0x6F, 0x72, 0x20] +- + code: 0xF705 + name: To + category: Operator + args: ["assign:0x0E"] + optn: ["step:0xF706"] + action: Fill the For's initial value, counter variable and step value. + multi: [0x20, 0x54, 0x6F, 0x20] +- + code: 0xF706 + name: Step + category: Object + args: ["step"] + multi: [0x20, 0x53, 0x74, 0x65, 0x70, 0x20] +- + code: 0xF707 + name: Next + category: Statement + args: [] + action: Jump to the corresponding For. + multi: [0x4E, 0x65, 0x78, 0x74] +- + code: 0xF708 + name: While + category: Statement + args: [expression] + action: If the expression is true, do nothing; otherwise, jump to the + instruction right after the corresponding WhileEnd. + multi: [0x57, 0x68, 0x69, 0x6C, 0x65, 0x20] +- + code: 0xF709 + name: WhileEnd + category: Statement + args: [] + action: Jump to the corresponding While. + multi: [0x57, 0x68, 0x69, 0x6C, 0x65, 0x45, 0x6E, 0x64] +- + code: 0xF70A + name: Do + category: Statement + args: [] + action: Jump to the corresponding LpWhile. + multi: [0x44, 0x6F] +- + code: 0xF70B + name: LpWhile + category: Statement + args: [expression] + action: If the expression is true, jump to the instruction right after the + corresponding Do; otherwise, do nothing. + multi: [0x4C, 0x70, 0x57, 0x68, 0x69, 0x6C, 0x65, 0x20] +- + code: 0xF70C + name: Return + category: Statement + multi: [0x52, 0x65, 0x74, 0x75, 0x72, 0x6E] +- + code: 0xF70D + name: Break + category: Statement + multi: [0x42, 0x72, 0x65, 0x61, 0x6B] +- + code: 0xF70E + name: Stop + category: Statement + multi: [0x53, 0x74, 0x6F, 0x70] +- + code: 0xF70F + name: ElseIf + set: C.Basic + multi: [0x45, 0x6C, 0x73, 0x65, 0x49, 0x66, 0x20] +- + code: 0xF710 + name: Locate + category: Statement + multi: [0x4C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x20] +- + code: 0xF711 + name: Send( + category: Function + multi: [0x53, 0x65, 0x6E, 0x64, 0x28] +- + code: 0xF712 + name: Receive( + category: Function + multi: [0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x28] +- + code: 0xF713 + name: OpenComport38k + category: Statement + multi: [0x4F, 0x70, 0x65, 0x6E, 0x43, 0x6F, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x33, + 0x38, 0x6B] +- + code: 0xF714 + name: CloseComport38k + category: Statement + multi: [0x43, 0x6C, 0x6F, 0x73, 0x65, 0x43, 0x6F, 0x6D, 0x70, 0x6F, 0x72, 0x74, + 0x33, 0x38, 0x6B] +- + code: 0xF715 + name: Send38k + category: Statement + multi: [0x53, 0x65, 0x6E, 0x64, 0x33, 0x38, 0x6B, 0x20] +- + code: 0xF716 + name: Receive38k + category: Statement + multi: [0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x33, 0x38, 0x6B, 0x20] +- + code: 0xF717 + name: ACBreak + set: C.Basic + multi: [0x41, 0x43, 0x42, 0x72, 0x65, 0x61, 0x6B] +- + code: 0xF718 + name: ClrText + category: Statement + multi: [0x43, 0x6C, 0x72, 0x54, 0x65, 0x78, 0x74] +- + code: 0xF719 + name: ClrGraph + category: Statement + multi: [0x43, 0x6C, 0x72, 0x47, 0x72, 0x61, 0x70, 0x68] +- + code: 0xF71A + name: ClrList + category: Statement + args: List + action: Delete the list's content. + multi: [0x43, 0x6C, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x20] +- + code: 0xF71B + name: LinearReg(a+bx) + set: CASIOWIN_2.00 + multi: [0x4C, 0x69, 0x6E, 0x65, 0x61, 0x72, 0x52, 0x65, 0x67, 0x28, 0x61, 0x2B, + 0x62, 0x78, 0x29, 0x20] +- + code: 0xF71C + name: S-L-Normal + multi: [0x53, 0x2D, 0x4C, 0x2D, 0x4E, 0x6F, 0x72, 0x6D, 0x61, 0x6C] +- + code: 0xF71D + name: S-L-Thick + multi: [0x53, 0x2D, 0x4C, 0x2D, 0x54, 0x68, 0x69, 0x63, 0x6B] +- + code: 0xF71E + name: S-L-Broken + multi: [0x53, 0x2D, 0x4C, 0x2D, 0x42, 0x72, 0x6F, 0x6B, 0x65, 0x6E] +- + code: 0xF71F + name: S-L-Dot + multi: [0x53, 0x2D, 0x4C, 0x2D, 0x44, 0x6F, 0x74] +- + code: 0xF720 + name: DrawGraph + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x47, 0x72, 0x61, 0x70, 0x68] +- + code: 0xF721 + name: PlotPhase + set: CASIOWIN_2.00 + multi: [0x50, 0x6C, 0x6F, 0x74, 0x50, 0x68, 0x61, 0x73, 0x65, 0x20] +- + code: 0xF722 + name: DrawDyna + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x44, 0x79, 0x6E, 0x61] +- + code: 0xF723 + name: DrawStat + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x53, 0x74, 0x61, 0x74] +- + code: 0xF724 + name: DrawFTG-Con + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x46, 0x54, 0x47, 0x2D, 0x43, 0x6F, 0x6E] +- + code: 0xF725 + name: DrawFTG-Plt + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x46, 0x54, 0x47, 0x2D, 0x50, 0x6C, 0x74] +- + code: 0xF726 + name: DrawR-Con + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x52, 0x2D, 0x43, 0x6F, 0x6E] +- + code: 0xF727 + name: DrawR-Plt + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x52, 0x2D, 0x50, 0x6C, 0x74] +- + code: 0xF728 + name: DrawRSigma-Con + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x52, 0xE551, 0x2D, 0x43, 0x6F, 0x6E] +- + code: 0xF729 + name: DrawRSigma-Plt + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x52, 0xE551, 0x2D, 0x50, 0x6C, 0x74] +- + code: 0xF72A + name: DrawWeb + category: Statement + multi: [0x44, 0x72, 0x61, 0x77, 0x57, 0x65, 0x62, 0x20] +- + code: 0xF72B + name: NormalG + category: Statement + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x47, 0x20] +- + code: 0xF72C + name: ThickG + category: Statement + multi: [0x54, 0x68, 0x69, 0x63, 0x6B, 0x47, 0x20] +- + code: 0xF72D + name: BrokenThickG + category: Statement + multi: [0x42, 0x72, 0x6F, 0x6B, 0x65, 0x6E, 0x54, 0x68, 0x69, 0x63, 0x6B, + 0x47, 0x20] +- + code: 0xF72E + name: DispF-Tbl + category: Statement + multi: [0x44, 0x69, 0x73, 0x70, 0x46, 0x2D, 0x54, 0x62, 0x6C] +- + code: 0xF72F + name: DispR-Tbl + category: Statement + multi: [0x44, 0x69, 0x73, 0x70, 0x52, 0x2D, 0x54, 0x62, 0x6C] +- + code: 0xF730 + name: SimplifyAuto + set: CASIOWIN_2.00 + multi: [0x53, 0x69, 0x6D, 0x70, 0x6C, 0x69, 0x66, 0x79, 0x41, 0x75, 0x74, 0x6F] +- + code: 0xF731 + name: SimplifyMan + set: CASIOWIN_2.00 + multi: [0x53, 0x69, 0x6D, 0x70, 0x6C, 0x69, 0x66, 0x79, 0x4D, 0x61, 0x6E] +- + code: 0xF732 + name: NPPlot + multi: [0x4E, 0x50, 0x50, 0x6C, 0x6F, 0x74] +- + code: 0xF733 + name: Sinusoidal + multi: [0x53, 0x69, 0x6E, 0x75, 0x73, 0x6F, 0x69, 0x64, 0x61, 0x6C] +- + code: 0xF734 + name: SinReg + multi: [0x53, 0x69, 0x6E, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF735 + name: Logistic + multi: [0x4C, 0x6F, 0x67, 0x69, 0x73, 0x74, 0x69, 0x63] +- + code: 0xF736 + name: LogisticReg + multi: [0x4C, 0x6F, 0x67, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x65, 0x67, 0x20] + +# TODO +- + code: 0xF73A + name: Pie chart + set: CASIOWIN_2.00 + multi: [0x50, 0x69, 0x65] + +# TODO +- + code: 0xF73C + name: Bar chart + set: CASIOWIN_2.00 + multi: [0x42, 0x61, 0x72] + +# TODO +- + code: 0xF73F + name: DotG + multi: [0x44, 0x6F, 0x74, 0x47, 0x20] +- + code: 0xF73F + name: DotGet( + set: C.Basic + multi: [0x44, 0x6F, 0x74, 0x47, 0x65, 0x74, 0x28] +- # 1-Variable + code: 0xF740 + name: 1-Variable Statistics + multi: [0x31, 0x2D, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6C, 0x65, 0x20] +- + code: 0xF741 + name: 2-Variable Statistics + multi: [0x32, 0x2D, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6C, 0x65, 0x20] +- + code: 0xF742 + name: Linear Regression ax + multi: [0x4C, 0x69, 0x6E, 0x65, 0x61, 0x72, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF742 + name: Linear Regression ax+b + set: CASIOWIN_2.00 + multi: [0x4C, 0x69, 0x6E, 0x65, 0x61, 0x72, 0x52, 0x65, 0x67, 0x28, 0x61, 0x78, + 0x2B, 0x62, 0x29, 0x20] +- + code: 0xF743 + name: Med-MedLine + multi: [0x4D, 0x65, 0x64, 0x2D, 0x4D, 0x65, 0x64, 0x4C, 0x69, 0x6E, 0x65, 0x20] +- + code: 0xF744 + name: QuadReg + multi: [0x51, 0x75, 0x61, 0x64, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF745 + name: CubicReg + multi: [0x43, 0x75, 0x62, 0x69, 0x63, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF746 + name: QuartReg + multi: [0x51, 0x75, 0x61, 0x72, 0x74, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF747 + name: LogReg + multi: [0x4C, 0x6F, 0x67, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF748 + name: ExpReg( + multi: [0x45, 0x78, 0x70, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF748 + name: ExpReg(a.e^bx) + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0x52, 0x65, 0x67, 0x28, 0x61, 0xE6AA, 0x65, 0x5E, + 0x62, 0x78, 0x29, 0x20] +- + code: 0xF749 + name: PowerReg + multi: [0x50, 0x6F, 0x77, 0x65, 0x72, 0x52, 0x65, 0x67, 0x20] +- + code: 0xF74A + name: Stat Graph 1 + multi: [0x53, 0x2D, 0x47, 0x70, 0x68, 0x31, 0x20] +- + code: 0xF74B + name: Stat Graph 2 + multi: [0x53, 0x2D, 0x47, 0x70, 0x68, 0x32, 0x20] +- + code: 0xF74C + name: Stat Graph 3 + multi: [0x53, 0x2D, 0x47, 0x70, 0x68, 0x33, 0x20] +- + code: 0xF74D + name: Square-shaped Points + multi: [0x53, 0x71, 0x75, 0x61, 0x72, 0x65] +- + code: 0xF74E + name: Cross-shaped Points + multi: [0x43, 0x72, 0x6F, 0x73, 0x73] +- + code: 0xF74F + name: Dot-shaped Points + multi: [0x44, 0x6F, 0x74] +- + code: 0xF74F + name: DotTrim( + set: C.Basic + multi: [0x44, 0x6F, 0x74, 0x54, 0x72, 0x69, 0x6D, 0x28] +- + code: 0xF750 + name: Scatter + multi: [0x53, 0x63, 0x61, 0x74, 0x74, 0x65, 0x72] +- + code: 0xF751 + name: xyLine + multi: [0x78, 0x79, 0x4C, 0x69, 0x6E, 0x65] +- + code: 0xF752 + name: Hist + multi: [0x48, 0x69, 0x73, 0x74] +- + code: 0xF753 + name: MedBox + multi: [0x4D, 0x65, 0x64, 0x42, 0x6F, 0x78] +#- +# code: 0xF754 +# name: MeanBox +# token: {cat: '\MeanBox', ctf: 'MeanBox'} +- + code: 0xF755 + name: N-Dist + multi: [0x4E, 0x2D, 0x44, 0x69, 0x73, 0x74] +- + code: 0xF756 + name: Broken + multi: [0x42, 0x72, 0x6F, 0x6B, 0x65, 0x6E] +- + code: 0xF757 + name: Linear + multi: [0x4C, 0x69, 0x6E, 0x65, 0x61, 0x72] +- + code: 0xF758 + name: Med-Med + multi: [0x4D, 0x65, 0x64, 0x2D, 0x4D, 0x65, 0x64] +- + code: 0xF759 + name: Quad + multi: [0x51, 0x75, 0x61, 0x64] +- + code: 0xF75A + name: Cubic + multi: [0x43, 0x75, 0x62, 0x69, 0x63] +- + code: 0xF75B + name: Quart + multi: [0x51, 0x75, 0x61, 0x72, 0x74] +- + code: 0xF75C + name: Log + multi: [0x4C, 0x6F, 0x67] +- + code: 0xF75D + name: Exp( + multi: [0x45, 0x78, 0x70] +- + code: 0xF75D + name: Exp(a.e^bx) + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0x28, 0x61, 0xE6AA, 0x65, 0x5E, 0x62, 0x78, 0x29] +- + code: 0xF75E + name: Power + multi: [0x50, 0x6F, 0x77, 0x65, 0x72] +- + code: 0xF75F + name: ExpReg(a.b^x) + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0x52, 0x65, 0x67, 0x28, 0x61, 0xE6AA, 0x62, 0x5E, + 0x78, 0x29, 0x20] +- + code: 0xF760 + name: S-WindAuto + multi: [0x53, 0x2D, 0x57, 0x69, 0x6E, 0x64, 0x41, 0x75, 0x74, 0x6F] +- + code: 0xF761 + name: S-WindMan + multi: [0x53, 0x2D, 0x57, 0x69, 0x6E, 0x64, 0x4D, 0x61, 0x6E] +- + code: 0xF762 + name: Graph X= + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x58, 0x3D] +- + code: 0xF763 + name: Y=Type + multi: [0x59, 0x3D, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF764 + name: r=Type + multi: [0x72, 0x3D, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF765 + name: ParamType + multi: [0x50, 0x61, 0x72, 0x61, 0x6D, 0x54, 0x79, 0x70, 0x65] + +# TODO +- + code: 0xF767 + name: X=cType + multi: [0x58, 0x3D, 0x63, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF767 + name: X=Type + set: CASIOWIN_2.00 + multi: [0x58, 0x3D, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF768 + name: X>Type + set: CASIOWIN_2.00 + multi: [0x58, 0x3E, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF769 + name: XType + multi: [0x59, 0x3E, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF76B + name: Y=Type + multi: [0x59, 0x12, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF76D + name: Y<=Type + multi: [0x59, 0x10, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF76E + name: X>=Type + set: CASIOWIN_2.00 + multi: [0x58, 0x12, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF76F + name: X<=Type + set: CASIOWIN_2.00 + multi: [0x58, 0x10, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF770 + name: G-Connect + multi: [0x47, 0x2D, 0x43, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74] +- + code: 0xF771 + name: G-Plot + multi: [0x47, 0x2D, 0x50, 0x6C, 0x6F, 0x74] + +# TODO +- + code: 0xF776 + name: Resid-None + multi: [0x52, 0x65, 0x73, 0x69, 0x64, 0x2D, 0x4E, 0x6F, 0x6E, 0x65] +- + code: 0xF777 + name: Resid-List + multi: [0x52, 0x65, 0x73, 0x69, 0x64, 0x2D, 0x4C, 0x69, 0x73, 0x74, 0x20] +- + code: 0xF778 + name: BG-None + multi: [0x42, 0x47, 0x2D, 0x4E, 0x6F, 0x6E, 0x65] +- + code: 0xF779 + name: BG-Pict + multi: [0x42, 0x47, 0x2D, 0x50, 0x69, 0x63, 0x74, 0x20] +- + code: 0xF77A + name: GridOff + multi: [0x47, 0x72, 0x69, 0x64, 0x4F, 0x66, 0x66] + +# TODO +- + code: 0xF77D + name: GridOn + multi: [0x47, 0x72, 0x69, 0x64, 0x4F, 0x6E] +- + code: 0xF77E + name: Exp(a.b^x) + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0x28, 0x61, 0xE6AA, 0x62, 0x5E, 0x78, 0x29] + +# TODO +- + code: 0xF780 + name: D Var + multi: [0x44, 0x20, 0x56, 0x61, 0x72, 0x20] + +# TODO +- + code: 0xF787 + name: Q1Q3TypeStd + set: CASIOWIN_2.00 + multi: [0x51, 0x31, 0x51, 0x33, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x64] +- + code: 0xF788 + name: VarRange + multi: [0x56, 0x61, 0x72, 0x52, 0x61, 0x6E, 0x67, 0x65] +- + code: 0xF789 + name: Q1Q3TypeOnData + set: CASIOWIN_2.00 + multi: [0x51, 0x31, 0x51, 0x33, 0x54, 0x79, 0x70, 0x65, 0x4F, 0x6E, 0x44, 0x61, + 0x74, 0x61] + +# TODO +- + code: 0xF78C + name: SketchNormal + multi: [0x53, 0x6B, 0x65, 0x74, 0x63, 0x68, 0x4E, 0x6F, 0x72, 0x6D, 0x61, + 0x6C, 0x20] +- + code: 0xF78D + name: SketchThick + multi: [0x53, 0x6B, 0x65, 0x74, 0x63, 0x68, 0x54, 0x68, 0x69, 0x63, 0x6B, 0x20] +- + code: 0xF78E + name: SketchBroken + multi: [0x53, 0x6B, 0x65, 0x74, 0x63, 0x68, 0x42, 0x72, 0x6F, 0x6B, 0x65, 0x6E, + 0x20] +- + code: 0xF78F + name: SketchDot + multi: [0x53, 0x6B, 0x65, 0x74, 0x63, 0x68, 0x44, 0x6F, 0x74, 0x20] +- + code: 0xF790 + name: anType + multi: [0x61, 0xE5DE, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF791 + name: an+1Type + multi: [0x61, 0xE5DE, 0xE5DB, 0xE5CE, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF792 + name: an+2Type + multi: [0x61, 0xE5DE, 0xE5DB, 0xE5CF, 0x54, 0x79, 0x70, 0x65] +- + code: 0xF793 + name: StoPict + multi: [0x53, 0x74, 0x6F, 0x50, 0x69, 0x63, 0x74, 0x20] +- + code: 0xF794 + name: RclPict + multi: [0x52, 0x63, 0x6C, 0x50, 0x69, 0x63, 0x74, 0x20] +- + code: 0xF795 + name: StoGMEM + multi: [0x53, 0x74, 0x6F, 0x47, 0x4D, 0x45, 0x4D, 0x20] +- + code: 0xF796 + name: RclGMEM + multi: [0x52, 0x63, 0x6C, 0x47, 0x4D, 0x45, 0x4D, 0x20] +- + code: 0xF797 + name: StoV-Win + multi: [0x53, 0x74, 0x6F, 0x56, 0x2D, 0x57, 0x69, 0x6E, 0x20] +- + code: 0xF798 + name: RclV-Win + multi: [0x52, 0x63, 0x6C, 0x56, 0x2D, 0x57, 0x69, 0x6E, 0x20] +- + code: 0xF799 + name: "% (?)" + set: CASIOWIN_2.00 + multi: [0x25] +- + code: 0xF79A + name: Data + set: CASIOWIN_2.00 + multi: [0x44, 0x61, 0x74, 0x61] + +# TODO +- + code: 0xF79E + name: Menu + category: Statement + set: CASIOWIN_2.00 + multi: [0x4D, 0x65, 0x6E, 0x75, 0x20] +- + code: 0xF79F + name: Recall Capture + multi: [0x52, 0x63, 0x6C, 0x43, 0x61, 0x70, 0x74, 0x20] +- + code: 0xF7A0 + name: Tangent To Curve + multi: [0x54, 0x61, 0x6E, 0x67, 0x65, 0x6E, 0x74, 0x20] +- + code: 0xF7A1 + name: Normal + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x61, 0x6C, 0x20] +- + code: 0xF7A2 + name: Inverse + multi: [0x49, 0x6E, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20] +- + code: 0xF7A3 + name: Vertical Line + multi: [0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x20] +- + code: 0xF7A4 + name: Horizontal Line + multi: [0x48, 0x6F, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x20] +- + code: 0xF7A5 + name: Render Small Text + multi: [0x54, 0x65, 0x78, 0x74, 0x20] +- + code: 0xF7A6 + name: Circle + multi: [0x43, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x20] +- + code: 0xF7A7 + name: F-Line + multi: [0x46, 0x2D, 0x4C, 0x69, 0x6E, 0x65, 0x20] +- + code: 0xF7A8 + name: Draw Point On Graph + multi: [0x50, 0x6C, 0x6F, 0x74, 0x4F, 0x6E, 0x20] +- + code: 0xF7A9 + name: Clear Point On Graph + multi: [0x50, 0x6C, 0x6F, 0x74, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7AA + name: Reverse Point On Graph + multi: [0x50, 0x6C, 0x6F, 0x74, 0x43, 0x68, 0x67, 0x20] +- + code: 0xF7AB + name: Put Pixel On Screen + multi: [0x50, 0x78, 0x6C, 0x4F, 0x6E, 0x20] +- + code: 0xF7AC + name: Clear Pixel On Screen + multi: [0x50, 0x78, 0x6C, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7AD + name: Reverse Pixel On Screen + multi: [0x50, 0x78, 0x6C, 0x43, 0x68, 0x67, 0x20] + +# TODO +- + code: 0xF7AF + name: Query Pixel From Screen + multi: [0x50, 0x78, 0x6C, 0x54, 0x65, 0x73, 0x74, 0x28] +- + code: 0xF7B0 + name: Sort List (ascendant) + multi: [0x53, 0x6F, 0x72, 0x74, 0x41, 0x28] +- + code: 0xF7B1 + name: Sort List (descendant) + multi: [0x53, 0x6F, 0x72, 0x74, 0x44, 0x28] +- + code: 0xF7B2 + name: VarList1 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x31] +- + code: 0xF7B3 + name: VarList2 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x32] +- + code: 0xF7B4 + name: VarList3 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x33] +- + code: 0xF7B5 + name: VarList4 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x34] +- + code: 0xF7B6 + name: VarList5 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x35] +- + code: 0xF7B7 + name: VarList6 + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x36] +- + code: 0xF7B8 + name: List File 1 + multi: [0x46, 0x69, 0x6C, 0x65, 0x31] +- + code: 0xF7B9 + name: List File 2 + multi: [0x46, 0x69, 0x6C, 0x65, 0x32] +- + code: 0xF7BA + name: List File 3 + multi: [0x46, 0x69, 0x6C, 0x65, 0x33] +- + code: 0xF7BB + name: List File 4 + multi: [0x46, 0x69, 0x6C, 0x65, 0x34] +- + code: 0xF7BC + name: List File 5 + multi: [0x46, 0x69, 0x6C, 0x65, 0x35] +- + code: 0xF7BD + name: List File 6 + multi: [0x46, 0x69, 0x6C, 0x65, 0x36] +- + code: 0xF7BE + name: Y=DrawSpeedNorm + multi: [0x59, 0x3D, 0x44, 0x72, 0x61, 0x77, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4E, + 0x6F, 0x72, 0x6D] +- + code: 0xF7BF + name: Y=DrawSpeedHigh + multi: [0x59, 0x3D, 0x44, 0x72, 0x61, 0x77, 0x53, 0x70, 0x65, 0x65, 0x64, 0x48, + 0x69, 0x67, 0x68] +- + code: 0xF7C0 + name: FuncOn + multi: [0x46, 0x75, 0x6E, 0x63, 0x4F, 0x6E] +- + code: 0xF7C1 + name: SimulOn + multi: [0x53, 0x69, 0x6D, 0x75, 0x6C, 0x4F, 0x6E] +- + code: 0xF7C2 + name: AxesOn + multi: [0x41, 0x78, 0x65, 0x73, 0x4F, 0x6E] +- + code: 0xF7C3 + name: CoordOn + multi: [0x43, 0x6F, 0x6F, 0x72, 0x64, 0x4F, 0x6E] +- + code: 0xF7C4 + name: LabelOn + multi: [0x4C, 0x61, 0x62, 0x65, 0x6C, 0x4F, 0x6E] +- + code: 0xF7C5 + name: DerivOn + multi: [0x44, 0x65, 0x72, 0x69, 0x76, 0x4F, 0x6E] +- + code: 0xF7C6 + name: LocusOn + multi: [0x4C, 0x6F, 0x63, 0x75, 0x73, 0x4F, 0x6E] +- + code: 0xF7C7 + name: Sigma disp on + multi: [0xE551, 0x64, 0x69, 0x73, 0x70, 0x4F, 0x6E] +- + code: 0xF7C8 + name: G SelOn + multi: [0x47, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x6E, 0x20] +- + code: 0xF7C9 + name: T SelOn + multi: [0x54, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x6E, 0x20] +- + code: 0xF7CA + name: D SelOn + multi: [0x44, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x6E, 0x20] +- + code: 0xF7CB + name: R SelOn + multi: [0x52, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x6E, 0x20] +- + code: 0xF7CC + name: DrawOn + multi: [0x44, 0x72, 0x61, 0x77, 0x4F, 0x6E] +- + code: 0xF7CD + name: ab/c + multi: [0x61, 0x62, 0x2F, 0x63] +- + code: 0xF7CE + name: d/c + multi: [0x64, 0x2F, 0x63] + +# TODO +- + code: 0xF7D0 + name: FuncOff + multi: [0x46, 0x75, 0x6E, 0x63, 0x4F, 0x66, 0x66] +- + code: 0xF7D1 + name: SimulOff + multi: [0x53, 0x69, 0x6D, 0x75, 0x6C, 0x4F, 0x66, 0x66] +- + code: 0xF7D2 + name: AxesOff + multi: [0x41, 0x78, 0x65, 0x73, 0x4F, 0x66, 0x66] +- + code: 0xF7D3 + name: CoordOff + multi: [0x43, 0x6F, 0x6F, 0x72, 0x64, 0x4F, 0x66, 0x66] +- + code: 0xF7D4 + name: LabelOff + multi: [0x4C, 0x61, 0x62, 0x65, 0x6C, 0x4F, 0x66, 0x66] +- + code: 0xF7D5 + name: DerivOff + multi: [0x44, 0x65, 0x72, 0x69, 0x76, 0x4F, 0x66, 0x66] +- + code: 0xF7D6 + name: LocusOff + multi: [0x4C, 0x6F, 0x63, 0x75, 0x73, 0x4F, 0x66, 0x66] +- + code: 0xF7D7 + name: Sigma disp off + multi: [0xE551, 0x64, 0x69, 0x73, 0x70, 0x4F, 0x66, 0x66] +- + code: 0xF7D8 + name: G SelOff + multi: [0x47, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7D9 + name: T SelOff + multi: [0x54, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7DA + name: D SelOff + multi: [0x44, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7DB + name: R SelOff + multi: [0x52, 0x20, 0x53, 0x65, 0x6C, 0x4F, 0x66, 0x66, 0x20] +- + code: 0xF7DC + name: DrawOff + multi: [0x44, 0x72, 0x61, 0x77, 0x4F, 0x66, 0x66] + +# TODO +- + code: 0xF7E0 + name: DotLife( + set: C.Basic + multi: [0x44, 0x6F, 0x74, 0x4C, 0x69, 0x66, 0x65, 0x28] +- + code: 0xF7E1 + name: Rect + set: C.Basic + multi: [0x52, 0x65, 0x63, 0x74, 0x20] +- + code: 0xF7E2 + name: FillRect + set: C.Basic + multi: [0x46, 0x69, 0x6C, 0x6C, 0x52, 0x65, 0x63, 0x74, 0x20] +- + code: 0xF7E3 + name: LocateYX + set: C.Basic + multi: [0x4C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x59, 0x58, 0x20] + +# TODO +- + code: 0xF7E8 + name: ReadGraph( + set: C.Basic + multi: [0x52, 0x65, 0x61, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x28] +- + code: 0xF7E9 + name: WriteGraph + set: C.Basic + multi: [0x57, 0x72, 0x69, 0x74, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20] +- + code: 0xF7EA + name: Switch + set: C.Basic + multi: [0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20] +- + code: 0xF7EB + name: Case + set: C.Basic + multi: [0x43, 0x61, 0x73, 0x65, 0x20] +- + code: 0xF7EC + name: Default + set: C.Basic + multi: [0x44, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x20] +- + code: 0xF7ED + name: SwitchEnd + set: C.Basic + multi: [0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x6E, 0x64] +- + code: 0xF7EE + name: Save + set: C.Basic + multi: [0x53, 0x61, 0x76, 0x65, 0x20] +- + code: 0xF7EF + name: Load( + set: C.Basic + multi: [0x4C, 0x6F, 0x61, 0x64, 0x28] +- + code: 0xF7F0 + name: DotShape( + set: C.Basic + multi: [0x44, 0x6F, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x28] +- + code: 0xF7F1 + name: Local + set: C.Basic + multi: [0x4C, 0x6F, 0x63, 0x61, 0x6C, 0x20] + +# TODO +- + code: 0xF7FE + name: BackLight + set: C.Basic + multi: [0x42, 0x61, 0x63, 0x6B, 0x4C, 0x69, 0x67, 0x68, 0x74, 0x20] + +# TODO: finish here +#******************************************************************************# +# 0xF9 characters # +#******************************************************************************# +# TODO +- + code: 0xF901 + name: ">Dec" + multi: [0xE69E, 0x44, 0x65, 0x63] +- + code: 0xF902 + name: ">Hex" + multi: [0xE69E, 0x48, 0x65, 0x78] +- + code: 0xF903 + name: ">Bin" + multi: [0xE69E, 0x42, 0x69, 0x6E] +- + code: 0xF904 + name: ">Oct" + multi: [0xE69E, 0x4F, 0x63, 0x74] +- + code: 0xF905 + name: ">DMS" + multi: [0xE69E, 0x44, 0x4D, 0x53] +- + code: 0xF906 + name: ">a+bi" + multi: [0xE69E, 0x61, 0x2B, 0x62, 0x7F50] +- + code: 0xF907 + name: "> r < theta" + multi: [0xE69E, 0x72, 0x7F54, 0xE647] +- + code: 0xF908 + name: Real + multi: [0x52, 0x65, 0x61, 0x6C] +- + code: 0xF909 + name: a+bi + multi: [0x61, 0x2B, 0x62, 0x7F50] +- + code: 0xF90A + name: r < theta + multi: [0x72, 0x7F54, 0xE647] +- + code: 0xF90B + name: EngOn + multi: [0x45, 0x6E, 0x67, 0x4F, 0x6E] +- + code: 0xF90C + name: EngOff + multi: [0x45, 0x6E, 0x67, 0x4F, 0x66, 0x66] + +# TODO +- + code: 0xF910 + name: Sel a0 + multi: [0x53, 0x65, 0x6C, 0x20, 0x61, 0xE5CD] +- + code: 0xF911 + name: Sel a1 + multi: [0x53, 0x65, 0x6C, 0x20, 0x61, 0xE5CE] +- + code: 0xF912 + name: cn + multi: [0x63, 0xE5DE] +- + code: 0xF913 + name: cn+1 + multi: [0x63, 0xE5DE, 0xE5DB, 0xE5CE] +- + code: 0xF914 + name: cn+2 + multi: [0x63, 0xE5DE, 0xE5DB, 0xE5CF] +- + code: 0xF915 + name: c0 + multi: [0x63, 0xE5CD] +- + code: 0xF916 + name: c1 + multi: [0x63, 0xE5CE] +- + code: 0xF917 + name: c2 + multi: [0x63, 0xE5CF] +- + code: 0xF918 + name: cnStart + multi: [0x63, 0xE5DE, 0x53, 0x74, 0x61, 0x72, 0x74] +- + code: 0xF919 + name: IneqTypeAnd + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6E, 0x64] + +# TODO +- + code: 0xF91B + name: fn + multi: [0x66, 0xE5DE] +- + code: 0xF91C + name: File + multi: [0x46, 0x69, 0x6C, 0x65, 0x20] +- + code: 0xF91D + name: VarList + multi: [0x56, 0x61, 0x72, 0x4C, 0x69, 0x73, 0x74, 0x20] +- + code: 0xF91E + name: ClrMat + category: Statement + args: Mat + action: Delete the matrix. + multi: [0x43, 0x6C, 0x72, 0x4D, 0x61, 0x74, 0x20] + +# TODO +- + code: 0xF920 + name: ZoomAuto + multi: [0x5A, 0x6F, 0x6F, 0x6D, 0x41, 0x75, 0x74, 0x6F] +- + code: 0xF921 + name: Xdot + multi: [0x58, 0x64, 0x6F, 0x74] +- + code: 0xF922 + name: RightXdot + multi: [0x52, 0x69, 0x67, 0x68, 0x74, 0x58, 0x64, 0x6F, 0x74] + +# TODO +- + code: 0xF924 + name: DrawDistNorm + set: CASIOWIN_2.00 + multi: [0x44, 0x72, 0x61, 0x77, 0x44, 0x69, 0x73, 0x74, 0x4E, 0x6F, 0x72, 0x6D, + 0x20] +- + code: 0xF925 + name: DrawDistT + set: CASIOWIN_2.00 + multi: [0x44, 0x72, 0x61, 0x77, 0x44, 0x69, 0x73, 0x74, 0x54, 0x20] +- + code: 0xF926 + name: DrawDistChi + set: CASIOWIN_2.00 + multi: [0x44, 0x72, 0x61, 0x77, 0x44, 0x69, 0x73, 0x74, 0x43, 0x68, 0x69, 0x20] +- + code: 0xF927 + name: DrawDistF + set: CASIOWIN_2.00 + multi: [0x44, 0x72, 0x61, 0x77, 0x44, 0x69, 0x73, 0x74, 0x46, 0x20] +- + code: 0xF928 + name: None + set: CASIOWIN_2.00 + multi: [0x4E, 0x6F, 0x6E, 0x65] +- + code: 0xF929 + name: StickLength + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x69, 0x63, 0x6B, 0x4C, 0x65, 0x6E, 0x67, 0x74, 0x68] +- + code: 0xF92A + name: StickHoriz + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x69, 0x63, 0x6B, 0x48, 0x6F, 0x72, 0x69, 0x7A] +- + code: 0xF92B + name: IneqTypeOr + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x4F, 0x72] +- + code: 0xF92C + name: Graph X> + set: CASIOWIN_2.00 + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x58, 0x3E] +- + code: 0xF92D + name: Graph X< + set: CASIOWIN_2.00 + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x58, 0x3C] +- + code: 0xF92E + name: Graph X>= + set: CASIOWIN_2.00 + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x58, 0x12] +- + code: 0xF92F + name: Graph X<= + set: CASIOWIN_2.00 + multi: [0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x58, 0x10] +- + code: 0xF930 + name: StrJoin( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x4A, 0x6F, 0x69, 0x6E, 0x28] +- + code: 0xF931 + name: StrLen( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x4C, 0x65, 0x6E, 0x28] +- + code: 0xF932 + name: StrCmp( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x43, 0x6D, 0x70, 0x28] +- + code: 0xF933 + name: StrSrc( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x53, 0x72, 0x63, 0x28] +- + code: 0xF934 + name: StrLeft( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x4C, 0x65, 0x66, 0x74, 0x28] +- + code: 0xF935 + name: StrRight( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, 0x28] +- + code: 0xF936 + name: StrMid( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x4D, 0x69, 0x64, 0x28] +- + code: 0xF937 + name: ExpToStr( + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0xE69E, 0x53, 0x74, 0x72, 0x28] +- + code: 0xF938 + name: Exp( + set: CASIOWIN_2.00 + multi: [0x45, 0x78, 0x70, 0x28] +- + code: 0xF939 + name: StrUpr( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x55, 0x70, 0x72, 0x28] +- + code: 0xF93A + name: StrLwr( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x4C, 0x77, 0x72, 0x28] +- + code: 0xF93B + name: StrInv( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x49, 0x6E, 0x76, 0x28] +- + code: 0xF93C + name: StrShift( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x53, 0x68, 0x69, 0x66, 0x74, 0x28] +- + code: 0xF93D + name: StrRotate( + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x52, 0x6F, 0x74, 0x61, 0x74, 0x65, 0x28] +- + code: 0xF93E + name: ClrVct + set: CASIOWIN_2.04 + multi: [0x43, 0x6C, 0x72, 0x56, 0x63, 0x74, 0x20] +- + code: 0xF93E + name: Sprintf( + set: C.Basic + multi: [0x53, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28] +- + code: 0xF93F + name: Str + set: CASIOWIN_2.00 + multi: [0x53, 0x74, 0x72, 0x20] + +# TODO +- + code: 0xF94A + name: CrossP( + set: CASIOWIN_2.04 + multi: [0x43, 0x72, 0x6F, 0x73, 0x73, 0x50, 0x28] +- + code: 0xF94B + name: DotP( + set: CASIOWIN_2.04 + multi: [0x44, 0x6F, 0x74, 0x50, 0x28] +- + code: 0xF94B + name: DotPut( + set: C.Basic + multi: [0x44, 0x6F, 0x74, 0x50, 0x75, 0x74, 0x28] + +# TODO +- + code: 0xF95B + name: Norm( + set: CASIOWIN_2.04 + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x28] + +# TODO +- + code: 0xF95E + name: UnitV( + set: CASIOWIN_2.04 + multi: [0x55, 0x6E, 0x69, 0x74, 0x56, 0x28] + +# TODO +- + code: 0xF96D + name: Angle( + set: CASIOWIN_2.04 + multi: [0x41, 0x6E, 0x67, 0x6C, 0x65, 0x28] + +# TODO +- + code: 0xF980 + name: NormPD( + set: CASIOWIN_2.00 + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x50, 0x44, 0x28] +- + code: 0xF981 + name: NormCD( + set: CASIOWIN_2.00 + multi: [0x4E, 0x6F, 0x72, 0x6D, 0x43, 0x44, 0x28] +- + code: 0xF982 + name: InvNormCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x4E, 0x6F, 0x72, 0x6D, 0x43, 0x44, 0x28] +- + code: 0xF983 + name: tPD + category: Function + set: CASIOWIN_2.00 + multi: [0x74, 0x50, 0x44, 0x28] +- + code: 0xF984 + name: tCD + category: Function + set: CASIOWIN_2.00 + multi: [0x74, 0x43, 0x44, 0x28] +- + code: 0xF985 + name: InvTCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x54, 0x43, 0x44, 0x28] +- + code: 0xF986 + name: ChiPD + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x68, 0x69, 0x50, 0x44, 0x28] +- + code: 0xF987 + name: ChiCD + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x68, 0x69, 0x43, 0x44, 0x28] +- + code: 0xF988 + name: InvChiCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x43, 0x68, 0x69, 0x43, 0x44, 0x28] +- + code: 0xF989 + name: FPD + category: Function + set: CASIOWIN_2.00 + multi: [0x46, 0x50, 0x44, 0x28] +- + code: 0xF98A + name: FCD + category: Function + set: CASIOWIN_2.00 + multi: [0x46, 0x43, 0x44, 0x28] +- + code: 0xF98B + name: InvFCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x46, 0x43, 0x44, 0x28] +- + code: 0xF98C + name: BinominalPD + category: Function + set: CASIOWIN_2.00 + multi: [0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x6E, 0x61, 0x6C, 0x50, 0x44, 0x28] +- + code: 0xF98C + name: BinomialPD + category: Function + set: CASIOWIN_2.04 + multi: [0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x61, 0x6C, 0x50, 0x44, 0x28] +- + code: 0xF98D + name: BinominalCD + category: Function + set: CASIOWIN_2.00 + multi: [0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x6E, 0x61, 0x6C, 0x43, 0x44, 0x28] +- + code: 0xF98D + name: BinomialCD + category: Function + set: CASIOWIN_2.04 + multi: [0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x61, 0x6C, 0x43, 0x44, 0x28] +- + code: 0xF98E + name: InvBinominalCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x6E, 0x61, 0x6C, + 0x43, 0x44, 0x28] +- + code: 0xF98E + name: InvBinomialCD + category: Function + set: CASIOWIN_2.04 + multi: [0x49, 0x6E, 0x76, 0x42, 0x69, 0x6E, 0x6F, 0x6D, 0x69, 0x61, 0x6C, 0x43, + 0x44, 0x28] +- + code: 0xF98F + name: PoissonPD + category: Function + set: CASIOWIN_2.00 + multi: [0x50, 0x6F, 0x69, 0x73, 0x73, 0x6F, 0x6E, 0x50, 0x44, 0x28] +- + code: 0xF990 + name: PoissonCD + category: Function + set: CASIOWIN_2.00 + multi: [0x50, 0x6F, 0x69, 0x73, 0x73, 0x6F, 0x6E, 0x43, 0x44, 0x28] +- + code: 0xF991 + name: InvPoissonCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x50, 0x6F, 0x69, 0x73, 0x73, 0x6F, 0x6E, 0x43, 0x44, + 0x28] +- + code: 0xF992 + name: GeoPD + category: Function + set: CASIOWIN_2.00 + multi: [0x47, 0x65, 0x6F, 0x50, 0x44, 0x28] +- + code: 0xF993 + name: GeoCD + category: Function + set: CASIOWIN_2.00 + multi: [0x47, 0x65, 0x6F, 0x43, 0x44, 0x28] +- + code: 0xF994 + name: InvGeoCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x47, 0x65, 0x6F, 0x43, 0x44, 0x28] +- + code: 0xF995 + name: HypergeoPD + category: Function + set: CASIOWIN_2.00 + multi: [0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x65, 0x6F, 0x50, 0x44, 0x28] +- + code: 0xF996 + name: HypergeoCD + category: Function + set: CASIOWIN_2.00 + multi: [0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x65, 0x6F, 0x43, 0x44, 0x28] +- + code: 0xF997 + name: InvHypergeoCD + category: Function + set: CASIOWIN_2.00 + multi: [0x49, 0x6E, 0x76, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x65, 0x6F, 0x43, + 0x44, 0x28] + +# TODO +- + code: 0xF9A0 + name: Smpl_SI + category: Function + set: CASIOWIN_2.00 + multi: [0x53, 0x6D, 0x70, 0x6C, 0x5F, 0x53, 0x49, 0x28] +- + code: 0xF9A1 + name: Smpl_SFV + category: Function + set: CASIOWIN_2.00 + multi: [0x53, 0x6D, 0x70, 0x6C, 0x5F, 0x53, 0x46, 0x56, 0x28] +- + code: 0xF9A2 + name: Cmpd_n + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6D, 0x70, 0x64, 0x5F, 0x6E, 0x28] +- + code: 0xF9A3 + name: Cmpd_I% + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6D, 0x70, 0x64, 0x5F, 0x49, 0x25, 0x28] + id: Cmpd_Ipercent +- + code: 0xF9A4 + name: Cmpd_PV + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6D, 0x70, 0x64, 0x5F, 0x50, 0x56, 0x28] +- + code: 0xF9A5 + name: Cmpd_PMT + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6D, 0x70, 0x64, 0x5F, 0x50, 0x4D, 0x54, 0x28] +- + code: 0xF9A6 + name: Cmpd_FV + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6D, 0x70, 0x64, 0x5F, 0x46, 0x56, 0x28] +- + code: 0xF9A7 + name: Cash_NPV + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x61, 0x73, 0x68, 0x5F, 0x4E, 0x50, 0x56, 0x28] +- + code: 0xF9A8 + name: Cash_IRR + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x61, 0x73, 0x68, 0x5F, 0x49, 0x52, 0x52, 0x28] +- + code: 0xF9A9 + name: Cash_PBP + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x61, 0x73, 0x68, 0x5F, 0x50, 0x42, 0x50, 0x28] +- + code: 0xF9AA + name: Cash_NFV + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x61, 0x73, 0x68, 0x5F, 0x4E, 0x46, 0x56, 0x28] +- + code: 0xF9AB + name: Amt_BAL + category: Function + set: CASIOWIN_2.00 + multi: [0x41, 0x6D, 0x74, 0x5F, 0x42, 0x41, 0x4C, 0x28] +- + code: 0xF9AC + name: Amt_INT + category: Function + set: CASIOWIN_2.00 + multi: [0x41, 0x6D, 0x74, 0x5F, 0x49, 0x4E, 0x54, 0x28] +- + code: 0xF9AD + name: Amt_PRN + category: Function + set: CASIOWIN_2.00 + multi: [0x41, 0x6D, 0x74, 0x5F, 0x50, 0x52, 0x4E, 0x28] +- + code: 0xF9AE + name: Amt_SigmaINT + category: Function + set: CASIOWIN_2.00 + multi: [0x41, 0x6D, 0x74, 0x5F, 0xE551, 0x49, 0x4E, 0x54, 0x28] +- + code: 0xF9AF + name: Amt_SigmaPRN + category: Function + set: CASIOWIN_2.00 + multi: [0x41, 0x6D, 0x74, 0x5F, 0xE551, 0x50, 0x52, 0x4E, 0x28] +- + code: 0xF9B0 + name: Cnvt_EFF + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6E, 0x76, 0x74, 0x5F, 0x45, 0x46, 0x46, 0x28] +- + code: 0xF9B1 + name: Cnvt_APR + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6E, 0x76, 0x74, 0x5F, 0x41, 0x50, 0x52, 0x28] +- + code: 0xF9B2 + name: Cost + args: Sell, Margin + return: The cost from a cost and a profit margin. + category: Function + set: CASIOWIN_2.00 + multi: [0x43, 0x6F, 0x73, 0x74, 0x28] +- + code: 0xF9B3 + name: Sell + args: Cost, Margin + return: The sell price out of a cost and a profit margin. + category: Function + set: CASIOWIN_2.00 + multi: [0x53, 0x65, 0x6C, 0x6C, 0x28] +- + code: 0xF9B4 + name: Margin + args: Cost, Sell + return: The profit margin out of a cost and a sell price. + category: Function + set: CASIOWIN_2.00 + multi: [0x4D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x28] +- + code: 0xF9B5 + name: PmtEnd + set: CASIOWIN_2.00 + multi: [0x50, 0x6D, 0x74, 0x45, 0x6E, 0x64] +- + code: 0xF9B6 + name: PmtBgn + set: CASIOWIN_2.00 + multi: [0x50, 0x6D, 0x74, 0x42, 0x67, 0x6E] +- + code: 0xF9B7 + name: Bond_PRC + category: Function + set: CASIOWIN_2.00 + multi: [0x42, 0x6F, 0x6E, 0x64, 0x5F, 0x50, 0x52, 0x43, 0x28] +- + code: 0xF9B8 + name: Bond_YLD + category: Function + set: CASIOWIN_2.00 + multi: [0x42, 0x6F, 0x6E, 0x64, 0x5F, 0x59, 0x4C, 0x44, 0x28] +- + code: 0xF9B9 + name: DateMode365 + set: CASIOWIN_2.00 + multi: [0x44, 0x61, 0x74, 0x65, 0x4D, 0x6F, 0x64, 0x65, 0x33, 0x36, 0x35] +- + code: 0xF9BA + name: DateMode360 + set: CASIOWIN_2.00 + multi: [0x44, 0x61, 0x74, 0x65, 0x4D, 0x6F, 0x64, 0x65, 0x33, 0x36, 0x30] +- + code: 0xF9BB + name: PeriodsAnnual + set: CASIOWIN_2.00 + multi: [0x50, 0x65, 0x72, 0x69, 0x6F, 0x64, 0x73, 0x41, 0x6E, 0x6E, 0x75, 0x61, + 0x6C] +- + code: 0xF9BC + name: PeriodsSemi + set: CASIOWIN_2.00 + multi: [0x50, 0x65, 0x72, 0x69, 0x6F, 0x64, 0x73, 0x53, 0x65, 0x6D, 0x69] +- + code: 0xF9BD + name: Days_Prd( + set: CASIOWIN_2.00 + multi: [0x44, 0x61, 0x79, 0x73, 0x5F, 0x50, 0x72, 0x64, 0x28] + +# TODO +- + code: 0xF9E0 + name: OneSampleZTest + set: CASIOWIN_2.00 + multi: [0x4F, 0x6E, 0x65, 0x53, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x5A, 0x54, 0x65, + 0x73, 0x74, 0x20] +- + code: 0xF9E1 + name: TwoSampleZTest + set: CASIOWIN_2.00 + multi: [0x54, 0x77, 0x6F, 0x53, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x5A, 0x54, 0x65, + 0x73, 0x74, 0x20] +- + code: 0xF9E2 + name: OnePropZTest + set: CASIOWIN_2.00 + multi: [0x4F, 0x6E, 0x65, 0x50, 0x72, 0x6F, 0x70, 0x5A, 0x54, 0x65, 0x73, 0x74, + 0x20] +- + code: 0xF9E3 + name: TwoPropZTest + set: CASIOWIN_2.00 + multi: [0x54, 0x77, 0x6F, 0x50, 0x72, 0x6F, 0x70, 0x5A, 0x54, 0x65, 0x73, 0x74, + 0x20] + +# TODO +- + code: 0xF9E8 + name: OneSampleTTest + set: CASIOWIN_2.00 + multi: [0x4F, 0x6E, 0x65, 0x53, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x54, 0x54, 0x65, + 0x73, 0x74, 0x20] +- + code: 0xF9E9 + name: TwoSampleTTest + set: CASIOWIN_2.00 + multi: [0x54, 0x77, 0x6F, 0x53, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x54, 0x54, 0x65, + 0x73, 0x74, 0x20] +- + code: 0xF9EA + name: LinRegTTest + set: CASIOWIN_2.00 + multi: [0x4C, 0x69, 0x6E, 0x52, 0x65, 0x67, 0x54, 0x54, 0x65, 0x73, 0x74, 0x20] +- + code: 0xF9EB + name: Square Chi GOF Test + set: CASIOWIN_2.00 + multi: [0x43, 0x68, 0x69, 0x47, 0x4F, 0x46, 0x54, 0x65, 0x73, 0x74, 0x20] + ascii: "ChiGOFTest " +- + code: 0xF9EC + name: Square Chi Test + set: CASIOWIN_2.00 + multi: [0x43, 0x68, 0x69, 0x54, 0x65, 0x73, 0x74, 0x20] +- + code: 0xF9ED + name: Two-Sample F Test Calculation + set: CASIOWIN_2.00 + multi: [0x54, 0x77, 0x6F, 0x53, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x46, 0x54, 0x65, + 0x73, 0x74, 0x20] +- + code: 0xF9EE + name: One-factor Variance Analysis + set: CASIOWIN_2.00 + multi: [0x4F, 0x6E, 0x65, 0x57, 0x61, 0x79, 0x41, 0x4E, 0x4F, 0x56, 0x41, 0x20] +- + code: 0xF9EF + name: Two-factors Variance Analysis + set: CASIOWIN_2.00 + multi: [0x54, 0x77, 0x6F, 0x57, 0x61, 0x79, 0x41, 0x4E, 0x4F, 0x56, 0x41, 0x20] +- + code: 0xF9F0 + name: Reverse Cumulative Distribution Upper Limit + set: CASIOWIN_2.00 + multi: [0x78, 0x31, 0x49, 0x6E, 0x76, 0x4E] + ascii: xInvN +- + code: 0xF9F1 + name: Reverse Cumulative Distribution Lower Limit + set: CASIOWIN_2.00 + multi: [0x78, 0x32, 0x49, 0x6E, 0x76, 0x4E] + ascii: x2InvN +- + code: 0xF9F2 + name: Reverse Cumulative Distribution Result + set: CASIOWIN_2.00 + multi: [0x78, 0x49, 0x6E, 0x76] + ascii: xInv + +# TODO +- + code: 0xF9FB + name: Normal Cumulative Distribution Upper Limit (zLow) + set: CASIOWIN_2.00 + multi: [0x7A, 0x4C, 0x6F, 0x77] +- + code: 0xF9FC + name: Normal Cumulative Distribution Lower Limit (zUp) + set: CASIOWIN_2.00 + multi: [0x7A, 0x55, 0x70] +- + code: 0xF9FD + name: Student's Cumulative Distribution Upper Limit (tLow) + set: CASIOWIN_2.00 + multi: [0x74, 0x4C, 0x6F, 0x77] +- + code: 0xF9FE + name: Student's Cumulative Distribution Lower Limit (tUp) + set: CASIOWIN_2.00 + multi: [0x74, 0x55, 0x70] + +# TODO +#******************************************************************************# +# 0xE5 characters # +#******************************************************************************# +- + code: 0xE501 + name: A with grave + category: Letter/Latin Capital + unicode: [0xC0] + id: A_grave + ascii: 'À' +- + code: 0xE502 + name: A with acute + category: Letter/Latin Capital + unicode: [0xC1] + id: A_acute + ascii: 'Á' +- + code: 0xE503 + name: A with circumflex + category: Letter/Latin Capital + unicode: [0xC2] + id: A_circumflex + ascii: 'Â' +- + code: 0xE504 + name: A with tilde + category: Letter/Latin Capital + unicode: [0xC3] + id: A_tilde + ascii: 'Ã' +- + code: 0xE505 + name: A with diaeresis + category: Letter/Latin Capital + unicode: [0xC4] + id: A_diaeresis + ascii: 'Ä' +- + code: 0xE506 + name: A with ring above + category: Letter/Latin Capital + unicode: [0xC5] + id: A_ring + ascii: 'Å' +- + code: 0xE507 + name: A le + category: Ligature/Latin Capital + unicode: [0x4D4] + id: Ae + ascii: 'Æ' +- + code: 0xE508 + name: C with cedilla + category: Letter/Latin Capital + unicode: [0xC7] + id: C_cedilla + ascii: 'Ç' +- + code: 0xE509 + name: E with grave + category: Letter/Latin Capital + unicode: [0xC8] + id: E_grave + ascii: 'È' +- + code: 0xE50A + name: E with acute + category: Letter/Latin Capital + unicode: [0xC9] + id: E_acute + ascii: 'É' +- + code: 0xE50B + name: E with circumflex + category: Letter/Latin Capital + unicode: [0xCA] + id: E_circumflex + ascii: 'Ê' +- + code: 0xE50C + name: E with diaeresis + category: Letter/Latin Capital + unicode: [0xCB] + id: E_diaeresis + ascii: 'Ë' +- + code: 0xE50D + name: I with grave + category: Letter/Latin Capital + unicode: [0xCC] + id: I_grave + ascii: 'Ì' +- + code: 0xE50E + name: I with acute + category: Letter/Latin Capital + unicode: [0xCD] + id: I_acute + ascii: 'Í' +- + code: 0xE50F + name: I with circumflex + category: Letter/Latin Capital + unicode: [0xCE] + id: I_circumflex + ascii: 'Î' +- + code: 0xE510 + name: I with diaeresis + category: Letter/Latin Capital + unicode: [0xCF] + id: I_diaeresis + ascii: 'Ï' +- + code: 0xE511 + name: Eth + category: Letter/Latin Capital + unicode: [0xD0] + ascii: 'Ð' +- + code: 0xE512 + name: N with tilde + category: Letter/Latin Capital + unicode: [0xD1] + id: N_tilde + ascii: 'Ñ' +- + code: 0xE513 + name: O with grave + category: Letter/Latin Capital + unicode: [0xD2] + id: O_grave + ascii: 'Ò' +- + code: 0xE514 + name: O with acute + category: Letter/Latin Capital + unicode: [0xD3] + id: O_acute + ascii: 'Ó' +- + code: 0xE515 + name: O with circumflex + category: Letter/Latin Capital + unicode: [0xD4] + id: O_circumflex + ascii: 'Ô' +- + code: 0xE516 + name: O with tilde + category: Letter/Latin Capital + unicode: [0xD5] + id: O_tilde + ascii: 'Õ' +- + code: 0xE517 + name: O with diaeresis + category: Letter/Latin Capital + unicode: [0xD6] + id: O_diaeresis + ascii: 'Ö' +- + code: 0xE518 + name: O with stroke + category: Letter/Latin Capital + unicode: [0xD8] + id: O_stroke + ascii: 'Ø' +- + code: 0xE519 + name: U with grave + category: Letter/Latin Capital + unicode: [0xD9] + id: U_grave + ascii: 'Ù' +- + code: 0xE51A + name: U with acute + category: Letter/Latin Capital + unicode: [0xDA] + id: U_acute + ascii: 'Ú' +- + code: 0xE51B + name: U with circumflex + category: Letter/Latin Capital + unicode: [0xDB] + id: U_circumflex + ascii: 'Û' +- + code: 0xE51C + name: U with diaeresis + category: Letter/Latin Capital + unicode: [0xDC] + id: U_diaeresis + ascii: 'Ü' +- + code: 0xE51D + name: Y with acute + category: Letter/Latin Capital + unicode: [0xDD] + id: Y_acute + ascii: 'Ý' +- + code: 0xE51E + name: Thorn + category: Letter/Latin Capital + unicode: [0xDE] + ascii: 'Þ' + +# TODO +- + code: 0xE520 + name: Y with diaeresis + category: Letter/Latin Capital + unicode: [0x59, 0x308] + id: Y_diaeresis + ascii: 'Ÿ' +- + code: 0xE521 + name: A with breve + category: Letter/Latin Capital + unicode: [0x102] + id: A_breve +- + code: 0xE522 + name: A with cedilla + category: Letter/Latin Capital + unicode: [0x41, 0x327] + id: A_cedilla +- + code: 0xE523 + name: C with acute + category: Letter/Latin Capital + unicode: [0x106] + id: C_acute +- + code: 0xE524 + name: C with circumflex + category: Letter/Latin Capital + unicode: [0x108] + id: C_circumflex +- + code: 0xE525 + name: Oe + category: Ligature/Latin Capital + unicode: [0x152] + ascii: 'Œ' +- + code: 0xE526 + name: D with breve + category: Letter/Latin Capital + unicode: [0x44, 0x306] + id: D_breve +- + code: 0xE527 + name: E with cedilla + category: Letter/Latin Capital + unicode: [0x228] + id: E_cedilla +- + code: 0xE528 + name: E with breve + category: Letter/Latin Capital + unicode: [0x45, 0x306] + id: E_breve +- + code: 0xE529 + name: L with stroke + category: Letter/Latin Capital + unicode: [0x141] + id: L_stroke +- + code: 0xE52A + name: N with acute + category: Letter/Latin Capital + unicode: [0x143] + id: N_acute +- + code: 0xE52B + name: N with breve + category: Letter/Latin Capital + unicode: [0x4E, 0x306] + id: N_breve +- + code: 0xE52C + name: O with double acute + category: Letter/Latin Capital + unicode: [0x4F, 0x30B] + id: O_acute2 +- + code: 0xE52D + name: R with breve + category: Letter/Latin Capital + unicode: [0x52, 0x306] + id: R_breve +- + code: 0xE52E + name: S with acute + category: Letter/Latin Capital + unicode: [0x15A] + id: S_acute +- + code: 0xE52F + name: S with breve + category: Letter/Latin Capital + unicode: [0x53, 0x306] + id: S_breve +- + code: 0xE530 + name: T with breve + category: Letter/Latin Capital + unicode: [0x54, 0x306] + id: T_breve +- + code: 0xE531 + name: O with ring above + category: Letter/Latin Capital + unicode: [0x4F, 0x30A] + id: O_ring +- + code: 0xE532 + name: U with double acute + category: Letter/Latin Capital + unicode: [0x55, 0x30B] + id: U_acute2 +- + code: 0xE533 + name: Z with acute + category: Letter/Latin Capital + unicode: [0x51, 0x301] + id: Z_acute +- + code: 0xE534 + name: Z with dot above + category: Letter/Latin Capital + unicode: [0x5A, 0x307] + id: Z_dot +- + code: 0xE535 + name: Z with breve + category: Letter/Latin Capital + unicode: [0x5A, 0x306] + id: Z_breve + +# TODO +- + code: 0xE540 + name: Alpha + category: Letter/Greek Capital + unicode: [0x391] + ascii: "Α" +- + code: 0xE541 + name: Beta + category: Letter/Greek Capital + unicode: [0x392] + ascii: "Β" +- + code: 0xE542 + name: Gamma + category: Letter/Greek Capital + unicode: [0x393] + ascii: "Γ" +- + code: 0xE543 + name: Delta + category: Letter/Greek Capital + unicode: [0x394] + ascii: "Δ" +- + code: 0xE544 + name: Epsilon + category: Letter/Greek Capital + unicode: [0x395] + ascii: "Ε" +- + code: 0xE545 + name: Zeta + category: Letter/Greek Capital + unicode: [0x396] + ascii: "Ζ" +- + code: 0xE546 + name: Eta + category: Letter/Greek Capital + unicode: [0x397] + ascii: "Η" +- + code: 0xE547 + name: Theta + category: Letter/Greek Capital + unicode: [0x398] + ascii: "Θ" +- + code: 0xE548 + name: Iota + category: Letter/Greek Capital + unicode: [0x399] + ascii: "Ι" +- + code: 0xE549 + name: Kappa + category: Letter/Greek Capital + unicode: [0x39A] + ascii: "Κ" +- + code: 0xE54A + name: Lambda + category: Letter/Greek Capital + unicode: [0x39B] + ascii: "Λ" +- + code: 0xE54B + name: Mu + category: Letter/Greek Capital + unicode: [0x39C] + ascii: "Μ" +- + code: 0xE54C + name: Nu + category: Letter/Greek Capital + unicode: [0x39D] + ascii: "Ν" +- + code: 0xE54D + name: Xi + category: Letter/Greek Capital + unicode: [0x39E] + ascii: "Ξ" +- + code: 0xE54E + name: Omicron + category: Letter/Greek Capital + unicode: [0x39F] + ascii: "Ο" +- + code: 0xE54F + name: Pi + category: Letter/Greek Capital + unicode: [0x3A0] + ascii: "Π" +- + code: 0xE550 + name: Rho + category: Letter/Greek Capital + unicode: [0x3A1] + ascii: "Ρ" +- + code: 0xE551 + name: Sigma + category: Letter/Greek Capital + unicode: [0x3A3] + ascii: "Σ" +- + code: 0xE553 + name: Tau + category: Letter/Greek Capital + unicode: [0x3A4] + ascii: "Τ" +- + code: 0xE554 + name: Upsilon + category: Letter/Greek Capital + unicode: [0x3A5] + ascii: "Υ" +- + code: 0xE555 + name: Phi + category: Letter/Greek Capital + unicode: [0x3A6] + ascii: "Φ" +- + code: 0xE556 + name: Chi + category: Letter/Greek Capital + unicode: [0x3A7] + ascii: "Χ" +- + code: 0xE557 + name: Psi + category: Letter/Greek Capital + unicode: [0x3A8] + ascii: "Ψ" +- + code: 0xE558 + name: Omega + category: Letter/Greek Capital + unicode: [0x3A9] + ascii: "Ω" + +# TODO +- + code: 0xE560 + name: A + category: Letter/Cyrillic Capital + unicode: [0x410] +- + code: 0xE561 + name: Be + category: Letter/Cyrillic Capital + unicode: [0x411] +- + code: 0xE562 + name: Ve + category: Letter/Cyrillic Capital + unicode: [0x412] +- + code: 0xE563 + name: Ghe + category: Letter/Cyrillic Capital + unicode: [0x413] +- + code: 0xE564 + name: De + category: Letter/Cyrillic Capital + unicode: [0x414] +- + code: 0xE565 + name: Ie + category: Letter/Cyrillic Capital + unicode: [0x415] +- + code: 0xE566 + name: Io + category: Letter/Cyrillic Capital + unicode: [0x401] +- + code: 0xE567 + name: Zhe + category: Letter/Cyrillic Capital + unicode: [0x416] +- + code: 0xE568 + name: Ze + category: Letter/Cyrillic Capital + unicode: [0x417] +- + code: 0xE569 + name: I + category: Letter/Cyrillic Capital + unicode: [0x418] +- + code: 0xE56A + name: Short I + category: Letter/Cyrillic Capital + unicode: [0x419] +- + code: 0xE56B + name: Ka + category: Letter/Cyrillic Capital + unicode: [0x41A] +- + code: 0xE56C + name: El + category: Letter/Cyrillic Capital + unicode: [0x41B] +- + code: 0xE56D + name: Em + category: Letter/Cyrillic Capital + unicode: [0x41C] +- + code: 0xE56E + name: En + category: Letter/Cyrillic Capital + unicode: [0x41D] +- + code: 0xE56F + name: O + category: Letter/Cyrillic Capital + unicode: [0x41E] +- + code: 0xE570 + name: Pe + category: Letter/Cyrillic Capital + unicode: [0x41F] +- + code: 0xE571 + name: Er + category: Letter/Cyrillic Capital + unicode: [0x420] +- + code: 0xE572 + name: Es + category: Letter/Cyrillic Capital + unicode: [0x421] +- + code: 0xE573 + name: Te + category: Letter/Cyrillic Capital + unicode: [0x422] +- + code: 0xE574 + name: U + category: Letter/Cyrillic Capital + unicode: [0x423] +- + code: 0xE575 + name: Ef + category: Letter/Cyrillic Capital + unicode: [0x424] +- + code: 0xE576 + name: Ha + category: Letter/Cyrillic Capital + unicode: [0x425] +- + code: 0xE577 + name: Tse + category: Letter/Cyrillic Capital + unicode: [0x426] +- + code: 0xE578 + name: Che + category: Letter/Cyrillic Capital + unicode: [0x427] +- + code: 0xE579 + name: Sha + category: Letter/Cyrillic Capital + unicode: [0x428] +- + code: 0xE57A + name: Shcha + category: Letter/Cyrillic Capital + unicode: [0x429] +- + code: 0xE57B + name: Hard Sign + category: Letter/Cyrillic Capital + unicode: [0x42A] +- + code: 0xE57C + name: Yeru + category: Letter/Cyrillic Capital + unicode: [0x42B] +- + code: 0xE57D + name: Soft Sign + category: Letter/Cyrillic Capital + unicode: [0x42C] +- + code: 0xE57E + name: E + category: Letter/Cyrillic Capital + unicode: [0x42D] + +# TODO +- + code: 0xE580 + name: Yu + category: Letter/Cyrillic Capital + unicode: [0x42E] +- + code: 0xE581 + name: Ya + category: Letter/Cyrillic Capital + unicode: [0x42F] +- + code: 0xE582 + name: Ukrainian Ie + category: Letter/Cyrillic Capital + unicode: [0x404] +- + code: 0xE590 + name: Inverted Exclamation Mark + unicode: [0xA1] + ascii: '¡' +- + code: 0xE591 + name: Inverted Question Mark + unicode: [0xBF] + ascii: '¿' +- + code: 0xE592 + name: Euro + category: Sign + unicode: [0x20AC] + ascii: '€' +- + code: 0xE593 + name: F with hook + category: Letter/Latin Small + unicode: [0x192] + ascii: 'ƒ' +- + code: 0xE594 + name: Horizontal Ellipsis + unicode: [0x2026] + ascii: '…' +- + code: 0xE595 + name: Left Single Quotation Mark + unicode: [0x2018] + ascii: '‘' +- + code: 0xE596 + name: Right Single Quotation Mark + unicode: [0x2019] + ascii: '’' +- + code: 0xE597 + name: Left Double Quotation Mark + unicode: [0x201C] + ascii: '“' +- + code: 0xE598 + name: Right Double Quotation Mark + unicode: [0x201D] + ascii: '”' +- + code: 0xE599 + name: Cent + category: Sign + unicode: [0xA2] + ascii: '¢' +- + code: 0xE59A + name: Pound + category: Sign + unicode: [0xA3] + ascii: '£' +- + code: 0xE59B + name: Currency + category: Sign + unicode: [0xA4] + ascii: '¤t;' +- + code: 0xE59C + name: Yen + category: Sign + unicode: [0xA5] + ascii: '¥' +- + code: 0xE59D + name: Section + category: Sign + unicode: [0xA7] + ascii: '§' +- + code: 0xE59E + name: C + category: Letter/Latin Capital/Squared/Negative + unicode: [0x1F172] +- + code: 0xE59F + name: Continuous Underline + category: Symbol + unicode: [0x2381] +- + code: 0xE5A0 + name: Logical not + category: Sign + unicode: [0xAC] + ascii: '¬' +- + code: 0xE5A1 + name: R + category: Letter/Latin Capital/Squared/Negative + unicode: [0x1F181] +- + code: 0xE5A2 + name: Underline degree + unicode: [0xB0, 0x331] +- + code: 0xE5A3 + name: Left-Pointing Double Angle Quotation Mark + unicode: [0xAB] + ascii: '«' +- + code: 0xE5A4 + name: Right-Pointing Double Angle Quotation Mark + unicode: [0xBB] + ascii: '&lrquo;' +- + code: 0xE5A5 + name: While Small Square + unicode: [0x25AB] +- + code: 0xE5A6 + name: Cross Mark + unicode: [0x274C] +- + code: 0xE5A7 + name: Middle Dot + unicode: [0xB7] + ascii: '·' + +# TODO +- # FIXME: 'e'? + code: 0xE5B0 + name: Euler constant + unicode: [0x65] + id: euler +- + code: 0xE5B1 + name: Probability + unicode: [0x50] +- + code: 0xE5B2 + name: r (GRAPH) +- + code: 0xE5B3 + name: X (GRAPH) +- + code: 0xE5B4 + name: Y (GRAPH) +- + code: 0xE5B5 + name: B + category: Letter/Latin Capital/Squared/Negative + unicode: [0x1F171] +- + code: 0xE5B6 + name: A + category: Letter/Latin Capital/Squared/Negative + unicode: [0x1F170] +- + code: 0xE5B7 + name: L + category: Letter/Latin Capital/Squared/Negative + unicode: [0x1F17B] +- + code: 0xE5B8 + name: Negative Equals + category: Sign + unicode: [0x2338] + ascii: "(neg. =)" +- + code: 0xE5B9 + name: Negative Less-Than + category: Sign + unicode: [0x2343] + ascii: "(neg. <)" +- + code: 0xE5BA + name: Negative Greater-Than + category: Sign + unicode: [0x2344] + ascii: "(neg. >)" +- + code: 0xE5BB + name: Negative Less-Than or Equal-To + category: Sign + ascii: "(neg. <=)" +- + code: 0xE5BC + name: Negative Greater-Than or Equal-To + category: Sign + ascii: "(neg. >=)" +- + code: 0xE5BD + name: Bigger comma +- + code: 0xE5BE + name: More or less +- + code: 0xE5BF + name: Less or more +- + code: 0xE5C0 + name: Zero + category: Superscript + unicode: [0x2070] + ascii: '^0' +- + code: 0xE5C1 + name: One + category: Superscript + unicode: [0xB9] + ascii: '^1' +- + code: 0xE5C2 + name: Two + category: Superscript + unicode: [0xB2] + ascii: '^2' +- + code: 0xE5C3 + name: Three + category: Superscript + unicode: [0xB3] + ascii: '^3' +- + code: 0xE5C4 + name: Four + category: Superscript + unicode: [0x2074] + ascii: '^4' +- + code: 0xE5C5 + name: Five + category: Superscript + unicode: [0x2075] + ascii: '^5' +- + code: 0xE5C6 + name: Six + category: Superscript + unicode: [0x2076] + ascii: '^6' +- + code: 0xE5C7 + name: Seven + category: Superscript + unicode: [0x2077] + ascii: '^7' +- + code: 0xE5C8 + name: Eight + category: Superscript + unicode: [0x2078] + ascii: '^8' +- + code: 0xE5C9 + name: Nine + category: Superscript + unicode: [0x2079] + ascii: '^9' +- + code: 0xE5CA + name: Minus One + category: Superscript + unicode: [0x207B, 0xB9] + ascii: '^-1' +- + code: 0xE5CB + name: Plus + category: Superscript/Sign + unicode: [0x207A] + ascii: '^+' +- + code: 0xE5CC + name: Minus + category: Superscript/Sign + unicode: [0x207B] + ascii: '^-' +- + code: 0xE5CD + name: Zero + category: Subscript/Small + ascii: '_(small 0)' +- + code: 0xE5CE + name: One + category: Subscript/Small + ascii: '_(small 1)' +- + code: 0xE5CF + name: Two + category: Subscript/Small + ascii: '_(small 2)' +- + code: 0xE5D0 + name: Zero + category: Subscript + unicode: [0x2080] + ascii: '_0' +- + code: 0xE5D1 + name: One + category: Subscript + unicode: [0x2081] + ascii: '_1' +- + code: 0xE5D2 + name: Two + category: Subscript + unicode: [0x2082] + ascii: '_2' +- + code: 0xE5D3 + name: Three + category: Subscript + unicode: [0x2083] + ascii: '_3' +- + code: 0xE5D4 + name: Four + category: Subscript + unicode: [0x2084] + ascii: '_4' +- + code: 0xE5D5 + name: Five + category: Subscript + unicode: [0x2085] + ascii: '_5' +- + code: 0xE5D6 + name: Six + category: Subscript + unicode: [0x2086] + ascii: '_6' +- + code: 0xE5D7 + name: Seven + category: Subscript + unicode: [0x2087] + ascii: '_7' +- + code: 0xE5D8 + name: Eight + category: Subscript + unicode: [0x2088] + ascii: '_8' +- + code: 0xE5D9 + name: Nine + category: Subscript + unicode: [0x2089] + ascii: '_9' +- + code: 0xE5DA + name: Minus One + category: Subscript + unicode: [0x208B, 0x2081] + ascii: '_-1' +- + code: 0xE5DB + name: Plus + category: Subscript/Sign + unicode: [0x208A] + ascii: '_+' +- + code: 0xE5DC + name: Minus + category: Subscript/Sign + unicode: [0x208B] + ascii: '_-' +- + code: 0xE5DD + name: Little star +- + code: 0xE5DE + name: Little n +- + code: 0xE5DF + name: Special Superscript 3 Sign + +# TODO: finish here +#******************************************************************************# +# 0xE6 characters # +#******************************************************************************# +# TODO +- + code: 0xE601 + name: A with grave + category: Letter/Latin Small + unicode: [0xE0] + id: a_grave + ascii: 'à' +- + code: 0xE602 + name: A with acute + category: Letter/Latin Small + unicode: [0xE1] + id: a_acute + ascii: 'á' +- + code: 0xE603 + name: A with circumflex + category: Letter/Latin Small + unicode: [0xE2] + id: a_circumflex + ascii: 'â' +- + code: 0xE604 + name: A with tilde + category: Letter/Latin Small + unicode: [0xE3] + id: a_tilde + ascii: 'ã' +- + code: 0xE605 + name: A with diaeresis + category: Letter/Latin Small + unicode: [0xE4] + id: a_diaeresis + ascii: 'ä' +- + code: 0xE606 + name: A with ring above + category: Letter/Latin Small + unicode: [0xE5] + id: a_ring + ascii: 'å' +- + code: 0xE607 + name: A le + category: Ligature/Latin Small + unicode: [0xE6] + id: ae + ascii: 'æ' +- + code: 0xE608 + name: C with cedilla + category: Letter/Latin Small + unicode: [0xE7] + id: c_cedilla + ascii: 'ç' +- + code: 0xE609 + name: E with grave + category: Letter/Latin Small + unicode: [0xE8] + id: e_grave + ascii: 'è' +- + code: 0xE60A + name: E with acute + category: Letter/Latin Small + unicode: [0xE9] + id: e_acute + ascii: 'é' +- + code: 0xE60B + name: E with circumflex + category: Letter/Latin Small + unicode: [0xEA] + id: e_circumflex + ascii: 'ê' +- + code: 0xE60C + name: E with diaeresis + category: Letter/Latin Small + unicode: [0xEB] + id: e_diaeresis + ascii: 'ë' +- + code: 0xE60D + name: I with grave + category: Letter/Latin Small + unicode: [0xEC] + id: i_grave + ascii: 'ì' +- + code: 0xE60E + name: I with acute + category: Letter/Latin Small + unicode: [0xED] + id: i_acute + ascii: 'í' +- + code: 0xE60F + name: I with circumflex + category: Letter/Latin Small + unicode: [0xEE] + id: i_circumflex + ascii: 'î' +- + code: 0xE610 + name: I with diaeresis + category: Letter/Latin Small + unicode: [0xEF] + id: i_diaeresis + ascii: 'ï' +- + code: 0xE611 + name: Eth + category: Letter/Latin Small + unicode: [0xF0] + id: eth + ascii: 'ð' +- + code: 0xE612 + name: N with tilde + category: Letter/Latin Small + unicode: [0xF1] + id: n_tilde + ascii: 'ñ' +- + code: 0xE613 + name: O with grave + category: Letter/Latin Small + unicode: [0xF2] + id: o_grave + ascii: 'ò' +- + code: 0xE614 + name: O with acute + category: Letter/Latin Small + unicode: [0xF3] + id: o_acute + ascii: 'ó' +- + code: 0xE615 + name: O with circumflex + category: Letter/Latin Small + unicode: [0xF4] + id: o_circumflex + ascii: 'ô' +- + code: 0xE616 + name: O with tilde + category: Letter/Latin Small + unicode: [0xF5] + id: o_tilde + ascii: 'õ' +- + code: 0xE617 + name: O with diaeresis + category: Letter/Latin Small + unicode: [0xF6] + id: o_diaeresis + ascii: 'ö' +- + code: 0xE618 + name: O with stroke + category: Letter/Latin Small + unicode: [0xF7] + id: o_stroke + ascii: 'ø' +- + code: 0xE619 + name: U with grave + category: Letter/Latin Small + unicode: [0xF8] + id: u_grave + ascii: 'ù' +- + code: 0xE61A + name: U with acute + category: Letter/Latin Small + unicode: [0xF9] + id: u_acute + ascii: 'ú' +- + code: 0xE61B + name: U with circumflex + category: Letter/Latin Small + unicode: [0xFA] + id: u_circumflex + ascii: 'û' +- + code: 0xE61C + name: U with diaeresis + category: Letter/Latin Small + unicode: [0xFB] + id: u_diaeresis + ascii: 'ü' +- + code: 0xE61D + name: Y with acute + category: Letter/Latin Small + unicode: [0xFC] + id: y_acute + ascii: 'ý' +- + code: 0xE61E + name: Thorn + category: Letter/Latin Small + unicode: [0xFD] + id: thorn + ascii: 'þ' +- + code: 0xE61F + name: Sharp S + category: Letter/Latin Small + unicode: [0xDF] + id: sharp_s + ascii: 'š' +- + code: 0xE620 + name: Y with diaeresis + category: Letter/Latin Small + unicode: [0x79, 0x308] + id: y_diaeresis + ascii: 'ÿ' +- + code: 0xE621 + name: A with breve + category: Letter/Latin Small + unicode: [0x103] + id: a_breve +- + code: 0xE622 + name: A with cedilla + category: Letter/Latin Small + unicode: [0x61, 0x327] + id: a_cedilla +- + code: 0xE623 + name: C with acute + category: Letter/Latin Small + unicode: [0x107] + id: c_acute +- + code: 0xE624 + name: C with circumflex + category: Letter/Latin Small + unicode: [0x109] + id: c_circumflex +- + code: 0xE625 + name: Oe + category: Ligature/Latin Small + unicode: [0x153] + id: oe +- + code: 0xE626 + name: D with breve + category: Letter/Latin Small + unicode: [0x64, 0x306] + id: d_breve +- + code: 0xE627 + name: E with cedilla + category: Letter/Latin Small + unicode: [0x229] + id: e_cedilla +- + code: 0xE628 + name: E with breve + category: Letter/Latin Small + unicode: [0x65, 0x306] + id: e_breve +- + code: 0xE629 + name: L with stroke + category: Letter/Latin Small + unicode: [0x142] + id: l_stroke +- + code: 0xE62A + name: N with acute + category: Letter/Latin Small + unicode: [0x144] + id: n_acute +- + code: 0xE62B + name: N with breve + category: Letter/Latin Small + unicode: [0x6E, 0x306] + id: n_breve +- + code: 0xE62C + name: O with double acute + category: Letter/Latin Small + unicode: [0x6F, 0x30B] + id: o_acute2 +- + code: 0xE62D + name: R with breve + category: Letter/Latin Small + unicode: [0x72, 0x306] + id: r_breve +- + code: 0xE62E + name: S with acute + category: Letter/Latin Small + unicode: [0x15B] + id: s_acute +- + code: 0xE62F + name: S with breve + category: Letter/Latin Small + unicode: [0x73, 0x306] + id: s_breve +- + code: 0xE630 + name: T with breve + category: Letter/Latin Small + unicode: [0x74, 0x306] + id: t_breve +- + code: 0xE631 + name: O with ring above + category: Letter/Latin Small + unicode: [0x6F, 0x30A] + id: o_ring +- + code: 0xE632 + name: U with double acute + category: Letter/Latin Small + unicode: [0x75, 0x30B] + id: u_acute2 +- + code: 0xE633 + name: Z with acute + category: Letter/Latin Small + unicode: [0x7A, 0x301] + id: z_acute +- + code: 0xE634 + name: Z with dot above + category: Letter/Latin Small + unicode: [0x7A, 0x307] + id: z_dot +- + code: 0xE635 + name: Z with breve + category: Letter/Latin Small + unicode: [0x7A, 0x306] + id: z_breve + +# TODO +- + code: 0xE640 + name: Alpha + category: Letter/Greek Small + unicode: [0x251] + ascii: 'α' +- + code: 0xE641 + name: Beta + category: Letter/Greek Small + unicode: [0x3B2] + ascii: 'β' +- + code: 0xE642 + name: Gamma + category: Letter/Greek Small + unicode: [0x3B3] + ascii: 'γ' +- + code: 0xE643 + name: Delta + category: Letter/Greek Small + unicode: [0x3B4] + ascii: 'δ' +- + code: 0xE644 + name: Epsilon + category: Letter/Greek Small + unicode: [0x3B5] + ascii: 'ε' +- + code: 0xE645 + name: Zeta + category: Letter/Greek Small + unicode: [0x3B6] + ascii: 'ζ' +- + code: 0xE646 + name: Eta + category: Letter/Greek Small + unicode: [0x3B7] + ascii: 'η' +- + code: 0xE647 + name: Theta + category: Letter/Greek Small + unicode: [0x3B8] + ascii: 'θ' +- + code: 0xE648 + name: Iota + category: Letter/Greek Small + unicode: [0x3B9] + ascii: 'ι' +- + code: 0xE649 + name: Kappa + category: Letter/Greek Small + unicode: [0x3BA] + ascii: 'κ' +- + code: 0xE64A + name: Lambda + category: Letter/Greek Small + unicode: [0x3BB] + ascii: 'λ' +- + code: 0xE64B + name: Mu + category: Letter/Greek Small + unicode: [0x3BC] + ascii: 'μ' +- + code: 0xE64C + name: Nu + category: Letter/Greek Small + unicode: [0x3BD] + ascii: 'ν' +- + code: 0xE64D + name: Xi + category: Letter/Greek Small + unicode: [0x3BE] + ascii: 'ξ' +- + code: 0xE64E + name: Omicron + category: Letter/Greek Small + unicode: [0x3BF] + ascii: 'ο' +- + code: 0xE64F + name: Pi + category: Letter/Greek Small +- + code: 0xE650 + name: Pi + category: Letter/Greek Small + unicode: [0x3C0] + ascii: 'π' +- + code: 0xE651 + name: Rho + category: Letter/Greek Small + unicode: [0x3C1] + ascii: 'ρ' +- + code: 0xE652 + name: Sigma + category: Letter/Greek Small + unicode: [0x3C2] + ascii: 'σ' +- + code: 0xE653 + name: Tau + category: Letter/Greek Small + unicode: [0x3C4] + ascii: 'τ' +- + code: 0xE654 + name: Upsilon + category: Letter/Greek Small + unicode: [0x3C5] + ascii: 'υ' +- + code: 0xE655 + name: Phi + category: Letter/Greek Small + unicode: [0x3C6] + ascii: 'φ' +- + code: 0xE656 + name: Chi + category: Letter/Greek Small + unicode: [0x3C7] + ascii: 'χ' +- + code: 0xE657 + name: Psi + category: Letter/Greek Small + unicode: [0x3C8] + ascii: 'ψ' +- + code: 0xE658 + name: Omega + category: Letter/Greek Small + unicode: [0x3C9] + ascii: 'ω' + +# TODO +- + code: 0xE660 + name: A + category: Letter/Cyrillic Small + unicode: [0x430] +- + code: 0xE661 + name: Be + category: Letter/Cyrillic Small + unicode: [0x431] +- + code: 0xE662 + name: Ve + category: Letter/Cyrillic Small + unicode: [0x432] +- + code: 0xE663 + name: Ghe + category: Letter/Cyrillic Small + unicode: [0x433] +- + code: 0xE664 + name: De + category: Letter/Cyrillic Small + unicode: [0x434] +- + code: 0xE665 + name: Ie + category: Letter/Cyrillic Small + unicode: [0x435] +- + code: 0xE666 + name: Io + category: Letter/Cyrillic Small + unicode: [0x451] +- + code: 0xE667 + name: Zhe + category: Letter/Cyrillic Small + unicode: [0x436] +- + code: 0xE668 + name: Ze + category: Letter/Cyrillic Small + unicode: [0x437] +- + code: 0xE669 + name: I + category: Letter/Cyrillic Small + unicode: [0x438] +- + code: 0xE66A + name: Short I + category: Letter/Cyrillic Small + unicode: [0x439] +- + code: 0xE66B + name: Ka + category: Letter/Cyrillic Small + unicode: [0x43A] +- + code: 0xE66C + name: El + category: Letter/Cyrillic Small + unicode: [0x43B] +- + code: 0xE66D + name: Em + category: Letter/Cyrillic Small + unicode: [0x43C] +- + code: 0xE66E + name: En + category: Letter/Cyrillic Small + unicode: [0x43D] +- + code: 0xE66F + name: O + category: Letter/Cyrillic Small + unicode: [0x43E] +- + code: 0xE670 + name: Pe + category: Letter/Cyrillic Small + unicode: [0x43F] +- + code: 0xE671 + name: Er + category: Letter/Cyrillic Small + unicode: [0x440] +- + code: 0xE672 + name: Es + category: Letter/Cyrillic Small + unicode: [0x441] +- + code: 0xE673 + name: Te + category: Letter/Cyrillic Small + unicode: [0x442] +- + code: 0xE674 + name: U + category: Letter/Cyrillic Small + unicode: [0x443] +- + code: 0xE675 + name: Ef + category: Letter/Cyrillic Small + unicode: [0x444] +- + code: 0xE676 + name: Ha + category: Letter/Cyrillic Small + unicode: [0x445] +- + code: 0xE677 + name: Tse + category: Letter/Cyrillic Small + unicode: [0x446] +- + code: 0xE678 + name: Che + category: Letter/Cyrillic Small + unicode: [0x447] +- + code: 0xE679 + name: Sha + category: Letter/Cyrillic Small + unicode: [0x448] +- + code: 0xE67A + name: Shcha + category: Letter/Cyrillic Small + unicode: [0x449] +- + code: 0xE67B + name: Hard Sign + category: Letter/Cyrillic Small + unicode: [0x44A] +- + code: 0xE67C + name: Yeru + category: Letter/Cyrillic Small + unicode: [0x44B] +- + code: 0xE67D + name: Soft Sign + category: Letter/Cyrillic Small + unicode: [0x44C] +- + code: 0xE67E + name: E + category: Letter/Cyrillic Small + unicode: [0x44D] + +# TODO +- + code: 0xE680 + name: Yu + category: Letter/Cyrillic Small + unicode: [0x44E] +- + code: 0xE681 + name: Ya + category: Letter/Cyrillic Small + unicode: [0x44F] +- + code: 0xE682 + name: Ukrainian Ie + category: Letter/Cyrillic Small + unicode: [0x454] +- + code: 0xE690 + name: Leftwards Arrow + unicode: [0x2190] + ascii: '<-' +- + code: 0xE691 + name: Rightwards Arrow + unicode: [0x2192] + ascii: '->' +- + code: 0xE692 + name: Upwards Arrow + unicode: [0x2191] + ascii: (up-arrow) +- + code: 0xE693 + name: Downwards Arrow + unicode: [0x2193] + ascii: (down-arrow) +- + code: 0xE694 + name: Left Right Arrow + unicode: [0x2194] + ascii: '<->' +- + code: 0xE695 + name: Up Down Arrow + unicode: [0x2195] + ascii: (up-down-arrow) +- + code: 0xE696 + name: North West Arrow + unicode: [0x2196] + ascii: (nw-arrow) +- + code: 0xE697 + name: North East Arrow + unicode: [0x2197] + ascii: (ne-arrow) +- + code: 0xE698 + name: South East Arrow + unicode: [0x2198] + ascii: (se-arrow) +- + code: 0xE699 + name: South West Arrow + unicode: [0x2199] + ascii: (sw-arrow) +- + code: 0xE69A + name: Black Left-Pointing Triangle + unicode: [0x25C0] + ascii: (<) +- + code: 0xE69B + name: Black Right-Pointing Triangle + unicode: [0x25B6] + ascii: (>) +- + code: 0xE69C + name: Black Up-Pointing Triangle + unicode: [0x25B2] + ascii: (^) +- + code: 0xE69D + name: Black Down-Pointing Triangle + unicode: [0x25B] + ascii: (v) +- + code: 0xE69E + name: Rightwards Triangle Arrowhead + unicode: [0x1F892] +- + code: 0xE69F + name: White Right-Pointing Small Triangle + unicode: [0x25B7] +- + code: 0xE6A0 + name: Division Times + unicode: [0x22C7] +- + code: 0xE6A1 + name: Left Black Lenticular Bracket + unicode: [0x3010] +- + code: 0xE6A2 + name: Right Black Lenticular Bracket + unicode: [0x3011] +- + code: 0xE6A3 + name: White Circle + unicode: [0x25CB] +- + code: 0xE6A4 + name: Black Circle + unicode: [0x25CF] +- + code: 0xE6A5 + name: White Square + unicode: [0x25A1] +- + code: 0xE6A6 + name: Black Square + unicode: [0x25A0] +- + code: 0xE6A7 + name: White Diamond Suit + unicode: [0x2662] +- + code: 0xE6A8 + name: Black Diamond Suit + unicode: [0x2666] +- + code: 0xE6A9 + name: Squared Times + unicode: [0x22A0] +- + code: 0xE6AA + name: Bullet Operator + unicode: [0x2219] +#- +# code: 0xE6AB +# name: Short Left Tack +# unicode: [0x2ADE] +#- +# code: 0xE6AC +# name: White Up-Pointing Small Triangle +# unicode: [0x25B5] +#- +# code: 0xE6AD +# name: White Down-Pointing Small Triangle +# unicode: [0x25BF] +#- +# code: 0xE6AE +# name: White Right-Pointing Triangle +# unicode: [0x25B7] +#- +# code: 0xE6AF +# name: White Left-Pointing Triangle +# unicode: [0x25C1] +- + code: 0xE6B0 + name: Approximately Equal To or the Image Of + unicode: [0x2252] +- + code: 0xE6B1 + name: Almost Equal To + unicode: [0x2248] + ascii: '≈' +- + code: 0xE6B2 + name: Identical To + unicode: [0x2261] + ascii: '≡' +- + code: 0xE6B3 + name: Not Identical To + unicode: [0x2262] +- + code: 0xE6B4 + name: Approximately Equal To + unicode: [0x2245] + ascii: '≅' +- + code: 0xE6B5 + name: Reversed Tilde + unicode: [0x223D] +- + code: 0xE6B6 + name: Proportional To + unicode: [0x221D] + ascii: '∝' +- + code: 0xE6B7 + name: Double Integral + unicode: [0x222C] +- + code: 0xE6B8 + name: Contour Integral + unicode: [0x222E] +- + code: 0xE6B9 + name: Partial Differential + unicode: [0x2202] + ascii: '∂' + +# TODO +- + code: 0xE6BB + name: Integral + unicode: [0x222B] + ascii: '∫' +- + code: 0xE6BC + name: Measured Angle + unicode: [0x2221] +- + code: 0xE6BD + name: Element Of + unicode: [0x2208] + ascii: '∈' +- + code: 0xE6BE + name: Contains As Member + unicode: [0x220B] + ascii: '∋' +- + code: 0xE6BF + name: Subset of or Equal To + unicode: [0x2286] + ascii: '⊆' +- + code: 0xE6C0 + name: Superset of or Equal To + unicode: [0x2287] + ascii: '⊇' +- + code: 0xE6C1 + name: Subset Of + unicode: [0x2282] + ascii: '⊂' +- + code: 0xE6C2 + name: Superset Of + unicode: [0x2283] + ascii: '⊃' +- + code: 0xE6C3 + name: N-Ary Union + unicode: [0x22C3] +- + code: 0xE6C4 + name: N-Ary Intersection + unicode: [0x22C2] +- + code: 0xE6C5 + name: Not an Element Of + unicode: [0x2209] + ascii: '∉' +- + code: 0xE6C6 + name: Does Not Contain As Member + unicode: [0x220C] +- + code: 0xE6C7 + name: Neither a Subset of nor Equal To + unicode: [0x2288] +- + code: 0xE6C8 + name: Neither a Superset of nor Equal To + unicode: [0x2289] +- + code: 0xE6C9 + name: Not a Subset Of + unicode: [0x2284] + ascii: '⊄' +- + code: 0xE6CA + name: Not a Superset Of + unicode: [0x2285] +- + code: 0xE6CB + name: Empty Set + unicode: [0x2205] + ascii: '∅' +- + code: 0xE6CC + name: There Exists + unicode: [0x2203] + ascii: '&exists;' +- + code: 0xE6CD + name: Right Angle + unicode: [0x221F] +- + code: 0xE6CE + name: Logical Or + unicode: [0x2228] + ascii: '∨' +- + code: 0xE6CF + name: Logical And + unicode: [0x2227] + ascii: '∧' +- + code: 0xE6D0 + name: For All + unicode: [0x2200] + ascii: '∀' +- + code: 0xE6D1 + name: Circled Plus + unicode: [0x2295] + ascii: '⊕' +- + code: 0xE6D2 + name: Circled Minus + unicode: [0x2296] +- + code: 0xE6D3 + name: Circled Times + unicode: [0x2297] + ascii: '⊗' +- + code: 0xE6D4 + name: Circled Division Slash + unicode: [0x2298] +- + code: 0xE6D5 + name: Up Tack + unicode: [0x27C2] + ascii: '⊥' +- + code: 0xE6D6 + name: Between + unicode: [0x226C] +- + code: 0xE6D7 + name: Parallel To + unicode: [0x2225] +- + code: 0xE6D8 + name: Not Parallel To + unicode: [0x2226] +- + code: 0xE6D9 + name: Double Solidus Operator + unicode: [0x2AFD] +- + code: 0xE6DA + name: White Down-Pointing Triangle + unicode: [0x25BD] +- + code: 0xE6DB + name: Therefore + unicode: [0x2234] + ascii: '∴' +- + code: 0xE6DC + name: Because + unicode: [0x2235] +- + code: 0xE6DD + name: Prime + unicode: [0x2032] + ascii: '′' +- + code: 0xE6DE + name: Double Prime + unicode: [0x2033] + ascii: '″' + +# TODO: continue here +#******************************************************************************# +# 0xE7 characters # +#******************************************************************************# +# TODO +- + code: 0xE701 + name: Nanosecond + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6E, 0x73, 0x5D] +- + code: 0xE702 + name: Microsecond + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0xE64B, 0x73, 0x5D] +- + code: 0xE703 + name: Millisecond + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x73, 0x5D] +- + code: 0xE704 + name: Second + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x73, 0x5D] +- + code: 0xE705 + name: Minute + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x69, 0x6E, 0x5D] +- + code: 0xE706 + name: Hour + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x68, 0x5D] +- + code: 0xE707 + name: Day + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x64, 0x61, 0x79, 0x5D] +- + code: 0xE708 + name: Week + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x77, 0x65, 0x65, 0x6B, 0x5D] +- + code: 0xE709 + name: Year + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x79, 0x72, 0x5D] +- + code: 0xE70A + name: Sideral year + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x73, 0x2D, 0x79, 0x72, 0x5D] +- + code: 0xE70B + name: tropical year + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x2D, 0x79, 0x72, 0x5D] +- + code: 0xE70C + name: Gradian + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x8C, 0x43, 0x5D] +- + code: 0xE70D + name: Kelvin Degree + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x4B, 0x5D] +- + code: 0xE70E + name: Fahrenheit Degree + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x8C, 0x46, 0x5D] +- + code: 0xE70F + name: Rankine Degree + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x8C, 0x52, 0x5D] +- + code: 0xE710 + name: Unified Atomic Mass + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x75, 0x5D] +- + code: 0xE711 + name: Gram + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x67, 0x5D] +- + code: 0xE712 + name: Kilogram + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x67, 0x5D] +- + code: 0xE713 + name: Pound + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6C, 0x62, 0x5D] +- + code: 0xE714 + name: Ounce + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6F, 0x7A, 0x5D] +- + code: 0xE715 + name: Slug + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x73, 0x6C, 0x75, 0x67, 0x5D] +- + code: 0xE716 + name: Short Ton + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x6F, 0x6E, 0x28, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x29, 0x5D] +- + code: 0xE717 + name: Long Ton + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x6F, 0x6E, 0x28, 0x6C, 0x6F, 0x6E, 0x67, 0x29, 0x5D] + +# TODO +- + code: 0xE719 + name: Measurement Ton + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x74, 0x6F, 0x6E, 0x5D] +- + code: 0xE71A + name: Atmosphere Litre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6C, 0x2D, 0x61, 0x74, 0x6D, 0x5D] +- + code: 0xE71B + name: Foot-pound + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0xE6AA, 0x6C, 0x62, 0x66, 0x5D] +- + code: 0xE71C + name: International Steam Table Calorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x61, 0x6C, 0xE749, 0xE754, 0x5D] +- + code: 0xE71D + name: Thermochemical calorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x61, 0x6C, 0xE774, 0xE768, 0x5D] +- + code: 0xE71E + name: British Thermal + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x42, 0x74, 0x75, 0x5D] +- + code: 0xE71F + name: Kilowatt per Hour + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x57, 0xE6AA, 0x68, 0x5D] +- + code: 0xE720 + name: Kilogram-force meter + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x67, 0x66, 0xE6AA, 0x6D, 0x5D] +- + code: 0xE721 + name: Pascal + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x50, 0x61, 0x5D] +- + code: 0xE722 + name: Kilopascal + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x50, 0x61, 0x5D] +- + code: 0xE723 + name: Bar + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x62, 0x61, 0x72, 0x5D] +- + code: 0xE724 + name: Millimeter of Water + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x6D, 0x48, 0xE5D2, 0x4F, 0x5D] +- + code: 0xE725 + name: Millimeter of mercury + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x6D, 0x48, 0x67, 0x5D] +- + code: 0xE726 + name: Inch of Water + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x69, 0x6E, 0x48, 0xE5D2, 0x4F, 0x5D] +- + code: 0xE727 + name: Inch of Mercury + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x69, 0x6E, 0x48, 0x67, 0x5D] +- + code: 0xE728 + name: Pound per Square Inch + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6C, 0x62, 0x66, 0x2F, 0x69, 0x6E, 0xE5C2, 0x5D] +- + code: 0xE729 + name: Kilogram-force per Square Centimetre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x67, 0x66, 0x2F, 0x63, 0x6D, 0xE5C2, 0x5D] +- + code: 0xE72A + name: Atmosphere + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x61, 0x74, 0x6D, 0x5D] +- + code: 0xE72B + name: Dyne + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x64, 0x79, 0x6E, 0x65, 0x5D] +- + code: 0xE72C + name: Newton + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x4E, 0x5D] +- + code: 0xE72D + name: Kilogram-force + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x67, 0x66, 0x5D] +- + code: 0xE72E + name: Pound + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6C, 0x62, 0x66, 0x5D] +- + code: 0xE72F + name: Ton-force + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x6F, 0x6E, 0x66, 0x5D] + +# TODO +- + code: 0xE741 + name: A + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_A + ascii: (mini A) +- + code: 0xE742 + name: B + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_B + ascii: (mini B) +- + code: 0xE743 + name: C + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_C + ascii: (mini C) +- + code: 0xE744 + name: D + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_D + ascii: (mini D) +- + code: 0xE745 + name: E + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_E + ascii: (mini E) +- + code: 0xE746 + name: F + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_F + ascii: (mini F) +- + code: 0xE747 + name: G + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_G + ascii: (mini G) +- + code: 0xE748 + name: H + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_H + ascii: (mini H) +- + code: 0xE749 + name: I + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_I + ascii: (mini I) +- + code: 0xE74A + name: J + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_J + ascii: (mini J) +- + code: 0xE74B + name: K + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_K + ascii: (mini K) +- + code: 0xE74C + name: L + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_L + ascii: (mini L) +- + code: 0xE74D + name: M + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_M + ascii: (mini M) +- + code: 0xE74E + name: N + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_N + ascii: (mini N) +- + code: 0xE74F + name: O + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_O + ascii: (mini O) +- + code: 0xE750 + name: P + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_P + ascii: (mini P) +- + code: 0xE751 + name: Q + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_Q + ascii: (mini Q) +- + code: 0xE752 + name: R + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_R + ascii: (mini R) +- + code: 0xE753 + name: S + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_S + ascii: (mini S) +- + code: 0xE754 + name: T + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_T + ascii: (mini T) +- + code: 0xE755 + name: U + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_U + ascii: (mini U) +- + code: 0xE756 + name: V + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_V + ascii: (mini V) +- + code: 0xE757 + name: W + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_W + ascii: (mini W) +- + code: 0xE758 + name: X + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_X + ascii: (mini X) +- + code: 0xE759 + name: Y + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_Y + ascii: (mini Y) +- + code: 0xE75A + name: Z + category: Letter/Latin Capital/Mini + set: CASIOWIN_2.00 + id: mini_Z + ascii: (mini Z) +#- +# code: 0xE75B +# name: Mini Left Square Bracket +# set: CASIOWIN_2.00 +# id: mini_lbrac +#- +# code: 0xE75C +# name: Mini Reverse Solidus +# set: CASIOWIN_2.00 +# id: mini_revslash +#- +# code: 0xE75D +# name: Mini Right Square Bracket +# set: CASIOWIN_2.00 +# id: mini_rbrac +#- +# code: 0xE75E +# name: Mini Circumflex Accent +# set: CASIOWIN_2.00 +# id: mini_circum +#- +# code: 0xE75F +# name: Mini Low Line +# set: CASIOWIN_2.00 +# id: mini_underscore +#- +# code: 0xE760 +# name: Mini Grave Accent +# set: CASIOWIN_2.00 +# id: mini_grave +- + code: 0xE761 + name: A + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_a + ascii: (mini a) +- + code: 0xE762 + name: B + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_b + ascii: (mini b) +- + code: 0xE763 + name: C + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_c + ascii: (mini c) +- + code: 0xE764 + name: D + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_d + ascii: (mini d) +- + code: 0xE765 + name: E + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_e + ascii: (mini e) +- + code: 0xE766 + name: F + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_f + ascii: (mini f) +- + code: 0xE767 + name: G + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_g + ascii: (mini g) +- + code: 0xE768 + name: H + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_h + ascii: (mini h) +- + code: 0xE769 + name: I + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_i + ascii: (mini i) +- + code: 0xE76A + name: J + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_j + ascii: (mini j) +- + code: 0xE76B + name: K + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_k + ascii: (mini k) +- + code: 0xE76C + name: L + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_l + ascii: (mini l) +- + code: 0xE76D + name: M + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_m + ascii: (mini m) +- + code: 0xE76E + name: N + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_n + ascii: (mini n) +- + code: 0xE76F + name: O + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_o + ascii: (mini o) +- + code: 0xE770 + name: P + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_p + ascii: (mini p) +- + code: 0xE771 + name: Q + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_q + ascii: (mini q) +- + code: 0xE772 + name: R + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_r + ascii: (mini r) +- + code: 0xE773 + name: S + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_s + ascii: (mini s) +- + code: 0xE774 + name: T + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_t + ascii: (mini t) +- + code: 0xE775 + name: U + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_u + ascii: (mini u) +- + code: 0xE776 + name: V + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_v + ascii: (mini v) +- + code: 0xE777 + name: W + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_w + ascii: (mini w) +- + code: 0xE778 + name: X + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_x + ascii: (mini x) +- + code: 0xE779 + name: Y + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_y + ascii: (mini y) +- + code: 0xE77A + name: Z + category: Letter/Latin Small/Mini + set: CASIOWIN_2.00 + id: mini_z + ascii: (mini z) + +# TODO +- + code: 0xE7B0 + name: Femtometre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x6D, 0x5D] + +# TODO +- + code: 0xE7B2 + name: Millimetre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x6D, 0x5D] +- + code: 0xE7B3 + name: Centimetre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x6D, 0x5D] +- + code: 0xE7B4 + name: Meter + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x5D] +- + code: 0xE7B5 + name: Kilometre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x6D, 0x5D] +- + code: 0xE7B6 + name: Thousandth of an Inch + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x4D, 0x69, 0x6C, 0x5D] +- + code: 0xE7B7 + name: Inch + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x69, 0x6E, 0x5D] +- + code: 0xE7B8 + name: Foot + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0x5D] +- + code: 0xE7B9 + name: Yard + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x79, 0x64, 0x5D] +- + code: 0xE7BA + name: Fathom + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x61, 0x74, 0x68, 0x5D] +- + code: 0xE7BB + name: Rutherford + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x72, 0x64, 0x5D] + +# TODO +- + code: 0xE7BD + name: Mile + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x69, 0x6C, 0x65, 0x5D] + +# TODO +- + code: 0xE7BF + name: Nautical Mile + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6E, 0x20, 0x6D, 0x69, 0x6C, 0x65, 0x5D] +- + code: 0xE7C0 + name: Acre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x61, 0x63, 0x72, 0x65, 0x5D] + +# TODO +- + code: 0xE7C2 + name: Hectare + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x68, 0x61, 0x5D] +- + code: 0xE7C3 + name: Square Metre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x6D, 0xE5C2, 0x5D] +- + code: 0xE7C4 + name: Square Metre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0xE5C2, 0x5D] +- + code: 0xE7C5 + name: Square Kilometre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x6D, 0xE5C2, 0x5D] + +# TODO +- + code: 0xE7C7 + name: Square Inch + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x69, 0x6E, 0xE5C2, 0x5D] +- + code: 0xE7C8 + name: Square Foot + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0xE5C2, 0x5D] +- + code: 0xE7C9 + name: Square Yard + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x79, 0x64, 0xE5C2, 0x5D] +- + code: 0xE7CA + name: Square Mile + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x69, 0x6C, 0x65, 0xE5C2, 0x5D] +- + code: 0xE7CB + name: Meter per Second + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x2F, 0x73, 0x5D] +- + code: 0xE7CC + name: Kilometer per Hour + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x6D, 0x2F, 0x68, 0x5D] +- + code: 0xE7CD + name: Foot per Second + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0x2F, 0x73, 0x5D] +- + code: 0xE7CE + name: Mile per Hour + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x69, 0x6C, 0x65, 0x2F, 0x68, 0x5D] +- + code: 0xE7CF + name: Knot + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x6E, 0x6F, 0x74, 0x5D] +- + code: 0xE7D0 + name: Millilitre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x4C, 0x5D] +- + code: 0xE7D1 + name: Litre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x4C, 0x5D] +- + code: 0xE7D2 + name: Teaspoon + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x73, 0x70, 0x5D] +- + code: 0xE7D3 + name: Cube Centimetre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x6D, 0xE5C3, 0x5D] +- + code: 0xE7D4 + name: Cube metre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0xE5C3, 0x5D] +- + code: 0xE7D5 + name: Tablespoon + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x74, 0x62, 0x73, 0x70, 0x5D] + +# TODO +- + code: 0xE7D7 + name: Cube Inch + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x69, 0x6E, 0xE5C3, 0x5D] +- + code: 0xE7D8 + name: Cube Foot + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0xE5C3, 0x5D] +- + code: 0xE7D9 + name: UK Fluid Ounce + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x6C, 0x5F, 0x6F, 0x7A, 0x28, 0x55, 0x4B, 0x29, 0x5D] +- + code: 0xE7DA + name: US Fluid Ounce + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x6C, 0x5F, 0x6F, 0x7A, 0x28, 0x55, 0x53, 0x29, 0x5D] +- + code: 0xE7DB + name: Cup + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x75, 0x70, 0x5D] +- + code: 0xE7DC + name: Pint + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x70, 0x74, 0x5D] +- + code: 0xE7DD + name: Quart + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x71, 0x74, 0x5D] +- + code: 0xE7DE + name: US Gallon + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x67, 0x61, 0x6C, 0x28, 0x55, 0x53, 0x29, 0x5D] +- + code: 0xE7DF + name: UK Gallon + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x67, 0x61, 0x6C, 0x28, 0x55, 0x4B, 0x29, 0x5D] + +# TODO +- + code: 0xE7E2 + name: Micrometre + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0xE64B, 0x6D, 0x5D] +- + code: 0xE7E3 + name: Milligram + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6D, 0x67, 0x5D] +- + code: 0xE7E4 + name: "[Ang]" + set: CASIOWIN_2.00 + multi: [0x5B, 0xE506, 0x5D] + +# TODO +- + code: 0xE7E8 + name: Astronomical + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x41, 0x55, 0x5D] +- + code: 0xE7E9 + name: Light Year + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6C, 0x2E, 0x79, 0x2E, 0x5D] +- + code: 0xE7EA + name: Parsec + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x70, 0x63, 0x5D] +- + code: 0xE7EB + name: Foot pound per second + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x66, 0x74, 0xE6AA, 0x6C, 0x62, 0x66, 0x2F, 0x73, 0x5D] +- + code: 0xE7EC + name: Thermochemical Calorie per Second + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x61, 0x6C, 0xE774, 0xE768, 0x2F, 0x73, 0x5D] +- + code: 0xE7ED + name: Horsepower + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x68, 0x70, 0x5D] +- + code: 0xE7EE + name: British termal unit per minute + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x42, 0x74, 0x75, 0x2F, 0x6D, 0x69, 0x6E, 0x5D] +- + code: 0xE7EF + name: Watt + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x57, 0x5D] +- + code: 0xE7F0 + name: Electronvolt + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x65, 0x56, 0x5D] +- + code: 0xE7F1 + name: Erg + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x65, 0x72, 0x67, 0x5D] +- + code: 0xE7F2 + name: Joule + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x4A, 0x5D] +- + code: 0xE7F3 + name: 15° Calorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x63, 0x61, 0x6C, 0xE5D1, 0xE5D5, 0x5D] +- + code: 0xE7F4 + name: 15° Kilocalorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x63, 0x61, 0x6C, 0xE5D1, 0xE5D5, 0x5D] +- + code: 0xE7F5 + name: Thermochemical Calorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x63, 0x61, 0x6C, 0xE774, 0xE768, 0x5D] + +# TODO +- + code: 0xE7FB + name: International Steam Table Calorie + category: Unit + set: CASIOWIN_2.00 + multi: [0x5B, 0x6B, 0x63, 0x61, 0x6C, 0xE749, 0xE754, 0x5D] + +# TODO: finish diff --git a/reference/fonts.yml b/reference/fonts.yml new file mode 100644 index 0000000..b372441 --- /dev/null +++ b/reference/fonts.yml @@ -0,0 +1,12 @@ +- + id: normal + name: CASIO normal font + author: CASIO + width: 5 + height: 7 +- + id: mini + name: CASIO mini font + author: CASIO + width: 5 + height: 5 diff --git a/reference/main.yml b/reference/main.yml new file mode 100644 index 0000000..a939fc2 --- /dev/null +++ b/reference/main.yml @@ -0,0 +1,2 @@ +version: "0.1" +source: https://github.com/planetecasio/fontcharacter_reference diff --git a/reference/mini/0x7FXX.pbm b/reference/mini/0x7FXX.pbm new file mode 100644 index 0000000000000000000000000000000000000000..263c51fbdb74d420ceccaf5f9d25d0f4abab432e GIT binary patch literal 848 zcmWGA;Zjy`4svx2@ei_6aQE~LPzdnzRdCD9DM>9-2um$0&dkqKFw`^TvM^AvFyLYs vu|NUI=L?|h1jaxpOMx*6$|_)34rPr}q=f(rTsaS%g-CD+F%G!w;9~#)CSniX literal 0 HcmV?d00001 diff --git a/reference/mini/0xE5XX.pbm b/reference/mini/0xE5XX.pbm new file mode 100644 index 0000000000000000000000000000000000000000..1aa49c31a0ec9ffc3d3c2dd9c4c99ca54d5bbaaf GIT binary patch literal 848 zcmWGA;Zjy`4svx2@ei_6aQE~LPzdnzRdCD9DM>9-2um$0&dkqKFw`^TvM^AvFyLYs zhCl)Crvx}_0i5*!%3^MS2{FMK42*CVLJXk}E;-^D>I_REe(npK24OKCD3@@8h_$#0 zEP}B3%%CjBBZU%AEzcFVI502-vZyL@1+_e9kO|~?Zh5G9i-RRgp^PG@Q$P!YCI9-2um$0&dkqKFw`^TvM^AvFyLYs zMt}w67kLoD#lYwQB!GaAf$;!@1r$?&uvi!v85o2a8i3MZ0OUadQv)UoAq$fmT(lyG z1JFV2O*IS-b3iQq)XHR1e#Jfj9@b}iO^-u77czk}J_j~V0^75C33v|J_ zHgDcGuF%EnOL>~VwM4b@!^fo>T`AS9^2Q^Yxs(y)G?mi=u>rzQ{v1JwkS?5W7&g!Q z>J*|M;=Lp~3gI2`*;Ag7RXAsT`bk3)#Ul_runre@x=3^HDzRgkB3=DbIh?GIosDkp z!1_ia?fR621(4|P8?M4Ufp(ZzIvQ|5e(l>z>p1HYcz;uoW>vCTjsM7gwY(mg()|}D z!SMRBqoeCvwjWeooC)UgUQV{F@$cxoI`LOy>)F9_BcUaP-G;>L0d-@x;x#hOYQSCT zyg?`EQB`|T^VYKy%P(iN#69nRN;g`cW438JNUj@HN_TRpg2X#KsJqjtf-WL0n0>ja z$9u6*QRGBT@jnMpw)@HEJU9T-+fa6}>fbM`+$(`PdZb_I5N{CM()o5F0kFnCdo2yc z*DoM!v~uE};o*$wO(&=nw{eCf=0v=&CpV2a_OWyUCQkrtfWQfHNJB@qhFiFz8;2X= z@B}NzZnXIijQb`|Er)-17&7W(lUeTKlMU}Pu?q0anc%a1r-V-`Gk4Y(KVlUpvh^&H VJw_js0KCGekGm0@k&EuX%wNgZj-CJj literal 0 HcmV?d00001 diff --git a/reference/normal/0x7FXX.pbm b/reference/normal/0x7FXX.pbm new file mode 100644 index 0000000000000000000000000000000000000000..b441b505c3cd186859f6e7d95608b038e565c875 GIT binary patch literal 1169 zcmWGA;Zjy`4svx2@ei_6aQE~LPzdnzRdCD9DM>9-2um$0&dkqKFw`^TvM^9EG&JI3 z7zK0*fdqyH4N!|11EGuuj6qOV0%Hh_#jw5s!u$Xg8Ks6w2(Z8%iY;5o!DR*EEQFW< ITx@tT0M-r@ga7~l literal 0 HcmV?d00001 diff --git a/reference/normal/0xE5XX.pbm b/reference/normal/0xE5XX.pbm new file mode 100644 index 0000000000000000000000000000000000000000..47d849cec08bd7f59a32dadb0cfafbebff21c64c GIT binary patch literal 1169 zcmWGA;Zjy`4svx2@ei_6aQE~LPzdnzRdCD9DM>9-2um$0&dkqKFw`^TvM^9EG&JI3 zVsTk{yo$wD!G)1yHKR`>#{z*a<~h$TueAUFzw;bRvcxg-7DWz$7WV)D|Np7q`(B_0 zBxWK45(CTDgVY5JH417evAA+EFs*UYIuOXQK=?pW(sRpmF+jx%>ctYr3`>$FRw*cD z16fy+B_{@(8il3+7bnY!bc zR!@Khm!Ya?Oq16C3Gu@J)s&-l0mWu08LBEvHfi+)N;ny+ES5N?)j#n+P;aut-&5ZY z{+MK105ZGB!DE+c2Z+_h;Bhq+%=*aS8qx=5H8D7ax&(k^TO6FMRKTqE15QFJH$Y`Cf$zRH*F>SoxJ z)PG2nr&!g^uzyd-|F2(?rH|?TpZjB%QE&E%!wo%29+QlEvpNnq^dxxf4C>A5IjGRT zz%^u2ZPu$_4|)`wEQ5HnW*t%JQF0No=dGJ{#GyyV!%C6=(3{^4lh1)%1OjWot^~7E zzyd(x^)DD}Wde+~3a)O7A52V|UfdzmBd*d8n+W!B)VZNE;oO9;?^KUma_?4}>w!QEB z-sUIYcewkN|NSkoq2-vt;xM4t{|)oc8BX@w_&;A_0!x|UWMKOL|9|n5LYb$Q=Zaf^ z)&#StDl!FuSb;LnEe{oM{olY4D4@vc6wu;e(NjF9-2um$0&dkqKFw`^TvM^9EG&JI3 zVsTk{fQiLb!G)1yHKRi%#{z*a<~h$TZ#B<(&cMLnB+#PTk}R>Yhxy+3z3=P)|DVvp zk}Pq|L`0E8pamrMzZj_aT)?D8K`o#uTzrggoU{%wax4(O$j|`PufV|IW|p)Ds3ay? zV);eY%@W59OOhpK392jxvaUS0oFrMi2q>!@b?uQ@NQ^4Ox?q+iE4-MSoESDLa(D`~ zbkAeZm|xhy!1&%H>3QgcZryY}0pt4|aeY6HXKXyD;>r=!)Tk`6K=JUg=eo_si^Y}i zaZggv0NM-$UQ3(=Agsp?5SoF(CF%Pf2-_t|kpsdCc?MIb90ikwsjp#RY;cI+VK4xC zCCi~*?UGBU#@zdpH=XdbbLG@nq&3M`UC_u)^rn>7WKRu6BVS=IHm#hF;}SY1i+L;34;s}m)L&ZdG$-O{4qWLMU#%1@;q0~Gpwm;`Tx!|`)K&bo}~6eqJ71x zZidx+I(A+yNtSfe18YSi{?Gj}$*4E`#Nh)y2_8Fxdb2tXDD*FIzcQ&d>&?#xJxUHc z<9X|59Z~3!aTikLKlJAJ0W<@^+{yP~qH7Xhtk-v7td(%FNpUbSAPtNe_67z}3`j6A z@E>60QRHwEKi?4lptj3lj*Bp}&;C!fC;z{WztpNL|J<_6q2r;EryT$Ji6C_X2KDXz z4IIjIfV$ZaC@?T~^Dr>5s2xaPU=Ct=UjM4pL8*py6|4O5kN-ZXx^M=8SpPq09AWL| zl|TNffI(vgv+|th^-mNS^d|sAR;7Veut9-=fvNsiXO@x!FwFltc#3ruIJoRT&$9nR zSl8+U&JG5@9Q-eJl{h%pzh|xgpqQo7=<1*#($L=^;>^&$|31(qtc(o_@(m21|BBn6 z|NQ4c0|O7U#EDHllMN2309pUP=yJy&()t1vTmO}N!a*%U`p7Wg1D>8|JW5M6#ofA(5E%KP?(EmSbl2*|o2Bn739-2um$0&dkqKFw`^TvM^9EG&JI3 z7zIR!0HZ{j<+0#a6*m>8DXoeefvhh1TFf(A4Z8|iTf$a>#JB=QUEH#mW~5oN1$U~u zsbDiYc}BWsV9=Z+5)C0CO+Z#l3#UVBgp+2dB1aPkgUb{p&CoyrAj>)AkVRLZ%s~l0 zY^Ed%FbTLhu(UBSI7~RC(dEd{#K539m(TK80?VRI7pAFP3Qd6`heB5|&NwE~6UebV z6subp7?PldCr)c;5Dc0F<@kmWGpphZ`Z3{>qXH5vlMh5!KF CGedp= literal 0 HcmV?d00001 diff --git a/reference/normal/0xXX.pbm b/reference/normal/0xXX.pbm new file mode 100644 index 0000000000000000000000000000000000000000..d5a825112f1ae04d93f210c3c79048928492d083 GIT binary patch literal 1169 zcmc(ePe>F|9LIle+-=82ZD!qIBhztJv<{173R{HEPP>yGG?R7n&_P?oB=O$}K`i#x zEN0yy*F&ISu?QlC5Yb7JFfl=>uH9DfLH#_d`p)Q^J!MykReSg2-W8Qne z*HCFL;?6aCT;7X~XSnkh>KeF)`Z`YP=az}R;$2)klvz+7k3Nyk0?2WxI z02BZmyWbcwfC;t0k)Q=z^C=Vob~Z0o%ut8{c9g-pc?UEaC0aS;%CqrEJ^)z;ve)H( zCL$0zHL+nUU5+KF-R3edglab1-|z1yH4218bi=k&jWt@AcaU|mRkaWYkac>^T}W$$ zewr2Gu|NQ(Sr8@!pb+{t85JIU4;TQR)C+|tMWi5@%#K=UH;VKg{~GupV}x?T_97Qj zn-^eoobueH)aFHSJu;jyEz0wBz`jfu+$~m!<_@u}RIH4N0W81xczRKWATr2vTer5t zBR0vQ`j3ii$XM3JXZh&`CSrM4=MV$7k%W&*p^3OMMOia$Ep*jtn^(i44Ryw@a0_ny~8!w;(ywE!^yleR$O){QAjYq~_;(`RytI7x{RVq2#(RZZc#LX5f_z1#8}Xrm9!MU zG`mbGVhI$Wf%s^&L4g83^pXHYd*~lf^jP$7*i(QW3SWYreQAGhcDbY&qb*8dW@l&K zdo%k!e(#NLE-x3yZ@mBEKh7}rcQ*I4FusEp+(M_A;%!z>p1jV@yQmBEwCa`;%6h`; z@<&Wbm3zWeZX)VA#UHSm{Q~@Kr^)GoA3aI-572^Dbc(lF!XL4_Y{DnRC3j+$u?SE} zBByo*UBn)pAM=QZtVK!8>1wwjGYZ|lD9wY)IEOW^mm_Ilm0dC<^}CM3Ap z+w-*7ZF*b%!Q-~y+zNZWc5sqtvw!@uu)XhfypysE+=$%fjU-H{ls|ew!VAx{F|d9-N(#6TnY4k2~$rO0yAq`#tS@ z=3SF%Fgf)bGZ`0W?=Kt>#QC<@P;k@QN_^JMl&Bvo z*?uED&_;yR5CO^A_VLAeNpQh-PkU~ZqE@^Si+TUF4EYki7Agn(CkgTYARcoky-Lt5upgf_NzS+~Ri2b_J#y5b=N zg*2;N!Qh~fixiOsirjMnGeh<^i+GDGd&2dz;p>oYZ;xfVSQGl|IJEu-y1Eq%9>3&UHA}DIHMaJ>P@lu7W^2-szC;}X z-Hb;U=#`W)!-9Inbr((hIw*qk=$I&R!B)A=?CH}gL)|NUba7tIivpSkPry$K&tmzn zcu|M|H;Gg3L+Qg`MjR>`A|{alHfY6aArVaYKGMK*2}NT{heVr)6UL%12@>jd8e%=)B<&G*0QC zXC^Xn880a>XllP7`n@g;)&QV~HL0)SOLd958oF2>`YJHCi1W(ZYYf_OC11Nfe!9CMq66g+%o-iIs>8W z#X_N4t@_;qPy6AmDNi-*P3Nk9Sl!dTPDZ1A4>b>eV1@=n#l%D5^KE8~zRu zkhuIHdEXmo97QKnHDmJFa{C%(K|bAB-+keBKjF0 zzNBb<#vlE2EC60GC*oF6>4m8LzKK;qrpLS_sHAuUz{wOYt>Y575P#zwfU}Z7E4ais zmjEnQ0g=d_mdY#Vxfth-^umOXozRM$2@mC=(4R++{ydanE~zsxkNu;(Dr~dvT1sbw z?$434pUxXOCCDjY9rBEvFQbC~(#Tn+dIj@|oD$@$r*x3>jB7h87)e+$l2#@hvsIjT z1>cxgE8y6U^3VkKz{*EqUY$~9$V3f9?oA~r&8yQbC(MO~WIo*w+(v4}(0mN36(h9* zsTYmZWWQg9McRuH4o|F_HE@++6a5$ShHp#W3@t1)qlKoIB4}Tofpi-onA9#bvuZ+c zZCnIRDJn*&U({I&zi0gDi(Pi)04KMJzqM?TauZ0ogzD!C=pe1NVrHrCVXafqQe;mA zc*Rk5m-=Fgnrl0;>^3@H-I*2xMz?w-@ zAy5e>;VLoE{O*z$qWsEdaS5fnSy?MCOZYTWLS zXf!r@b3RxWs+_s9JLQY>gRW1Q^nV^!f5#kFzk`SVE_L6d39jh^wQySfF6IVk=Ad!T z+)uK7DFbKsop0g=_npgQu27OlWnfrreqs{+KSieX__cYIRh}9&QN~USYFwXcrKDuqBo3;ZV&27- zF4UK4qDm8z=wsfA`5?hwgUKh=Q9qq#;7oS#5WK-p(J`?i9Ll>WR|Rsf%}N&DQA?G@ zIxl6T6^u%tDgmn3(@~jUK3}>MQe?#{acjTvlW`b?X z(bJMkS%)&Xib4uiEnxgQT}f0908TR~w}PJ_rf8fe5F5*`9`-})6ZQ$;6XwF_0ImVs z6M-!LGXO(wY(HgyZab-_Q3d=4<05v<(;1?CdIm}ac4Vg&@*lA#qdYE2fR0Fl!<1cP zd8BYT!)cV%?A{DVl zWmp<=aDHQGQ&AghQ#ETM@3$lmjg8)#H^(d7>#Hzf@^~#bD+ChXy#r~Q(rwL29MbGv zrP&`+cMo0N>JB45dKuKS9E{2EJXRaoI`OybH^WMxr?Pf2*3sSfch z^U-Vn<&!e)lG3S}B7tCru(*ZGI$h1_-zzP;Y{Rc$Q#_GG`8mR6{A(qr-vfQ30~4mU z_By?fJrnRyJn1~P3;x zzEmlUV-% literal 0 HcmV?d00001 diff --git a/tools/dumpbin.py b/tools/dumpbin.py new file mode 100755 index 0000000..1204fcd --- /dev/null +++ b/tools/dumpbin.py @@ -0,0 +1,216 @@ +#!/usr/bin/env python3 +""" Utility to dump data from a set binary file. + Mainly here to check that the format is correct for now. +""" + +import os, unicodedata +from functools import cmp_to_key +from argparse import ArgumentParser + +# --- +# Decoding function. +# --- + +def frombytes(bnum): + if type(bnum) == int: return bnum + return int.from_bytes(bnum, byteorder='big', signed=False) + +leaders = {} +def decode_set1(braw, only_check=True): + # Get the rest of the header, check the sum and filesize + cmajors = frombytes(braw[9]) + cchars = frombytes(braw[10:12]) + flags = frombytes(braw[12]) + pic_h = frombytes(braw[13]) + pic_fmt = frombytes(braw[14:16]) + checksum = frombytes(braw[20:24]) + filesize = frombytes(braw[24:28]) + datasize = frombytes(braw[28:32]) + + # Get the flags. + with_unicode = flags & 0x01 != 0 + with_cat = flags & 0x02 != 0 + with_newcat = flags & 0x04 != 0 + with_ctf = flags & 0x08 != 0 + with_casemul = flags & 0x10 != 0 + + # Make the entry size. + centsize = 8 + 4 + 4 * \ + (with_unicode + with_cat + with_newcat + with_ctf + with_casemul) + + # Check the sizes and the checksum. + if filesize != len(braw): + print("ERROR: Invalid filesize!", + "Declared %dB, calculated %dB"%(filesize, len(braw))) + return 1 + calc_datasize = filesize - 32 - 4 * cmajors - centsize * cchars + if datasize != calc_datasize: + print("ERROR: Invalid datasize!", + "Declared %dB, calculated %dB"%(datasize, calc_datasize)) + return 1 + calc_checksum = sum(braw[32:]) + if checksum != calc_checksum: + print("ERROR: Invalid checksum!", + "Declared 0x%08X, calculated 0x%08X"%(checksum, calc_checksum)) + return 1 + + # Get the binary data. + data_off = filesize - datasize + bdata = braw[data_off:] + + # Get leaders. + braw = braw[32:data_off] + leads = [] + for id_major in range(cmajors): + bmajor = braw[id_major * 4:id_major * 4 + 4] + code = frombytes(bmajor[0]) + if code in leads: + print("ERROR: Duplicate major 0x%02X."%code) + return 1 + + leads += [code] + leaders[code] = { + 'start': frombytes(bmajor[2:]), + 'count': 0, + 'chars': {}, + 'pos': id_major + } + + # Sort leaders. + def cmp_lead(x, y): + global leaders + if leaders[x]['start'] == leaders[y]['start']: + return x if leaders[x]['pos'] < leaders[y]['pos'] else y + return x if leaders[x]['start'] < leaders[y]['start'] else y + leads.sort(key=cmp_to_key(cmp_lead)) + + # Get counts. + for id in range(len(leads) - 1): + leaders[leads[id]]['count'] = \ + leaders[leads[id + 1]]['start'] - leaders[leads[id]]['start'] + leaders[leads[-1]]['count'] = cchars - leaders[leads[-1]]['start'] + + # Get characters according to their leader. + braw = braw[cmajors * 4:] + for lead in leaders: + for id_char in range(leaders[lead]['start'], \ + leaders[lead]['start'] + leaders[lead]['count']): + bchar = braw[id_char * centsize:id_char * centsize + centsize] + code = frombytes(bchar[:2]) + if code >> 8 != lead: + print("ERROR: character 0x%04X at position %d"%(code, id_char), + "should have leader 0x%02X but"%lead, + "has leader 0x%02X!"%(code >> 8)) + return 1 + if code in leaders[lead]['chars']: + print("ERROR: duplicate character 0x%04X"%code, + "at position %d"%id_char, + "(prev. %d)"%leaders[lead]['chars']['pos']) + return 1 + + # Get the FONTCHARACTER sequence. + mul_off = frombytes(bchar[8:12]) + mul_sz = frombytes(bchar[2]) + mul = None + if mul_sz: + rmul = bdata[mul_off:mul_off + mul_sz] + mul = [] + while rmul: + if rmul[0] in leaders: + mul += [(rmul[0] << 8) | rmul[1]] + rmul = rmul[2:] + continue + mul += [rmul[0]] + rmul = rmul[1:] + + # Get the Unicode string. + uni = None + off = 12 + if with_unicode: + uni_sz = frombytes(bchar[3]) + uni_off = frombytes(bchar[off:off + 4]) + off += 4 + if uni_sz: + runi = bdata[uni_off:uni_off + uni_sz] + uni = runi.decode('utf-8') + + # TODO: get the rest + leaders[lead]['chars'][code] = { + 'uni': uni, + 'mul': mul, + 'pos': id_char + } + + if only_check: + return 0 + print("OVERALL HEADER") + print("%d bytes (data zone is %dB)"%(filesize, datasize)) + print("%d leader characters, %d characters"%(cmajors, cchars)) + print("") + print("Tokens and sequences in this file:") + print("- FONTCHARACTER sequences") + if with_unicode: print("- Unicode equivalents") + if with_cat: print("- CAT tokens") + if with_newcat: print("- Newcat tokens") + if with_ctf: print("- CTF tokens") + if with_casemul: print("- Casemul tokens") + print("") + + for lead, data in leaders.items(): + print("0x%02X LEADER"%lead) + print("Starts at character 0x%04X, stops at 0x%04X (count: %d)" + %(data['start'], data['start'] + data['count'] - 1, + data['count'])) + if data['chars']: + print("") + for code, char in data['chars'].items(): + print("- 0x%0*X"%(4 if code > 0xFF else 2, code), end='') + mul = char['mul'] + if mul: + m = ', '.join(map(lambda x:"0x%0*X"%(4 if x > 0xFF else 2, x), + mul)) + print(" - seq: %s"%m, end='') + + uni = char['uni'] + if uni: + if any(map(lambda c:unicodedata.category(c).startswith('C'), \ + uni)): + uni = ''.join(map(lambda x:'\\x%02X'%ord(x), uni)) + print(" - unicode: \"%s\""%uni, end='') + print("") + print("") + return 0 + +def decode_set(braw, only_check=True): + global leaders + # Check the magic. + bmagic = braw[:9] + if bmagic[:8] != b"CASIOFC\x7f": + print("ERROR: Invalid magic string!") + return 1 + if bmagic[8] == 0x01: + return decode_set1(braw, only_check) + else: + print("ERROR: Unmanaged version 0x%02X!"%bmagic[8]) + return 1 + +# --- +# Main function. +# --- + +if __name__ == '__main__': + # Parse the arguments. + ap = ArgumentParser(description='FONTCHARACTER binary file dumper') + + ap.add_argument('--only-check', help='Should only check if the file is valid', + action="store_true") + ap.add_argument('input', help='The file which to dump the content.') + args = ap.parse_args() + + # Obtain the file. + braw = open(args.input, "rb").read() + + # Decode it. + exit(decode_set(braw, args.only_check)) + +# End of file. diff --git a/tools/fontcharacter/__init__.py b/tools/fontcharacter/__init__.py new file mode 100755 index 0000000..ca92206 --- /dev/null +++ b/tools/fontcharacter/__init__.py @@ -0,0 +1,190 @@ +#!/usr/bin/env python3 +""" The FONTCHARACTER Python module is used for manipulating the source + and binary formats. See <../../formats/SOURCE.md> for more information. +""" + +import os, sys, string, yaml + +# Sainitize for the `id` field +def sanitize_id(s): + return ''.join(ch for ch in s \ + if ch in string.ascii_letters + string.digits) + +class Reference: + """ The FONTCHARACTER source object. + Loads the characters and corrects the data. """ + + def __init__(self, path, sets_only=False): + # Load sets + self.__load_sets(yaml.load(open(\ + os.path.join(path, 'sets.yml')).read())) + if sets_only: return + + # Load categories + self.categories = {} + for c in yaml.load(open(os.path.join(path, 'categories.yml')).read()): + self.__explore_category(c, '', '', '') + + # Load all of the YAML files + self.__load_characters(yaml.load(open(\ + os.path.join(path, 'characters.yml')).read())) + + # Gather leaders [TODO: `leading` field?] + for st in self.sets.keys(): + lead = [] + for code in self.sets[st]['characters'].keys(): + lead += [code >> 8] + self.sets[st]['leading'] = set(lead) + + def __explore_category(self, c, id, prefix, suffix): + """ Explore a category. """ + + # Iterate on things + id += c['id'] + try: prefix = c['prefix'] + ' ' + prefix + except: True + try: suffix = suffix + ' ' + c['suffix'] + except: True + + # Add current (sub)category + self.categories[id] = {'prefix': prefix, 'suffix': suffix} + + # Explore subcategories + if c.get('sub'): + for s in c['sub']: + self.__explore_category(s, id + '/', prefix, suffix) + + def __load_sets(self, raw): + """ Explore sets. """ + + self.default_set = '' + self.sets = {} + + # Initialize kids + kids = {} + + # Read raw entries + for s in raw: + self.sets[s['id']] = { + 'description': s['description'], + 'characters': {}, + 'parent': s.get('parent'), + 'kids': []} + if s.get('default'): self.default_set = s['id'] + if s.get('parent'): + if not kids.get(s['parent']): kids[s['parent']] = [] + kids[s['parent']] += [s['id']] + + # Add kids to real elements + for parent, k in kids.items(): + self.sets[parent]['kids'] += kids[parent] + + def __inherit_character(self, id, code, inherit, pr): + """ Inherit character. + + `id`: id of the set, code: code of the character, + `inherit`: the set to inherit it from, + `pr`: priority (starting from 0, the more the further). """ + + if not self.sets[id]['characters'].get(code) \ + or self.sets[id]['characters'][code]['_pr'] > pr: + self.sets[id]['characters'][code] = {'inherit': inherit, '_pr': pr} + for k in self.sets[id]['kids']: + self.__inherit_character(k, code, inherit, pr + 1) + + def __load_characters(self, raw): + """ Load characters. """ + + # Main loop + for c in raw: + # Get the complete name + n = c['name'] + if c.get('category'): + ct = self.categories[c['category']] + n = ct['prefix'] + n + ct['suffix'] + + # Get the character set, and the priority + try: st = c['set'] + except: st = self.default_set + + # Make the character + code = c['code'] + char = {'name': n, '_pr': 0} + + # Check the multi thingy + m = c.get('multi') + if type(m) == list and m: + char['multi'] = \ + list(map(lambda x:int(x, 16) if type(x) == str else x, m)) + elif type(m) == int: + char['multi'] = [m] + + # Check the unicode thingy + u = c.get('unicode') + if type(u) == list and u: + char['unicode'] = \ + list(map(lambda x:int(x, 16) if type(x) == str else x, u)) + elif type(u) == int: + char['unicode'] = [u] + + # Check the ascii thingy + if c.get('ascii'): + char['ascii'] = c['ascii'] + elif char.get('unicode') \ + and all(0x00 <= c <= 0xFF for c in char['unicode']): + char['ascii'] = ''.join(map(chr,char['unicode'])) + + # Check the id thingy + if c.get('id'): + char['id'] = c['id'] + elif char.get('ascii'): + char['id'] = sanitize_id(char['ascii']) + if not char.get('id') and not char.get('multi'): + char['id'] = sanitize_id(char['name']) + + # Add it to the set + self.sets[st]['characters'][code] = char + for k in self.sets[st]['kids']: + self.__inherit_character(k, code, st, 1) + + # Get ascii/unicode equivalents + for id, st in self.sets.items(): + for code in st['characters'].keys(): + self.__deduce_character_id(id, code) + + def __deduce_character_id(self, id, code): + """ Calculate a multi-character's ID. """ + + char = self.sets[id]['characters'][code] + if char['_pr'] > 0 or char.get('id'): return + m = "" + if not char.get('multi'): m = sanitize_id(char.get('name')) + else: + for num, c in map(lambda x:(x, self.sets[id]['characters'][x]), \ + char['multi']): + parent = id + if c['_pr'] > 0: + parent = c['inherit'] + c = self.sets[parent]['characters'][num] + if c.get('multi'): + self.__deduce_character_id(parent, num) + m += c['id'] + char['id'] = m + + def list(self): + """ Get the list of sets. """ + + l = list(self.sets.keys()) + l.remove(self.default_set) + return [self.default_set] + l + + def get(self, id = None): + """ Get a set. """ + + if type(id) != str: + id = self.default_set + st = self.sets[id] + st['id'] = id + return st + +# End of file. diff --git a/tools/listsets.py b/tools/listsets.py new file mode 100755 index 0000000..9e2cb47 --- /dev/null +++ b/tools/listsets.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +""" Utility to list the available sets. + Mainly there for the Makefile to use it. """ + +import os +from argparse import ArgumentParser +from fontcharacter import Reference + +# --- +# Main function. +# --- + +if __name__ == '__main__': + # Parse the arguments. + ap = ArgumentParser(description="FONTCHARACTER reference sets lister") + + ap.add_argument('--refpath', help='The reference path.', default=os.getcwd()) + args = ap.parse_args() + + # Obtain the reference. + ref = Reference(args.refpath, True) + + # List the sets. + print('\n'.join(ref.list())) + +# End of file. diff --git a/tools/makebin.py b/tools/makebin.py new file mode 100755 index 0000000..a962f92 --- /dev/null +++ b/tools/makebin.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +""" Utility to make the set binary files. """ + +import os, shutil +from argparse import ArgumentParser +from fontcharacter import Reference + +# --- +# Function for encoding. +# --- + +def tobytes(num, length): + return num.to_bytes(length, byteorder='big', signed=False) +def charbytes(char): + return tobytes(char, 2) if char > 0xFF else tobytes(char, 1) + +def make_pool(pool): + # TODO: make this function optimize space, some day? + + bdata = b'' + offsets = [] + for data in pool: + offsets += [len(bdata)] + bdata += bytes(data) + return bdata, offsets + +def encode_set(ref, fset): + global args + bheader = bytes() + blead = bytes() + bchars = bytes() + bdata = bytes() + + # Prepare characters data + leading = {} + char_count = 0 + dchars = [] + pool = [] + for char_id, (code, char) in enumerate(fset['characters'].items()): + char_count = char_id + 1 + + # Check if we should inherit. + if char['_pr'] > 0: + char = ref.get(char['inherit'])['characters'][code] + + # Check the leader. + lead = code >> 8 + if not lead in leading: + leading[lead] = char_id + + # Get the multi size, feed the pool if needed. + mul_sz = 0 + if char.get('multi') and char['multi']: + mul = b''.join(map(charbytes, char['multi'])) + pool += [mul] + mul_sz = len(mul) + + # Get the unicode size, feed the pool if needed. + uni_sz = 0 + if not args.no_unicode and char.get('unicode') and char['unicode']: + uni = ''.join(map(chr, char['unicode'])).encode('utf-8') + pool += [uni] + uni_sz = len(uni) + + # Get the CAT token size, feed the pool if needed. + cat_sz = 0 + + # Get the Newcat token size + newcat_sz = 0 + + # Get the CTF token size + ctf_sz = 0 + + # Get the Casemul token size + casemul_sz = 0 + + # Add all of these elements to the chars data tab. + dchars += [{ + 'code': code, + 'mul_sz': mul_sz, + 'uni_sz': uni_sz, + 'cat_sz': cat_sz, + 'newcat_sz': newcat_sz, + 'ctf_sz': ctf_sz, + 'casemul_sz': casemul_sz + }] + + # Make the pool. + bdata, offsets = make_pool(pool) + + # Prepare pool. + offsets = iter(offsets) + for char in dchars: + ent = tobytes(char['code'], 2) + tobytes(char['mul_sz'], 1) \ + + tobytes(char['uni_sz'], 1) + tobytes(char['cat_sz'], 1) \ + + tobytes(char['newcat_sz'], 1) + tobytes(char['ctf_sz'], 1) \ + + tobytes(char['casemul_sz'], 1) + + # Offsets + ent += tobytes(next(offsets) if char['mul_sz'] > 0 else 0, 4) + if not args.no_unicode: + ent += tobytes(next(offsets) if char['uni_sz'] > 0 else 0, 4) + if not args.no_cat: + ent += tobytes(next(offsets) if char['cat_sz'] > 0 else 0, 4) + if not args.no_newcat: + ent += tobytes(next(offsets) if char['newcat_sz'] > 0 else 0, 4) + if not args.no_ctf: + ent += tobytes(next(offsets) if char['ctf_sz'] > 0 else 0, 4) + if not args.no_casemul: + ent += tobytes(next(offsets) if char['casemul_sz'] > 0 else 0, 4) + + bchars += ent + + # Correct the leading. + for lead in fset['leading']: + if not lead in leading: + leading[lead] = char_count + + # Make the leading tab. + for lead, off in leading.items(): + ent = bytes([lead, 0]) + tobytes(off, 2) + blead += bytes(ent) + + # Make the flags. + flags = 0x1F + if args.no_unicode: flags &= ~0x01 + if args.no_cat: flags &= ~0x02 + if args.no_newcat: flags &= ~0x04 + if args.no_ctf: flags &= ~0x08 + if args.no_casemul: flags &= ~0x10 + + # Make the checksum. + csum = (sum(blead) + sum(bchars) + sum(bdata)) & 0xFFFFFFFF + + # Make the lengths. + datalen = len(bdata) + filesize = 32 + len(blead) + len(bchars) + datalen + + # Finish making the main header. + bheader = bytes(list(map(ord, "CASIOFC\x7F")) + [0x01]) \ + + tobytes(len(leading), 1) + tobytes(char_count, 2) \ + + tobytes(flags, 1) + tobytes(0, 1) + tobytes(0, 2) + tobytes(0, 4) \ + + tobytes(csum, 4) + tobytes(filesize, 4) + tobytes(datalen, 4) + + return bheader + blead + bchars + bdata + +# --- +# Main function. +# --- + +if __name__ == '__main__': + ap = ArgumentParser(description="FONTCHARACTER reference binary generator") + + ap.add_argument('--no-unicode', help='No Unicode equivalents?', + action="store_true") + ap.add_argument('--no-cat', help='No CAT tokens?', action="store_true") + ap.add_argument('--no-newcat', help='No Newcat tokens?', + action="store_true") + ap.add_argument('--no-ctf', help='No CTF tokens?', action="store_true") + ap.add_argument('--no-casemul', help="No Casemul tokens?", + action="store_true") + ap.add_argument('--output', '-o', help='The output directory path.', + default=os.path.join(os.getcwd(), 'generated_sets')) + ap.add_argument('--refpath', help='The reference path.', + default=os.getcwd()) + args = ap.parse_args() + + # Obtain the reference. + ref = Reference(args.refpath) + + # Make the directory. + if os.path.isdir(args.output): + shutil.rmtree(args.output) + elif os.path.exists(args.output): + os.remove(args.output) + os.makedirs(args.output) + + # For each set, make the file. + for set_name, set_val in map(lambda x: (x, ref.get(x)), ref.list()): + with open(os.path.join(args.output, set_name + '.set'), 'wb') as f: + f.write(encode_set(ref, set_val)) + +# End of file.