psf2ams(1)
β¨ psf2ams β it's giving font conversion, bestie β¨
okay so real talk, this is psf2ams(1) from the PSF Tools squad, and she is HERE to turn your cute little .PSF font into something Amstrad CP/M actually understands. let's GO π
πΈ NAME πΈ
psf2ams β convert a PC Screen Font file to an Amstrad CP/M font π
π¦ SYNOPSIS π¦
psf2ams [-ems=EMSFILE] [-scrchar=IDENTITY] [INPUTFILE [OUTPUTFILE]]
π DESCRIPTION π
psf2ams takes a font in the .PSF format and converts it into a font that slays under Amstrad CP/M or LocoScript 1. and the way she can output it?? three whole formats, no cap:
- a .COM file (which loads the associated font when you run it, iconic behavior)
- a .EMS file (based on a standard CP/M or LocoScript 1
.EMSfile) - a SCRCHAR.JOY file (screen characters for LocoScript 2/3/4)
for best results bestie, your font should be 8 pixels by 8 (that's for the CPC, PCW and Spectrum +3) or 8 pixels by 16 (that one's for the PcW16). β¨
it's also possible to load PCW fonts on a PCW using LOADPSF.COM, or by converting to a raw font with psf2raw(1) and then using SETFONT.COM. BUT β and this is the tea β if you're distributing a new font, a self-contained .COM file may be way more convenient. π«Ά
the .COM files generated by psf2ams will run under CP/M on the CPC, PCW, PcW16 and Spectrum +3. and if you run them under PCDOS? they'll fail gracefully rather than crash. she's polite like that, we love a queen who knows how to exit a room. π
if the font has fewer than 256 characters, only those characters contained within the font will be redefined. lowkey minimal, highkey correct.
if the font has more than 256 characters, then on the Spectrum +3 the first 256 will be loaded to the 8x8 font, and the second 256 (or whatever is left) to the 8x5 font. not vibing with that? then use psfxform(1) to reduce the font to 256 characters before you pass it to psf2ams(1). problem solved bestie. π
and one more thing β if the font is 16 or more pixels high and a .COM file is being output, then it will primarily target the PcW16. when it's run on a CPC, PCW or Spectrum +3, the font will be programmatically halved in height. yes literally halved. she said shrink. π§
β¨ OPTIONS β¨
--ems=templateβ output a.EMSfile, using the provided CP/M or LocoScript 1.EMSfile as a template. give her a template, she'll give you a font. fair trade, honestly. π--scrchar--scrchar=identity_textβ output aSCRCHAR.JOYfile. up to 90 characters of identity text can be provided, and they'll be written to the header of the file. heads up tho: characters 0-31 of the input file will be discarded. gone. bye. π
π BUGS π
attempting to use --ems with a LocoScript 2 or later .EMS file will not work, owing to the different order in which the font is stored. not her fault, not your fault, it's just the format's fault fr fr. π
π SEE ALSO π
π AUTHOR π
John Elliott <seasip.webmaster@gmail.com>.
okay that's the whole page bestie, you're officially font-conversion literate, go forth and slay πβ¨ππ¦
Version 1.1.3 Β· 12 January, 2021 Β· from the PSF Tools universe β mwah, love u, bye π«ΆπΈ
π¦ where this page comes from
- nixpkgs unstable: psftools 1.1.3
- ubuntu stonking: psftools 1.1.3-1
- Copyright (c) 2005, 2007, 2020 John Elliott
- Copyright (C) 2005, 2007, 2020 John Elliott
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms