Skip to content

Commit 3ac33c0

Browse files
authored
Merge pull request #1 from bxparks/develop
merge 0.1 into master
2 parents 96d3fd4 + c3e6257 commit 3ac33c0

File tree

95 files changed

+11495
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+11495
-3
lines changed

.gitignore

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#-------------------------------------------------------------------------
2+
# TI-83 Plus, TI-84 Plus assembly program files
3+
#-------------------------------------------------------------------------
4+
5+
*.8xp
6+
*.8xk
7+
*.lst
8+
9+
#-------------------------------------------------------------------------
10+
# Python
11+
#-------------------------------------------------------------------------
12+
13+
# Byte-compiled / optimized / DLL files
14+
__pycache__/
15+
*.py[cod]
16+
*$py.class
17+
18+
# mypy
19+
.mypy_cache/
20+
21+
# Distribution / packaging
22+
.Python
23+
build/
24+
develop-eggs/
25+
dist/
26+
downloads/
27+
eggs/
28+
.eggs/
29+
lib/
30+
lib64/
31+
parts/
32+
sdist/
33+
var/
34+
wheels/
35+
*.egg-info/
36+
.installed.cfg
37+
*.egg
38+
MANIFEST
39+
*.app

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changelog
2+
3+
- Unreleased
4+
- 0.1 (2023-08-13)
5+
- Create a release, with the `.8xk` so that I can see what a GitHub release
6+
asset looks like, which allows me to write a better Installation guide.
7+
- 0.0 (2023-07-14)
8+
- Initial extraction and upload to GitHub from my internal playground repo.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2023 Brian Park
3+
Copyright (c) 2023 Brian T. Park
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 223 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,223 @@
1-
# rpn83p
2-
RPN calculator app for TI-83 Plus and TI-84 Plus inspired by HP42S
1+
# RPN83P
2+
3+
RPN calculator app for the TI-83 Plus and TI-84 Plus inspired by the HP-42S.
4+
5+
**Version**: 0.1 (2023-08-13)
6+
7+
**Changelog**: [CHANGELOG.md](CHANGELOG.md)
8+
9+
**User Guide**: [USER_GUIDE.md](USER_GUIDE.md)
10+
11+
## Table of Contents
12+
13+
- [Installation](#Installation)
14+
- [Quick Examples](#QuickExamples)
15+
- [Example 1](#Example1)
16+
- [Example 2](#Example2)
17+
- [Supported Hardware](#SupportedHardware)
18+
- [User Guide](#UserGuide)
19+
- [Compiling from Source](#Compiling)
20+
- [Tools and Resources](#ToolsResources)
21+
- [License](#License)
22+
- [Feedback](#Feedback)
23+
- [Author](#Author)
24+
25+
<a name="Installation"></a>
26+
## Installation
27+
28+
RPN83P is a flash application (it no longer small enough to create as an
29+
assembly language program). Detailed instructions are given in the [RPN83P User
30+
Guide](USER_GUIDE.md), but here is the quick version:
31+
32+
- Copy the `rpn83p.8xk` file to the TI-83/TI-84 calculator. Use one of following
33+
link programs:
34+
- Windows: [TI Connect](https://education.ti.com/en/products/computer-software/ti-connect-sw)
35+
- Linux: [tilp](https://github.com/debrouxl/tilp_and_gfm)
36+
- Run the program using the `APPS`:
37+
- Press `APPS`
38+
- Scroll down to the `RPN83P` entry
39+
- Press `ENTER`
40+
- Exiting:
41+
- Quit app: `2ND` `QUIT`
42+
- Turn off device: `2ND` `OFF`
43+
44+
As a flash app, the RPN83P does not consume precious RAM space, and it is
45+
preserved when the RAM is cleared (either purposefully or accidentally).
46+
47+
<a name="QuickExamples"></a>
48+
## Quick Examples
49+
50+
<a name="Example1"></a>
51+
### Example 1
52+
53+
When the RPN83P is started, it goes directly into the calculator mode, and looks
54+
like this:
55+
56+
> ![RPN83P Hello 1](docs/rpn83p-example1-1.png)
57+
58+
Let's us compute the volume of a sphere of radius `2.1`. Recall that the volume
59+
of a sphere is `(4/3) pi r^3`. There are many ways to compute this in an RPN
60+
system, but I tend to start with the more complex, inner expression and work
61+
outwards. Enter the following keystrokes:
62+
63+
- `2`
64+
- `.`
65+
- `1`
66+
- `x^2`
67+
- `2ND` `ANS` (invokes the `LastX` functionality)
68+
- `*` (`r^3` is now in the `X` register)
69+
- `2ND` `pi` (above the `^` button)
70+
- `*` (`pi r^3`)
71+
- `4`
72+
- `*` (`4 pi r^3`)
73+
- `3`
74+
- `/` (`4 pi r^3 / 3`)
75+
76+
The `X` register should show `38.79238609` like this:
77+
78+
> ![RPN83P Hello 1](docs/rpn83p-example1-2.png)
79+
80+
<a name="Example2"></a>
81+
### Example 2
82+
83+
Let's calculate the percentage change from `77` to `89`. Press the following:
84+
85+
- `7`
86+
- `7`
87+
- `ENTER`
88+
- `8`
89+
- `9`
90+
- `WINDOW/F2` menu button to invoke the `NUM` item from
91+
![ROOT MenuStrip 1](docs/rpn83p-screenshot-menu-root-1.png)
92+
- `WINDOW/F2` menu button again to invoke the `%CH` item from
93+
![NUM MenuStrip 1](docs/rpn83p-screenshot-menu-root-num-1.png)
94+
95+
The display should show `15.58441558%` like this:
96+
97+
> ![RPN83P Hello 1](docs/rpn83p-example2-1.png)
98+
99+
(The `Y` register remains at `77` because the `%CH` function does not modify it,
100+
unlike most functions that take 2 arguments. This allows additional calculations
101+
to continue using the original `77` base number.)
102+
103+
Press:
104+
105+
- `ON` (invokes the `ESC/EXIT` functionality)
106+
107+
to go back to the previous menu bar:
108+
109+
> ![ROOT MenuStrip 1](docs/rpn83p-screenshot-menu-root-1.png)
110+
111+
<a name="SupportedHardware"></a>
112+
### Supported Hardware
113+
114+
This app was designed for TI calculators using the Z80 processor:
115+
116+
- TI-83 Plus
117+
- TI-83 Plus Silver Edition (verified)
118+
- TI-84 Plus
119+
- TI-84 Plus Silver Edition (verified)
120+
121+
<a name="UserGuide"></a>
122+
## User Guide
123+
124+
See the [RPN83P User Guide](USER_GUIDE.md).
125+
126+
<a name="Compiling"></a>
127+
## Compiling from Source
128+
129+
I use Ubuntu Linux 22.04 for my development. The following instructions have
130+
been verified only on my dev machine.
131+
132+
- Clone this repo:
133+
- `$ git clone [email protected]:bxparks/rpn83p.git`
134+
- `develop` branch contains the active development
135+
- `master` branch contains the stable release
136+
- Install [spasm-ng](https://github.com/alberthdev/spasm-ng).
137+
- I use the static binary zip file, because the `.deb` file would not
138+
resolve dependencies.
139+
- Unpack the zip file so that the `spasm` directory is a *sibling* to the
140+
`rpn83` directory. (See the `SPASM_DIR` variable inside the `Makefile`).
141+
- `$ cd src`
142+
- `$ make`
143+
- Should produce a file named `rpn83p.8xk`.
144+
145+
<a name="ToolsResources"></a>
146+
## Tools and Resources
147+
148+
Here is the tools and resources that I use for development on Ubuntu Linux
149+
22.04:
150+
151+
- spasm-ng Z80 assembler
152+
- https://github.com/alberthdev/spasm-ng
153+
- The `releases` section has various packages:
154+
- Debian/Ubuntu/Mint (`.deb`): could not get this to work
155+
- Linux (static, `tar.gz`): works for me
156+
- TILP2
157+
- https://github.com/debrouxl/tilp_and_gfm
158+
- Data Link from Linux to TI Calculator
159+
- `$ apt install tilp2`
160+
- tilem2
161+
- https://www.ticalc.org/archives/files/fileinfo/372/37211.html
162+
- TI calculator emulator for Linux
163+
- `$ apt install tilem`
164+
- `$ apt install tilem-skinedit`
165+
- rom8x
166+
- https://www.ticalc.org/archives/files/fileinfo/373/37341.html
167+
- TI calculator ROM extractor
168+
- Download and extract the zip file.
169+
- Follow the instructions to copy 1 or 2 applications to the calculator, run
170+
them on the calculator to generate App Vars which contain the ROM image,
171+
copy them back to the Linux host machine, then run `rom8x.exe` to generate
172+
the ROM image using Wine (see next item).
173+
- Wine
174+
- https://www.winehq.org/
175+
- `$ apt install wine`, or download directly from winehq.com
176+
- Needed to run `rom8x.exe` (a Windows executable) on a Linux box.
177+
- GNU Make
178+
- https://www.gnu.org/software/make/
179+
- Should already be installed on Ubuntu Linux.
180+
- `$ apt install make` to install manually.
181+
- Python 3
182+
- The `python3` interpreter should already be installed on your Linux box.
183+
- Required to run the [compilemenu.py](tools/compilemenu.py) script that
184+
compiles the [menudef.txt](src/menudef.txt) file into the
185+
[menudef.asm](src/menudef.asm) file.
186+
- TI-83 SDK docs
187+
- https://archive.org/details/83psdk/83psysroutines/
188+
- Learn TI-83 Plus Assembly in 28 Days
189+
- https://taricorp.gitlab.io/83pa28d/
190+
- https://gitlab.com/taricorp/83pa28d/
191+
- Hot Dog's Ti-83+ Z80 ASM for the Absolute Beginner
192+
- https://www.ticalc.org/archives/files/fileinfo/437/43784.html
193+
- https://www.omnimaga.org/hot-dog's-ti-83-z80-asm-for-the-absolute-beginner
194+
- Most of this book is aimed at an assembly language beginner.
195+
- However, Appendix A (_Creating Flash Applications with SPASM_) is the only
196+
place that I know which explains how to generate a flash app using the
197+
`spasm-ng` assembler.
198+
199+
<a name="License"></a>
200+
## License
201+
202+
[MIT License](https://opensource.org/licenses/MIT)
203+
204+
<a name="Feedback"></a>
205+
## Feedback and Support
206+
207+
If you have any questions, comments, or feature requests for this library,
208+
please use the [GitHub
209+
Discussions](https://github.com/bxparks/rpn83p/discussions) for this project.
210+
If you have bug reports, please file a ticket in [GitHub
211+
Issues](https://github.com/bxparks/rpn83p/issues). Feature requests should go
212+
into Discussions first because they often have alternative solutions which are
213+
useful to remain visible, instead of disappearing from the default view of the
214+
Issue tracker after the ticket is closed.
215+
216+
Please refrain from emailing me directly unless the content is sensitive. The
217+
problem with email is that I cannot reference the email conversation when other
218+
people ask similar questions later.
219+
220+
<a name="Author"></a>
221+
## Author
222+
223+
Created by Brian T. Park ([email protected]).

0 commit comments

Comments
 (0)