papyrium 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. {papyrium-0.2.0/src/papyrium.egg-info → papyrium-0.3.0}/PKG-INFO +52 -25
  2. {papyrium-0.2.0 → papyrium-0.3.0}/README-pypi.md +51 -24
  3. {papyrium-0.2.0 → papyrium-0.3.0}/README.md +51 -24
  4. {papyrium-0.2.0 → papyrium-0.3.0}/pyproject.toml +10 -2
  5. papyrium-0.3.0/src/papyrium/font/kx_p1080/__init__.py +57 -0
  6. papyrium-0.3.0/src/papyrium/font/kx_p1080/draft-italic.txt +1417 -0
  7. papyrium-0.3.0/src/papyrium/font/kx_p1080/draft.txt +1418 -0
  8. papyrium-0.3.0/src/papyrium/font/kx_p1080/nlq-italic.txt +2570 -0
  9. papyrium-0.3.0/src/papyrium/font/kx_p1080/nlq.txt +2570 -0
  10. papyrium-0.3.0/src/papyrium/model/panasonic_kx_p1080/__init__.py +151 -0
  11. papyrium-0.3.0/src/papyrium/model/panasonic_kx_p1080/demo.py +65 -0
  12. papyrium-0.3.0/src/papyrium/model/panasonic_kx_p1080/interpreter.py +408 -0
  13. papyrium-0.3.0/src/papyrium/model/panasonic_kx_p1080/widths.py +36 -0
  14. {papyrium-0.2.0 → papyrium-0.3.0/src/papyrium.egg-info}/PKG-INFO +52 -25
  15. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium.egg-info/SOURCES.txt +9 -0
  16. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium.egg-info/entry_points.txt +6 -0
  17. {papyrium-0.2.0 → papyrium-0.3.0}/LICENSE +0 -0
  18. {papyrium-0.2.0 → papyrium-0.3.0}/setup.cfg +0 -0
  19. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/advertiser/mdns/__init__.py +0 -0
  20. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/cli/__init__.py +0 -0
  21. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/cli/__main__.py +0 -0
  22. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/cli/help.py +0 -0
  23. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/cli/plugins.py +0 -0
  24. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/__init__.py +0 -0
  25. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/advertising.py +0 -0
  26. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/channel.py +0 -0
  27. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/conformance.py +0 -0
  28. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/dotfont.py +0 -0
  29. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/instance.py +0 -0
  30. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/jobs.py +0 -0
  31. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/language.py +0 -0
  32. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/model.py +0 -0
  33. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/options.py +0 -0
  34. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/output.py +0 -0
  35. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/page.py +0 -0
  36. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/rendering.py +0 -0
  37. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/spooler.py +0 -0
  38. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/stationery.py +0 -0
  39. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/testing.py +0 -0
  40. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/core/transport.py +0 -0
  41. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/exception/__init__.py +0 -0
  42. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/extension/__init__.py +0 -0
  43. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/extension/_text.py +0 -0
  44. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/draft_9/__init__.py +0 -0
  45. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/draft_9/glyphs.txt +0 -0
  46. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/__init__.py +0 -0
  47. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/block-graphics.txt +0 -0
  48. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/draft-elite.txt +0 -0
  49. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-courier-elite.txt +0 -0
  50. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-courier.txt +0 -0
  51. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-orator-elite.txt +0 -0
  52. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-orator-small-capitals-elite.txt +0 -0
  53. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-orator-small-capitals.txt +0 -0
  54. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-orator.txt +0 -0
  55. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-sanserif-elite.txt +0 -0
  56. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lc10/nlq-sanserif.txt +0 -0
  57. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lx800/__init__.py +0 -0
  58. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lx800/draft.txt +0 -0
  59. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/lx800/nlq-roman.txt +0 -0
  60. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/m1109/__init__.py +0 -0
  61. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/m1109/draft.txt +0 -0
  62. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/font/m1109/nlq.txt +0 -0
  63. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/__init__.py +0 -0
  64. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/charsets.py +0 -0
  65. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/demo_parts.py +0 -0
  66. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/generator.py +0 -0
  67. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/interpreter.py +0 -0
  68. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/mechanism.py +0 -0
  69. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/options.py +0 -0
  70. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/escp/writing.py +0 -0
  71. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/proprinter/__init__.py +0 -0
  72. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/proprinter/interpreter.py +0 -0
  73. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/proprinter/mechanism.py +0 -0
  74. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/proprinter/nlq.py +0 -0
  75. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/language/proprinter/widths.py +0 -0
  76. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/brother_m1109/__init__.py +0 -0
  77. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/brother_m1109/demo.py +0 -0
  78. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/epson_fx80/__init__.py +0 -0
  79. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/epson_fx80/demo.py +0 -0
  80. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/epson_lx800/__init__.py +0 -0
  81. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/epson_lx800/demo.py +0 -0
  82. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/ibm_proprinter_ii/__init__.py +0 -0
  83. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/ibm_proprinter_ii/demo.py +0 -0
  84. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/star_lc10/__init__.py +0 -0
  85. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/star_lc10/demo.py +0 -0
  86. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/star_lc10/generator.py +0 -0
  87. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/model/star_lc10/interpreter.py +0 -0
  88. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/output/pdf/__init__.py +0 -0
  89. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/output/png/__init__.py +0 -0
  90. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/output/png/golden.py +0 -0
  91. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium/transport/raw_tcp/__init__.py +0 -0
  92. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium.egg-info/dependency_links.txt +0 -0
  93. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium.egg-info/requires.txt +0 -0
  94. {papyrium-0.2.0 → papyrium-0.3.0}/src/papyrium.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: papyrium
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: A virtual vintage printer: the bytes a computer sends its printer, printed as a 1980s dot-matrix printer would print them.
5
5
  Author-email: Robert Smallshire <robert@smallshire.org.uk>
6
6
  License-Expression: MIT
@@ -62,12 +62,16 @@ itself; `papyrium demo MODEL` prints one.
62
62
 
63
63
  <table>
64
64
  <tr>
65
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/brother_m1109/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
66
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
67
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
68
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
69
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
70
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
65
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/brother_m1109/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
66
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
67
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
68
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
69
+ </tr>
70
+ <tr>
71
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-panasonic-kx-p1080.png" alt="The top of the panasonic-kx-p1080 demonstration page" width="100%"></a><br><code>panasonic-kx-p1080</code></td>
72
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-panasonic-kx-p1080u.png" alt="The top of the panasonic-kx-p1080u demonstration page" width="100%"></a><br><code>panasonic-kx-p1080u</code></td>
73
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
74
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
71
75
  </tr>
72
76
  </table>
73
77
 
@@ -118,21 +122,26 @@ connection open for its whole life.
118
122
  ```
119
123
  $ papyrium list-models
120
124
  Models
121
- ┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
122
- ┃ Name ┃ Description ┃
123
- ┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
124
- │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
125
- │ │ in its Mode I. │
126
- │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
127
- │ │ speaking ESC/P. │
128
- │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
129
- │ │ speaking ESC/P. │
130
- │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
131
- │ │ printer speaking │
132
- │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
133
- │ │ speaking ESC/P or, │
134
- │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour ribbon. │
135
- └───────────────────┴──────────────────────────────────────────────────────────┘
125
+ ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
126
+ ┃ Name ┃ Description ┃
127
+ ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
128
+ │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
129
+ │ │ in its Mode I. │
130
+ │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
131
+ │ │ speaking ESC/P. │
132
+ │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
133
+ │ │ speaking ESC/P. │
134
+ │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
135
+ │ │ printer speaking │
136
+ │ panasonic-kx-p1080 │ Panasonic KX-P1080: an 80-column, 9-pin dot-matrix │
137
+ │ │ printer speaking ESC/P. │
138
+ │ panasonic-kx-p1080u │ Panasonic KX-P1080U: the KX-P1080 for the UK, its │
139
+ │ │ firmware Papyrium's source. │
140
+ │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
141
+ │ │ speaking ESC/P or, │
142
+ │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour │
143
+ │ │ ribbon. │
144
+ └─────────────────────┴────────────────────────────────────────────────────────┘
136
145
 
137
146
  $ papyrium list-fonts
138
147
  Fonts
@@ -141,6 +150,15 @@ $ papyrium list-fonts
141
150
  ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
142
151
  │ draft-9 │ An original 9-pin draft font in the │
143
152
  │ │ style of 1980s dot-matrix printers. │
153
+ │ kx-p1080-draft │ The KX-P1080U's draft font, extracted │
154
+ │ │ from its CPU's internal ROM. │
155
+ │ kx-p1080-draft-italic │ The KX-P1080U's draft italics, │
156
+ │ │ extracted from its CPU's internal │
157
+ │ │ ROM. │
158
+ │ kx-p1080-nlq │ The KX-P1080U's near letter quality │
159
+ │ │ font, extracted from its EPROM. │
160
+ │ kx-p1080-nlq-italic │ The KX-P1080U's NLQ italics, slanted │
161
+ │ │ as the printer slants them. │
144
162
  │ lc10-block-graphics │ The Star LC-10's IBM block graphics, │
145
163
  │ │ extracted from its firmware ROM. │
146
164
  │ lc10-draft │ The Star LC-10's pica draft font, │
@@ -292,9 +310,15 @@ to it, its modules joining the `papyrium` namespace beside these:
292
310
  | | `epson-fx80` | Epson FX-80: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_fx80`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/) |
293
311
  | | `epson-lx800` | Epson LX-800: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/) |
294
312
  | | `ibm-proprinter-ii` | IBM Proprinter II: an 80-column, 9-wire dot-matrix printer speaking | [`papyrium.model.ibm_proprinter_ii`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/) |
313
+ | | `panasonic-kx-p1080` | Panasonic KX-P1080: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) |
314
+ | | `panasonic-kx-p1080u` | Panasonic KX-P1080U: the KX-P1080 for the UK, its firmware Papyrium's source | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) |
295
315
  | | `star-lc10` | Star LC-10: an 80-column, 9-pin dot-matrix printer speaking ESC/P or, | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) |
296
316
  | | `star-lc10-colour` | Star LC-10 Colour: the LC-10 with a four-colour ribbon | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) |
297
317
  | Fonts stand in for character ROMs | `draft-9` | An original 9-pin draft font in the style of 1980s dot-matrix printers | [`papyrium.font.draft_9`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/draft_9/) |
318
+ | | `kx-p1080-draft` | The KX-P1080U's draft font, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
319
+ | | `kx-p1080-draft-italic` | The KX-P1080U's draft italics, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
320
+ | | `kx-p1080-nlq` | The KX-P1080U's near letter quality font, extracted from its EPROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
321
+ | | `kx-p1080-nlq-italic` | The KX-P1080U's NLQ italics, slanted as the printer slants them | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
298
322
  | | `lc10-block-graphics` | The Star LC-10's IBM block graphics, extracted from its firmware ROM | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
299
323
  | | `lc10-draft` | The Star LC-10's pica draft font, made as the printer makes it | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
300
324
  | | `lc10-draft-elite` | The Star LC-10's elite draft font, extracted from its firmware ROM | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
@@ -329,8 +353,10 @@ and their tests under `tests/`, in the same arrangement:
329
353
  | [`papyrium.model.epson_fx80`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/) | The Epson FX-80 9-pin dot-matrix printer |
330
354
  | [`papyrium.model.epson_lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/) | The Epson LX-800 9-pin dot-matrix printer |
331
355
  | [`papyrium.model.ibm_proprinter_ii`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/) | The IBM Proprinter II 9-wire dot-matrix printer |
356
+ | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) | The Panasonic KX-P1080 and KX-P1080U 9-pin dot-matrix printers |
332
357
  | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) | The Star LC-10 and LC-10 Colour 9-pin dot-matrix printers |
333
358
  | [`papyrium.font.draft_9`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/draft_9/) | draft-9: a 9-pin dot-matrix font designed for Papyrium |
359
+ | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) | The Panasonic KX-P1080U's draft and near letter quality fonts, from its firmware |
334
360
  | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) | The Star LC-10's draft and near letter quality fonts, from its firmware |
335
361
  | [`papyrium.font.lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lx800/) | The Epson LX-800's draft and near letter quality Roman fonts, from its firmware |
336
362
  | [`papyrium.font.m1109`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/m1109/) | The Brother M-1109's draft and NLQ fonts, reconstructed from its printed output |
@@ -340,9 +366,10 @@ and their tests under `tests/`, in the same arrangement:
340
366
  | [`papyrium.cli`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/cli/) | The ``papyrium`` command: run a virtual vintage printer and inspect its jobs |
341
367
 
342
368
  `docs/specification.md` is the design as handed over from Beebium.
343
- `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md` and
344
- `docs/star-lc-10.md` record the behaviour Papyrium follows, from the
345
- manufacturers' manuals, and `CLAUDE.md` records the working practices.
369
+ `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md`,
370
+ `docs/star-lc-10.md`, `docs/ibm-proprinter-ii.md` and
371
+ `docs/panasonic-kx-p1080.md` record the behaviour Papyrium follows, from
372
+ the manufacturers' manuals and firmware, and `CLAUDE.md` records the working practices.
346
373
 
347
374
  ## Development
348
375
 
@@ -30,12 +30,16 @@ itself; `papyrium demo MODEL` prints one.
30
30
 
31
31
  <table>
32
32
  <tr>
33
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/brother_m1109/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
34
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
35
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
36
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
37
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
38
- <td width="17%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
33
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/brother_m1109/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
34
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
35
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
36
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
37
+ </tr>
38
+ <tr>
39
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-panasonic-kx-p1080.png" alt="The top of the panasonic-kx-p1080 demonstration page" width="100%"></a><br><code>panasonic-kx-p1080</code></td>
40
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-panasonic-kx-p1080u.png" alt="The top of the panasonic-kx-p1080u demonstration page" width="100%"></a><br><code>panasonic-kx-p1080u</code></td>
41
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
42
+ <td width="25%" valign="top"><a href="https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/"><img src="https://raw.githubusercontent.com/rob-smallshire/papyrium/master/docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
39
43
  </tr>
40
44
  </table>
41
45
 
@@ -86,21 +90,26 @@ connection open for its whole life.
86
90
  ```
87
91
  $ papyrium list-models
88
92
  Models
89
- ┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
90
- ┃ Name ┃ Description ┃
91
- ┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
92
- │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
93
- │ │ in its Mode I. │
94
- │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
95
- │ │ speaking ESC/P. │
96
- │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
97
- │ │ speaking ESC/P. │
98
- │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
99
- │ │ printer speaking │
100
- │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
101
- │ │ speaking ESC/P or, │
102
- │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour ribbon. │
103
- └───────────────────┴──────────────────────────────────────────────────────────┘
93
+ ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
94
+ ┃ Name ┃ Description ┃
95
+ ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
96
+ │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
97
+ │ │ in its Mode I. │
98
+ │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
99
+ │ │ speaking ESC/P. │
100
+ │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
101
+ │ │ speaking ESC/P. │
102
+ │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
103
+ │ │ printer speaking │
104
+ │ panasonic-kx-p1080 │ Panasonic KX-P1080: an 80-column, 9-pin dot-matrix │
105
+ │ │ printer speaking ESC/P. │
106
+ │ panasonic-kx-p1080u │ Panasonic KX-P1080U: the KX-P1080 for the UK, its │
107
+ │ │ firmware Papyrium's source. │
108
+ │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
109
+ │ │ speaking ESC/P or, │
110
+ │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour │
111
+ │ │ ribbon. │
112
+ └─────────────────────┴────────────────────────────────────────────────────────┘
104
113
 
105
114
  $ papyrium list-fonts
106
115
  Fonts
@@ -109,6 +118,15 @@ $ papyrium list-fonts
109
118
  ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
110
119
  │ draft-9 │ An original 9-pin draft font in the │
111
120
  │ │ style of 1980s dot-matrix printers. │
121
+ │ kx-p1080-draft │ The KX-P1080U's draft font, extracted │
122
+ │ │ from its CPU's internal ROM. │
123
+ │ kx-p1080-draft-italic │ The KX-P1080U's draft italics, │
124
+ │ │ extracted from its CPU's internal │
125
+ │ │ ROM. │
126
+ │ kx-p1080-nlq │ The KX-P1080U's near letter quality │
127
+ │ │ font, extracted from its EPROM. │
128
+ │ kx-p1080-nlq-italic │ The KX-P1080U's NLQ italics, slanted │
129
+ │ │ as the printer slants them. │
112
130
  │ lc10-block-graphics │ The Star LC-10's IBM block graphics, │
113
131
  │ │ extracted from its firmware ROM. │
114
132
  │ lc10-draft │ The Star LC-10's pica draft font, │
@@ -260,9 +278,15 @@ to it, its modules joining the `papyrium` namespace beside these:
260
278
  | | `epson-fx80` | Epson FX-80: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_fx80`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/) |
261
279
  | | `epson-lx800` | Epson LX-800: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/) |
262
280
  | | `ibm-proprinter-ii` | IBM Proprinter II: an 80-column, 9-wire dot-matrix printer speaking | [`papyrium.model.ibm_proprinter_ii`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/) |
281
+ | | `panasonic-kx-p1080` | Panasonic KX-P1080: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) |
282
+ | | `panasonic-kx-p1080u` | Panasonic KX-P1080U: the KX-P1080 for the UK, its firmware Papyrium's source | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) |
263
283
  | | `star-lc10` | Star LC-10: an 80-column, 9-pin dot-matrix printer speaking ESC/P or, | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) |
264
284
  | | `star-lc10-colour` | Star LC-10 Colour: the LC-10 with a four-colour ribbon | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) |
265
285
  | Fonts stand in for character ROMs | `draft-9` | An original 9-pin draft font in the style of 1980s dot-matrix printers | [`papyrium.font.draft_9`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/draft_9/) |
286
+ | | `kx-p1080-draft` | The KX-P1080U's draft font, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
287
+ | | `kx-p1080-draft-italic` | The KX-P1080U's draft italics, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
288
+ | | `kx-p1080-nlq` | The KX-P1080U's near letter quality font, extracted from its EPROM | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
289
+ | | `kx-p1080-nlq-italic` | The KX-P1080U's NLQ italics, slanted as the printer slants them | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) |
266
290
  | | `lc10-block-graphics` | The Star LC-10's IBM block graphics, extracted from its firmware ROM | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
267
291
  | | `lc10-draft` | The Star LC-10's pica draft font, made as the printer makes it | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
268
292
  | | `lc10-draft-elite` | The Star LC-10's elite draft font, extracted from its firmware ROM | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) |
@@ -297,8 +321,10 @@ and their tests under `tests/`, in the same arrangement:
297
321
  | [`papyrium.model.epson_fx80`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_fx80/) | The Epson FX-80 9-pin dot-matrix printer |
298
322
  | [`papyrium.model.epson_lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/epson_lx800/) | The Epson LX-800 9-pin dot-matrix printer |
299
323
  | [`papyrium.model.ibm_proprinter_ii`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/ibm_proprinter_ii/) | The IBM Proprinter II 9-wire dot-matrix printer |
324
+ | [`papyrium.model.panasonic_kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/panasonic_kx_p1080/) | The Panasonic KX-P1080 and KX-P1080U 9-pin dot-matrix printers |
300
325
  | [`papyrium.model.star_lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/model/star_lc10/) | The Star LC-10 and LC-10 Colour 9-pin dot-matrix printers |
301
326
  | [`papyrium.font.draft_9`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/draft_9/) | draft-9: a 9-pin dot-matrix font designed for Papyrium |
327
+ | [`papyrium.font.kx_p1080`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/kx_p1080/) | The Panasonic KX-P1080U's draft and near letter quality fonts, from its firmware |
302
328
  | [`papyrium.font.lc10`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lc10/) | The Star LC-10's draft and near letter quality fonts, from its firmware |
303
329
  | [`papyrium.font.lx800`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/lx800/) | The Epson LX-800's draft and near letter quality Roman fonts, from its firmware |
304
330
  | [`papyrium.font.m1109`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/font/m1109/) | The Brother M-1109's draft and NLQ fonts, reconstructed from its printed output |
@@ -308,9 +334,10 @@ and their tests under `tests/`, in the same arrangement:
308
334
  | [`papyrium.cli`](https://github.com/rob-smallshire/papyrium/blob/master/src/papyrium/cli/) | The ``papyrium`` command: run a virtual vintage printer and inspect its jobs |
309
335
 
310
336
  `docs/specification.md` is the design as handed over from Beebium.
311
- `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md` and
312
- `docs/star-lc-10.md` record the behaviour Papyrium follows, from the
313
- manufacturers' manuals, and `CLAUDE.md` records the working practices.
337
+ `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md`,
338
+ `docs/star-lc-10.md`, `docs/ibm-proprinter-ii.md` and
339
+ `docs/panasonic-kx-p1080.md` record the behaviour Papyrium follows, from
340
+ the manufacturers' manuals and firmware, and `CLAUDE.md` records the working practices.
314
341
 
315
342
  ## Development
316
343
 
@@ -30,12 +30,16 @@ itself; `papyrium demo MODEL` prints one.
30
30
 
31
31
  <table>
32
32
  <tr>
33
- <td width="17%" valign="top"><a href="src/papyrium/model/brother_m1109/"><img src="docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
34
- <td width="17%" valign="top"><a href="src/papyrium/model/epson_fx80/"><img src="docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
35
- <td width="17%" valign="top"><a href="src/papyrium/model/epson_lx800/"><img src="docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
36
- <td width="17%" valign="top"><a href="src/papyrium/model/ibm_proprinter_ii/"><img src="docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
37
- <td width="17%" valign="top"><a href="src/papyrium/model/star_lc10/"><img src="docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
38
- <td width="17%" valign="top"><a href="src/papyrium/model/star_lc10/"><img src="docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
33
+ <td width="25%" valign="top"><a href="src/papyrium/model/brother_m1109/"><img src="docs/images/demo-top-brother-m1109.png" alt="The top of the brother-m1109 demonstration page" width="100%"></a><br><code>brother-m1109</code></td>
34
+ <td width="25%" valign="top"><a href="src/papyrium/model/epson_fx80/"><img src="docs/images/demo-top-epson-fx80.png" alt="The top of the epson-fx80 demonstration page" width="100%"></a><br><code>epson-fx80</code></td>
35
+ <td width="25%" valign="top"><a href="src/papyrium/model/epson_lx800/"><img src="docs/images/demo-top-epson-lx800.png" alt="The top of the epson-lx800 demonstration page" width="100%"></a><br><code>epson-lx800</code></td>
36
+ <td width="25%" valign="top"><a href="src/papyrium/model/ibm_proprinter_ii/"><img src="docs/images/demo-top-ibm-proprinter-ii.png" alt="The top of the ibm-proprinter-ii demonstration page" width="100%"></a><br><code>ibm-proprinter-ii</code></td>
37
+ </tr>
38
+ <tr>
39
+ <td width="25%" valign="top"><a href="src/papyrium/model/panasonic_kx_p1080/"><img src="docs/images/demo-top-panasonic-kx-p1080.png" alt="The top of the panasonic-kx-p1080 demonstration page" width="100%"></a><br><code>panasonic-kx-p1080</code></td>
40
+ <td width="25%" valign="top"><a href="src/papyrium/model/panasonic_kx_p1080/"><img src="docs/images/demo-top-panasonic-kx-p1080u.png" alt="The top of the panasonic-kx-p1080u demonstration page" width="100%"></a><br><code>panasonic-kx-p1080u</code></td>
41
+ <td width="25%" valign="top"><a href="src/papyrium/model/star_lc10/"><img src="docs/images/demo-top-star-lc10.png" alt="The top of the star-lc10 demonstration page" width="100%"></a><br><code>star-lc10</code></td>
42
+ <td width="25%" valign="top"><a href="src/papyrium/model/star_lc10/"><img src="docs/images/demo-top-star-lc10-colour.png" alt="The top of the star-lc10-colour demonstration page" width="100%"></a><br><code>star-lc10-colour</code></td>
39
43
  </tr>
40
44
  </table>
41
45
 
@@ -86,21 +90,26 @@ connection open for its whole life.
86
90
  ```
87
91
  $ papyrium list-models
88
92
  Models
89
- ┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
90
- ┃ Name ┃ Description ┃
91
- ┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
92
- │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
93
- │ │ in its Mode I. │
94
- │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
95
- │ │ speaking ESC/P. │
96
- │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
97
- │ │ speaking ESC/P. │
98
- │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
99
- │ │ printer speaking │
100
- │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
101
- │ │ speaking ESC/P or, │
102
- │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour ribbon. │
103
- └───────────────────┴──────────────────────────────────────────────────────────┘
93
+ ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
94
+ ┃ Name ┃ Description ┃
95
+ ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
96
+ │ brother-m1109 │ Brother M-1109: an 80-column, 9-pin dot-matrix printer │
97
+ │ │ in its Mode I. │
98
+ │ epson-fx80 │ Epson FX-80: an 80-column, 9-pin dot-matrix printer │
99
+ │ │ speaking ESC/P. │
100
+ │ epson-lx800 │ Epson LX-800: an 80-column, 9-pin dot-matrix printer │
101
+ │ │ speaking ESC/P. │
102
+ │ ibm-proprinter-ii │ IBM Proprinter II: an 80-column, 9-wire dot-matrix │
103
+ │ │ printer speaking │
104
+ │ panasonic-kx-p1080 │ Panasonic KX-P1080: an 80-column, 9-pin dot-matrix │
105
+ │ │ printer speaking ESC/P. │
106
+ │ panasonic-kx-p1080u │ Panasonic KX-P1080U: the KX-P1080 for the UK, its │
107
+ │ │ firmware Papyrium's source. │
108
+ │ star-lc10 │ Star LC-10: an 80-column, 9-pin dot-matrix printer │
109
+ │ │ speaking ESC/P or, │
110
+ │ star-lc10-colour │ Star LC-10 Colour: the LC-10 with a four-colour │
111
+ │ │ ribbon. │
112
+ └─────────────────────┴────────────────────────────────────────────────────────┘
104
113
 
105
114
  $ papyrium list-fonts
106
115
  Fonts
@@ -109,6 +118,15 @@ $ papyrium list-fonts
109
118
  ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
110
119
  │ draft-9 │ An original 9-pin draft font in the │
111
120
  │ │ style of 1980s dot-matrix printers. │
121
+ │ kx-p1080-draft │ The KX-P1080U's draft font, extracted │
122
+ │ │ from its CPU's internal ROM. │
123
+ │ kx-p1080-draft-italic │ The KX-P1080U's draft italics, │
124
+ │ │ extracted from its CPU's internal │
125
+ │ │ ROM. │
126
+ │ kx-p1080-nlq │ The KX-P1080U's near letter quality │
127
+ │ │ font, extracted from its EPROM. │
128
+ │ kx-p1080-nlq-italic │ The KX-P1080U's NLQ italics, slanted │
129
+ │ │ as the printer slants them. │
112
130
  │ lc10-block-graphics │ The Star LC-10's IBM block graphics, │
113
131
  │ │ extracted from its firmware ROM. │
114
132
  │ lc10-draft │ The Star LC-10's pica draft font, │
@@ -260,9 +278,15 @@ to it, its modules joining the `papyrium` namespace beside these:
260
278
  | | `epson-fx80` | Epson FX-80: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_fx80`](src/papyrium/model/epson_fx80/) |
261
279
  | | `epson-lx800` | Epson LX-800: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.epson_lx800`](src/papyrium/model/epson_lx800/) |
262
280
  | | `ibm-proprinter-ii` | IBM Proprinter II: an 80-column, 9-wire dot-matrix printer speaking | [`papyrium.model.ibm_proprinter_ii`](src/papyrium/model/ibm_proprinter_ii/) |
281
+ | | `panasonic-kx-p1080` | Panasonic KX-P1080: an 80-column, 9-pin dot-matrix printer speaking ESC/P | [`papyrium.model.panasonic_kx_p1080`](src/papyrium/model/panasonic_kx_p1080/) |
282
+ | | `panasonic-kx-p1080u` | Panasonic KX-P1080U: the KX-P1080 for the UK, its firmware Papyrium's source | [`papyrium.model.panasonic_kx_p1080`](src/papyrium/model/panasonic_kx_p1080/) |
263
283
  | | `star-lc10` | Star LC-10: an 80-column, 9-pin dot-matrix printer speaking ESC/P or, | [`papyrium.model.star_lc10`](src/papyrium/model/star_lc10/) |
264
284
  | | `star-lc10-colour` | Star LC-10 Colour: the LC-10 with a four-colour ribbon | [`papyrium.model.star_lc10`](src/papyrium/model/star_lc10/) |
265
285
  | Fonts stand in for character ROMs | `draft-9` | An original 9-pin draft font in the style of 1980s dot-matrix printers | [`papyrium.font.draft_9`](src/papyrium/font/draft_9/) |
286
+ | | `kx-p1080-draft` | The KX-P1080U's draft font, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](src/papyrium/font/kx_p1080/) |
287
+ | | `kx-p1080-draft-italic` | The KX-P1080U's draft italics, extracted from its CPU's internal ROM | [`papyrium.font.kx_p1080`](src/papyrium/font/kx_p1080/) |
288
+ | | `kx-p1080-nlq` | The KX-P1080U's near letter quality font, extracted from its EPROM | [`papyrium.font.kx_p1080`](src/papyrium/font/kx_p1080/) |
289
+ | | `kx-p1080-nlq-italic` | The KX-P1080U's NLQ italics, slanted as the printer slants them | [`papyrium.font.kx_p1080`](src/papyrium/font/kx_p1080/) |
266
290
  | | `lc10-block-graphics` | The Star LC-10's IBM block graphics, extracted from its firmware ROM | [`papyrium.font.lc10`](src/papyrium/font/lc10/) |
267
291
  | | `lc10-draft` | The Star LC-10's pica draft font, made as the printer makes it | [`papyrium.font.lc10`](src/papyrium/font/lc10/) |
268
292
  | | `lc10-draft-elite` | The Star LC-10's elite draft font, extracted from its firmware ROM | [`papyrium.font.lc10`](src/papyrium/font/lc10/) |
@@ -297,8 +321,10 @@ and their tests under `tests/`, in the same arrangement:
297
321
  | [`papyrium.model.epson_fx80`](src/papyrium/model/epson_fx80/) | The Epson FX-80 9-pin dot-matrix printer |
298
322
  | [`papyrium.model.epson_lx800`](src/papyrium/model/epson_lx800/) | The Epson LX-800 9-pin dot-matrix printer |
299
323
  | [`papyrium.model.ibm_proprinter_ii`](src/papyrium/model/ibm_proprinter_ii/) | The IBM Proprinter II 9-wire dot-matrix printer |
324
+ | [`papyrium.model.panasonic_kx_p1080`](src/papyrium/model/panasonic_kx_p1080/) | The Panasonic KX-P1080 and KX-P1080U 9-pin dot-matrix printers |
300
325
  | [`papyrium.model.star_lc10`](src/papyrium/model/star_lc10/) | The Star LC-10 and LC-10 Colour 9-pin dot-matrix printers |
301
326
  | [`papyrium.font.draft_9`](src/papyrium/font/draft_9/) | draft-9: a 9-pin dot-matrix font designed for Papyrium |
327
+ | [`papyrium.font.kx_p1080`](src/papyrium/font/kx_p1080/) | The Panasonic KX-P1080U's draft and near letter quality fonts, from its firmware |
302
328
  | [`papyrium.font.lc10`](src/papyrium/font/lc10/) | The Star LC-10's draft and near letter quality fonts, from its firmware |
303
329
  | [`papyrium.font.lx800`](src/papyrium/font/lx800/) | The Epson LX-800's draft and near letter quality Roman fonts, from its firmware |
304
330
  | [`papyrium.font.m1109`](src/papyrium/font/m1109/) | The Brother M-1109's draft and NLQ fonts, reconstructed from its printed output |
@@ -308,9 +334,10 @@ and their tests under `tests/`, in the same arrangement:
308
334
  | [`papyrium.cli`](src/papyrium/cli/) | The ``papyrium`` command: run a virtual vintage printer and inspect its jobs |
309
335
 
310
336
  `docs/specification.md` is the design as handed over from Beebium.
311
- `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md` and
312
- `docs/star-lc-10.md` record the behaviour Papyrium follows, from the
313
- manufacturers' manuals, and `CLAUDE.md` records the working practices.
337
+ `docs/epson-fx80.md`, `docs/epson-lx800.md`, `docs/brother-m1109.md`,
338
+ `docs/star-lc-10.md`, `docs/ibm-proprinter-ii.md` and
339
+ `docs/panasonic-kx-p1080.md` record the behaviour Papyrium follows, from
340
+ the manufacturers' manuals and firmware, and `CLAUDE.md` records the working practices.
314
341
 
315
342
  ## Development
316
343
 
@@ -13,7 +13,7 @@ build-backend = "setuptools.build_meta"
13
13
 
14
14
  [project]
15
15
  name = "papyrium"
16
- version = "0.2.0"
16
+ version = "0.3.0"
17
17
  description = "A virtual vintage printer: the bytes a computer sends its printer, printed as a 1980s dot-matrix printer would print them."
18
18
  readme = "README-pypi.md"
19
19
  license = "MIT"
@@ -56,6 +56,10 @@ mdns = "papyrium.advertiser.mdns:MdnsAdvertiser"
56
56
 
57
57
  [project.entry-points."papyrium.font"]
58
58
  draft-9 = "papyrium.font.draft_9:Draft9Font"
59
+ kx-p1080-draft = "papyrium.font.kx_p1080:KXP1080DraftFont"
60
+ kx-p1080-draft-italic = "papyrium.font.kx_p1080:KXP1080DraftItalicFont"
61
+ kx-p1080-nlq = "papyrium.font.kx_p1080:KXP1080NlqFont"
62
+ kx-p1080-nlq-italic = "papyrium.font.kx_p1080:KXP1080NlqItalicFont"
59
63
  lc10-block-graphics = "papyrium.font.lc10:LC10BlockGraphicsFont"
60
64
  lc10-draft = "papyrium.font.lc10:LC10DraftFont"
61
65
  lc10-draft-elite = "papyrium.font.lc10:LC10DraftEliteFont"
@@ -80,6 +84,8 @@ proprinter = "papyrium.language.proprinter:ProprinterLanguage"
80
84
  brother-m1109 = "papyrium.model.brother_m1109:BrotherM1109"
81
85
  epson-fx80 = "papyrium.model.epson_fx80:EpsonFx80"
82
86
  epson-lx800 = "papyrium.model.epson_lx800:EpsonLX800"
87
+ panasonic-kx-p1080 = "papyrium.model.panasonic_kx_p1080:PanasonicKXP1080"
88
+ panasonic-kx-p1080u = "papyrium.model.panasonic_kx_p1080:PanasonicKXP1080U"
83
89
  ibm-proprinter-ii = "papyrium.model.ibm_proprinter_ii:IBMProprinterII"
84
90
  star-lc10 = "papyrium.model.star_lc10:StarLC10"
85
91
  star-lc10-colour = "papyrium.model.star_lc10:StarLC10Colour"
@@ -130,7 +136,7 @@ readme = [
130
136
  # uv run bump-my-version bump minor (or major, patch)
131
137
  # which commits and tags v<version>; pushing the tag releases to PyPI.
132
138
  [tool.bumpversion]
133
- current_version = "0.2.0"
139
+ current_version = "0.3.0"
134
140
  commit = true
135
141
  tag = true
136
142
  tag_name = "v{new_version}"
@@ -160,6 +166,7 @@ testpaths = [
160
166
  "tests/font/m1109",
161
167
  "tests/font/lx800",
162
168
  "tests/font/lc10",
169
+ "tests/font/kx_p1080",
163
170
  "tests/language/escp",
164
171
  "tests/language/proprinter",
165
172
  "tests/model/epson_fx80",
@@ -167,6 +174,7 @@ testpaths = [
167
174
  "tests/model/epson_lx800",
168
175
  "tests/model/star_lc10",
169
176
  "tests/model/ibm_proprinter_ii",
177
+ "tests/model/panasonic_kx_p1080",
170
178
  "tests/output/pdf",
171
179
  "tests/advertiser/mdns",
172
180
  ]
@@ -0,0 +1,57 @@
1
+ """The Panasonic KX-P1080U's draft and near letter quality fonts, from its firmware."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from papyrium.core.dotfont import DataDotFont
6
+
7
+ __all__ = [
8
+ "KXP1080DraftFont",
9
+ "KXP1080DraftItalicFont",
10
+ "KXP1080NlqFont",
11
+ "KXP1080NlqItalicFont",
12
+ ]
13
+
14
+
15
+ class KXP1080DraftFont(DataDotFont):
16
+ """The KX-P1080U's draft font, extracted from its CPU's internal ROM.
17
+
18
+ 9 rows, pins 1-9, by 12 columns 1/120 inch apart, the last three
19
+ blank. The ROM lowers a character two pins column by column, so a j's
20
+ hook reaches the ninth pin while its stem does not. A few characters
21
+ have a dot in successive columns, as in the ROM. Covers printable
22
+ ASCII, the 32 international characters and the slashed zero.
23
+ """
24
+
25
+ font_filename = "draft.txt"
26
+
27
+
28
+ class KXP1080DraftItalicFont(DataDotFont):
29
+ """The KX-P1080U's draft italics, extracted from its CPU's internal ROM.
30
+
31
+ The ROM stores them drawn slanted. Laid out as kx-p1080-draft.
32
+ """
33
+
34
+ font_filename = "draft-italic.txt"
35
+
36
+
37
+ class KXP1080NlqFont(DataDotFont):
38
+ """The KX-P1080U's near letter quality font, extracted from its EPROM.
39
+
40
+ 18 rows: the pins of the first pass on even rows and of the second on
41
+ odd rows, a character with a descender a pin (two rows) lower; 24
42
+ columns 1/240 inch apart. Built as the printer builds it, so no pin
43
+ fires in successive columns. Covers the same characters as draft.
44
+ """
45
+
46
+ font_filename = "nlq.txt"
47
+
48
+
49
+ class KXP1080NlqItalicFont(DataDotFont):
50
+ """The KX-P1080U's NLQ italics, slanted as the printer slants them.
51
+
52
+ kx-p1080-nlq slanted as the printer does at print time: each pass's
53
+ pins taken in pairs from the bottom, each pair one column further right
54
+ than the pair below. Laid out as kx-p1080-nlq.
55
+ """
56
+
57
+ font_filename = "nlq-italic.txt"