From: "Arobase, Salle multimédia" Newsgroups: comp.os.cpm Subject: Better font for CP/M-86 Plus Date: Wed, 2 Apr 2003 14:01:11 +0200 Organization: Wanadoo, l'internet avec France Telecom Lines: 179 Message-ID: Reply-To: "Arobase, Salle multimédia" NNTP-Posting-Host: apoitiers-106-2-1-185.abo.wanadoo.fr X-Trace: news-reader12.wanadoo.fr 1049284689 12353 193.253.213.185 (2 Apr 2003 11:58:09 GMT) X-Complaints-To: abuse@wanadoo.fr NNTP-Posting-Date: 2 Apr 2003 11:58:09 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 QXFONT.TXT ---------- I am very pleased today to give you an utility that, I think, will be very useful to everybody still playing with CP/M on an IBM Clown. The first thing that I noticed 2 years ago, was that CP/M-86 Plus was displaying "double column" (or bold) characters on screen. It was striking for me, since the Epson QX-10 that I had used during the last 15 years had beautiful, "single column" characters that had never tired my eyes. On the IBM Clown, however, I was having headaches after a fairly normal duration of use of the screen. Clearly, those awfully badly designed characters were the culprit, and maybe also the fact that the Epson QX-10 has a "Black and Green" screen, while my TANDON 286 12-MHz has a "color VGA" screen. I have always thinked that color screens were not suitable for serious work. Unfortunately, monochrome screens are now a rarity on IBM Clowns, so we are ogliged to use color screens. The first thing to do is then to select green chars on black background. Recently, I suffered from a flu epidemic. 5 days later, when starting to recover, I reviewed what was on the hard disk of the MS-DOS portable that I use to type my messages to the comp.os.cpm Newsgroup. Among various mixed things, I found one ISOFONT.CMD by Kirk Lawrence. What it was doing striked a chord inside me, so I went to find an old paper file where I had dumped the ROM font of the Epson QX-10. Thank God, I found it easily. Now, the problem was to recreate a source code, with pages after pages of DB defining each line of rows of pixels of each characters. I had no idea where was the original BASIC program that I had used 15 years ago. So, the "simplest" solution was to recreate it... (It is amazing the number of time I re-invent some wheels!) This time, seeing what I had at my disposal, I took my DUMPFILE.BAS program and, instead of displaying the 16 bytes on a line, I modified it to display the pixels on 16 lines, first in normal binary for the HEX value, then in what I call "symbolic binary" (where "." stands for "0", and "O" stands for "1". This makes the shape of characters stands out from the maze of binary digits.). For example: ; ;-------------------------------- 21h = ! ; DB 00010000b ; ...O.... DB 00010000b ; ...O... DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00000000b ; ........ DB 00000000b ; ........ DB 00010000b ; ...O.... DB 00010000b ; ...O.... DB 00000000b ; ........ DB 00000000b ; ........ DB 00000000b ; ........ DB 00000000b ; ........ After recreating the source code of the font of ISOFONT, I took my editor, zeroed the above fields, then spent one morning entering the binary and symbolic binary corresponding to the ROM font used by the Epson QX-10 in "hardware mode". (There is also a "software mode" where you can change the font at will, thanks to the power of the NEC uPD 7220 GDC.) Finally, I disassembled the snippet of code. It was very easy to understand with the "System BIOS" book of Phoenix Technologies Ltd. Kirk Lawrence had written a real nice and small piece of code. I added a STARTUP.SUB file on my CP/M-86 Plus system, so that, from now on, it will automatically change the screen font on cold boot. (The only thing missing from a real 8-bit system is a RAMdisk, especially since so many IBM Clowns only have one single floppy disk drive. But I am in the process of building one dream system.) Since then, I like so much this font, that I have added it in the AUTOEXEC.BAT file of the MS-DOS portable that I use to prepare my messages. I don't know how is your eyesight, but mine is getting older, and it is nice to be able to use such an old, proven, font with faster hardware. I highly recommend it. Yours Sincerely, "French Luser" -------- Begin QXFONT.H86 ------- :0400000300000000F9 :1B000081BE8100AC3C2074FB3C2B74253C2D740AB109BA1D01CDE0E95500B199 :1B001B8109BAA901CDE0B400B003CD10B109BAAC01CDE0E93E00CD11253000C3 :1B0036813D3000740AB41AB000CD103C1A740AB109BA7B01CDE0E92000FAB4C0 :1B00518111B000B710B300B95E00BA2100551E07BDC001CD105DFBB109BAA5A0 :07006C8101CDE033C9CDE0B5 :1B0100820D0A205158464F4E542020627920456D6D616E75656C20524F434890 :1B011B8245200D0A0755736167653A095158464F4E54202B2020496E73746122 :1B0136826C6C7320746865206E657720415343494920666F6E740D0A095158ED :1B015182464F4E54202D2020526573746F726573207468652064656661756C04 :1B016C827420415343494920666F6E740D0A24075761726E696E673A205468F4 :1B01878269732070726F6772616D2072657175697265732056474120766964F6 :1B01A282656F241B6232241B30241B62372400000000000000000000000000AE :1B01BD8200000010101010101010100000101000000000505050000000000015 :1B01D88200000000000000000828282E38E82E38E82828200000000010107C8A :1B01F3829290907C1212927C101000000062949468081010202C52528C000059 :1B020E82000000304848502050908A8A847A00000000181808102000000000C9 :1B022982000000000000000408101020202020201010080400000040201010C0 :1B024482080808080810102040000000001010925438103854921010000000E9 :1B025F8200000010101010FE1010101000000000000000000000000000303024 :1B027A82102040000000000000000000FE000000000000000000000000000079 :1B02958200000000003030000000000204040808101020204040808000000072 :1B02B0823844868A8A9292A2A2C24438000000001030501010101010101010E5 :1B02CB827C000000003844828202040810204080FE0000000038448202043862 :1B02E682040202824438000000000C14142424444484FE04040400000000FEE5 :1B030182808080B8C4020202824438000000000810204040B884828282443869 :1B031C82000000007E42828404040808081010100000000038448282443844EE :1B0337828282824438000000003844828282463A040408102000000000000065 :1B035282303000000000003030000000000000001818000000001818081020B6 :1B036D8200000002040810204080402010080402000000000000FE0000000079 :1B038882FE0000000000000080402010080402040810204080000000384482E2 :1B03A382820408101000001010000000003C42828E92A2A2A29C80403E00004F :1B03BE820000101028282844447C8282828200000000F84442424478444242BA :1B03D9824244F80000000038448282808080808282443800000000F844424249 :1B03F48242424242424244F800000000FE80808080FC8080808080FE0000002C :1B040F8200FE80808080FC808080808080000000003844828280809E828282B2 :1B042A82463A000000008282828282FE828282828282000000007C1010101065 :1B0445821010101010107C000000003E08080808080808088888700000000040 :1B04608282848890A0C0C0A09088848200000000808080808080808080808083 :1B047B82FE000000008282C6C6AAAA929282828282000000008282C2A2A2923A :1B049682928A8A8682820000000038448282828282828282443800000000F899 :1B04B1828482828284F880808080800000000038448282828282829AA6443A62 :1B04CC8200000000F884828284F8888884848282000000003844828240300C7F :1B04E782028282443800000000FE101010101010101010101000000000828244 :1B05028282828282828282824438000000008282828244444428282810100064 :1B051D820000008282828282929292AAAA444400000000828244442810102829 :1B053882444482820000000082828244442828101010101000000000FE0204E8 :1B0553820408081010202040FE000000003C20202020202020202020203C0081 :1B056E82000080404020201010080804040202000000780808080808080808BC :1B05898208080878000000102844820000000000000000000000000000000047 :1B05A4820000000000000000FE00000018181008040000000000000000000070 :1B05BF82000000007804043C448484847A00000000808080B0C884848484840D :1B05DA82C8B00000000000000038448280808082443800000000040404344C04 :1B05F58284848484844C340000000000000038448282FE808244380000000059 :1B06108218242020F820202020202020000000000000023A44444438407C827B :1B062B82827C000000808080B8C48484848484848400000000100000701010FC :1B06468210101010107C000000000400001C04040404040444443800000080D3 :1B0661828080848890A0C0A09088840000000070101010101010101010107C38 :1B067C82000000000000006C929292929292929200000000000000B8C4848461 :1B069782848484848400000000000000384482828282824438000000000000B0 :1B06B28200B8C482828282C4B880800000000000003A4682828282463A02029F :1B06CD8200000000000098A4C08080808080800000000000000078848460189C :1B06E8820484847800000000202020F8202020202022221C0000000000000099 :1B07038284848484848484847A00000000000000828282444428281010000041 :1B071E8200000000008282829292AAAA44440000000000000082824428102810 :1B07398244828200000000000000828244442828101020400000000000007E01 :1B07548202040810204080FC000000000C10101010106010101010100C0000F6 :1B076F8200101010101010101010101010100000006010101010100C10101031 :16078A8210106000000060920C0000000000000000000000000059 :00000001FF -------- End QXFONT.H86 ------- EOF