()()()()¢¢ MAGNIFY¢ Brought to you by OL' HACKERS. The¢ program "MAGNIFY.COM" will be found on¢ OHAUG Jan/Feb 1996 newsletter disk.¢ The programmer is unkown.¢¢ WHAT DOES IT DO?¢¢ MAGNIFY is a program which allows¢ you to take any graphics 8 or graphics¢ 7 1/2 (Micro-Painter format) file and¢ dump it to your Epson (or compatible)¢ printer. There are several extra¢ features in this program which make it¢ different from the many public domain¢ screen dump utilities around.¢¢ BACKGROUND!¢¢ I had started out with such a¢ program (KWIKDUMP), and started adding¢ extra features. In the end, it was¢ becoming too slow, since it was¢ written in Atari Basic, and I was¢ unable to add the last few special¢ features, so I decided to write the¢ whole thing in machine language.¢¢ PROBLEMS FACED.¢¢ One problem I had with KWIKDUMP¢ was that it simply dumped the screen¢ to the printer with no editing¢ capabilities. Any 1-bits in the¢ picture printed as black and 0-bits¢ printed as white. Depending on the¢ choice of colour registers in the¢ picture, the printed image could end¢ up looking like a negative. To¢ resolve this in my modified version of¢ KWIKDUMP, I created a routine to flip¢ all the bits in the picture.¢ Another problem was the printed¢ pictures were too small, taking up¢ less than 1/4 of the page. I wanted¢ them to be closer to a full page in¢ size. My first cut at magnifying the¢ picture was to take each bit and print¢ it as a 2x2 square of bits with the¢ same value. Each 1-bit would become 2¢ 1-bits side by side which were printed¢ twice. This worked fine, but led to¢ rather blocky pictures. It also did¢ not allow for the fact that graphics 7¢ 1/2 pictures have four colours, and it¢ would be nice to try to differentiate¢ between them.¢¢ WHAT I DID!¢¢ I decided to try to magnify each¢ pair of bits together, calling it 2-¢ bit horizontal magnification. Each¢ pair of bits beside each other¢ horizontally on the screen (1 pixel in¢ graphics 7 1/2) are treated as one¢ entity to be magnified. A bit pattern¢ consisting of a 1 followed by a 0¢ (i.e. 10) becomes 1010. This bit¢ pattern would be printed two times,¢ thus supplying the vertical¢ magnification. This helped to¢ distinguish between the 4 colours of¢ the original picture, since a 10 or 01¢ pattern would look gray instead of¢ black.¢ However, this method still had¢ some problems in the vertical¢ direction. I therefore decided to add¢ another routine which would treat each¢ pair of bits in the vertical direction¢ as one entity for magnification,¢ calling it 2-bit vertical¢ magnification. Instead of taking a 1¢ and 0 vertically and making them 1100,¢ I made them 1010 vertically. This¢ helped to alleviate some of the¢ problems.¢¢ COMBINING TWO METHODS.¢¢ Finally, I created a routine which¢ implemented both 2-bit magnifications,¢ calling it 2-bit horizontal and¢ vertical magnification.¢ I was now able to print pictures¢ the way I wanted, using the much¢ modified KWIKDUMP, with a number of¢ machine language subroutines stored as¢ strings doing the magnifying and¢ flipping. However, I could not tell¢ what the picture was going to look¢ like until I printed it in all of the¢ different modes. Why not magnify it¢ on the screen, and scroll around the¢ picture, thus deciding which¢ magnification technique was best!¢¢ BRINGING IN ASSEMBLY!¢¢ Goodbye basic and hello assembly¢ language! MAGNIFY was born. Writing¢ it was a great learning experience. I¢ had to be able to read the disk¢ directory and display it, read the¢ picture file itself, implement smooth¢ scrolling, and dump the picture to the¢ printer, and all in one program! ¢ Great stuff.¢¢ COMPROMISES MADE!¢¢ In writing this program, I had to¢ make several compromises due to memory¢ restrictions. It will only read¢ Micro-Painter format picture files¢ (i.e. uncompressed), and does no error¢ trapping when reading the file. I can¢ only magnify the middle 32 bytes of¢ the 40 bytes per line of picture. The¢ ANTIC chip does not allow a display¢ line to cross a 4K boundary. When¢ implementing smooth horizontal¢ scrolling, you create a display line¢ which is wider than the screen, and¢ you only show part of it. To make the¢ magnification and scrolling routines¢ as simple as possible, I chose a¢ display line width which divided¢ evenly into 4096 (4K). The best¢ choice was 64, which is 2x32. ¢ Besides, I didn't have enough memory¢ to magnify the whole 7680 bytes of a¢ graphics 7 1/2 picture.¢¢ USING MAGNIFY¢¢ The MAGNIFY program should be put¢ on a DOS disk as an autorun file (i.e.¢ name it AUTORUN.SYS for DOS 2.0). ¢ Boot your computer without any¢ cartridges (hold down OPTION on¢ XL/XE's).¢ Once MAGNIFY has loaded and gives¢ you the startup screen, remove the¢ program disk and put in your picture¢ disk and press START. You will now¢ see a list of all the files on the¢ disk which have an extender of .?IC¢ where the ? is any legal character for¢ a filename. This allows for .MIC and¢ .PIC. Each file has a letter beside¢ it. Press the appropriate letter for¢ the picture you want and it will be¢ loaded.¢¢ GRAPHICS 8 PICTURE.¢¢ The picture will initially be¢ displayed in graphics 8. If you are¢ using a television as your display¢ device, artifacting could make your¢ picture look rather interesting. I¢ use a monitor, and in hi-res mode it¢ displays the pictures properly without¢ any artifacting.¢¢ DIFFERENT CONTROL COMMANDS:¢¢ To invert all bits (exchanging¢ black and white), press OPTION.¢¢ To switch back and forth between¢ graphics 8 and 7 1/2, press SELECT.¢¢ Now plug a joystick into port 1¢ and let's start magnifying. If you¢ press the joystick button you will¢ cycle through the 5 magnification¢ modes, which are:¢¢ (1) none¢ (2) 1-bit horizontal and vertical¢ (3) 2-bit horizontal and 1-bit¢ vertical¢ (4) 1-bit horizontal and 2-bit¢ vertical¢ (5) 2-bit horizontal and vertical.¢¢ In any of the four magnified modes¢ you can scroll around the picture,¢ checking out how different areas look. ¢ Once you have decided which¢ magnification technique should work¢ best on your printer, press START. ¢ The full picture will be printed in¢ the same magnification mode as is¢ currently on the display.¢¢ TO GO TO DIRECTORY MENU:¢¢ To return to the directory menu,¢ press the ESC key. If you want to¢ change picture disks, simply press ESC¢ again, change disks and press START.¢¢ ENJOY!¢¢ I hope you find MAGNIFY a useful¢ program. I certainly do, and I also¢ learned a lot about the fantastic¢ graphics capabilities of Atari¢ computers while writing it. Have¢ fun!¢ *****¢