_______________________^^^_________ Zmagazine HOT Atari June 18, 1986 News Plus+++ Ron Kovacs-Editor Vol 1 No. 5 ___________________________________ Xx Welcome Welcome to another edition of Zmagazine. This week we lack a BBS Review and the expected interview with Scott Brause. As soon as we can get the information formatted and checked we will publish right here!!!! Xx In this weeks issue: Part 2 of our series on Assembly Language programming. Family Computing Survey results. User Group News Zmag BBS Watch Atari News, interesting information not let out at the CES show. and more........ ----------------------------------- Xx Zmag Notes ----------------------------------- As I stated in the Special June 15, CES issue, I have modified a file called Printdoc, made by Jerry White. This file allows you to read Zmag without pages and also allows you to make a hard copy. If you are interested in getting this file to use or even modify, leave me a message on the Syndicate BBS or on the BBS you are reading this on. The Syndicate number is, 201-968-8148 300/1200 baud. ----------------------------------- Xx Kieth Does it Again! MPP users now can get Express!! [76703,4061] MPPEXP.DOC 14-Jun-86 Accesses: 25 Keywords: MPP EXPRESS TERMINAL MODEM DOCUMENTATION MPP Express! This is the documentation file for MPP Express!, available under the name of MPPEXP.XMO. Formatted for 80 columns, just copy it to your printer. Capture this file by doing a -R-ead command. Keith [76703,4061] MPPEXP.XMO 14-Jun-86 Accesses: 24 Keywords: MPP EXPRESS TERMINAL MODEM MPP Express! Here is the MPP version of the popular -Express!- terminal programs. Created specifically for MPP modems, it features such things as configurable speed dialing and 297/300/400/450 baud. Along with the highly-dependable XModem routines -- your XModem blues are over! See MPPEXP.DOC for documentation. Enjoy! Keith Ledbetter 76703,4061 These files are available on Compu- Serve and also The Syndicate BBS. ----------------------------------- ................................... Xx User Group News ................................... All Interested Parties!!!!! MIDI User's Group/BBS JOIN DALLAS MIDI USER'S GROUP!!! - Free general membership - Free computer BBS - Free Song File downloads - Free Synth patch downloads - Free MIDI utility programs - Monthly newsletter/meetings - All brands of hardware /software - International Computer Music - Database online Further info: write (by U.S. mail) to: Ray Reach Dallas MIDI User's Group (-DMUG) 4306 Pineridge Drive Garland, Texas 75042 PHONE: (214) 272-0963 ----------------------------------- fXx Zmag BBS Watch Board :ZMAG MESG BASE Message # :59 Date & Time :06/07/86 19:55:03 Replies :0 Subject :ZMAG IN JERSEY CONT To :RON KOVACS (REC) Sent by :CLINTON SMITH RON,10 BOARDS! ZMAG MUST BE LIKE A RABBIT IN JERSEY.WE ARE COMING UP ON 7 BOARDS OUT HERE.I'LL BE WAITING FOR THE SB TEXT.GOOD LUCK ON SAN FRANCISCO,WHO KNOWS?MAYBE WE'VE STARTED A CHAIN REACTION. THANKS AND I'LL BE TALKING TO YA. L8ER CLINTON SMITH ZMAG EDITOR CHICAGO Xx Atari News!!!! ----------------------------------- ATARI PLANNING SUMMER PRODUCTS (June 5) Atari Corp. is holding some product announcements from the CES and scheduling them for later in the summer. Compatible with the ST product line, the new products will include a 3.5 floppy with 10MB storage capacity, a super-hi-res graphics board with 1,000 line resolution and a new sound chip. Other new products are memory and multitasking upgrades as well as a new expansion box for holding the multiple upgrades. ATARI'S 32-BIT MICRO COMING SOON (June 6) Atari has a 32-bit computer in development. The company recently signed a Unix licensing agreement with AT&T and Atari chairman Jack Tramiel has indicated that the new machine will run under Unix. When the new computer is introduced, current ST owners will be offered an option to upgrade their machines to use the Unix operating system. No release date was specified for the new computer. ATARI TO QUIT TAIWAN PLANT (June 4) Jack Tramiel is planning to shut down Atari's production line in Taiwan. In remarks posted on a bulletin board service after he met with Atari owners in Massachusetts, the Atari chairman said that under the right conditions computers could be constructed in the US with the same cost efficiency as in Taiwan. Tramiel set no deadline for the manufacturing changeover but he did indicate the move was not in the immediate future. Reported By:--James Moran AMIGA DEVELOPERS UNHAPPY (June 3) Third-party software developers are voicing their concern over what they perceive is a lack of support and concern by Commodore Business Machines. Many developers have dropped plans to continue Amiga development until they receive some assurances that Commodore will supply necessary development information. Commodore is trying to assure developers and the Amiga dealer network, that support will continue regardless of internal restructuring. Last week, Randy Weiner of Amiga Technical Support told developers they -will continue to receive the full support of Commodore. We are not about to 'dump' on anyone. I, for one, understand the importance of such support, and what it means to the future of the Amiga, and Commodore itself.- Reported By:--James Moran ----------------------------------- ----------------------------------- Xx Family Computing Survey WHAT COMPUTER OWNERS THINK ABOUT MAIL ORDER The vast majority of computer owners have bought by mail or are willing to do so, according to FAMILY COMPUTING's April survey on Mail Order Buying. Over a three- week period, 238 people completed the survey. Here are the highlights: 1) Only 7% said they would never purchase computer equipment by mail 72% said they have bought by mail. Of those buyers, 55% were -very satisfied,- and 25% were -somewhat satisfied- with the service. Only 3% were -not satisfied.- Product orders broke down like this Software (72%) Peripherals (50%) accessories (36%) Computers (10%). The single most important reason people gave for mail- order buying was -lower prices,- noted by 50% of respondents. The single most important (67%) drawback was -you can't see or try out what you're buying.- The relative index of buyers by machine broke down like this: Tandy/Radio Shack (90%) ADAM (85%) Atari (73%) Commodore (71%) IBM (71%) Apple (68%) These results are published in the August issue of Family Computing, with a cover story on MAIL ORDER BUYING. ----------------------------------- ----------------------------------- Xx Assembly Language ----------------------------------- ANTIC ONLINE ANTIC PUBLISHING INC., COPYRIGHT 1985. REPRINTED BY PERMISSION. ----------------------------------- ASSEMBLY LANGUAGE - LESSON 2 ** 6502 ARITHMETIC ** By: CHRIS CRAWFORD NUMBER SYSTEMS In this lecture I will take up the problem of arithmetic on the 6502. I choose this topic only because it is fairly simple to do on the 6502. There are a couple of nerve-jangling problems associated with 6502 arithmetic, but I will breeze over those in a very cavalier fashion. Before we can do arithmetic, though, you must know a little bit about number systems. There are three that you must know: decimal, binary, and hexadecimal. Decimal is the standard numbeat you have used since grade school. You count 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, and then you reach 0 again, so you put down a 1 in the tens place and resume counting from 0. Binary works the same way, except that there are only two digits, not ten. The two digits are 0 and 1. You count 0, then 1, then you reach 0 again, so you put down a 1 in the twos place and resume counting from 0. Thus, counting from 0 to ten in binary like this: Decimal Binary 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010 In binary, instead of having ones, tens, and hundreds places, we have ones, twos, fours and eights places. It takes a lot more digits to express a number in binary, but then again, we have only the two numberals 0 and 1 to work with, so what does one expect? The hexadecimal number system is a base-16 system. In this system, you count from 0 to 16 like so 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E ,F, 10. The 10 in hexadecimal really means 16 in decimal. So 10 is 16, right? Black is white, truth is likes....stay with assembly language long enough and you'll believe anything. Actually, it's easy to avoid confusion. We use little prefixes to tell you and the computer whether a number is expressed in decimal, binary, or hexadecimal. No prefix means decimal. A $ prefix means hexadecimal; a % means binary. Thus %10 means 2 while $10 means 16, but 10 means just plain old 10. Hexadecimal is not hard to learn at all; if you go into any store you will see that they use hexadecimal on all their signs. ADDITION AND SUBTRACTION Addition with the 6502 is very simple; it uses the ADC instruction. This instruction means -Add with Carry-; I'll get to the Carry part in just a moment.For now,let me explain the instruction. The ADC instruction has an operand, normally a location in memory. When the instruction is executed, it takes the contents of that memory location and adds that value to the value in the accumulator. It leaves the sum of the two numbers in the accumulator. This of course destorys the old value in the acucmulator. You can use the immediate mode of addressing with the ADC instruction, in which case it adds the value itself. Thus, -ADC # 9- will add a 9 to the contents of the accumulator, while -ADC FISH- will add the contents of address FISH to the accumulator. Subtraction is just like addition. The instruction to use is SBC, which means -Subtract Borrowing Carry-. Again, I'll tell you about the Carry part in a moment. This instruction subtracts the operand from the contents of the accumulator, leaving the result in the accumulator, It also can be done in either immediate mode (e.g. SBC#5) or absolute mode (e.g., SBC GOAT). WORD LENGTH PROBLEMS If that were all there were to arithmetic with the 6502, programmers would be paid a lot less. The first killer problem is that the 6502 uses 8-bit words; that is, the numbers that the 6502 stores and works with are only 8 bits wide. This means that the biggest number the 6502 can comprehend is 255. Uh-oh! What happens if you want to have a checkbook balancing program and you have more than $255? What happens if you get more than 255 points in your -Decapitate the Orphans- game? In fact, what happens if you just ignore the limit and add, say, 10 to 250? Well, believe it or not,the 6502 will give you an answer of 4. Why? The number system that the 6502 uses is like a wheel, with 0 at the top, counting clockwise 1,2,3,... all the way up to 255, which lies right next to the 0. If you go up from 255 you just wrap around past the 0 and start all over. Similarly if you subtract 2 from 0, you'll get 254. The solution to all this is provided by the Carry bit, discussion of which I've been putting off unitl now. The Carry bit is a flag that the 6502 uses to remember when it has done arithmetic that carried it over the boundary between 0 and 255. By using it properly, you can solve your arithmetic problems. The first trick to using the Carry bit is to use multi-byte words. This means that, instead of using a single byte to store a number, you use several. For example, if you use two bytes to remember a number, you can store a number as large as 65,535. three bytes lets you to to 16,777,215. Four bytes lets you go to 4,294, 967,295. big enough for you? To use multi-byte arithmetic, you set up a series of additions of subtractions. Suppose, for example, that you want to add two two-byte words. The program fragment to do this would look like this: LDA LOFISH CLC ADC LOGOAT STA LOANSR LDA HIFISH ADC HIGOAT STA HIANSR This little fragment of code assumes that the first two-byte value is called (LOGOAT, HIGOAT), and that the , HIANSR). The new instruction, CLC, stands for -Clear Carry- and it means that the Carry bit should be set to 0. It should always be used with all additions except chained additions like this one. The code does the following: first it adds the two low values. If the addition resulted in a wrap- around (result greater than 255), then the Carry bit was set; otherwise, it was cleared. Then it performed the second addition, adding in the value of the Carry bit (That's why we call it -Add with Carry-). Thus, if a wrap- around occurred, an additional one was added into the high sum. This system insures that multi-byte addition works properly. For subtraction, you use the SEC instruction (-Set Carry-). Otherwise, you handle subtraction the same way that you handle addition. In both addition and subraction, though, the low bytes must be handled first, then the higher bytes in the proper order (lower to higher). DECIMAL & SIGNED ARITHMETIC There are two variations on standard 6502 arithmetic. Both are so rarely used that I will not treat them here. The first is decimal arithmetic using the Decimal flag. This allows you to set up an automatic decimal adjust mode. This is useful in certain types of arithmetic, decimal adjust mode. This is useful in certain types of arithmetic, primarily BCD arithmetic. If you don't know what this is, don't bother with the Decimal flag. Your program should always begin with the instruction CLD, which means -Clear Decimal Flag-. I will tell you this just once: failure to clear the decimal flag is the source of the most frustrating and impossible-to-trace bug in the 6502. Every single program should start with the instruction CLD. The second arcane bit of 6502 arithmetic is signed arithemetic. It uses the V flag (-oVerflow-). Signed arithmetic is always confusing and seldom useful. In 7 years of working with the 6502, I have never had need of it. Don't bother. LIMITATIONS ON 6502 ARITHEMETIC There are quite a few limitations on 6502 arithmetic. There is no facility for multiplication and division; you have to wirte subroutines to do that. You must design your programs to make do with 8-bit words; failing in that, you must use multi-byte arithemetic, with its consequent price in speed and TAM. All in all, arithmetic is a real pain on the 6502. This is the major reason why most 6502 programs do so little arithmetic. ----------------------------------- Next week part three of this 8 part series on Assembly Language. ----------------------------------- Xx Atomic Network News ********** ANNOUNCEMENT *********** FROM THE ATOMIC NETWORK WE ARE HAVING A CONTEST THE PERSON WHO COMES UP WITH THE BEST IDEA FOR A LOGO FOR THE ATOMIC NETWORK WILL WIN.............. A $200.00 GIFT CERTIFICATE AT J&R MUSIC WORLD THE STARTING DATE: APRIL 2,1986 THE ENDING DATE : AUGUST 21,1986 * CONTEST RULES * ALL ENTRIES MUST BE POSTMARKED NOT EARLIER THEN APRIL 2,1986 OR AFTER AUGUST 21,1986 ALL ENTRIES MUST CONTAIN: 1...HANDLE(IF ANY) 2...REAL NAME. 3...ADDRESS. 4...PHONE NUMBER(VOICE LINE) 5...A BBS NAME AND NUMBER WHERE YOU CAN BE REACHED. ALL SYSOPS AND CO-SYSOPS OF THE ATOMIC NETWORK ARE NOT ELIGABLE SEND ALL ENTRIES TO: THE ATOMIC NETWORK P.O. BOX 594 KNICKERBOCKER STATION N.Y. N.Y. 10002 -===================- Xx Next Atomic Meeting The next Atomic Network meeting will be held on Sunday June 22, at 1pm. Anyone interested in details, please call the Valhalla BBS @ 212-598-0243 -===================- ___________________________________ Zmagazine #5 June 18, 1986 Next edition June 25, 1986 Please contribute!! Take care! ___________________________________