_____________^^^___________________ Zmagazine HOT Atari News Plus+++ Ron Kovacs Publisher/Editor Middlesex, New Jersey Volume 1 Number 6 July 2, 1986 Liberty Edition-Happy Holiday ___________________________________ Welcome to another Edition Of Zmag. If you have any ideas you would like to see implemented in future editions, Please leave me a message on any of the Zmag BBS Systems, In this issue of Zmag we will have the 4th installment of our series on Assembly Language programming by Chris Crawford. Another Zmag Magazine debuts on the Original Syndicate BBS in New Jersey. It is called ZROCK. This magazine will be devoted to Rock music news, concert and album reviews etc... With weekly Top 10, Top Albums, New releases etc.. If you are interested in more info, please leave me a message. Now on with this weeks Zmag!! By the way, next weeks issue will be devoted entirely to the ST. So if you have any information you can send for publication, please help us out. Thanks. Xx WEFAX By: Marty Goodan Flash! Antic Magazine in its SEPTEMBER issue will be featuring an impressive offering: Versions of a combined hardware and software package to allow both 8 and 16 bit Atari computers to receive, display, edit, store to disk, and print WEFAX weather images. This includes satellite photos, synoptic charts, and, in some cases, UPI type wire photos as well. Details follow: The software/hardware package will allow owners of Atari 520 ST computers to receive WEFAX images with a max resolution of 640 pixels horizontally by 480 pixels vertically. The image will be visible as it is being received, and phasing adjustment and image reversal can be made DURING image reception. Images can be saved to disk in DEGAS format, for later editing or printing with that popular graphic editor. Owners of the 8 bit Atari 800 and 130ST have versions that will receive an image with a max resolution of 512 pixels horizontally and 480 pixels vertically. During reception they will be able to not only adjust phasing and inverse video the image at will, but will also be able to scroll the monitor screen image both horizontally and/or vertically over the larger virtual picture as it is being received. On the 8 bit machines, an option is provided to receive a screen resolution only type picture, and save it to disk in Micropainter format. Tho the resolution here is so poor in this case that this option is worth very little. Unlike the Color Computer WEFAX that I presented in the Feburary 1985 issue of Rainbow Magazine, the Atari implimentation requires a significant, tho rather simple, external hardware circuit. A single XR2211 FSK demodulator / tone decoder chip is used in an easy to build circuit that had about a dozen components. The circuit (pretty much exactly one of the -suggested implimentation- circuits presented with the manufacturer's specs on the chip) will be provided by Antic, tho at this time there are no plans for them to supply PC boards, kits, or assembled and tested units. I have had the pleasure of seeing some images received with both Atari WEFAX systems. They are of sufficiently high quality as to be professionally useable, tho noticeably less clear and detailed than Color Computer WEFAX images. Full assembly source code for the driver programs will be provided, and hooks have been placed for hackers to provide support for higher resolution reception (very sorely needed on the 520ST package) and for gray level reception too (tho for gray levels totally different HARDWARE will be required as the existing XR2211 circuit is incapable of receiving gray level information). It IS very impressive to see a full WEFAX image on the screen of an Atari 520, after over a year of viewing CoCo WEFAX images by scrolling my Color Computer's 256 by 192 screen over the larger virtual image received by the color computer. Overall, the CoCo WEFAX remains a far superior package: It receives a 768 by 576 pixel image, for a total of 54K bytes of image data. This is in contrast to the 640 by 480 res (32.0K bytes) on the 520ST WEFAX, or the 512 by 480 res (30.72K bytes) on the 8 bit 130St or 800 machine. The CoCo version requires nearly nothing in the wa of external hardware. And it provides for both receiving AND sending of WEFAX images. It also is totally in the public domain, while the Antic version is of course copyright ANTIC magazine, creating in theory some barriers to its most wide possible distribution But the Antic WEFAX is a very nice package, and the 520ST version CAN be modified by a conscientious hacker to receives TWICE the linear (or four times the pixel count) resolution. This should be done immediately upon publication of the item, for a WEFAX signal contains image information of around 1500 pixels by 1000 pixels, and there is no reason why the 520ST, with its outstanding graphics capability and ample memory, cannot be made to receive a larger vritual image and have its screen scroll over that image, just as the existing Color Computer and Atari 8 bit versions do. The hardware whose circuit will be published in ANTIC will support such higher resolutions, tho, as noted, it will NOT support gray level discrimination. Publication in ANTIC will assure a reasonably wide distribution of this extremely valuable program and hardware. Other additions hackers might want to make to the 520ST WEFAX will be auto picture reception start, and auto phasing. Both of these can be added by appropriate software. No hardware modifications are needed for those. It is possible that some or all of these enhancements will later be provided in future issues of ANTIC. Of great significance will be the form in which this product will be presented by Antic. A GREAT deal of work is going into the September issue. Antic staff visited both the local national weather service office and the local WEFAX relay rebroadcasting facility. Interviews with staff there, photos of the equipment, and side by side comparisons of unretouched Atari WEFAX images with images received on national weather service FAX machine costing many thousands of dollars will be presented. Overall, it seems the September issue of ANTIC will be QUITE a block buster. Versions of this WEFAX project will later be developed for the Apple family of computers. (Note: I have NO connection with Antic Magazine other than a friendship with Charles Jackson, its managing editor. I made a rather small contribution to the development of the ANTIC WEFAX, primarily by harassing the folks at antic by demoing the Color Computer WEFAX. I also provided some information to them about frequencies to listen to, and lent for a few months my high frequency general coverage receiver to ANTIC to assist them with the project.) ---MARTY GOODMAN Xx Software Review ** Fooblitzky ** By:Bill Parker Infocom, the dependable developer of quality text adventures, has attempted to broaden thier spectrum of offerings with their first gfx assisted action/strategy game, Fooblitzky.......($32.99).... Infocom's impressive past track record, and appealing packaging were more than enough to seperate me from my money. Among the game's appealing attributes are the multi- player (2-4) capability (at last another -family game- - I thought), limited playing time (1-2 hours), and broad age appeal (14 to adult-whatever age that may be). As to play, the exterior description on the box provides an accurate simulation: ...a unique game of deduction strategy, and chance. It's a dog-eat-dog world, as you rove the crowded streets of Fooblitzky, trying to deduce and obtain the four objects needed to win the game. But this is no scavenger hunt: victory depends on how well you use funds, keep records, and out smart your fellow players. Fantastic, a learning experience disguised as fun. On screen movement of each players' alternate persona, in the form of a dog, is by joystick and trigger attached to port number one. The game even offers a -save game- capability and the opportunity to tailor various game parameters to vary the impact of chance and the degree of difficulty. What mre could I ask for? Well... User friendliness would have been nice. An inveterate -boot an go- -we'll get to the instructions later- type when dealing with games, I quickly found that the game gfx and mechanics only became comprehensible after careful reading of all the included documentation. While the game includes a three page refrence card (useful after you read the manual) and a seven page -The Bare Essentials- (a bit too bare), ability to relate to the on screen activities evaded me until I made careful study of the 28-page -Official Ordinances, Rules & Regulations for the City of Fooblitzky- With both my daughters ages 10 and 13,a game that requires reading the documentation is a game destined to gather dust on the shelf. Such remains the fate of FOOBLITZKY after nearly a month. Expertise with text adventures does not translate well into graphics. While adequate and often cute, the graphics are clearly not state of the art. Animation is not smooth and appears to ripple across the screen in a manner I found conducive to eye strain. As the game appears to utilize graphics 8 and depend on -artifacting- for color generation, use of either a television or composite monitor is required. SUMMARY: While often cute and sometimes entertaining, the game fails to deliver the creditable challenge required to keep the targeted age group coming back for more. By design of the graphics and a definite leaning toward cute, the game could have targeted a younger age group well. However, lack of self-evident play mechanics, which results in a need for extensive familiarization with the manual, will limit appeal even here. FOOBLITZKY is a cute idea that failed to properly identify its prospective user and will, consequently, rack up considerable shelf time. Even the best can fall on their sword when exploring new territory. [Reprinted from the June 1986 issue of Current Notes; The Newsletter for Atari Owners] Xx Syndicate BBS Logo I am happy to say that I have received a trademark for the following logo. If you cant read it is because it is done in Atascii. Bulletin Board Service Xx Assembly Language ANTIC PUBLISHING INC., COPYRIGHT 1985. REPRINTED BY PERMISSION. CHRIS CRAWFORD ASSEMBLY LANGUAGE COURSE LESSON FOUR: BRANCHING One of the most important ideas in computing is the concept of conditional execution. This is the ability of the program to execute different routines depending on conditions at the time of execution. The significance of this capability is best realized by considering how programs would operate in its absence. A program without conditional execution would not be able to change its program flow in response to conditions. In other words, it would always execute exactly the same code in exactly the same order. Every run of the program would follow exactly the same sequence and perform exactly the same operations. Not very interesting, right? To get a grip on conditional execution, we need to look at it in its simplest expression. The simplest type of conditional execution is binary in nature. We have a chunk of code; the 6502 will either execute it or it will not execute it. The decision is made on the basis of a boolean value; a true value will tell us to execute the chunk, while a false value will tell the 6502 not to execute the chunk. The basic mechanism for doing this is through an instruction that performs a transfer of control.This involves nothing more than altering the program counter. You may recall that the program counter is a register in the 6502 that points to the address of the currently executed instruction. When that instruction has been executed, the program counter is increased by the length of the instruction (1,2, or 3 bytes, depending on the instruction). It now points to the next instruction. This little system allows the 6502 to step through a program in sequence. But there are also instructions that will alter the value of the program counter, alowing the 6502 to jump to another area of memory and another part of the program. The simplest of these is the JMP instruction. It takes the form JMP LABEL. This loads the value of the LABEL into the program counter. Its effect is to make the 6502 jump to the address of LABEL and continue execution from there. It is directly analagous to a GOTO instruction in Basic. For conditional execution we need something more. We need the 6502 to have capability to make a binary decision based on a binary value. The solution used by the 6502 involves flags. These are single-bit Boolean values stored together in a single byte of the 6502 called the processor status register (SR). The status register is eight bits wide but stores only seven flags. These seven flags are labelled N,V, B, D, I, Z, and C. You have aready encountered the C (Carry) flag and the D(Decimal) flag. In this chapter, we are concerned only with the N, V, Z, and C flags. The magic instruction that makes possible conditional execution can take many forms. Its general form is Bfv LABEL. The B stands for -branch-. The -f- stands for a flag, and the -v- stands for the value of the flag, either true or false. However, in this case, we do not use the terminology -true or false-. Instead we use the terms -set- or -clear-. -Set- means the same thing as -1- or -true-, while -clear- means -0- or -false-. The label is the address to which the 6502 should branch if the condition is satisfied. If the condition is not satisfied, then the 6502 will simply skip this branch instruction and go to the following instruction. For example, suppose that we have the following instruction sequence: LDA #0 BCS KARELIA LDA #5 KARELIA STA FISH This will first load the accumulator with a zero. Then the 6502 encounters the BCS (-Branch on Carry Set-) instruction. It looks at the Carry flag. If this flag is set then the 6502 will indeed branch to the label KARELIA. (For all you geography buffs, Karelia used to be in Finland.) In other words, if the Carry flag is set, the 6502 will skip over the LDA #5 instruction. Thus, a zero will be stored into FISH. However, if the Carry flag is clear, then the 6502 will not take the branch. It will instead continue executing the next instruction, which will load a 5 into the accumulator. Then it will come to the label KARELIA and store that 5 into FISH. Thus, the value of the Carry flag determines whether a zero or a five is stored into FISH. The converse of BCS is BCC (-Branch on Carry Clear-). This will cause the 6502 to take the branch if the Carry flag is clear. There is also a pair of similar instructions for the V-flag. These are BVS and BVC. They will cause the 6502 to branch on the value of the V-flag. Now the situation gets unncessarily confusing. The instructions for the Z-flag should be BZS and BZC -- -Branch on Z Set- and -Branch on Z Clear-. Unfortunately, the dumb designer of the 6502 thought he would get cute at this point, so instead he called these instructions BEQ and BNE, for -Branch on Equal- and -Branch on Not Equal-. He never mentioned what he thought is supposed to be equal to what. We're stuck with it, so make the best of it. Just remember what these instructions really mean BZS and BZC. If you think in terms of the Z-flag, it will work out just fine. If you try to think in terms of equal or not equal, your attention will be diverted from the real truth of the matter and you may make mistakes. So keep your eye on the ball and think in terms of Z! The next pair of branch instructions use the N-flag. These are even more insidious than the previous two. They are called BMI and BPL, meaning -Branch on Minus- and -Branch on Plus-. At first glance, these appear to be reasonable substitutions for BNS and BNC. After all, if you load the accumulator with a signed number, and the number is negative, then the N-flag will be set, while if the number is positive, the N- flag will be clear. Thus, it would seem that BMI is truly equivalent to BNS and BPL is truly equivalent to BNC. This is the source of many a bug in beginner's programs. Consider the following fragment of code: LDA FISH SEC SBC BOAT BPL POSANSR This code is supposed to branch to POSANSR if FISH is greater than GOAT. And indeed, if FISH is greater than GOAT, then when you subtract GOAT from FISH, you will get a positive result, right? Not necessarily! Suppose, for example, that the value in FISH is $C1 and the value in GOAT is 1. When the 6502 subtracts GOAT from FISH, it will get a result of $CO. Note that the highest bit of $CO is set to 1. This is the value that will go into the N-flag. In other words, even though FISH is greater than GOAT, the 6502 will not take the branch, and this code will fail. The moral of his tale is, don't take those instructions literally. They are misleadingly named. When you see BPL, don't think -Branch on Plus-, think -Branch on N Clear-. Otherwise, you'll screw up someday. By the way, the correct branch to use in the above problem is BCS. Now for a catch with the branch instructions. A JMP instruction is a simple absolute jump -- you specify the target address and it goes there. The designers of the 6502 realized that the vast majority of branch instructions only go a short distance They therefore decided to implement the branch instruction as a relative branch. The machine code doesn't specify the target of the branch, it only specifies an offset. In other words, instead of saying, -jump there-, it says, -jump so many bytes forward or backward.- The allowable range is 126 bytes forward or backward. Thus, you can't branch anywhere you want, only to nearby locations, If you must branch further, reverse the logic of the branch and use the branch to skip over a JMP statement. The next installment will be in two weeks, since next weeks issue will be entirely devoted to ST news. Xx Hardware Review OKIDATA'S 182 TTY PRINTER PROVIDES MULTISTAGE VERSATILITY June 1986 Okidata Div. of Oki America, Inc. 532 Fellowship Rd. Mt. Laurel, NJ 08054 609/235-2600 Computer: Any computer with Centronics-style parallel printer port (serial port operation is optional). Features: 120 cps print speed; dot matrix with 9x9 standard characters; 80 characters per line standard or 137 characters per line condensed; 10, 12 or 17.1 cpi and expanded character sizes; 6 or 8 line-per-inch spacing; selectable four-stage operation from -dumb- TTY mode to full intelligent mode; bit-image graphics capability; pin feeding for continuous forms or friction feeding for single sheets; top or bottom paper feeding; re-inking ribbon cartridges; direct-drive printhead. Options: RS-232C serial interface (high speed to 9,600 baud or super speed to 19,200 baud); tractor drive; roll-paper stands (both nonelectronic for attended operation and electronic for unattended operation). Model Tested: Basic 182 TTY printer with parallel interface driven by a Compaq Deskpro via standard LPT1 printer port. Prices: $349 for basic printer; $409 for printer with serial interface; $59 for electronic roll-paper stand; $49 for tractor drive. Reviewed by Ernest E. Mau As its name implies, the Okidata 182 TTY printer is intended primarily for telecommunications, especially where it's connected via a terminal to dump information directly to hard copy without having a local computer capture and store the information. As a teletype-like printer, the 182 TTY can handle such tasks without printing -garbage,- unlike many other printers available today. Yet this printer works equally well in computer-controlled applications because it incorporates four stages of switch-selected intelligence. TTY model makes it a receive-only teletype accepting only printable characters, carriage returns, linefeeds and form feeds. CRT mode adds adjustable margins and horizontal and vertical tabs for rudimentary page formatting. Basic Printer Mode adds selectable type sizes and line spacings. Intelligent Printer Mode adds underlining, superscripts, subscripts, enhanced printing and emphasized printing. At the topmost intelligence level, the printer includes all features (including bit-mapped graphics) expected of any printer for general-purpose computer applications. It responds to the standard Okidata Microline 182 or Microline 92 printer drivers included in commercial software and does an admirable job with word processors, business graphics programs and even computer- aided design systems. In extremely small graphics with fine lettering, it doesn't provide as crisp an output as some other printers, but that application really pushes the 182 TTY beyond its intended uses. Still, it should suffice for all but the most critical graphic applications. Under software control, the intelligent mode also provides block graphics, language fonts (British, German, French, French Canadian and Spanish), line skipping, incremental line spacing, and other capabilities. One notable feature is that the printhead is not driven by a belt. Instead, it contains a small direct-drive motor and gearing that engages a stationary track. That makes it quieter than other printers of the same speed and should mean greater long-term reliability. Furthermore, printhead positioning is microprocessor controlled and uses an optical sensor to determine the actual position, the desired position and any adjustments necessary to match them up. It's nearly impossible to print a character or dot pattern out of position, even when operating under adverse conditions of vibration and movement. I find this printer easy to use, although I prefer it in the intelligent mode as a general- purpose printer. It's small size makes it unobtrusive and easy to install in any convenient nook or cranny, while its comparatively quiet operation isn't excessively distracting. I can talk on the phone while the printer s working next to me, so it should be suitable for most office environments. What I don't like is the position of the parallel connector, which interferes with the paper feed path. Using clean-tear or microperforated paper, the stress caused by the connecting cable easily tears the paper all or part way across a fold line. If torn is only part way, paper jams in the pin feeds. Xx Zmag Notes Next week is our ST edition. I wouls also like to welcome The Sorcerer as our new ST Editor. Next week also will include a BBS review by Walt Drummond of an ST run BBS. I would also like to inform our readers that since the Syndicate BBS has resigned from the Atomic Network. We ar starting something new. In a few weeks we will debut the Zmag Information Network. This network will list and supply BBS Systems with weekly issues of Zmag. Only systems we feel that service it's users and promote tele- communications are invited to join. If you know of a system that might meet the above criteria, please let me know on this BBS or on Compuserve at 71777,2140. Thanks for reading and I hope everyone has a great Holiday Weekend. Take care! See you next week, ----------------------------------- Zmagazine July 2, 1986 Please contribute!! -----------------------------------