________________________^^^________ Zmagazine June 25 1986 HOT Atari Vol 1, No.6 News Plus++ Ron Kovacs-Publisher/Editor Middlesex, New Jersey ___________________________________ Xx In this Issue!!! This is our biggest issue to date, due to the many text files sent in during the past week, I thought I would include everything I had. I was also thinking of writing this weeks edition in 80 column format. But do to the time required to re- format all the uploaded information I received this week, I will try to do it for next week. CONTENTS: Legislation in Congress?? Atari ST news Beginners Column by Steve Godun Part 3 of Assembly Programming Zmag BBS Watch and more!!!!!!!! Xx Editors Notes Next week I will update our Zmag BBS list. We will also have a BBS review of two BBS Systems. ZPRINT2 has been released and I am looking for someone to modify it for various printers. When we go to 80 column format, I would like readers to be able to print out the issue (if they choose), I would like to put the config for their printers in the program. Anyone who can help, I will include their name in Zmag and in the ZPRINT title screen. ----------------------------------- Xx Atari News Part One [Reprinted from InfoWorld] Atari: $99.95 Modem by Karen Sorensen InfoWorld Atari Corp. announaced it is developing a Hayes-compatible 1,200(bps) modem that will retail for $99.95 and will run on a variety of personal computers. The modem will feature an RS-232 serial port, which will allow it to run with the Atari line and other machines, such as the IBM PC, said Neil Harris, Atari's hardware products manager. The device will also have a serial input/output port, which will allow Atari's 8- bit computers to work with it, Harris said. Users will be able to select from either 1,200 or 300-bps rates. The modem will support all standard Hayes commands, except for one that allows users to store phone numbers on nonerasable memory, according to Harris. Atari plans to offer separate accessory kits, as well as software that will allow the computer to emulate specific terminals, Harris said. Atari now hopes to introduce the modem by late summer. Atari is also developing a cart- ridge that will plug into the ST and allow it to operate like a DEC VT100 terminal. Many large corp- orations are interested in using the St solely as a terminal, Harris said. Currently, VT100 emulation is available through a $124 program called PC/Intercomm from Mark of the Unicorn, in Cambridge,Mass. Xx Spelling Aide by Scott Mace InfoWorld Staff Batteries Included released Thunder a 50,000-word real-time spelling checker for the Atari ST that works from within most GEM-based applica- tions. Thunder checks words as the user types and allows users to correct words within 80 characters of mis- spelling them, said Mark Skapinker, director of product development for Batteries Included and the programs designer. Skapinker said Thunder's process of checking spellings and retrieving a list of possible correct spellings is a quicker, one-step process than that used by Turbo Lightning, an IBM PC program from Borland Inter- national of scotts Valey,CA. Like Turbo Lightning, Thunder can reside in memory at all times, Skapinker said. But Turbo Lightning does its initial screening from a 5,000-root-word dictionary, and users may have to branch to a 50,000 word, disk-based synonym directory, he said. -But the Thunder dictionary is always loaded completely into memory,- Thunder does not include a synonym dictionary, said Skapinker, and the program works only with GEM-based (Graphics Environment Manager) applications on the Atari St, such as Homepak, Paperclip Elite, ST Talk, BTS The Spreadsheet, and Timelink from Batteries Included; Habawriter from Haba/Arrays Inc. of Van Nuys, California; Regent Base from Regent Software of Canoga Park, Caifornia; and 1st Word from Atari Corp. of Sunnyvale,CA. On the GEM desktop, Thunder appears as a desk accessory, Skapinker said. Thunder will not work as a desk accessory with non-GEM Atari ST programs, said Skapinker. But the program can be run alone to check spelling on files from virtually any ST application. The program also allows users to predefine two-character abbreviations for longer words. When the users types the abbreviaton followed by a space, Thunder automatically expands it to the full word. Thunder also includes a document analyzer, which reports on each document's word count, character count, percentage of words with more than three syllables, number of sentences, average words per sentence, and readability ratings. Xx Legislation HOUSE PASSES COMPUTER CRIME BILL June 1986 The House of Representatives today made quick work of a new computer crime bill that would establish severe penalties for illegally accessing government computers, while cracking down on illegal computer bulletin board systems. The bill (HR 4718), sponsored by Rep. William Hughes (D-N.J.), passed under an expedited procedure called suspension of the rules which limits debate and prohibits amendments. It now must go to the Senate, where a companion measure has been languishing in committee, before going to the president for his consideration. The fast-track House procedure requires a two- thirds vote, but there was no objection voiced to the bill during debate. The measure was reported out last month by the House Judiciary Committee after hearings before its crime subcommittee. Hughes, who chairs the crime subcommittee, said he expects quick action on the measure on the Senate. He predicted that the bill will become law before the end of the 99th Congress in December. The changes in the law, Hughes said, are needed to eliminate another glaring example of the failure of existing law to keep pace with technological advances. -With computer crimes,- he said, -the trespassing or theft is done electronically, not physically. Although the losses are often just as great or even greater than property crime, our laws are not current enough to keep pace with the changing technology used by the criminals.- Hughes was the author of the nation's first computer crime law in 1984, a measure that established a new federal crime for un- authorized access to classified information in government computers and a misdemeanor for accessing any federal computer or computer containing financial or credit information. Hughes said he hopes the new bill will build on the existing federal statute. The new measure would establish a: -:- New felony for trespassing into federal interest computers, those run by or for the federal government, banks, or states. Offenders would face five-year prison terms. -:- Second felony for -maliciously trespassing- into a federal interest computer and causing more than $1,000 in damage. -:-Category of federal misdemeanors involving the use of illegal BBSes to post private information, such as credit card data, phone account information and passwords. -We need to establish clear guidelines,- Hughes said, -for protecting the information stored in computers and for cracking down on those who knowingly put computers to criminal of malicious use.- The Judiciary Committee, having completed its work on computer crime for the year, next is expected to turn its attention to the issue of privacy protection for databases, electronic mail and other forms of telecommunications. The Judiciary subcommittee on the courts, civil liberties and the administration of justice has reported out a bill, sponsored by its chairman Rep. Robert W. Kastenmeier (D-Wis.) that would extend the same protections as first class mail to tele- communications. That bill, however, has yet to be brought up before the full committee, but staffers for Judiciary Committee Chairman Rep. Peter Rodino (D-N.J.) said the measure will be on the panel's summer agenda. A companion bill is moving through the Senate. --J. S. Orr Electronic Privacy ELECTRONIC PRIVACY ACT HEADED FOR HOUSE FLOOR June 1986 The House is preparing to act on a bill that extends protections under the 1968 federal wiretap act to all kinds of data communications, including electronic mail. The Electronic Communication Privacy Act (HR 4952) was reported out last week by the House Judiciary Committee and could find its way to the floor as early as this week, according to committee sources. The measure is a -clean bill,- replacing HR 3378, also called the Electronic Communication Privacy Act, introduced by Rep. Robert Kastenmeier (D-Wis.) last September. The new bill, also sponsored by Kastenmeier, who chairs the panel's subcommittee on civil liberties, received a unanimous endorsement from the full Judiciary Committee as well as praise from its chairman Rep. Peter Rodino (D-N.J.). -Almost 20 years ago, Congress passed legislation to protect the privacy rights of telephone users,- Rodino said. -Since then, the communication industry has been revolutionized by new technology, including cellular and cordless phones, electronic mail sent by computers, paging devices and other electronic information systems,- The problem of privacy protections for computer data and forms of electronic communications has long worried civil libertarians as well as private and commercial computer users. The 1968 wiretap law makes it a crime to intercept telephone conversations and forces law enforcement authorities to seek permission from the courts to install wiretaps. However, the law refers only to oral communication meaning data transmissions are without protection against wiretaps by government authorities or private individuals. The new bill -gives paramount attention to protecting the basic privacy interests of all Americans, It also meets the needs of law enforcement officials who must resort to court-approved surveillance in order to apprehend suspected criminals, and it ensures fair competition among industry-users of new communication technologies. Specifically, the bill would: -:-extend protection against intercepts to cover all electronic communications -:-eliminate the distinction between common carriers and private carriers -:-create penalties for persons who obtain unauthorized access to electronic communications -:-require government authorities to obtain court orders before obtaining access to third-party computer records. -:-expand the list of crimes for which a wiretap court order may be obtained. -:-require government authorities to obtain a court order based upon -reasonable cause- before it can use a device to record phone numbers dialed from a certain phone. -:-require government authorities to show -probable cause- to obtain a court order authorizing a tracking device. --J. Scott Orr Xx Atari News from Current Notes Excerpts from Current Notes June 1986. By: Joe Waters/Frank Sommers Hard Disk Drives?? Atari has thousands of the long awaited hard disk drives piling up in warehouses. The targeted shipping date was end of May, so these drives should be in your local store soon. We'll see... 1200 Baud Modem?? Expect to see the Atari 1200 baud modem late this month or early July. Sources indicate that the MS-DOS emulator has received FCC approval. The hardware seems to be in fine shape, but the software still needs tuning. Probably wont see this until fall. New Monitor?? The SPI3000 will be the same as the current color monitor with one significant difference--a built in disk drive. Final price has not been set, but should be in the neighborhood of $500.00. The EST, the next generation ST, will feature a very high resolution monitor (1280 x 960??). However, monitors of this kind of resolution are very expensive. Currently priced at $1000.00. Atari is searching the world to see if it can find a supplier who can make a more economical HR monitor. Dont look for the EST before, at best, early in 1987. Personal Prolog?? If you are anxiously awaiting for Personal Prolog from OSS, you'll have to wait awhile longer. The first release of PP will be OSS's first product for the MacIntosh. The ST version won't be ready till the end of the summer. OSS also noted that they have dropped plans to produce Personal Diskit -- there are already too many programs around performing similar functions. Xx BEGINNERS' COLUMN: POKEing AROUND By Steve Godun Written Exclusively for Z-MAG Greetings, all!! This column is for all of the people who wanted to learn BASIC, but always thought it was too hard, or it wasn't worth it, or you didn't have the time, or you were just too lazy to learn it. But before I go on, let me say that learning BASIC is like learning to do anything else: It takes practice but once mastered, you can make it do anything you want. If you're reading this, chances are you've had some experience with BASIC programs, even if just typing in a program from ANTIC. But many beginners, when writing a program mown, at times will overlook (some- times on purpose) the ever-useful POKE command. This -fear of POKEs- (POKEphobia?) tends to arise from statements in BASIC manuals that may read -...The first expression, aexp1, must be an integer or arithmatic expression that evaluates to an integer that represents the memory address of the machine language routine to be performed...- (Taken from ATARI BASIC REFERENCE MANUAL, Page 36). Now, if you were (or are) a beginner BASIC programmer and you saw this, wouldn't you say -Huh?- I know I did! So, in this article, I'll try to explain POKEs with a little more clarity. Note that this article is intended for beginning programmers only, but feel free to read on if you're not a beginner. Basically, a POKE is just changing, or redefining, the value of a memory location in the Atari's Operating System (OS). That's it. Nothing else. Simple, eh? So, now you're about ready to fool around with those POKEs. Boot up DOS, turn on yor monitor, and let's get on with it. In direct mode (NO LINE NUMBER), it works like this: POKE x,y [RETURN] Here, x is the memory location, and y is the value for that location. To put a POKE in a program, just type it like you would any other program. Here's an example: 10 POKE x,y Note that nothing except the line number was changed, added, or taken away. When run, this will act the same way it would if it were entered in direct mode, but the program would continue to execute the rest of the program after performing the POKE. If you were to look through some BASIC programs from, let's say, ANTIC, you might be able to find a few common POKEs there. The most commonly used POKEs are these: POKE 752,1 (CURSOR - Turns cursor off: Replace the 1 with a 0 to turn it back on.) POKE 710,x (BACKGROUND - Changes the background color. The x is any number from 0-255. Each number will change the color of the back- ground. Experiment a little and find a setting that you like! More about colors later on.) POKE 580,1 (COLD START - Type this in direct mode and press RESET on your Atari. The computer will act as if it were turned off and on again. A very useful POKE commonly used to prevent LISTing of a program. Put a 0 where the 1 is to return to normal setting.) POKE 16,64 & POKE 53774,64 (BREAK KEY - Type both in to disable the BREAK key. Usually used in conjunction with the above to keep programs away from -prying eyes-.) POKE 65,0 (I/O FLAG - Type this in and quiet the -beep beep- from disk and cassette reading and writing. Substitute a 1 where the 0 is to return to normal POKE 82,x (MARGINS) in Atari BASIC, enter this POKE and put a number from 0-39 to set the margin. 0 is at the far left, while moving to the right increases the left margin space. The default setting is 2.) POKE 83,x (RIGHT MARGIN - Same as above, but for the right margin. The default is 39.) Of course, there are many, many more POKE locations. These are just a few to start you off. For a near complete list of POKEs, I suggest you buy a copy of -MASTER MEMORY MAP- by EDUCATIONAL SOFTWARE, Inc. Almost all of the Atari POKEs are listed there, along with an explanation of each. So, experiment!! Just be sure that, when you start your experi- ments, your disk is out of the drive, no program is in memory that hasn't been saved (In case you screw up the computer and have to reboot), and that you have a paper and pencil handy for writing down all those important POKEs. - - - - - - - - - - - - - - - - - - Want to see the internal workings of your Atari? Type in this program and RUN it: 10 GRAPHICS 0 15 POKE 88,0 20 PRINT -I LOVE TO POKE!- 25 GOTO 20 The POKE 88,0 opens a -window- to the internals of the Atari. To get out of this, hit RESET. Try other words or phrases in line 20 and see what happens. - - - - - - - - - - - - - - - - - - Well, that's all for now. Have fun POKEing around your Atari, and remember that POKEing is not illegal. See ya soon... -Steve the Kid Sys0p of MJAC BBS (201)469-4474 ----------------------------------- [Ed. In addition to the book that Steve recommended, Look for -Mapping The Atari- By: Ian Chadwick, Published by Compute Publications, Inc, ABC Publishing Company. $16.95] Xx Zmag BBS Watch This is a new column that will be dedicated to messages of interest from Zmag Message bases on systems carrying Zmag and/or a Zmag Base. Following text taken from the NYC BBS. TO->COMPUTER WIZZZ FROM->RATBANE SUBJ->Z-MAG Everyone thanks you for your kind thoughts. How exactly do you read ZMAG in computer class? Does your teacher acquire a file and then let everybody read it? Is it read as part of class time or study time, or after-school club time? Ask your teacher if there is anything we could do to be of help to him in teaching computers and programming. There is a Basic class being taught on Atomic boards by Woden, Sysop of the Valhalla BBS. We have a lot of Public Domain utilites, and firsthand access to many goodies here in the great city of New York. Do let us know what your teacher says. Try to get him/her to log on here, too. RATBANE TO->ALL FROM->COMPUTER WIZZZ SUBJ->Z-MAG WELL HELLO FROM THE GREAT STATE OF VERMONT, COMPUTER WIZZZ HERE RESPONDING TO Z-MAG ARTICLES ABOUT THE ATOMIC NETWORK,N.Y.CITY BBS AND B.A.T. ALSO Z-MAG ITSELF. Z-MAG IS THE BEST THING TO HAPPEN ON BBS'S SINCE MODEMS. I HAVE BEEN LOOKING AROUND AND HAVE COME TO THE CONCLUSION THAT N.Y.CITY BBS AND THE ATOMIC NETWORK ARE IN THE FORE- FRONT OF PUBLIC SERVICE BBS'S. AS FOR ME I READ Z-MAG IN MY COMPUTER CLASS IN SCHOOL, INTERESTING. B-C-IN-YA *COMPU-WIZZZ* TO->SYSUSR:0 FROM->[[The*Mayor]] SUBJ->NYC*AMUSMENTS ANOTHER WELCOME CHANGE TO THE N.Y. CITY BBS WILL BE HERE SHORTLY,SINCE THE FORMER CO-SYSOP OF NYC *AMUSMENTS BASE #3 HAS LEFT US,I AM CHANGEING THE NAME OF THE BASE TO REFLECT THE GROWTH OF THE ATOMIC NETWORK AND N.Y.CITY BBS. THE MAIN REASON FOR OUR SUCCESS BESIDES ALL YOU GREAT USERS IS THE POPULARITY OF ZMAG ALL ACROSS THE COUNTRY, WHICH CARRIES INFORMATION OF ATOMIC AND N.Y.CITY AND B.A.T. SO THEREFORE BASE #3 WILL BECOME |NYC|Z-MAG|BASE| OR SOMETHING CLOSE TO THAT,IF ANY OF YOU HAVE ANY SUGGESTIONS ON THE NAME,LET ME KNOW DURING THE WEEK,ALSO IF ANY OF YOU ARE BIG FANS OF Z-MAG AND CANT SEEM TO KEEP QUIET ABOUT HOW GREAT IT REALLY IS,LET ME KNOW THAT TOO,THAT USER MAYBE OUR NEXT NYC|Z-MAG| CORRESPONDENT. KEEP SMILING THE MAYOR TO->ALL FROM->WODEN SUBJ->ZMAG THE LATEST ISSUE OF ZMAG IS NOW AVAILABLE FOR DOWNLOADING. THE FILE IS ZMAG611. THIS ISSUE HAS A SECTION ON BEGINING ASSEMBLY LANGUAGE PROGRAMMING. LOOK FOR IT IN THE DOWLOAD SECTION. IF ANYONE HAS ANYTHING THAT THEY WOULD LIKE DONATE TO ZMAG. YOU CAN UPLOAD IT HERE, LEAVE ME A MESSAGE AND I'LL SEE THAT THE NEWS DEPARTMENT RECIEVES IT. HERE IS YOUR CHANCE TO HAVE YOUR WORK SHOWN WITHIN THE FASTEST GROWING BULLETIN BOARD MAGAZINE AROUND. ----------------------------------- Xx Assembly Language ANTIC PUBLISHING INC., COPYRIGHT 1985. REPRINTED BY PERMISSION. CHRIS CRAWFORD ASSEMBLY LANGUAGE LESSON THREE: LOGIC BOOLEAN LOGIC A great deal of programming involves the use of Boolean logic. This is a standardized system for handling logical manipulations. It's sort of like algebra for logic You must understand Boolean logic if you are to write assembly language programs, so let's get started. Where algebra deals with numbers Boolean logic deals with propositions. A proposition is just a statement such as -Fred eats worms.- It can take only two possible values -- True or False. In our programs we seldom bother with broad and glorious propositions such as -Love is the universal language of truth- or -War is the extension of policy by other means-. Instead, we normally deal with propositions such as -The joystick trigger has been pressed,- or -There is a diskette in the disk drive.- When we use Boolean logic with a computer, we may think in terms of true and false, but the computer is actually working with 1's and 0's. We use the following convention: a 1 corresponds to a Boolean value of -true-, while a 0 corresponds to a Boolean -false-. Using this system we can represent propositions inside the computer. However, programming requires more than the mere representation of data; we must also be able to manipulate that data. This brings us to the Boolean operators. There are four common Boolean operations necessary for most programming practices: Not This is the simplest of Boolean operators. It takes a single Boolean value as an input and produces as its output the logical converse of the input. Thus, a true input yields output, while a false input generates a true input. Or This Boolean operator takes two Boolean values as its input and generates a single Boolean value as its output. The value of the output depends on the values of the inputs according to the following rule: If one input is true OR the other value is true, then the output is true. Otherwise, the output is false. And This Boolean operator is just like the or-operator, except that it uses a different rule. Its rule is: If one input is true AND the other input is true, then the output is true; otherwise the output is false. Exclusive-Or This Boolean operator is just like the or-operator, except that its rule is: If one input is true, OR the other input is true, BUT not both are true, then the output is true; otherwise, the output is false. When we use the 6502 for Boolean operations, you must remember that the operations are eight bits wide. Instead of working with one bit at a time, we use all eight bits of a word in parallel. The bits in a byte are independent and do not affect each other in any way -- at least as far as Boolean operations are concerned. The 6502 has three instructions for performing Boolean operations. These are AND, EOR, and ORA. The first performs an and-operation. For example, consider the following code: LDA FISH AND GOAT This will first Load the accumulator with the value of FISH. It will then And the contents of the accumulator with the contents of GOAT. The result of the and- operation will be left in the accumulator. The AND-instruction can use an immediate operand if you desire, just as the ADC-instruction can. The EOR-instruction provides the exclusive-or operator. It works just like the AND-instruction. The ORA instruction provides the or- operator in just the same way. If you wish to obtain the NOT- operation, just use EOR #$FF; this will invert each bit in the accumulator. Because NOT is so easily reproduced with EOR, there is no special NOT instruction in the 6502. APPLICATIONS OF BOOLEAN LOGIC If you have any sense at all, you are probably asking, -What good is all this Boolean nonsense? What would I use it for?- Four applications are available: Program Logic Many times our programs encounter rather complex logical situations. The program must be able to load a file; if the FMS is in place and there is a diskette in the disk drive, and the diskette has the file we are looking for, or the file specification calls for a cassette load, then we will load the program. Many programming problems involve such Boolean operations, Keeping them straight is certainly a headache. Masking Bits Sometimes we need to isolate particular bits in a byte. For example, in Eastern Front (1941) I used the character value to store the unit type. The color of the unit was encoded in the upper two bits of the byte, the type in the lower six bits. If I wanted to get only the unit type, I had to mask out the upper two bits. This I did with the following code fragment: LDA UNITCODE AND #$3F The AND-instruction eliminated the upper two bits, leaving me with just the unit type. Bit-masking like this is useful in many situations. We use it frequently when we pack bits into a byte to save memory. It is also handy with input handling. If you want to read the joystick port, you frequently mask out the bits in turn to see which is active. By the way, you mask out bits set to 1 with the AND-instruction. You mask out bits set to 0 with the ORA instruction. The logic is reversed. Setting and Clearing Individual Bits We also use the AND and ORA instructions to set or clear individual bits within a byte. This is most often useful for handling arrays of flag bits. Folding Bytes Together This little fragment of code will fold bytes together: LDA FISH EOR GOAT AND MASK EOR GOAT STA ANSWER This is a magical piece of code. See if you can figure out what it does. Experiment with two values of MASK: $OF and $FO. SHIFT AND ROTATE INSTRUCTIONS The 6502 also has instructions that allow you to shift the bits around inside a byte. The first of these are the shift instructions. One, ASL, shifts a byte to the left; the other, LSR, shifts a byte to the right. Thus, the byte %01101011, when shifted left, becomes %11010110. Each bit is shifted one position to the left. The leftmost bit is rudely pushed right out of the byte and falls away (-Aaaaaaaaarrrrrggggg!-). A zero is shifted into the rightmost bit. The LSR instruction does the same thing in the opposite direction. Note that ASL also doubles the value of the byte, while LSR halves it. Two ASL's multiply by four; three multiply by eight. This makes it easy to do simple multiplication, but be careful with round-off error here. What happens if you try to multiply by 256? What do you get if you halve 3? A variation on the shift instructions are the rotate instructions. There are two: rotate left (ROL) and rotate right (ROR). These function just like the shift instructions, except that the bit that gets shoved into the bottom is not necessarily a zero; it is the contents of the Carry bit. The bit that gets pushed off the edge of the byte goes into the Carry bit, so it is not lost. Thus, if you rotate either way nine times, you'll be right back where you started. Rotate instructions are a handy way to get a particular bit into the carry bit where you can work on it. Conversely, once you get your desired bit into the carry bit the way you want it, you can put it back into a byte with some rotate instructions. INCREMENT AND DECREMENT INSTRUCTIONS The last instructions I will cover are the increment and decrement instructions. These allow you to add one (increment) or subtract one (decrement) from a memory location. These are not considered to be arithmetic operations so they do not affect the Carry flag, nor are they affected by it. You cannot increment or decrement the accumulator, only RAM locations. Next week Part 4 Xx Fine Tuning DOS By: Divemaster A) How to delete -Twin- files Have you ever ended up with 2 (or more) files on your disk with the same filename? Do you end up cursing and screaming when you try to delete one of them? There is a way around that, folks: 1) Boot up DOS with BASIC in. 2) In the immediate mode, type POKE 3118,0 3) Type DOS, and press RETURN. Now, you'll be able to delete without losing both files, because by POKEing 3118,0, DOS will erase ONLY the first -TWIN- file. [Reprinted from the March Issue of the Alamo Area Atari Users Group Newsletter] Xx Zmag Notes Well there you have it. Our longest issue and hopefully one of our best to date. Please pass the word about Zmag, if you know of a BBS that is interested, please have them leave me a message on The Syndicate BBS 201-968-8148 or any of the other Systems carrying Zmag. Thanks for reading... See you next week. ----------------------------------- Zmagazine June 25, 1986 Please contribute!! ----------------------------------- (c)1986 Ron Kovacs (c)1988 SPC/Ron Kovacs