-
Notifications
You must be signed in to change notification settings - Fork 5
/
FRAPT.TXT
391 lines (272 loc) · 17.1 KB
/
FRAPT.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
±Ü'
þ ÞÜ' þÜ ø Ü
Þþ ßÜ ÛÜ' þÜù Ýþ ßþÜß Þ±
þÜÜÛÛÛÜÛÜÝÜþÜÛÜþ Þ Û° ÜÛù °Û° Üß ßþ ÞÄ.
À²Û Á þÜ Üß Üþ²ÞÛÜÛÛÜÜÜÍ ÜÛÌù ßþÜÜ, ÛÜÜÜÍ' Ü ³ ÛÄ.
°ÞÝ Ü ÜÛÛÜ _Û Þ² ßþÜ ±ÛÞÛ þÜÜ ßßÛÛ²ßþß ßþ ܱÜß × ³ÛÄ.
"ËÛ ÞÛß °ß²Ü Üþ ðÛ þÛÛ ²ÛßÜ Ü Ü°ÛܲÛß-ÛÛÜ ÞÛß ²Ý ÜÛß ² ÛÜÛÄ ºÛßþ-
"˲² ß ²Ü ÜÛßÜ Þ² ÝÛÜ ÞÝÜÛ± ÞÛà ÝÛ -Û ßÛ ²ß ÞÝ ÜÛÝ ±Û ßÛÜ ÞÛßþ-
"ËÛ ßÛ²ß ÜÛ²Ü Ý± Û°ß²Ûß Û ²ÝÜ Þ± ÛÜßÛÝ þÛÆÄ Û¿ þ±ÛÜßÛßÛÜ Ûßþ-
þÜ°Û²ÜÜ þß Û± ßÛÜÛÝ ÞÛÄÜÛþÛÜ ±Ý ù¶Ýþ ß²ßÛÜÌÙßÜß ±ÆÄ ßIJ ÜÛÜ ÛÝ-ßÛÛþ-
Ûßþß ßþ ÜÛÞ ßÛÜ Þ²Ä Û ÙßÛ_ß ù¶² Û "ß Þ²þ ²ÆÄ ÛÛß Þ ÛÜ ÛÛÜ
ÞÛ Ü²Ý Üßþ ÛÄÞ² ÙßÜ_ ùÞÞß Ý±Ý ÄÜÛþ Û þ" þ ÛÜ Þ ß
ß²Ý -V! ÜÛ þ Þ Ýß ø þ ßÛþ Þ²þ Ý Þ² ±
þÞÜ- Þ ß Ø þ Ø ÄÛ | Û±
ÛÜ- Ø × Þ
²Ü- úù[ F O N T R A P T I O N ]ùú Ø ùCþRþTþCù À_
Þ úù[ v1.2 - 9/2024 ]ùú
Ø
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WHAT'S THIS?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
There are many VGA text mode font editors out in the wild: the "classic" one
is FONTEDIT, published in PC Magazine all the way back in 1988. They're all
functional, but either lack some niceties or have certain annoyances, so
here's yet another go at the concept.
Fontraption's key features:
* Edit two fonts at a time, using tabs to keep the UI consistent
* Flexible clipboard transfer of full/partial characters or character ranges
* Various block manipulation functions: flip X/Y, fill/erase, invert, slide
* Grab any of the built-in fonts from the VGA BIOS ROM
* Save/load as raw binary data; import/export BMP, XBIN and COM (plain/TSR)
* Supports any font height that VGA text mode can handle, up to 32 lines
* Preview your font in 40 or 80 columns (8 or 9 pixels per column)
* Uses pure text mode for speed; runs on any VGA-capable system (8088 and up)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SYSTEM REQUIREMENTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* IBM PC or compatible
* VGA-compatible video
* DOS 3.0+
* 224 KB of free conventional RAM
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DOSBOX USAGE NOTES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
To run this correctly in DOSBox, you'll want to do the following:
1. Use a CURRENT (SVN) build of DOSBox, not 0.74 (or 0.74-2). The latest
DOSBox codebase fixes many issues related to VGA font widths, aspect
correction, scaling, cursor handling, and so on.
DOSBox-X works well too (just set char9 = true in the configuration).
2. Set "machine" to "vgaonly" in your DOSBox config file, otherwise 9-dots-
per-column mode (F8) is disabled. 9 dots is the default with real (S)VGA
hardware, and in DOSBox's "vgaonly" mode, but the "svga"/"vesa" machines
force all text modes to 8 for some reason.
If you REALLY want to, you can force Fontraption to allow 9-dot mode
regardless of DOSBox's machine type, by pressing Ctrl+Alt+9. Just don't
expect things to look right if you do that.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STARTING UP
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Optionally, up to two filenames can be specified on the command line:
FRAPT [file1 [file2]]
If they appear to be valid font files, they will be loaded as fonts 1 and 2
respectively. If you leave out one or both filenames, the VGA font active at
runtime will be used instead.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SUPPORTED FORMATS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fontraption's native font format is raw binary data, as used by the VGA BIOS.
256 characters are stored sequentially, with 8 bits (1 byte) per scanline;
characters may contain up to 32 scanlines each.
The sample fonts use the file extension .Fxx, where 'xx' is the number of
scanlines per character. This is just a convention: the program doesn't
enforce or rely on this naming scheme in any way, so feel free to use any
extension that strikes your fancy.
Other formats may be exported and imported:
* XBIN (fonts embedded in text mode images)
* BMP (monochrome only, i.e. 1 bit per pixel): the image is treated as a
16-by-16 character grid, so its width should be 128 pixels, and the height
16 times the number of scanlines per character.
* COM: as you might guess, this lets you set the active font from the DOS
prompt. The executable can be a one-off font loader, or a TSR that makes
your font 'stick' whenever a text mode is set through the BIOS.
Other than Fontraption's own .COM formats, files produced by FONTEDIT are
also supported (import only).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GUIDE TO OPERATIONS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Hopefully the interface does a decent job of exposing the various functions,
and most of them are self-explanatory, so this section shouldn't really be
needed. But, for the sake of completeness...
* STATUS BAR: the bottom row on the screen. Notices, warnings, prompts, and
sub-menus go here, so keep your eyes peeled.
* FONT TABS: you get two of them, at the top of the working area on the left.
Nothing unexpected here; only the font's file name (if any), and an
asterisk in case of unsaved changes. Simply hit the "1" or "2" keys to
switch the active font.
* THE CHARACTER EDIT BOX: the grid on the left, where you make the magic
happen. These controls are specific to the Edit box:
Cursor keys: Move the cursor around
Space/Enter: Toggle the indicated pixel on/off
Ctrl+Cursor: Drag the current pixel state along with the cursor (with
some very old BIOSes, RShift replaces Ctrl)
LShift+Cursor: Mark a selection - (re)define the rectangular area
affected by clipboard and block operations
_ or | : Create a horizontal or vertical guide respectively, at
the cursor position (press again to clear)
* THE CHARACTER SET BOX, aka the Font box: displays all 256 characters on
the right side of the working area. Any characters with unsaved changes
are highlighted.
The characters may be padded (for font heights up to 16) or chopped up (for
taller fonts), to keep the entire UI more or less consistent. The upshot
is that row heights are misrepresented here, unless your font is exactly
16 lines tall. To get an accurate picture use the Preview feature (F10).
Fontbox-specific controls:
Cursor keys: Navigate through the characters
Space/Enter: Pick a character to edit (feed it to the Edit box)
LShift+Cursor: Select a range of characters, to be affected by
clipboard and block operations
* MISCELLANEOUS/NAVIGATION CONTROLS:
TAB: Switch between the Character Edit and Font boxes
G: Go to character - prompts for a keypress (or a
character code entered with Alt+the numeric keypad)
and selects that character for editing
W: Swap the current character (in the Edit box) with the
character at the Font box cursor
- or +: Select the previous/next character, respectively
* FONT/FILE FUNCTIONS:
Ctrl+S / F2: Save font (raw binary format)
Ctrl+L / F3: Load font (raw binary format)
Ctrl+R: Reload the current font - reverts to the last saved
version
Ctrl+G: Get VGA ROM font - prompts for a font to be loaded from
the VGA firmware, in one of the standard sizes (8x8,
8x14, 9x14, 8x16, 9x16). This just grabs the bitmap
patterns; the displayed width (8/9 dots per character)
must be set with F8
Ctrl+I: Import a supported file type (.COM/.BMP/XBIN); see
"supported formats" above. The filename of an imported
font is left blank - to assign a name, save as a raw
binary font
Ctrl+E: Export a supported file type - prompts for a format
(.COM/.BMP/XBIN). For .COM, you also select for which
text modes the font should persist:
- "None" creates a non-TSR program, which just sets the
font and terminates
- The others will generate a TSR that applies the font
whenever the selected modes are set: 40 columns, 80
columns, or both. If a TSR is already installed, run
it (or any other Fontraption TSR!) again to uninstall.
* HEIGHT ADJUSTMENT - these operations affect the ENTIRE font:
F4: Change font height (1 to 32 lines): adjust with the Up/
Down keys, ENTER accepts, ESC cancels; lines will be
either added or deleted at the bottom
F5: Delete the line at the cursor position (and reduce the
font height by 1)
F6: Insert a blank line at the cursor position (and increase
the font height by 1)
F7: Duplicate the line at the cursor position (and increase
the font height by 1)
* DISPLAY OPTIONS:
F8: Select the width of the character cell, either 8 or 9
pixels (see "DOSBox Usage Notes" above if this option is
greyed out).
This applies to the on-screen display, and is reflected
in the edit box. The 9th column isn't editable; its
content is determined by the VGA hardware (see below).
Shift+F8: Line Graphics - in 9-dot mode, control whether chars C0-
DF (192-223) extend into the 9th column of the character
cell.
For other characters column 9 is always blank, but the
VGA normally makes an exception for this range, where it
duplicates column 8 (to get continuous line-drawing
graphics). This can be disabled, which is good for
fonts *without* line-drawing characters at C0-DF.
F9: Palette - choose from the list to change Fontraption's
color scheme. Some variety for your eyeballs :)
F10: Enter Preview mode - shows a test screen for the current
font. The font's true height IS applied, so you'll want
to go here for an accurate idea of the result.
Also includes a tiled view of the selected character
in a repeating pattern, which is useful for area-
filling bitmaps and that sort of thing.
Controls in preview mode:
Left/Right: Change background color
Up/Down: Change foreground color
F10: Toggle 40 or 80 column mode
T: Edit the top line of preview text
(ENTER accepts, ESC cancels)
Any other key: Return to the editor
* GLOBAL EDIT FUNCTIONS:
Ctrl+A: Select All - highlights the entire contents of the
active box
Ctrl+D: Deselect - clears the selection in the active box
Ctrl+X: Cut region or character/range to the clipboard
Ctrl+C: Copy region or character/range to the clipboard
Ctrl+V: Paste from clipboard - may also be done between the
two fonts (even with different heights), but only if the
clipboard contents match the current box: if you copied
a range from the Font box, it can't be pasted in the
Edit box, and vice versa
Ctrl+Z: Undo - reverses the last change you made, no matter how
large (keep in mind that you can only retrace ONE step)
* BLOCK OPERATIONS - the way these functions work may not be 100% intuitive,
so in short: if there's no selection, they apply to the current character.
If a selection exists, they apply to the selected pixels (in the Edit box)
or to the selected character range (in the Font box).
The exception is "Slide", which only works with full characters (so in the
Edit box, any selection is ignored and the entire character is affected).
E: Erase - overwrites block/range with OFF (background)
pixels
F: Fill - overwrites block/range with ON (foreground)
pixels
I: Invert - swaps background with foreground throughout
the selection
X: Flip X - mirrors the selection horizontally
Y: Flip Y - mirrors the selection vertically
S: Slide - use the arrow keys to reposition the current/
selected character(s); pixels moved off the bitmap's
edge will wrap around. Press any other key to return to
the editor
* FINISHING UP:
ESC: Exits Fontraption. If you have unsaved changes in
either font, you'll be reminded and get the chance to
chicken out.
Shift+ESC: As above, but also retains the active font on the screen
after you quit to DOS (like FONTEDIT).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LIMITATIONS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* NO MOUSE SUPPORT. Personally I don't really consider this a limitation -
drawing with the mouse in text mode is something I've always found clumsy
and imprecise, and I've ditched one editor entirely because it let me draw
ONLY with the mouse. The keyboard is just better here, trust me. ;)
* Editing fonts taller than 16 scanlines isn't really an ideal experience,
since it forces the UI into 50-line mode (so the taller Edit box can fit on
the screen without scrolling). This squashes down the Font box, so only
the top 8 scanlines of each character are shown.
This is a compromise, and I'm not thrilled with it... but the only real
alternative would be one of those weird VESA text modes, which would
sacrifice compatibility (and slow down mode changes), or a graphics mode
which would slow things down period. Editing >16-line fonts is still fully
doable anyway, even if you have to hit the Preview key a bit more often.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VERSION HISTORY
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
v1.2 (2024-09-05):
+ Added Line Graphics setting in 9-dot mode (Shift+F8; controls whether
characters C0-DF extend into the 9th column)
+ 9-dot mode is always available if DOSBox-X is detected
+ Lets you cut/copy one character at the cursor, without selecting a range
* Fixed visual glitch with character range selection in certain cases
* Fixed filename sort order in file browser (dots are disregarded)
* Made minor VGA tweaks and optimizations
v1.12 (2024-02-15):
+ Add MIT license
* Bugfix: supports the PS/2 Model P70 plasma display - thanks to Sompi,
Swarm, Lys for reporting/testing
+ Add debug option to single-step VGA initialization (set DEBUGMODE to 1)
v1.11 (2020-09-27):
* Bugfix: undo works correctly after swapping characters
v1.1 (2020-09-12):
* Fixed garbled UI font with some video BIOSes (Tseng Labs ET4000)
+ Preview: Added tiled view of the currently selected character
+ Editor: You can now directly swap two characters with the 'W' key
+ Added a couple of new palettes for good measure
v1.0 (2019-05-22):
* First public release
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CREDITS + GREETS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Written by VileR / THANKS: anormal, genju, harekiet, hell mood, keropi,
(viler@int10h.org) / krille, maze, reenigne, ripsaw8080, scali, trixter