More Joy of GDOS* Version 2.2 Gerd Castan ** October, 2nd. 1994 ________________________________ * English version posted in comp.sys.atari.st - German Version posted in de.comp.sys.st and maus.gui.gem ** English translation by Stefan Damerau (cookie@cookie.syd.de) Contents 1 Technical info 2 Introduction 3 Motivation 4 Changes 5 VDI drivers * 5.1 Ink printers 5.2 9pin drivers * 5.3 24pin drivers 5.4 Laser drivers 5.5 Atari laser drivers 5.6 Screen drivers 5.6.1 LineA 5.6.2 Setscreen & Getscreen 5.6.3 NVDI and WARP 9 5.7 Other drivers 5.7.1 Memory drivers 5.7.2 Plotter drivers * 5.8 What's missing 6 Errors + 7 Fonts 7.1 Bitmap fonts 7.2 Vector fonts 7.2.1 FSMGDOS fonts 7.2.2 Bitstream Speedo fonts 7.2.3 Type 1 fonts 7.2.4 TrueType fonts 7.3 Comparison of vector formats 7.3.1 Curves 7.3.2 Hints 7.3.3 Internal resolution * 7.3.4 Linear and optical scaling * 8 Printer 8.1 Marked overview * 9 Programs 10 Utilities 10.1 fontfix 10.2 Outline Fonts 10.3 Printer Driver 10.4 ASSIGN 10.5 FONTCHK 10.6 FONTCNV 10.7 GEMFont 10.8 FontMonger 10.9 Font ID 10.10 X4U + 11 Font selectors + 11.1 UFSL + 11.2 XUFSL + 11.3 Magic from Peter Hellinger + 11.4 FontSel + 11.5 Minimum requirements + 11.6 Desirable properties 12 Distribution 12.1 Atari 12.2 BELA 12.3 Language 12.4 Internet 12.5 Working Title 12.6 XWindows 12.7 COMPO 12.8 IMG-0300 12.9 Others 12.10 FTP 12.11 SciLab + 12.12 Star Division 13 GDOS Versions 13.1 The ones from the bones 13.1.1 Atari-GDOS and AMCGDOS 13.1.2 ABCGDOS 13.1.3 G+Plus 13.2 One step forward 13.2.1 FontGDOS 2.0 13.2.2 FSMGDOS 3.0 13.3 Actual developments 13.3.1 SpeedoGDOS 4.0 and 4.1 13.3.2 Speedo 4.2 13.3.3 Speedo 5.0 13.3.4 NVDI up to V2.51 13.3.5 NVDI 3.0 13.4 Comments 14 Source 15 Tips'n Tricks for users 15.1 Pixeltrash at printing 15.2 NEC P6+ 15.3 Overwritten Speedo faces 16 Tips'n Tricks for coders 16.1 Font size and pixel size 16.2 Selecting drivers * 17 Addresses 18 Miscellaneous 18.1 Critics 18.1.1 Critics to the author 18.1.2 Critics to the translator 18.2 Praise 18.3 For my support 18.4 Trademarks 18.5 Guarantee 19 Appendix 19.1 Literature 1 Technical info My email address will change more than once nexttime. Due to this reason I have an alias, pointing to my actual location - and if it's in the MAUS net: G.Castan@physik.uni-stuttgart.de For easy location of this document at servers and mailboxes, I ask for using the following name(s) and saving the ascii AND TeX versions: FILENAME= gdosi22e gdosinf22e (when using UNIX) CR+LF should be used when saving at UNIX-Fileservers too, not just LF 2 Introduction Actually I'm writing a program, that makes his print-out via GDOS. Looking for printer drivers I faced the problem, that many times no documentation is included to the drivers. Otherwise it may happen that there are different drivers with the same name. Here I have briefly collected my experiences with printer drivers. This collection doesn't generally want to describe coders how to use printer drivers (except to problems not mentioned in literature). And you wont find information about the concept or how to install printer drivers. To get this refer to the list at the end of this FAQ. What I want to exclaim here is more information about the several drivers: o Where are the drivers available? o How to distinguish them? o What are the problem with them? o Which drivers can be used for certain printers? If anybody has more experience or questions, please write me. I will face the work to update this FAQ. Credits: Kay Prisille (MIGRAPH-products, Calligrapher lite) Julian Reschke (IMG-0???) Volker Ritzhaupt Juergen Voorgang (Working Title - products) Herwig Schelauske (Installation of GDOS, name-conventions) Normen Kowalewski (Font-GDOS) Erik Dick (SpeedoGDOS) Patrick Dubbrow Ulrich Rossgoderer (WYSIWYG) Stefan Hintz (CHARLY IMAGE) Ulli 'Huhu' Ramps (Speedo 4.2) Laurenz Pruessner (SLM_HS) Marcel Boom (1st Postcard!) Joerg Tochtenhagen (Misc) Ralf Heckmann (Spellchecker 8-) Gerd Castan. 3 Motivation With GDOS it took me ~2 hours of coding, to get the screen output to the printer in maximum quality. And (almost) with no extra work I get output to printers I even don't know. Whoever wants to write a program with printing options should better take care of the main job of the programm. Nobody wants to pay for printer drivers if there's another program that didn't take the coder extra work with such stuff making this program less expensive (and surely better). The user has - besides the lower price - another advantage. If he uses several programs he needs place for the driver and the fonts only one time on the HD. SpeedoGDOS is available from Atari shops (Atari Competence Center in Germany) now. The (qualified) feedback to my FAQ has - compared to autumn '92 - raised remarkable. Due to Speedo the coder's interest in GDOS seems to be bigger. 4 Changes Beginning with release 2.0 I mark the changes in the contents list above. '+' means a new chapter/info and a '*' stands for changed chapters This chapter will only be used if I have to mention something about the changes S. Damerau of course. Blame me, not Gerd ;-) Gerd has one note about the changes: He hopes to have included all changes noted, but isn't sure because he got a big list of spelling errors in German 2.1 and tried to include the changes there. 5 VDI drivers In this table I have listed distributor, errors and useable fonts. 5.1 Ink printers __________________________________________________________________________ | Name |Date |Length |Distributor |Errors | Others | Fonts | |___________|_________|_______|____________|_1_|_2_|________|____________| | BJ10E |20.11.90 | 45917 | WT | | | |NC | | BJ10 |20.11.85 | 45919 | CL | | | |NC | | BJ10 |28.08.91 | 45660 | BELA | | | |NC | | BJ10 |27.01.92 | 59715 | FontGDOS,I | | n | |NC, OTL | | BJ10 |28.01.93 | 61428 | Speedo | | n | |NC, SPD | | BJ10 |02.07.93 | 63496 | Speedo 4.2 | | n | |NC, SPD | | STYLUS |25.04.94 | 60848 | Speedo 5.0 | | n | |NC,SPD,TT,T1| | HP_LJET |22.02.89 | 45512 | BELA | | | p.g. | LS | | HP_LASER |25.09.89 | 36928 | Atari,I | | | |LS | | LASERJET |06.03.91 | 54517 | Atari | | | |LS | | LASERJET |27.01.92 | 60194 | FontGDOS,I | | n | |LS, OTL | | LASERJET |28.01.93 | 61907 | Speedo | | n | |LS, SPD | | LASERJET |02.07.93 | 64408 | Speedo 4.2 | | n | |LS, SPD | | HPL150 |12.04.86 | 51541 | wt | | |150dpi | LL | | HPL300 |24.04.86 | 51541 | CL,wt | | | |LS | | DESKJET |13.05.92 | 45637 | BELA | | | p. |LS? | | DESKJET |14.05.91 | 46040 | CL,WT | | | p. |300x600 | | DESKJET |06.03.91 | 54285 | Atari,I | | | |LS? | | DESKJET5 |14.05.91 | 46040 | CL,WT | | | delta |LS | | DJ5 |27.01.92 | 60600 | FontGDOS,I | | n | |OTL | | DJ5 |28.01.93 | 62251 | Speedo | | n | |SPD | | DJ5 |02.07.93 | 64319 | Speedo 4.2 | | n | |SPD | | DJ550C |11.10.93 | 68870 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | DJ550C2 |14.04.94 | 68746 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | DJ500C |14.04.94 | 68761 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | DJ510 |17.05.94 | 61921 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | DJ510T |17.05.94 | 61925 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | MT90 |21.12.90 | 44881 | BELA | | |180dpi | SP | | PAINTJET |27.01.92 | 60005 | FontGDOS | | n | |SP, OTL | | PAINTJET |28.01.93 | 61648 | Speedo | | n | |SP, SPD | | PAINTJET |02.07.93 | 63642 | Speedo 4.2 | | n | |SP, SPD | | PAINTJET |14.08.92 | 60173 | I | | | |SP, OTL | |_PAINTJET__|13.10.91_|_45934_|_WT_________|___|___|________|SP__________| Note: The drivers named HP_LJET and DESKJET can be used for (HP compatible) ink and laser printers. The difference is in the transfer to the printer: Packed (p.) or not packed (n.p.). 'Delta' means that the data is delta packed. PAINTJET: 180X180: 2-8 colo(u)rs 90x90: 16 colo(u)rs MT90 is made by Patrick Dubbrow. Ink drivers produce a problem with bitmap fonts. Using 300dpi everything is ok. But 360dpi fonts are optimised for best efforts with pin printers with thick pins. Together with ink printers the fonts look much too thin. Solution: either use 300 [ 600, 1200 :-) ] or exclusively use vector fonts 5.2 9pin drivers ________________________________________________________________________ | Name |Date |Lenght |Distributor |Errors | Others | Fonts | |___________|_________|_______|____________|_1_|_2_|________|__________| | FX240DPI |22.12.89 | 45396 | BELA | y | | |SR | | FX80 |22.12.89 | 45396 | BELA,wt | n | | |EP | | FX80_2 |12.06.91 | 45396 | I | | | |EP | | FX80 |24.09.91 | 45525 | CL | | | |EP | | FX80 |16.12.87 | 45396 | Atari | n | | |EP | | FX80 |27.01.92 | 59236 | FontGDOS,I | n | n | |EP, OTL | | FX80 |28.01.93 | 61111 | Speedo | | n | |EP, SPD | | FX80 |02.07.93 | 63177 | Speedo 4.2 | | n | |EP, SPD | | FX80HIGH |22.01.89 | 44730 | Atari,I | n | | |SR | | FX80_QD |24.09.91 | 45525 | WT | | | |EP | | NX1000 |27.01.92 | 58719 | FontGDOS | n | n | |EP, OTL | | NX1000 |28.01.93 | 60723 | Speedo | | n | |EP, SPD | | NX1000 |02.07.93 | 62717 | Speedo 4.2 | | n | |EP, SPD | | NX1000 |14.08.92 | 58887 | I | | | |EP, OTL | | OKI20 |27.01.92 | 58491 | FontGDOS | n | n | |EP, OTL | | OKI20 |28.01.93 | 60495 | Speedo | | n | |EP, SPD | | OKI20 |17.03.93 | 60511 | Speedo 4.2 | | n | |EP, SPD | | OKI20 |14.08.92 | 58659 | I | | | |EP, OTL | | SMM804 |16.12.87 | 44801 | Atari | | | |LB | | SMM804_2 |16.06.91 | 44801 | I | | | |LB | | SMM804 |27.01.92 | 59201 | FontGDOS,I | | n | |LB, OTL | | SMM804 |28.01.93 | 61076 | Speedo | | n | |LB, SPD | |_SMM804____|02.07.93_|_63142_|_Speedo_4.2_|___|_n_|________|LB,_SPD___| Note: FX80HIGH prints normal text twice, FX240DPI once, FX80_QD printer in quad density. NX1000 and OKI20 are color drivers with 8 colors 5.3 24pin drivers __________________________________________________________________________ | Name |Date |Lenght |Distributor |Errors | Others | Fonts | |___________|_________|_______|____________|_1_|_2_|________|____________| | EPSON360 |04.04.90 | 45619 | BELA | y | | |NC | | EPSON360 |16.09.92 | 45547 | WT | | |180x360 | | | EPSLQPAR |14.02.91 | 44939 | I | | | | | | LQ570 |28.01.93 | 62051 | Speedo | | n | |SPD | | LQ570 |02.07.93 | 64228 | Speedo 4.2 | | n | |SPD | | LQ850 |15.11.93 | 68068 | Speedo 5.0 | | n | |SP,SPD,TT,T1| | NB15 |22.12.89 | 44881 | BELA,wt | n | | |SP | | NB15 |16.12.87 | 44881 | Atari,CL | n | | |SP | | NB15_2 |12.06.91 | 44881 | I | | | |SP | | NB15 |27.01.92 | 59121 | FontGDOS,I | n | n | |SP, OTL | | NB15 |28.01.93 | 60989 | Speedo | n | n | |SP, SPD | | NB15 |02.07.93 | 63055 | Speedo 4.2 | n | n | |SP, SPD | | NECP6 |12.04.80 | 45199 | wt | | | |NC | | NECP6 |10.04.91 | 45619 | BELA | y | | |NC | | NECP6 |06.02.86 | 44906 | Atari,I | y | | |NC | | NECP6_2 |28.06.91 | 46557 | I | | | |NC | | NECP |27.01.92 | 59516 | FontGDOS | y | n | |NC, OTL | | NECP |28.01.93 | 61229 | Speedo | | n | |NC, SPD | | NECP |02.07.93 | 63297 | Speedo 4.2 | | n | |NC, SPD | | NEC_P |14.08.92 | 59516 | I | | | |NC, OTL | | P24M |08.04.89 | 47104 | I | | | | | | P24ML |08.04.89 | 47104 | I | | | | | | P24MWID |08.04.89 | 47104 | I | | | | | |_P24MWIDL__|08.04.89_|_47104_|_I__________|___|___|________|____________| 5.4 Laser drivers ___________________________________________________________________________ | Name |Date |Lenght |Distributor |Errors | Others | Fonts | |___________|_________|_______|_____________|_1_|_2_|________|____________| | RICOH12 |23.06.92 | 45438 | WT | | |400dpi | | | HP_LJET |22.02.89 | 45512 | BELA | | | n.p. |LS | | HP_LASER |25.09.89 | 36928 | Atari,I | | | |LS | | LASERJET |06.03.91 | 54517 | Atari | | | |LS | | LASERJET |27.01.92 | 60194 | FontGDOS,I | | n | |LS, OTL | | LASERJET |28.01.93 | 61907 | Speedo | | n | |LS, SPD | | LASERJET |02.07.93 | 64408 | Speedo 4.2 | | n | |LS, SPD | | HPL150 |12.04.86 | 51541 | wt | | |150dpi |LL | | HPL300 |24.04.86 | 51541 | CL,wt | | | |LS | | LJ4_300 |12.01.91 | 61910 | Speedo 5.0 | | n | |LS,SPD,TT,T1| | LJ4_600 |12.01.94 | 61910 | Speedo 5.0 | | n | |SPD,TT,T1 | | DESKJET |13.05.92 | 45637 | BELA | | | p. |LS | | DESKJET |14.05.91 | 46040 | CL | | | |LS | | DESKJET |06.03.91 | 54285 | Atari,I | | | |LS | | CANONLBP |26.09.89 | 36980 | Atari,I | | | |LS | |_LBP_______|13.01.92_|_45453_|_WT__________|___|___|________|LS__________| 5.5 ATARI laser drivers ___________________________________________________________________________ | Name |Date |Lenght |Distributor |Errors | Others | Fonts | |___________|_________|_______|_____________|_1_|_2_|________|____________| | SLM804 |12.04.91 | 47496 | BELA | | n | |LS | | SLM804 |16.12.87 | 45788 |Atari,I,CL,wt| | y | |LS | | SLM |12.12.90 | 48399 | Language | | | |LS | | SLM |27.01.92 | 60036 | FontGDOS,I | | n | |LS, OTL | | SLM |28.01.93 | 61911 | Speedo | | n | |LS, SPD | | SLM |02.07.93 | 63987 | Speedo 4.2 | | n | |LS, SPD | |_SLM_HS____|17.01.94_|_63663_|_ROM_________|___|_n_|________|LS,_SPD_____| SLM_HS is a SLM driver for the Falcon (when using the Heatseeker interface) 5.6 Screen drivers The screen is (if VDI functions are used) seen as an output device just like printer, plotter etc. That's why fonts for the screen can be installed in ASSIGN.SYS just like for printers. Usually this isn't noticed because the drivers are in ROM. But they can be replaced like printer drivers. Note: For system fonts only (like the original ones) non proportional fonts with a 8*8 or 8*16 matrix can be used. That's limited by the AES not VDI. With newer AES (from 4.0?) it's no problem to use fonts of free choice (Variable AE_FONTID and AE_FONTSIZE in GEM.CNF, see [15]). Coders should make sure their programs can take that. (even like scrollbars of free width) Bitmap fonts not assigned for screen driver 1 are not available for other screen drivers. 5.6.1 LineA The so-called LineA routines are subprograms of the screen drivers of the ST series. Take them as undocumented. This is the hardware depending part of these drivers. The attentive readers discovers it: Exchanging the drivers removes the LinaA routines too. This happened with the TT for example. So never use them! /Reading/ acces can be taken to the LinaA variables. But I can see no reason for it.? 5.6.2 Setscreen & Getscreen These XBIOS-Functions (mostly Setscreen) should'nt be used. But what am I talking. For those useing them or those being tortured because someone did it: The video hardware of 1040STE and Mega STE has a hardware bug. When defining a new physbase with Setscreen (and if it's the same that is returned by Getscreen), it may happen that the screen is 'folded'. This happens if a register is set at an arbitrary moment. But this is only allowed only at special phases of the screen output. What has to be done? Users: The programs NVDI and FALT_OFF stop this error. Or give this FAQ to coder. Coders: Either even don't use Setscreen. If you use it though: If physbase isn't changed, the value returned by Getscreen may not be used. Use the value -1 as physbase instead! 5.6.3 NVDI and WARP 9 There are two frequent replacements of the ROM drivers: NVDI and WARP 9 (earlier QuickST). TurboST was distributed by BELA but isn't updated any more. Once you use them, you will never want to miss them: the Desktop seems to be terribly slow. I never want to work without NVDI on my Atari. Others say the same about WARP 9. NVDI uses strongly optimised drivers for the ST and TT resolutions. Infortunately I don't know which drivers are replaced by WARP 9. NVDI is available from Behne & Behne and contains not only the drivers but a GDOS and a manual describing exactly all VDI calls. WARP 9 is available from CodeHead. Due to this NVDI is spread in Germany and WARP 9 in the US Different to NVDI WARP 9 only speeds up the text output. Grafics stay slow as before. AND the newest version doesn't work with MultiTOS. It Works on the Falcon too, but I don't know if it supports *all* resolutions there (Like with Screenblaster, BlowUp030 or others) 5.7 Other drivers _________________________________________________________________________ | Name |Date |Length | Distributor|Errors | Others | Fonts | |___________|_________|_______|____________|_1_|_2_|_________|__________| | META |11.04.89 | 5644 | I | | | |MF | | META |08.10.88 | 9325 | BELA | | | |MF | | META |16.12.87 | 9325 | Atari | | | |MF | | META_2 |14.06.91 | 9325 | I | | | |MF | | META |27.01.92 | 9718 | FontGDOS | | n | |MF, OTL | | META |28.01.93 | 9733 | Speedo | | n | |MF, SPD | | META |02.07.93 | 11174 | Speedo 4.2 | | n | |MF, SPD | | MEMORY |27.01.92 | 58397 | FontGDOS | | n | |LS, OTL | | MEMORY |28.01.93 | 60265 | Speedo | | n | |LS, SPD | | MEMORY |02.07.93 | 62331 | Speedo 4.2 | | n | |LS, SPD | | PSCRIPT |14.10.92 | 33016 | WT | | | | | | HPGL |08.07.91 | 48885 | ST458 | | | | | | ZEBRA |07.12.91 | 45746 | WT | | | | | | T_OFFICE | | | wt | | |98/196dpi| | | T_OFFICE | | | wt | | |98/196dpi| SPD | |_IMG-0300__|_________|_______|_Reschke,wt_|_n_|___|_________|LS________| IMG-0300 can be copied (non commercial). The other IMG-0??? drivers are by SciLab. ZEBRA is for the Zebra Labelprinter. 5.7.1 Memory drivers A memory driver doesn't do anything else than a screen driver (see [15] and [13]). But the output isn't written to the screen memory, but to another memory. The usual v_openwk binding doesn't have all necessary parameters to open this driver. If not included to the language this binding must be written by yourself. A listing is found at [15]. The memory driver listed above is only capable of b/w output only and has a logical resolution of 300dpi. The (matrix) drivers tested by me have no problems with fonts installed that are for other other drivers. The memory driver should take screen fonts although it has a logical resolution of 300 dpi. The aspect ratio (relation of pixel width to height) which usually is not equal to the screen resolution can cause the problem that circles are displayed as ellipses. With NVDI V2.5 or higher the GDOS output can be made to offscreen bitmaps and copied in the screen windows. 5.7.2 Plotter drivers A HPGL driver seems to be distributed with the program DATA. On PD disk ST 458 (German PD series) is one too. If I get more about it I'll include this info here. 5.8 What's missing I don't know drivers using the abilities of the following printers: o Canon BJC 600 - A colour printer with 4 heads (CMYK) 64 nozzles each. In the colour mode it's compatible to: - Canon BJC 800 - Epson LQ 2550/2500 Its resolution is 360x360. I dont's know any GDOS driver supporting the BJC's capabilities directly (or via compatibility mode) when using colours. 6 Errors Errors in the printers drivers - that I know - are the following: 1 These drivers display fonts with the attribute 'light' 2 Doesn't work on TT 3 The EXTENDED ENQUIRE FUNCTION (VDI 102, vq_extnd) doesn't give back the parameters as listed in the German 'Profibuch' (Jankowski, Rabich, Reschke - Sybex) 4 Using the attributes 'italic' and 'outlined' the letters of bitmap fonts are cut off on the right side. This error appears independent from other attributes being used. This error was in the Libraries of the driver sources from Atari and seems to be included in all drivers except to NVDI and SpeedoGDOS. If theres nothing written about an error I don't know if this error appears or not. It's no accident, that Xact only uses the attributes 'fat', 'italic' and 'underlined'. (See [4]) Another reason against using 'outlined' is the following: If you make a driver calculate an outlined font from a normal one it gets 'wider' by two pixels. Due to the reason that a pixel has a width depen- ding to the resolution (other than a fitted font) a text gets different widthes in each resolution. But who wants to have different textformat on different printers? The only way to stop this is letterspacing - typographic 'bullshit'. 7 Fonts First: What's the difference between a font and a face (German: Schnitt)? When calling a font selector there may be Swiss 721, Swiss 721 italic, Swiss 721 Bold and Swiss 721 Bold Italic. These are 4 faces, alltogether form a font. This separation isn't that simple at bitmap fonts, due to all attributes are created from only one file (this can be made with vector fonts too, but it's quite nonsens In my opinion). That's why I first didn't note that this attribute creation is buggy in some versions of SpeedoGDOS (see 13.3.3). I don't always distinguish between font and face in this FAQ. Especially in the chapter about font formats. 7.1 Bitmap fonts The fonts used are bitmap fonts in the DR standard format. They have to be saved in Intel format. Motorola format isn't supported by any GDOS. (See [1] and appendix) GDOS bitmap fonts have their width information defined in both, screen font and printer fonts. Unfortunately the designers were a bit too zealous and fitted the width of the sreen fonts to make them look very beautiful. They've done a good job, but they're not similar to the printer fonts and don't allow WYSIWYG. There are many fonts on the Internet only for the screen and maybe useable for one printer. Everybody using these fonts should know that he can't print documents in an acceptable quality via GDOS. But in the Atari and former BELA package there are containedthe fonts for all printer drivers in this package (the 360*360dpi fonts are missing in the Atari package). If you have a useable program you can print every document with every driver. 7.2 Vectorfonts Vector fonts don't use pixels, they are created with algorithms - supported by shapes and hints. These algorithms (see METAFONT for a good example) make the fonts copyrighted like usual programs. (See [21] for this) 7.2.1 FSM-GDOS Fonts The vector fonts with the old FSM-GDOS format are named with OTL. These fonts and drivers shouldn't be used any more and are listed to only for completion of this FAQ. 7.2.2 Bitstream Speedo fonts The vector fonts in speedo format are named with SPD. They are supported by all SpeedoGDOS releases and by NVDI 3.0 or higher. 7.2.3 Type 1 fonts Type 1 fonts are available for MacIntosh abd MS-DOS/Windows. They only have differences in the internal representation, not in the information. At least one of these formats is supported by SpeedoGDOS from V5.0a. But I already found some that SpeedoGDOS 5.0a can't display. 7.2.4 TrueType fonts This format is available for MacIntosh and MS-DOS/Windows too. The MS-DOS format is a superset of the MacIntosh format. SpeedoGDOS from V5.0a can handle both, no matter if it's for MacIntosh or MS-DOS/Windows. NVDI from V3.0 will be able to handle it too. 7.3 Comparison of vector formats (This chapter is to be completed yet) There's no noncommercial program on any platform that can convert one format into the other. A lot of fonts are only available in one format. But what makes a conversion so difficult? To ask different: Which infor- mations are stored in which way? 7.3.1 Curves First the shape of the chars should be saved. But that for many ways are used: Type 1: Uses cubic Bezier curves TrueType: Uses square B-splines Speedo: Uses Bezier curves (Does anyone know, which order is used by Speedo? Does Speedo 5.0 use several orders? How has v_bez_qual to be set to make an output with v_getoutline and v_bez_fill have the same result as the font engine?) Square B-splines are much faster than cubic Bezier curves but you need about 4 times as much points. 7.3.2 Hints The next problem is the display on media with low resolution. For a neutral observer Speedo fonts always look quite good on the screen (well, some fonts are ugly by nature). But I've found TrueType fonts that look as ugly as nothing else on the screen. For example the two vertical lines of an 'n' are not the same, one is 1 pixel and the other is 2 pixels thick. The way to prevent those errors are hints. This method is used by Speedo, Type 1 and TrueType (but not by Type 3 and CFN). But the possibility to store hints in a format doesn't mean that they're used! So, finally: All these three font types can look very good on the screen, Type 3 and CFN can't [ever tried to print CFNs on a printer with less than 360x360dpi?] 7.3.3 Internal resolution After the problem with low resolution now there's the problem with the high resolution. Even if you think there shouldn't be any; there are! To display a vector font first an internal system of coordinates has to be selected. CFN has one from 0 to 16000, Type 1 (which was created when there were no high-res printers) one from 0 to 1000. Due to this there are 'corners' visible at large letters or high resolutions (in the professional league). CFN can make the big deal here. (Which internal resolutions do Speedo, TrueType and OTL have?) 7.3.4 Linear and optical scaling Do we now have - with the description of the shape, a high internal resolution and the hints - a scalable font? Sure not! A font that is designed for 16pt has a totally different shape as a doubled 8pt fonts (see Knuth: The METAFONT book; Kopka: LaTeX etc.). A well designed font isn't scalable. In large fonts vertical lines are much thicker than the empty space between them. But this information for optical scaling can be saved in a font too. So a font, being 20 pixels high on the screen (this is usually a large font) should look different to one being 20 pixels high on a laser printer (this is a small font that should have small vertical lines). (Which formats do save these informations? to COMPO and 2B: If it's saved in Speedo, Type 1 or TrueType: How can I tell SpeedoGDOS or NVDI that a printout has to be downsized in a photomechanical way and has to be scaled different to a font that don't have to be changed? Does this make it useful for programs setting the font size in pixels and points too? If this is the case: which has to to set first?) There are rumours about Type1 fonts supporting optical scaling automaitcally. But I think this should be supported by the font engine because there may be one window with a title and one with an enlarged document. Here scaling has to be made different - with same size in pixels. The font and the font engine CAN'T know this. 8 Printer _______________________________________________________________________ |_Producer____________Printer___________________|Drivers Fitting______| | NEC |P6+,P7+, |NECP... | |___________________|P60,P70____________________|NB15_(FX:_:,:NX1000)_| |_HP________________|LaserJet_II________________|HP_LJET______________| |_HP________________|DeskJet,_LaserJet_III,IV___|DESKJET_(HP_LJET)____| |_CANON_____________|BJ10E______________________|BJ10_________________| |_CANON_____________|LBP_4/8____________________|CANONLBP,_LBP________| |_Mannesmann-Tally__|MT_90______________________|MT90_________________| Drivers in brackets work but don't use the ability of the printer totally. This means - for 24pin printers - that these are used in 9pin mode. At HP compatible laser and ink printers this means that the data isn't packed although this is supported by the printers. Some deskjet drivers are told to make problems. In this case try the laser- jet driver. The printing takes longer then (due to more data) but the problems should be solved then. The BJ10 drivers use the Proprinter emulation. Don't use the BJ10 in the epson mode! The Stylus shouldn't be used with 24needle drivers. The needles overlap (the ink dots of the stylus don't) and so the drivers just don't print some dots. The meaning of compatible usually is defined by the producers of the compatible printers. Notes: o If you don't find your printer in the list and you know a fitting driver, please write me a note. o Try other drivers even if you have found one fitting to your printer. o Of course the FontGDOS drivers have a lot of problems with the memory. But the speed of'em is faster than the other (Speedo not considered). 8.1 Market overview In the German TOS-Magazin July '92 page 24 contains a list. If You know about lists available europe-/worldwide inform me. 9 Programs Nowadays it's obvious (but not usual) to use GDOS in every program. The following list is limited to those using GDOS to print too. _____________________________________________________________________________ Kind of Program______|Program______________|Distributor___________________|Sp| Chart/Measureanalysis|Xact |SciLab |y | |MM-Graph |Overscan | | |Off-Axis |ByTech |y | |DATA_Professional 4 |Ralf Wirtz | | |DPE |MAXON (Special disc) | | |GRAPH |Hans-C Ostendorf (Shareware) |y | |MessPlot (Shareware) |Michael Siek (Shareware ) |y*| _____________________|rho-Analyse__________|rhotron_GmbH__________________|y_| Graphics |Xact Draw |SciLab |y | |Kandinsky |U. Rossgoderer (Shareware) |y | |TRIPLE_D |U. Rossgoderer (Postcardware) |y*| |Chagall |Trade-iT |y*| |Easydraw |MIGRAPH | | |TouchUp |MIGRAPH | | |GEM-View |D. Fiebelkorn (Shareware |y*| _____________________|CHARLY_IMAGE_________|Wilhelm_Mikroel.______________|y*| Spreadsheet |LDW Power Calc 2 |MSPI | | |K_Spread_4 |Omikron | | |Graal Calc 3 |Editions Profil | | |Atari Works |Atari Corp. |y | |OPUS |Doug Harrison (PD) |n | _____________________|BASiChart____________|Dr.__Ackermann________________|y_| Text/DTP |Calligrapher |Working Title | | |Wordflair II |H3 | | |Timeworks Publisher |GST/H3 | | |G&D Text II |Hard & Soft | | |Cypress |Sascha Luedemann | | |Papyrus (Gold) S |R.O.M. |y | |Infinity |ByTech GbR | | |7Up |Michael Thaenitz (Shareware) |y | |Atari Works |Atari Corp. |y | |Tempus Word | |y | _____________________|1st_Word_Plus_4.1____|GST/ICP/COMPO_________________|y_| Fax |Junior Office |TKR |y | |Tele Office |TKR |y | _____________________|CoMa_________________|SoftBaer Gbr__________________|y_| Sim._of_dyn._Syst.___|Dynasys______________|Digital_Systems_&_Consulting__|__| Text/List printing |IdeaList |Chr. Bartholme (Shareware) |y | _____________________|ProList______________|Richstein_&_Dick______________|y_| Chem. Displaying |Monoklin |MAXON (Special disc) | | _____________________|Chemograph Plus______|DigiLab_______________________|__| Circuitlayout |Route iT! & Circu iT!|Think! | | _____________________|Platon_______________|VHS___________________________|y*| Vektoriser___________|Convector_II_________|ZYN/TEAM-Computer_____________|__| Hardcopy_____________|rhocopy______________|rhotron_______________________|__| Disk-List-printers___|TreeView_2.4_________|Stephan_Gerle_________________|__| Fraktals_____________|Fractals_IV__________|Harald+Martin_Hansen__________|__| PS-Interpreter_______|Postman______________|SILICON_Technology_&_Promotion|__| Concordance__________|Concordance__________|SPIRIT_WARE___________________|__| Packershell_f.__MTOS_|MARC_4.0_____________|Think!________________________|y_| Logikanalyser________|CLA_v2r1_____________|C._Graham_(Shareware)_________|y_| Adress base__________|Pegasus______________|Pergamon Software_____________|y_| Symbolic mathematics |Solutions |Elan Software | | _____________________|Riemann II___________|Richter Distributor___________|__| Database_____________|Atari Works__________|Atari Corp.___________________|y_| Notators_____________|MIDI File Printer____|ST PD-Disc 677 (Public Domain)|__| CASE_Nassi Schneider.|UpToCase_____________|Michael_Nolte_________________|y_| Invoicing____________|Kundendirektor_+_____|Michael_Kammerlander__________|y_| This list is no commercial. I'll include every program I get to know. (Comment by the Translator: Sorry for mentioning Atari Works three times, but I wanted to keep the 'Text/DTP' and 'Spreadsheet' Chapters') Notes: o Programs listed in the Speedo column with 'y*' support Speedo but don't output text. o 7up only uses non proportional fonts (e.g. Monospace 821 from Speedo) o Xact can print Speedo fonts without SpeedoGDOS too. o FSM-GDOS is included in the Wordflair II package. o Platon only outputs metafiles via GDOS. o I didn't make it to print via GDOS in OPUS. (I've been told, OPUS doesn't chose the fonts it can handle with, and doesn't print if even one of these fonts is installed. See 7.1 too) o Programs only printing via device 21 (like OPUS and CLA are out! (see 16.2 too) Kandinsky Version 1.73 ftp.cs.tu-berlin.de pub/atari/Graphic/kand173 10 Utiliies 10.1 fontfix Problem: The font height is wrong in some fonts. fontfix discovers this error and corrects it. On the Internet fontfix can be found here: ftp.uni-muenster.de /pub/atari/Applications/Dtp/Fonts/Gdos ftp.cs.tu-berlin.de /pub/atari/utils 10.2 Outline Fonts Outline Fonts Accessory by CJG This utility edits the EXTEND.SYS for SpeedoGDOS. This file contains a description of the size of the Speedo caches, the fonts and the font sizes. The caches can be saved to disc and loaded again from there too. A good done program except to the preset cache sizes fitted to FSM-GDOS not Speedo. Filename: OUTLINE.PRG alias OUTLINE.ACC, 67644 Bytes (49254 Bytes Speedo 5) Spread with SpeedoGDOS. (Why doesn't Atari make it to make programs including a display of the version?) 10.3 Printer driver GDOS Devices Accessory by CJG Edits the ASSIGN.SYS Filename: DRIVERS.PRG alias DRIVERS.ACC, 64878 Bytes (41592Bytes with Speedo 5) Before starting this program it's better to create a backup of the ASSIGN.SYS! The (at least) two reasons are the following: 1. The informations about the bitmap fonts are removed without comment. 2. ASSIGN.SYS is replaced by a new one if 'Benutzereigen'-'Hinzufuegen' (in the German release) is selected wihtout any chance to get it back. (The English Version should have a Dialog like 'Own drivers' 'Add' or similar). To all coders: Don't copy that style! If this utility should display no drivers sometimes simply start ASSIGN.PRG (see next subsection) DRIVERS.PRG/ACC only displays the Speedo drivers of my collection. It doesn't display the Filename, it displays a name included as string in the driver. Does anybody know how it gets this information? 10.4 ASSIGN ASSIGN 1.0a is by Dirk Sabiwalsky (PD). It tests three things: o Are there several fonts using the same ID and have different Names (Typefaces)? o Are there several fonts using the same ID and the same Pixelheight? o Are there several fonts with the same name (Typeface) and different IDs? 10.5 FONTCHK FONTCHK tests GDOS fonts if they have possible errors. It's spread with ProList for example. 10.6 FONTCNV Converts GDOS fonts from Motorola to Intel format. Comes with ProList too. 10.7 GEMFont Fonteditor has the capability to read Signum- and PK (TeX)- Fonts too. Internet: ftp.tu-clausthal.de:pub/atari/systools/gdos/gemfo120.lzh Use the chance to get a new unlzh or lhxarc. 10.8 FontMonger Converter and editor for different vector formats including Speedo. Only works on IBMs or MAC though. 10.9 Font-ID Font-ID is a little freeware tool made by Frank Schneider. In a window it displays the fonts (in different sizes) installed with GDOS or SpeedoGDOS including the Font-ID. So you can get an overview when you don't have a program with font selector/ID display function at the moment. 10.10 X4U Speedo fonts have much more glyphs than the ones mapped in the ASCII charset. With this program by Peter Hellinger you can setup, which char is to be used at which ASCII code. It's distributed by R.O.M. 11 Font selectors We all know this useful thing about file selectors: The Operating system doesn't only offer a file selector, it's got an interface to use one file selector in every application. A standard interface for FONT selectors doesn't exist, usually they're offering their jobs by cookies. The work to make a program support font selectors via cookies is much smaller than writing one for yourself. If there wouldn't ... but let's take a look at the candidates first. 11.1 UFSL UFSL from Michael Thaenitz is freeware and may distributed with any application. The last version is 0.97 from April 30th 1994. Fonts (faces) and size can be selected comfartable. But after typing a free size I didn't get a face displayed at this size. Attributs are missing and the dialoge is only modal. UFSL unfortunately isn't in development any more. 11.2 XUFSL I only know two things about this selector: It's existing and told to be ugly. 11.3 Magic from Peter Hellinger This selector is part of Magic 4.00 from Peter Hellinger and not available separately. Magic itself - NOT MagiC! the multitasking OS - can be copied freely. But the information how to use it must be paid. It's nice that this selector can be a non modal window dialog, FlyDial or normal dialog. Scrolling through the list is fast, too. But the long loading time (proportional or non proportional faces can be shown and each face has to be checked about this. An application can't switch off this checking) isn't that nice. One more bad thing is the jump to the beginning of the list after alternating non/proportional faces. Attributes aren't selectable and the size selection in the edit line isn't acceptable the way it's done. The selector only can be used when the event handling is completely done by Magic, what makes the coder use a fixed code structure (working parts must be rewritten, other things don't work anymore) and produces new errors. The actual release only shows Speedo faces, not Type1 or TrueType. I'm desperately waiting for an update ... 11.4 FontSel FontSel Version 1.00 from May, 11th 1994 from Holger Weets is totally cmpatible to UFSL for the programs. Its small size and the selecteable attributes are a very nice feature. Together with Speedo 5.0a it only shows the System Font. 11.5 Minimum requirements A font selector should work with all OS-releases (TOS, MiNT, MultiTOS, MagiC!, Geneva), with every video hardware supported by the VDI and should show each font available from every GDOS version. (Pixel fonts, Speedo fonts, Type1 and TrueType). 11.6 Desirable properties Its quite complicated to make the user set further characteristics of fonts in an extra dialog. So, at least the standard attributes (bold, outlined, ...) should be directly made available. If a program doesn't support them they should be made non selectable/invisible. The same holds for the skew angle. Not every program can handle all fonts. According to this every program must be able to set, which faces have to be invisible or disabled. An example: Some programs (like 7up) only use non proportional fonts. A further feature (but not exlusively, due to BASIC) it should be possible to pass a procedure variable to the selector setting the kind of displaying for each face. It would be nice if the program could set the selector in a window or normal dialog too. It can be done much easier and more flexible than in Magic. The font selector opens a window in the calling program's name and gives back the window handle to it. The application further handles the events and if one is for the font selector's window it is passed to it via a procedure call. This simple mechanism enables the use of multiple (system wide) selectors, colour pickers (and more) distributed by different producers in windows at the same time. Once more: This parallel work only is possible when every selector doesn't use it's own evnt_multi loop. Finally an application should be able to set if it doesn't matter if a font is proportional or not (the user can have displayed it if he really wants to). When this information isn't used the call of a selector can happen much faster! My favourite selector actually is the one of papyrus, but it only works in papyrus (yet?) [ Stefan says: It's my favourite too ;-) ] 12 Distribution 12.1 Atari The drivers named with Atari are availabel from Atari. Send three disks, Money for shipping and a kind letter to them and you'll get them with printer drivers and fonts. This Package is available at Atari shops too. No docs but for this price ... (That's the way in Germany - other countrys may differ!) 12.2 BELA The fonts named BELA were available from BELA There were two disks with packed printer drivers and fonts for them. The fonts DO have the same IDs like the ones from Atari, but the internal font NAME is different. Due to this these fonts are correctly not accepted by some programs if used with Atari fonts. There's almost no documentation. Not even a hint about the one owning the copyright for the drivers or about the author(s) One last thing about BELA: R.I.P. ;-) 12.3 Language The driver named Language is spread on the language disc of the MegSTE 12.4 Internet The drivers signed with 'I' are to be found on the Internet. For example: ftp.cs.tu-berlin.de 12.5 Working Title The WT drivers are spread with Calligrapher. They are (c)Working Title, the wt driver are licensed by Working Title. No drivers are on the Calligrapher DEMO disc. The drivers coming with Calligrapher lite (15DM) are signed with CL in the tables. Screen fonts are on both discs. 12.6 XWindow System There are PD Speedo fonts from Bitstream. These can be used with Speedo 4.2. I (Gerd) have no problem using them (even the umlauts are correct) To find them let Archie (see 11.12 FTP) search as follows: set search sub prog speedo- The fonts: font0648.spd -bitstream-charter-medium-r-normal--0-0-0-0-p-0-iso8859-1 font0649.spd -bitstream-charter-medium-i-normal--0-0-0-0-p-0-iso8859-1 font0709.spd -bitstream-charter-bold-r-normal--0-0-0-0-p-0-iso8859-1 font0710.spd -bitstream-charter-bold-i-normal--0-0-0-0-p-0-iso8859-1 font0419.spd -bitstream-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1 font0582.spd -bitstream-courier-medium-i-normal--0-0-0-0-m-0-iso8859-1 font0583.spd -bitstream-courier-bold-r-normal--0-0-0-0-m-0-iso8859-1 font0611.spd -bitstream-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 12.7 COMPO COMPO offers two Bitstream Speedo packets with 100 fonts each. One costs DM99.- (At your own risk) Since some time COMPO also offers a CD-ROM with TrueType and Type1 fonts/faces. These seem to be the same ones as on the StarType CD, but TrueType and Type1 on a single CD-ROM. The price is DM99.- 12.8 IMG-0300 On the Internet: ftp.uni-muenster.de /pub/atari/Gdos 12.9 Others I don't make a choice of drivers. The limit is all of them. The authors (and users) of the programs are asked now to write me, which GDOS drivers come with the programs (With information of: lenght, date and known bugs). 11.10 FTP Many students can get software worldwide via ftp. Prices for steady connections are constant, but connections between America and Europe have to be paid depending to the volume of data transferred. Please try not to ftp across the big blue and use short ways. Use transferring times not in the working hours at the server! ('9 to 5') Files with known names can be found by Archie. In Germany: telnet archie.th-darmstadt.de login: archie help In the US e.g.: archie.ans.net Archie will automatically display other archies. use the one that's closest to you. The Archie databases ask about once each month one ftp server after the other for freely available files One more small hint: atari.archive.umich.edu ist always totally busy. Not even mirroring to other servers helps. Better connect to - amiga.archive.umich.edu - msdos.archive.umich.edu and type cd atari from there. This computers have the same HD mounted. BUT: First search your own vicinity! 12.11 SciLab SciLab's GDOS drivers are not mentioned in the driver's tables though they are very favourite - specially the colour drivers. These drivers no langer can be ordered without a program. This is due to the programs that lots of programs have when using the colour drivers. SciLab would be blamed then. You only can get these drivers by ordering a program from SciLab or making the distributor (of the software you use) licensing those drivers. SciLab always has 'an open ear' for that. Those are especially the Speedo capable drivers for HP 600dpi and HP 500C/550C. Actually these are distributed with Speedo 5 too. 12.12 Star Division Star Division sells two CD-ROMs (StarType) with 500 TrueType/Type1 faces. These are mostly complete typeface families. One example: Zapf Humanist 601 is available as: o roman o italic o bold o bold italic o demi o demi italic o ultra o ultra italic A lot of Bitstream fonts are included. (e.g. Zapf Humanist 601 as noted above) There are two ITC faces too. In Germany these two CDs are (at least) available for DM69.- from Vobis. A booklet with a short overview is available there too. 13 GDOS versions 13.1 The ones from the bones Atari-GDOS, AMCGDOS, ABCGDOS, NVDI and possibly G+Plus use the same drivers. 13.1.1 Atari-GDOS and AMCGDOS The Atari-GDOS is the ancestor of each GDOS. Its most remarkable properties are lots of bugs and it's horrible slow speed. But that's history. AMCGDOS is faster and has less bugs. But it almost has the same capabilities and was distributed together with Atari-GDOS. 13.1.2 ABCGDOS Comes from The Netherlands (I think so) and is almost totally unknown. I only mentioned it because it's a GDOS. 13.1.3 G+Plus Does anyone know anything about it? 13.2 One step forward Even though there was a very good GDOS in NVDI, Atari had an open ear to the request of users and coders and tried to raise the capabilities of GDOS. 13.2.1 FontGDOS 2.0 This is a GDOS still using bitmap fonts. It uses own drivers. The drivers from this package are really much faster than the former ones. (Only bitmap fonts and graphics are comparable of course) I didn't have any problem using these with other GDOS versions but you must limit to the old fonts. FontGDOS is the successor of the Atari GDOS. Mainly it differs with the Bezier function and faster (and color-able) drivers. It's got nothing to do with FSM-GDOS or SpeedoGDOS. FontGDOS is availabel from several firms which use it for their programs. 13.2.2 FSMGDOS 3.0 During the development of FontGDOS, Atari created a GDOS that can handle vector fonts (named OTL in this FAQ). So FSMGDOS isn't a successor of FontGDOS. It was developed the same time. FSMGOS practically was ready to be released but due to massive protest by the developers it was cancelled in the last moment. Except to bundles it never has been distributed officially. 13.3 Actual developments 13.3.1 SpeedoGDOS 4.0 and 4.1 Contents: o Installation program o Speedo font engine o 2 Programs to edit ASSIGN.SYS and EXTEND.SYS o 14 fonts in Speedo-format by Bitstream The Falcon Speedo (in Germany) comes with 18 fonts now o 14 Printer drivers o An installation manual [Stef: hmmm, manual? Gerd: _installation_ manual!] Outrageous features are: o Speed o Not the whole Font-file has to be read (memory saving) o 16bit fonts (no 256 character limit) See [4] The information if it's a Speedo or bitmap font can be found in byte 33 of the Fontname (vqt_name, INQUIRE FACE NAME AND INDEX, VDI 130). Zero means bitmap font and one means FSM- or Speedo font. Some Problems are inportant to be mentioned: A coder can't find out if a driver can handle Speedo fonts (see last question in 10.3) Some font IDs are used by bitmap AND Speedo fonts, though different fonts with similar IDs may never be installed the same time. If you don't take care of this you'll get bombs. It depends to the user to install the right drivers and fonts. The coder can't help here to stop errors. The best way is only to install bitmap fonts with the right drivers or to use a Speedo only system. The monospace font coming with SpeedoGDOS 4.0 has no umlauts (ae, oe, ue ...) For installation and coding I recommend to read [5-7]. Remember starting NVDI before SpeedoGDOS in the AUTO folder! The ones that bought Speedo in the early days got 4.0, the Falcon buyers got 4.1. 13.3.2 Speedo 4.2 Let's see what Ulli Ramps has to say: Huhu! [TM] The following is a list of changes made to SpeedoGDOS. 1) Line-A - Due to many requests from developers, SpeedoGDOS is now no longer Line-A dependent. All output is done through VDI calls. This was done to make Speedo compatible with various graphics cards, and to make it more multi-tasking-friendly. In addition, users should be able to use various VDI replacements with GDOS. Another benefit from removing the Line-A dependency is that we no lon- ger have to worry about the scratch buffer used for algorithmic spe- cial effects. We have implemented the special effects inside of Spee- doGDOS and the drivers, so that the user/program does not have to wor- ry about the memory needed to accomodate arbitrary sized characters. Unfortunately, this means that old drivers need to be relinked with the new independent library (found in the new driver kit). There are plusses and minuses of the new implementation of special effects. In many cases, the special effects will be slower. With all previous incarnations of GDOS, you could not use 'bolding' or 'skewing' at non-90 degree rotations; now both of these work at all rotations. On the other hand, 'lightening' used to work at all angles and combinations of effects; now 'bold' mixed with 'lighten' only work at 90 degree rotation angles. Miscellaneous Note - When using special effects, many applications have a hard time placing the cursor. In both the v_gtext() call and the v_ftext() call, the only cursor compensation to be made is for bolding. Bolding adds the thicken value to the number of pixels of each character. For rotated characters, note that the extra pixels can be considered a vector along the positive x-axis which is rotated at the same angle as the text and added to the advance vector; there- fore, the length of the text string should remain the same at any ang- le. This is true even when SpeedoGDOS generates characters on a scan- line basis (when the character does not fit in the character cache), although it does not implement the special effects. Also, applica- tions should watch for the case when they keep track of the cursor position with vqt_advance() or vqt_width(), instead of vqt_extent() or vqt_f_extent(). In versions prior to 4.2, the application could accu- rately place the cursor by adding two pixels for every outline charac- ter and by adding left and right skew offsets for a skewed string. Now these effects are generated by the outline font engine, so the application must either rely on the extent calls or it must inquire for the advance vectors for characters that are skewed and/or outlined separately. For compatibility purposes, it is recommended that the version number of SpeedoGDOS is checked so that programs can handle both old and new characteristics. 2) Font ID's - Speedo font id's have been promoted to a higher range of ID numbers. This was introduced to avoid conflicts with bitmap fonts and more importantly, with the system font (which conflicted with a variation of Swiss 721). For those applications which use the usual interface with Speedo (i.e. use vqt_name() to find out what the font ID's are), there should be no problem, except if documents have font ID's embedded into formatting information. Of course, all the user has to do is substitute the font. If the application actually goes into the font file header to read the ID, note that we are adding 5000(decimal) to all Speedo font ID's. 3) Printer Driver Incompatibilities - Speedo will now check the prin- ter driver it is trying to load for the '_FSM_HDR' cookie embedded in the driver header information. If GDOS does not find the cookie, it will not allow the loading of any fonts; therefore, you can still use your driver for non-text applications. For future reference, please be sure that the driver header begins on a word boundary for all dri- vers to be used with this version and any future versions of GDOS. 4) Vst_load_fonts() - We have made two optimizations to the loading of fonts. The first is when a load_font call is made, GDOS checks the date of the extend.sys file to see if it was modified since the last load. A reload used to be mandatory because a bigger scratch buffer might have been required. Since we no longer need a scratch buffer, GDOS only checks to see if a change has been made to the list. The second change is that GDOS no longer deallocates the global list of fonts if there are no more workstations using GDOS fonts. There- fore, application launches will be faster. On the other hand, the miscellaneous cache never gets cleared of font header information, unless a reboot happens. 5) Memory.sys - The memory driver used to mistakenly open a printer handle. 6) vst_height() - Vst_height used to have a bug in which a maximum point size is reached and then the size begins to shrink. This is fixed. 7) Postscript table - The Postscript table has been fixed (i.e. the indexes were off by 32 for certain Postscript files). 8) Fixed vrt_copyfm() in the drivers. 9) When in 'bicsmode', character 0 was not passed through to the font engine. 10) Negative point and set sizes - The handling of negative point and set sizes has been made consistent with the original handling in FSMGDOS. 11) The handling of fractional setsizes was incorrect in the drivers, and is now fixed. 12) V_ftext() in the drivers can now handle the offsets passed into the ptsin array. 13) Screen drivers can now safely load as device 10. 14) The memory driver can be loaded residently. 15) vqt_devinfo() - Vqt_devinfo() now returns information, whether or not the device has been opened. Furthermore, the device drivers name, found in the driver header, is copied into the ptsout array; the name is 26 bytes long. Note: if the driver is not SpeedoGDOS-compatible, a null string is returned, and if there is an error, a -1 is returned in ptsout[1]. 16) vst_width() - A new call has been added to Speedo. The call is similar to vst_height() except that it sets the width. The bindings are identical except that the opcode is 231. Note: As with vst_arbpt() and vst_setsize(), you must call the general call (i.e. vst_arbpt() or vst_height()) before using the width calls (i.e. vst_setsize() and vst_width()). In addition, the general calls always reset the widths. Miscellaneous Note: Although these have been published before, many requests have come in for the SpeedoGDOS error codes. Here they are: Code 1 Out of memory 2 File open 3 File read 4 File write 5 Speedo engine error 6 Character too large (not used, defaults to line output) 7 No room for scratch buffer 8 Character cache error 255 Miscellaneous These errors are placed in the error code address that applications should provide. Note that if you have MultiTOS installed, GDOS will report the error to Salert, the system alert box. A revision of the error handling is overdue, since some of the errors are no longer re- levant (e.g. code 6), and error code 5 is returned for the lack of availability for pair and track kerning (in addition to the serious errors). Well, again a big thank you to Ulli! Now it's me again: The Installation program for Speedo 4.2 had a small bug yet. If a NEC P printer is selected, NEC_P.SYS ist written into ASSIGN.SYS. But the distributed driver hat NECP.SYS as filename. R.O.M. fixed that. 13.3.3 Speedo 5.0 SpeedoGDOS 5.0 was developed by COMPO/no!software using the sources of Atari. Unlike Speedo 4.x it can scale TrueType and Type 1 (see 7.2). Price: DM129.- (at your own risc) Now 9 printer drivers are included - the additional ones. Speedo 5.0 is an upgrade, so you have the old drivers. But: Which are the old divers? The ones before Speedo 4.1 don't work (and only falcon users have 4.1; the ones who bought Speedo from COMPO in the beginning only got 4.0) So I at once printed a text using Speedo 5.0, NECP.SYS (Speedo 4.2) and ProList. And? Surprise! It works. That's really astounding because ProList and my own program (see 2) had problems with this driver and Speedo 4.2. Using the drivers of Speedo 4.0 at least shouldn't work due to the changed jobs of Speedo 4.2 and the drivers. (Could anyone test Speedo 4.1 drivers with Speedo 5.0? I don't quite believe that this works) Here's how I think an upgrade works (be careful satire) =================== User: Dear Mr. Compo [...] but my Speedo 4.0 drivers don't work any more. COMPO: ... best wishes to your decision ... BUT: Speedo 4.2 isn't an official release. It's especially made for papyrus and not useful for other programs. On the other hand...though...seen from a different point...maybe...possibly...Finally you need the drivers from Speedo 4.2. But we don't distribute them. Ask R.O.M. about it ... [later] USER: Dear Mr. R.O.M., ...I'd like to get a downgrade, free of course. R.O.M.: ...don't work...our own costs...bla...etc...better wait for NVDI 3.0, we certainly can put you on the list. User: "§$&"§$/(!§&!^# ==================== Well, *I'm* full of anticipation how users that only had Speedo 4.0 will be able to make printouts. Versions of Speedo 5.0 until now: 5.0a (Aug. 3rd 1994) First release 5.0b (Aug. 8th 1994) From now T1 & TT font loading works faster. Known Bug: After calling vqt_headerinfo() the files arent' closed again. If a Program makes this call with all fonts it can run out of filehandles (the amount of them differs from one TOS release to another). Since Speedo 4.2 the 'outlined' attribute only works in special conditions. It depends on the font used, the SpeedoGDOS version, the point size ... and which Mantra's are mumbled at full moon. 5.0c (Aug. ? 1994) Now LOWMEM=0 works as stated in the manual. 13.3.4 NVDI up to V2.51 These releases consist of very fast screen drivers and a very fast GDOS. Compared to Atari-GDOS, NVDI had almost no bugs. Nevertheless the functions were allmost the same. 13.3.5 NVDI 3.0 This will be able to scale Speedo and TrueType fonts and will contain printer drivers. 13.4 Comments Users and coders should be happy with the speed of development. Even the numbers of font formats included simultaneous doesn't have anything comparable on any other platform. The time between the releases of SpeedoGDOS 5.0a to 5.0c - obviously without extended betatesting - doesn't satisfy a lot but, on the other hand it's nice to see that the competition by NVDI 3.0 makes the developers hurry. SpeedoGDOS 5.0 creates problems in some applications that worked perfectly with Speedo 4.x. This may be due to the negative handles that 5.0 uses for the new formats. That's not a bug, because one shouldn't calculate with handles. But some apps do it though. Will SpeedoGDOS 5.0 or NVDI 3.0 be supported by the programs first? With NVDI yet a good coding manual was distributed and I think V3.0 will continue this tradition. COMPO and Atari - on the other hand - make a big secret of how to use their GDOS - when you're not an registered developer (paying a lot of money). Me, as a normal consumer, I have SpeedoGDOS for more than 3 weeks (while I write this), registered developers don't have it yet ... I will support the GDOS at first for which I have a documentation first. Other coders will make it this way, too - without being malicious. And the users will buy that GDOS that's supported by their programs [right said Stefan]. For me it's great to see, that competition revives the marked and I am full of anticipation to see, which documentation comes first. 14 Source For officia developers it's possible to get an almost complete printer driver in object code. This has to be adapted to the special printer. This package is available for GDOS and SpeedoGDOS. 15 Tips'n tricks for users 15.1 Pixel trash at printing Printing graphics on a NEC P6+ (maybe other printers too) including a lot of black in a line I often had the problem that one line was left out (Speedo- drivers NB15, NECP) or two lines were printed displaced in one line (Speedo- drivers FX80, NX1000). This happens when printing directly and via CENSPEED. When VARSPOOL is used this effect vanishes. VARSPOOL can be found on the driver disk of the NEC-printers. 15.2 NEC P6+ Once in a while a NEC P6+ will get noisy (rrrrrrrrrrraattatatattaa). If you open the front you'll see a round bar (about 1cm thick). Put two drops of sewing machine oil on it each year (you'll get it from Mom) 15.3 Overwritten Speedo faces Sometimes SpeedoGDOS writes in face files. This produces interesting effects. To fix this I have a second order besides GEMSYS filled with the Speedo faces on my harddisk. If I get strange effects again I copy these files to the GEMSYS folder. The fixes it in most cases. 16 Tips'n tricks for coders 16.1 Font size and pixel size Here are my experiences with GDOS and WYSIWYG. Credits to Ulrich Rossgoderer for confirming these. It's about the output of vector graphics and text on screen and printer. The size of text is defined in point and is always the same - independent of the resolution of the output device. Different are vector graphics: they have to be recalculated in pixels before the output. This should be no problem. If you are opening a virtual/physical workstation you get the pixel size in micrometers in devParm[3] and devParm[4]. Let's assume the vector graphic is saved internally in micrometers, then the definition points at the output simply have to be divided by devParm[3] or devParm[4] to get the position in pixels. When doing the output in windows an offset has to be added. but thats not relevant here. This is the theory which is quite simple so far (see [3]). Let's start with the practice. As described above we output a text and a border which is saved internally as vector graphics. It doesn't matter here if the text is a Speedo or bitmap font. To have a better chance to compare the border exactly surrounds the text. I got the following experiences: When the text exactly is filling the border on the screen (ST-high) it is - when printed - much too small compared to the border. An error in the recalculation of the pixelsize can't be the problem, because I made the printing with the drivers NB15, NECP, FX80, NX1000 and the results are the same. I have only one explanation for this: The screen driver supposes a different resolution for the pixel size than for the font size. Two solutions I can offer: First you can use another pixel size on the screen than the one given from the operating system. After opening the virtual workstation (and ONLY this one!) I calculated devParm[3] := 282 devParm[4] := 282 and with this parameter I made the recalculation from micrometers in pixels. Now the relation from graphic to text on screen and print-out is exactly the same. But now a DIN A4 page doesn't fit on the screen in it's width. The numbers are found by me the experimental way and possibly can be optimised Another solution may be this: Use a smaller font size for the screen (and ONLY there!) by multiplicating the size with about 72/96. This is simple with Speedo fonts because the size in points can be defined with a very high accuracy. With bitmap fonts this won't work because a screen font in the 72/96 fold size for every printer font doesn't. This method surely is to be midified for ST-Mid and other resolutions. From Wilfried Behne (Half NVDI ...): SpeedoGDOS ignores the devParm[3] and [4] - values of the screen drivers. The values of physical workstations ARE taken. 16.2 Selecting drivers During th test of several GDOS programs I found out, that some coders have the following problems: Users can freely assign drivers in the ASSIGN.SYS. There may be a setup like 23 FX80.SYS 27 NECP.SYS 28 NB15.SYS 31 META.SYS 61 MEMORY.SYS How may a coder find out which drivers are installed (and ready)? Even though there's no Printer 21? Quite easy: When the program supports printers ALL drivers from 21 to 30 have to be opened and closed again at once. An installed driver gives back a devicehandle >0 when it is opened. vf_devinfo only gives back correct values when a driver is open. Do the same thing with drivers 61 to 70 when MEMORY drivers are supported. The ASSIGN.SYS as printed above is very useful. That's because the NEC P printers support all these drivers and print in different resolutions. 17 Addresses ( Lot's of stuff is available from the friendly Atari dealer 'around the corner ;-/ ) (Note: All addresses are German ones - except when marked!) Application Systems Heidelberg (ASH) Postfach 102646 * 69016 Heidelberg Tel.: +49 6221 300002 ATARI Computer GmbH Am Kronberger Hang 2 * 65824 Schwalbach /Ts. Tel.: +49 6196 801-0; Fax.: +49 6196 801 180 Entwicklersupport-Mailbox: +49 6196 81041 Behne & Behne Systemsoftware GbR Lindenkamp 2 * 31515 Wunstorf Tel./Fax.: +49 5031 8629 BELA Computer GmbH: R.I.P. ByTech GbR Detlef Kuhl, Frank Hieronymi Bismarckstrasse 88 * 10627 Berlin Tel.: +49 30 3134258 COMPO Software GmbH Ritzstrasse 13 * Postfach 1051 * 54591 Pruem Tel.: +49 6551 6067 DigiLab GmbH Posener Str. 18 * 24161 Daenischhagen DigitalDesktop (DDT) Is a dealers community Addresses are to be found in Atari-magazines Digital Systems & Consulting Soester Str. 306 * 59071 Hamm Tel.: +49 2381 889413; Fax.: +49 2381 889812 Elan Software 550 Charest Est P.O.Box 30232 Quebec, G1K 8Y2 Canada Voice: (418) 692-0565; Fax: (418) 683-9189 CANADA!!! Dieter Fiebelkorn Gruener Weg 29a * 4370 Marl-Brassert Stephan Gerle Ruthstrasse 8 * 44149 Dortmund H3 Systems Haeusserstrasse 44 * 69115 Heidelberg Tel.: +49 6221 164031; Fax.: +49 6221 184541 Harald und Martin Hansen Weserstrasse 82 * 12059 Berlin Hard & Soft Obere Muensterstr. 33-35 * 44575 Castrop-Rauxel Tel.: +49 2305 18014; Fax.: +49 2305 32463 ICP GmbH & Co.KG Leserservice TOS * Innere-Cramer-Klett-Strasse 6 * 90403 Nuernberg 1 Konfect Corp. Vertriebsbuero A-D-CH Postfach 1113 * D-63797 Kleinostheim Tel. +49 6027 99941; Fax +49 6027 99942 MAXON Computer GmbH Schwalbacher Strae 52 * 65734 Eschborn Tel.: +49 6196 481811 Migraph Inc. 32700 Pacific Highway S. Suite 12, Federal Way WA 98003, USA USA!!! Tel.: 0012068384677 Michael Nolte Computersysteme Vasters Str. 10, 50825 Koeln Tel.: +49 221 558269, Fax: +49 221 5504629 OMIKRON Soft+Hardware GmbH Sponheimerstr. 12a * 75117 Pforzheim Tel.: +49 7231 356033 Pergamon Software * Lehmann & Herzog Wegscheidestr. 29 * 60435 Frankfurt/Main Tel.: +49 69 5488279 rhotron GmbH Entenmuehlstrasse 57 * 66424 Homburg/Saar Tel.: +49 6841 64067; Fax.: +49 6841 2467 Richstein & Dick GbR (Kaktus) Konrad-Adenauer Strasse 19 * 67663 Kaiserslautern Tel.: +49 631 22253 Richter Distributor Hagener Str. 65 * 58285 Gevelsberg Te.: +49 2332 2706 R.O.M. Software (New Address!) Christian Nieber & Ullrich Ramps Raschdorffstr. 99 * 13409 Berlin Tel.: +49 30 4924127 SciLab GmbH Isestrasse 57 * 20149 Hamburg Tel.: +49 40 4603702 SHIFT Computer + Werbung GmbH (quit!!) Michael Siek Bohlweg 6a * 38678 Clausthal-Zellerfeld Tel.: +49 5323 4413 SILICON Technology & Promotion Wilhelmshoeher Allee 124 * 34119 Kassel Tel.: +49 561 711924 Softbaer GbR Richardstr. 60 * 12055 Berlin Tel.: +49 30 6226884 SPIRIT WARE Bible Church 15211 15th Avenue NE Seattle, WA 98155 (USA) USA!!! TKR Stadtparkweg 2 * 24106 Kiel Tel.: +49 431 337881; Fax.: +49 431 35984 Trade-iT doesn't exists any more (since April 1994) Holger Weets Tangastr. 45 * 26121 Oldenburg E-Mail: Holger_Weets@OL.maus.de (Not above 45kB!) Dipl.-Phys.-Ing. Ralf Wirtz Kasterstr. 30 * 52428 Juelich Tel.: +49 2461 1255 Wilhelm Mikroelektronik Luenen Working Title GbR Lilienweg 12 * 53123 Bonn Tel.: +49 228 647020 3K Computerbild Wevelinghoven 26 * 41334 Nettetal Tel.: +49 2153 91860 18 Miscellaneous 18.1 Critics 18.1.1 Critics to the author Critics is welcome. To get more info, send email to: G.Castan@physik.uni-stuttgart.de If you are writing me you have ossibly already tested two or three drivers. Please write me if the errors listed above occured or not. Anybody who knows different driver support addresses, please drop me an email. 18.1.2 Critics to the translator Hi, this is Stefan writing :-) The reason why I wrote this translation I can't find in my head ... Guess it's because Atarians should work together and support each other! Well, if you wonder about some errors of spelling or syntax remind this: I learnt English at school for 4 years an after that I kept my knowledge actual by playing some text adventures and now by reading cs.atari.st and cs.st.tech and some of the ANet groups If you find some errors in this translation, please don't send them to Gerd but to me: cookie@cookie.syd.de Referring to the feedback on this translation there seems to be ANY error in it. I didn't get too much email now - and no postcard, so I'll set my address here too: Stefan Damerau Bergholm 31 D-24857 Fahrdorf It would be interesting to me, WHO is happy with this FAQ, so send me postcards, discs, books, whatever you want - no mail bombs please ;-))) Thank You and have fun and lot's of experience with this FAQ. Bye Stefan 18.2 Praise If this FAQ helped you out of a problem, please write me a postcard in your next holidays. Postcards I received yet: 1 18.3 For my support Due to actual experiences I ask the distributors to switch on verify when copying update disks. I only know two distributors not making any problem with this. Does one of the readers want to code a Speedo font editor? We (Gerd & Stefan) offer our time to beta test it ;-) 18.4 Trademarks This document is full of trademarks that mustn't be used freely. 18.5 Guarantee I'll offer no guarantee. 19 Appendix 19.1 Literature [1] Douglas N. Wheeler, EVERYTHING YOU EVER WANTED TO KNOW ABOUT GDOS (AND MORE), (Internet, Filename: GDOS.ARC oder GDOS.TXT) Here's written all what's important to know about GDOS drivers. (AND MORE) [2] Jankowski, Rabich, Reschke, Atari Profibuch, 10. Auflage, SYBEX, Duesseldorf (1992) The Standard. For Coders: In the VDI part you'll find how to use screen and printer drivers correctly. [3] Marc Rene Gardeya, VDI fuer jedermann [VDI for everyone], ST-Computer 10/93 Introduction in correct programming of screen and printer outputs. [4] Julian Reschke, Herbstgedanken, ST-Magazin 11/92 Autumn thoughts about SpeedoGDOS and FontGDOS. [5] Erik Dick, Schoen und schnell? [Pretty and Fast?] , ST-Computer 7/93 Common info about GDOS and installation of Speedo. Almost the same as in the installation manual, but more information about special problems [6] Erik Dick, SPEEDO-Gonzales, ST-Computer 8/93 Important stuff about programming Speedo. Description of the new bindings and tips for coders for standard situations. [7] Erik Dick, SPEEDO-Gonzales, ST-Computer 9/93 Meaning of the Speedo error messages and bindings of the Bezier and cache routines [8] Erik Dick, Mit Speedo in die zukunft?, ST-Computer 6/94 What's new with Speedo 4.2? New bindings are described too. [9] Raymond Schroeder, Atari-Hotline, ST-Magazin 7/92 Whats GDOS for? Which programs support it? How can I install it? [10] Sven Behne, Wilfried Behne, NVDI-Dokumentation, BELA VDI-description. But no description of the differences between screen and printer drivers. [11] Wilfried Behne, Andreas Kromke, Traps in the Atari ST's VDI and how to get around them, c't 1991, Nr. 3 Much about errors in the screen drivers. [12] Laurenz Pruessner, : es ist alles so schoen Bunt hier [Oh, take a look at these colors], ST-Magazines 5/92, 7/92, 9/92 How to handle more than 256 colors with device depending formats [13] Laurenz Pruessner, Sekt oder Selters [Champaign or mineral water], ST-Magazin 4/93 MEMORY.SYS: Binding, handling of color resolutions, font output with and without SpeedoGDOS. [14] Laurenz Pruessner. Auf ein Neues!, ST-Magazin 1/93 OFF TOPIC Everyone using FlyDials or similar Libraries should read this. Problem: New AES's releases use (formerly free accessible ) ob_state bits that are used by the libraries, too. This only is important for AES 3.31 (TOS 4.01) and is fixed now. [15] Laurenz Pruessner, Summertime Blues, ST-Magazin 6/93 Listing to open the MEMORY driver. [16] Laurenz Pruessner, Mehr Schub!, ST-Computer 2/94 Printing with GDOS - espacially it's about printing of bitmap raster - color, too. [17] Oliver Scheel, Erste Hilfe fuer [1st aid for] MultiTOS, ST-Magazin 6/93 Common information to install MultiTOS. [18] Guenter Born, Referenzhandbuch Dateiformate [Reference Dataformats], 2. Edition, Addison-Wesley, Bonn (1992) With the appropriate drivers it's quite simple to make output in .IMG and in .GEM format. In this book is a description how to read these formats again (and more). [19] Guenter Born, Dateiformate [Data formats] Programmierhandbuch [Coders manual], Addison-Wesley, Bonn (1993) Sources (TurboC, TurboPascal) for loading and saving the formats. To use the datas [16] is recommended. [20] Tim Oren, Professional GEM, (Internet, Filename: PROGEM) Tim Oren almost only describes the programming of the AES but without him this list would not be complete. [21] Norman Walsh et al, comp.fonts FAQ TeX DVI, PostScript, and info versions of this FAQ are available from ftp.shsu.edu in archive/help/comp-fonts-FAQ. A Gopher is also maintained at shsu.edu which can provide interactive access to the FAQ. Finally, an online, hypertext version of the FAQ ist maintained (experimentally) on jasper.ora.com where an HTP server runs. For example, point XMosaic (or a similar WWW browser) to http://jasper.ora.com/. [22] Philip Glass, Koyaanisqatsi, Island Records (1983) It's astoundishing that so many documental films use this music without any note ... CASTAN@cip.physik.uni-stuttgart.de; alias: G.Castan@physik.uni-stuttgart.de Gerd Castan * Hoehbergstr. 16 * D-70327 Stuttgart cookie@cookie.syd.de (MausNet: Stefan Damerau @ SL) Stefan Damerau * Bergholm 31 * D-24857 Fahrdorf)