You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: LICENSE.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,19 +40,29 @@ The `vi` implementation is derived from Toybox.
40
40
***License:****0BSD** (Zero-Clause BSD).
41
41
***Summary:** Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
42
42
43
-
### 3. st7789_mpy
43
+
### 3. frotz (Zmachine interpreter)
44
+
The Z-Machine interpreter is based on Frotz.
45
+
***Copyright:** 1995-1997 Stefan Jokisch, 1998-present David Griffith and contributors.
46
+
***License:****GNU General Public License v2.0 (or later)**.
47
+
***Summary:** Frotz is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
48
+
49
+
### 4. st7789_mpy
44
50
***Copyright:** Russ Hughes.
45
51
***License:****MIT License**.
46
52
47
-
### 4. Terminus Font
53
+
### 5. Terminus Font
48
54
***Copyright:** (c) 2020 Dimitar Zhekov.
49
55
***License:****SIL Open Font License 1.1**.
50
56
51
-
### 5. MicroPython
57
+
### 6. MicroPython
52
58
***Copyright:** (c) Damien P. George.
53
59
***License:****MIT License**.
54
60
55
61
---
56
62
57
63
### Implementation Note for the T-Deck
58
64
While the original `vi` code follows the 0BSD license and the `st` engine follows the MIT/X Consortium license, the specific architectural modifications in this repository—including the **MicroPython VFS Bridge**, **NLR Exception Guarding**, **Zero-allocation Status Bar**, and **GC-safe Memory Management**—are contributed under the project's primary MIT license.
65
+
66
+
---
67
+
68
+
While the original source code for mpy_vt is provided under the MIT license, compiling it with the optional frotz module creates a combined work that falls under the GNU General Public License v2.0 (GPL-2.0) upon distribution.
Copy file name to clipboardExpand all lines: README.md
+15-4Lines changed: 15 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ As a showcase of the engine's capabilities, this project includes a fully functi
17
17
18
18
## ⚡ Quick Install (Pre-compiled Binaries)
19
19
20
-
Don't want to set up a build environment? You can download and flash the latest pre-compiled firmware directly to your T-Deck.
20
+
You can download and flash the latest pre-compiled firmware directly to your T-Deck.
21
21
22
22
### Option A: Flash from command line
23
23
@@ -61,6 +61,7 @@ You can execute the following commands directly in the MicroPython REPL:
61
61
|`clear`| Clears the screen |
62
62
|`telehack`| Connects telnet to telehack.com |
63
63
|`retrocampus`| Connects telnet to bbs.retrocampus.com |
64
+
|`zork`| Launches Zork through the ZMachine interpreter. Note: `zork1.dat` must be present on your SD card root directory |
64
65
65
66
## 🚀 VT Features
66
67
@@ -92,6 +93,7 @@ This project is composed of six specialized modules that works in tandem:
92
93
|`tdeck_trk`| Motion Engine | Interrupts | Low-level driver for the T-Deck trackball. Uses GPIO interrupts to track relative motion (deltas) and supports edge-detection for short/long click durations. |
93
94
|`tdeck_kvm`| Stream Glue | Read/Write | A composite Keyboard-Video-Mouse (trackball) object. It binds vt (Output) and tdeck_kbd (Input) into a single stream object compatible with os.dupterm. |
94
95
|`vi`| Text Editor | Read/Write | A C-integrated port of the classic `vi` editor. |
96
+
|`zm`| ZMachine Interpreter | Read/Write | A port of the `frotz` Zmachine interpreter. |
95
97
96
98
97
99
## 📟 T-Deck Hardware Integration
@@ -302,14 +304,22 @@ make repl PORT=/dev/ttyUSB0
302
304
|**`inject()`**|`data`|**Macro Injection.** Accepts a string or bytes and places them into the high-priority ring buffer to be read by the REPL or active application. |
303
305
|**`ioctl()`**|`cmd, arg`| Aggregates status from both objects (e.g., checks if KBD has data or if VT is ready). |
304
306
305
-
### **5. `vi.Vi` (Text Editor)**
307
+
### **5. `zm.ZMachine` (ZMachine Interpreter)**
308
+
*Port of the `frotz` interpreter.*
309
+
310
+
| Method | Parameters | Description |
311
+
| :--- | :--- | :--- |
312
+
|**`ZMachine()`**|`filename, stream, cols, rows`|**Constructor.** Creates a ZMachine instance with a given filename, using `stream` for input/outputs. |
313
+
|**`run()`**| None | Launches the Zmachine interpreter. |
314
+
315
+
### **6. `vi.Vi` (Text Editor)**
306
316
*Port of the classic `vi` text-editor.*
307
317
308
318
| Method | Parameters | Description |
309
319
| :--- | :--- | :--- |
310
320
|**`Vi()`**|`filename, stream, cols, rows`|**Constructor.** Launches the vi editor, opening a given filename, using `stream` for input/outputs. |
311
321
312
-
### **6. `st7789` (Modified Display Driver)**
322
+
### **7. `st7789` (Modified Display Driver)**
313
323
*Standard display driver with specific C-layer extensions for terminal performance.*
314
324
315
325
| Feature | Type | Description |
@@ -318,12 +328,13 @@ make repl PORT=/dev/ttyUSB0
318
328
319
329
## ⚖️ License & Attribution
320
330
321
-
This projectis licensed under the **MIT License**.
331
+
This project's source code is licensed under the **MIT License**. However, if you compile the firmware with the optional `frotz` module enabled, the resulting compiled binary is distributed under the **GPLv2 License**.
0 commit comments