output of letters with the width of dots

ZXNet echo conference «code.zx»

From jtn To All 15 January 2006

Hello, lvd in #z80-06 76kb of text, music, mountain of tables, 4x7 font and proportional Xx7 deployed 8 times. The code is expanded to a horizontal line - called 8 times. push screen output (in the push buffer +2 lines - next, upper and lower, first, the entire new screen is built, then the new line is decompressed into the buffer - so that the beam does not cut). acceleration, I don’t know if it turned out strong, but in turbo mode the entire screen without the top three acquaintances have time (24 text lines), without turbo - 9 lines (with music included like) - lines 7 pixels high

From lvd To All 15 January 2006

Hello, captain cobalt cap> It’s true that the letters of a monospace font are 6 pixels. may occupy cap> only 4 different positions relative to familiarity? ;) Is it true that you don’t know what exactly I was talking about? Hostages will come out from 3umf+mayhem - you'll find out.

From lvd To All 15 January 2006

Hello, Witch Doctor > Alas, the registers are a lantern... There are 16 of them on the Amiga :( The Z80 also has 16 registers! And if you split the indexes into halves, then 18 =)

From van Yu Shinn To All 15 January 2006

Hello fk0 lvd> 8 procedures for displaying letters. Of these, 3 are output in 1 byte, the rest in 2 lvd> bytes (font 6 pixels wide). But it’s true that the letters of a monospace font are 6 pixels. can only occupy 4 different positions relative to familiarity? ;)

From van Yu Shinn To All 15 January 2006

Hello fk0 Letters are, in a sense, chunks. :) In chunk demos, the image is first rendered into the chunk buffer, and then redrawn in pixels on the screen. The most evil c2p are able to draw the screen in less than 2 ints. Maybe some ideas from there would be helpful?

From van Yu Shinn To All 15 January 2006

Hello fk0 If the cut letters have many elements repeated, then why not when drawing one letter, its most frequent element is not put in case and written from register?...

From Vladimir Kladov To All 15 January 2006

Hello jtn if you print character by character, it will be very slow. But for some reason everything are going exactly this way. Traditional thinking. What is there to change the output order? To display the page, text first letters are viewed and marked, which can be displayed without a mask, simply “put” into memory, and the offset is calculated for each letter. Offset by the way can also be variable if the font is not monospaced, for example for wide There are 5 letters, and for narrower ones there are 4, but i can generally take 2. Shift table for a maximum width of 5 (i.e. 6 with a gap) will take 32x8 = 256 bytes. She needs it place 256 bytes on a block boundary. On the second pass, the remaining letters, already with a mask. If you do it through a buffer, then on one frame you need fill the buffer, and on the second throw it moving behind the beam.

From Gavrilov Vitaly To All 15 January 2006

Hello, Vladimir Kladov Vla> What is there to change the order of output? To display the page text first Vla> is viewed and marked letters that can be displayed without Vla> masks, simply “put” in memory, and for each letter it is calculated Vla> offset. yeah. and how much will the initial viewing of the line with calculation “cost” position of the current character (I'm talking about a proportional font), then the output (required by OR/XOR) remaining with a shift?

From Gavrilov Vitaly To All 15 January 2006

Hello, Witch Doctor > PUT does this mean you just printed a byte and that’s it? > > Hmmm... So, only the classics come out??? it turns out like this (c) Winnie the Pooh%) Well, that’s what I did at QHTV. Everything flies quite quickly. especially considering that first the print goes to the buffer and then is displayed on the screen. despite the fact that the buffer still pre-cleaned (not entirely true)

From Witch Doctor To All 15 January 2006

Hello Vitamin PUT does this mean it just outputted a byte and that’s it? Hmmm... So, only the classics come out???

From Witch Doctor To All 15 January 2006

Hello, captain cobalt Alas, there are 16 registers here... There are 16 registers on the Amiga :( There were attempts to do something like caching or smart printing and other terribly smart words... I.e. at after The rotation of the bytes is preserved and the stripe code is preserved. Then everything is printed and etc. and during the next cycle we check whether this stripe is repeated. In order to so as not to rotate, but simply take what was saved. Well, it also ends up being slower :(