*********************************** Zmagazine June 11, 1986 ^^^ New Jersey Edition HOT Atari News Plus+++ Ron Kovacs-Editor, Middlesex, NJ *********************************** XxIn this Issue Zmag BBS Watch Mouse for your 8 bit??? Part One of a series on Assembly Language programming Special BBS comment Zmag Notes ----------------------------------- XxCommodore 1350 Controller for your Atari!!! THE COMMODORE 1350 CONTROLLER FOR YOUR ATARI!(Or The Mouse That Jack Built) by Jay Pierstorff There has been much talk of mice and mouse controllers lately. The new Atari ST's come equipped with their own mouse...(mice?) ..meeces?. Anyway, those of us who have an Atari of the 8-bit persuasion have watched with great envy, wishing we too, could have mice. Even if we could buy an ST mouse for our 8-bitters (which we can't) it wouldn't work with our existing joystuck (sic) programs. Sure, we'd all love to have an Atari ST, but my 130XE's library is bigger than the ST's and more important, it's paid for. Atari is rumored to be introducing an 8-bit mouse, but it is not confirmed at the time this article is being written. Mouse envy persists. I found myself wandering the aisles of the computer stores. Suddenly,I noticed a Commodore product beaming through the glass. -The Commodore 1350 Mouse for the C128- was printed on the package. The price was less than $50. Those lucky 128 owners! Too bad Atari hasn't made one for their computers. The C128 Commodore is an upwardly compatible to the C64 computer. That means that any software that worked on the 64 will also run on the 128. The C64 and the Atari's have always been real friendly about using the same joystick varieties. Would this.... could this... might this mouse work with a trackball or mouse driver program? The plug looked very much like a standard joystick connector. I bought it antook it home. I could tell my Atari 130XE was nervous about the whole works, but undaunted, I loaded a trackball program, plugged in the mouse... but wait, the plug would not stay in! Upon close examination of the connector, I discovered that it was about 1/8 of an inch too short to reach the connector pins, (Commodore computers don't recess their joystick ports quite as much as Atari). I was Puzzled for a moment and then I thought about using a joystick extension cable! Ha! I quickly found my extension cable and plugged one end into port 1 and the other end plugged perfectly to the mouse! With trembling fingers I slid the mouse across the desk, and then... nothing. The cursor was on the screen but the mouse yawned. It would not control the cursor, not even a little. Now what... I tried to think, maybe it would work with a Koala or Touch Tablet program! I booted and failed. Maybe it was a -joystk emulator!- A Joystick in mouse clothing! I loaded the graphics editor of The Print Shop, IT WORKED IT WAS A JOYSTICK EMULATOR ALL ALONG! Suddenly, it occurred to me I should probably calm down. I got down off the computer table and tried a few more programs. Everything that would normally run with a joystick, was working with this imitation mouse. A comparison of the mouse and the Atari port shows the connections are mostly compatible with Atari and Commodore joysticks. Interesting that the brief, mouse instructions made no mention of Joystick emulation or even compatibility with the C64! Strange thing to keep a secret! Especially for companies in business to make money (right Jack?). The only non-workable feature of the 1350 Mouse is the right button. The left button is the standard -fire- button on a Joystick. The right button is connected to pin 9. The Atari looks to pin 9 for a potentiometer reading like a paddle controller would pruce. But since their is no paddle emulation in the mouse, the right button is invisible to the Atari's OS. Oh well, one doesn't miss what one has never had. If Joysticks were meant to have two buttons....well you know what I mean. The Commodore Mouse is very usable. Even though your computer thinks it's a joystick, you will think it's a mouse! It really does an amazing job of convincing you! It feels good in your hand and moves smoothly across any flat surface. A clean desk or a -mouse pad- will give best results. A mouse pad is a rubber backed thin cushion that gives more control over mouse movements. For mouse maintenance, the rubber-coated, steel ball can be easily removed for cleaning. The 1350 Mouse is different from a true optical driven mouse. A true mouse has proportional control. The faster you move the mouse, the faster the cursor will move. The 1350 mimics this action but it can't move the cursor any faster than a joystick would. Slower cursor movements are imitated by the mouse delivering short, stop and go pulses to the computer. A true mouse will always take the same desktop travel to move the cursor from one screen edge to the other. The 1350 will move the cursor at maximum speed as long as the 1350 is in any motion at any speed. That means a fast, long push may not move the cursor as far as a short, slow push! That's not really a problem though, it's just a difference that can be worked with. It can even be an advantage for limited desktop space. The Commodore 1350 Mouse worked with all games and programs that require a joystick. Some are improved by the mouse and some are more suited to joystick control. The type of programs that are best suited to the mouse are those that require precision movements of cursor or gunsight centering on the screen. The least suited are the programs reqring continuous scrolling movementsThey often require picking the mouse up and starting again if you run out of counter space. Drawing and doodling programs worked fabulous, Koronis Rift scores improved markedly, Rescue on Fractalus was confusing! Donkey Kong was ...different! It just depends on the type of movement involved. Many games took on a whole new feel when played with the mouse. Many were even more fun with a mouse than with a joystick! Do you really need a mouse? Yes you do! If you own and use a joystick, you will definitely enjoy owning a 1350 mouse. I wouldn't part with mine. Don't throw your joystick away yet, but mine is seeing less use since I let the mouse in the house! The Commodore mouse is not just for the C128 anymore! It's one of the best darn joysticks since the old Atari licorice stick! XxZmag BBS Watch Messages captured from the Windy City BBCS in Chicago. Home of Clinton Smith, Chicago Zmag Editor Board :ATARI ST SIG Date & Time :06/02/86 06:28:46 Subject :CPM To :ALL Sent by :SYSOP THE CPM SOFTWARE EMULATOR FOR THE ST IS READY AND IT SHOULD BE OUT IN THE FALL.......... Board :ATARI RUMORS Date & Time :06/02/86 06:31:15 Subject :3 1/2 DRVS. To :ALL Sent by :SYSOP THEY ARE COMMING 3 1/2-DRIVES FOR THE 8 BIT LINE LATE THIS YEAR OR EARLY NEXT BUT THEY WILL BE RELEASED.... Board :ZMAG MESG BASE Date & Time :06/02/86 10:56:42 Subject :ZMAG IN JERSEY To :RON KOVACS (REC) Sent by :CLINTON SMITH THE MESSAGE BASE GOT WIPED OUT,SO IN CASE YOU DIDN'T GET MY RESPONSE I'M REPEATING IT.YOU HAVE ZMAG UP ON 6 BOARDS IN NEW JERSEY?I'M IMPRESSED.WE JUST REACHED THAT HERE,AND WE'VE BEEN AROUND FOR 6 MONTHS.WHEN YOU'RE UP ON COMPU SERVE,BE SURE TO LEAVE A MSG. FOR TIM OROSZ.HE'S A BIG HELP WITH ZMAG OUT HERE.HE'S GOING TO BE GETTING THE ANTIC ONLINE REPORTS, BUT THANKS FOR THE OFFER ANYWAY. ONE OF THEYSOPS OF WINDY,WROTE UP A PIECE ON CES,HE WAS THERE Board :ZMAG MESG BASE Date & Time :06/02/86 12:03:54 Subject :ZMAG IN JERSEY CONT To :RON KOVACS (REC) Sent by :CLINTON SMITH SUNDAY.KIND OF A LOCAL PERSPECTIVE ON CES.CONCERNING COMPUSERVE MSG, IF YOU SEE SOMETHING OF IMPORTANCE JUST GIVE THE INFO FROM THE MSG. IF YOU REALLY WANT TO REPRINT THE EXACT MSG. I SUPPOSE YOU COULD ASK THE PERSON FOR PERMISSION.I DON'T THINK THE ATTORNIES COULD SWARM DOWN ON US IN THAT SITUATION.I AM INTERESTED IN THE SCOTT B. INTERVIEW.BE HEARING FROM YOU. CLINTON SMITH ZMAG EDITOR P.S. TOMMOROW NIGHT IS THE SPECIAL CLAUG MEETING WITH ATARI EXECS. MAYBE THIS COULD RETURN THE FAVOR ON THE INTERVIEW. Board :ZMAG MESG BASE Date & Time :06/02/86 11:08:38 Subject :SPECIAL MEETING To :ALL Sent by :CLINTON SMITH I'VE BEEN GIVING THE REGULAR CLAUG MEETING ACE AT TRITON,IN REFERENCE TO THE SPECIAL MEETING TOMMOROW.I FOUND OUT FROM GERRY FEID ON BLUE MOON,THAT IS GOING TO BE IN THE IRONWOOD ROOM.SAME BUILDING,EXCEPT THIS ROOM IS ON FIRST FLOOR.I THINK IT IS RIGHT ACROSS FROM THE BURGER KING THAT IS IN THE BUILDING.BE THERE BEFORE 8PM OTHERWISE YOU WON'T BE LET IN. CLINTON SMITH ZMAG EDITOR Board :ATARI ST SIG Date & Time :06/02/86 14:22:08 Subject :SEE ONE! To :ALL Sent by :TOM ZUREK Hi Guys & Gals, Were would the nearest place be that I could take a look at one of these ST's.... I own a couple 8 bits but haven't seen an ST yet. I live on the NW side of Chicago.... Thanx, Tom Zurek XxZmag Newz Zmag debuts on another local BBS System. Backstage DOWNLOAD DIRECTORY FILENAME TRANSLATE SECS TYPE LANG ___________________________________ LDBNDT21 ATASCII 0127 Comm Bas EXPR1030 ATASCII 0263 Comm Obj COPYXE ATASCII 0012 Util Obj DEBUG ATASCII 0048 Util Obj DARTS ATASCII 0111 Ga Bas SHRINK ATASCII 0032 Util Obj ZMAG604 ATASCII 0129 TEXT NEW [D]ownload [N]ext Page [M]ain Menu: Thanks to The Director, Sysop of The Backstage BBS. Previewed last week here in Zmag in a BBS Review by Walt. 201-944-1196 Welcome!!!! Messages captured from the Valhalla BBS. 212-598-0243 MSG#: 1621 Lines=16 Recv SENT:JUNE 10,1986 AT 10:03 PM TO: WODEN-SYSOP FROM:RICHARD SCHRAUDNER SUBJ:TEXPRO ---WODEN--- Zmag seems to be a GREAT idea. When I think back to my early atari days, up all night keying in Compute programs & now fully immersed in the -mainstream- of computer technology, I'm amazed at the oportunitues to learn & enjoy. Zmag seems to fill an additional void that goes beyond an individual board or even network. I'll D/L some more as time allows & get it up to the Fun house (a bit hard to get to during available hours). Thx & looking forward actually meeting. ---rs--- MSG#: 1604 Lines=30 Recv SENT: JUNE 9, 1986 TO: SCARFACE FROM:RATBANE SUBJ:ZMAG HI, IF YOU LET ME KNOW WHAT YOU ARE LOOKING FOR, I CAN TARGET STUFF TO YOUR NEEDS AND WANTS. IF SOMETHING IS SLIGHTLY OFF-TARGET, LET ME KNOW. IT IS ONLY A MILD PROBLEM FOR ME TO WRITE 2 VERSIONS OF SOMETHING--ONE FOR THE ATOMIC AUDIENCE AND ONE FOR ZMAG READERS. DOES ZMAG WANT PUBLIC SERVICE ANNOUNCEMENTS? DOES ZMAG WANT NEWS WHICH HAS NOTHING TO DO WITH COMPUTERS, BUT SETS AN EXAMPLE OF WHAT COMPUTER BBS CAN PUT UP FOR GENERAL CONSUMPTION (E.G. MOST OF WHAT I HAVE WRITTEN)? WOULD ZMAG BE INTERESTED IN EXAMPLES OF LOCAL NEWS WHICH MIGHT SOUND EXOTIC TO FOREIGNERS, SAY, FROM THE MIDWEST OR CALIFORNIA? I HAVE IN MIND THE STATUE OF LIBERTY CELEBRATIONS. IF WE PUT OUR COMPUTER TO USE FOR SOME LOCAL ORGANIZATION WOULD YOU BE INTERESTED IN A WRIEUP, AGA AS AN EXAMPLE OF WHAT COMPUTER BBS CAN DO? THESE IDEAS ARE WHERE MY NERAL INCLINATION LIES. DO LET ME KNOW. WARMEST REGARDS, MSG#: 1600 Lines=16 Recv SENT:JUNE 8,1986 AT 8:35 AM TO: RICHARD SCHRAUDNER FROM:WODEN-SYSOP SUBJ:TEXPRO RON CAN EXPLAIN ZMAG BETTER THEN I COULD RICHARD, BUT LET ME TO SHED SOME LIGHT TILL RON LOGS ON. ZMAG IS A MAGAZINE FOR THE BULLETIN BOARDS. AS I UNTERSTAND IT, IT WAS STARTED BY SOMEONE IN CHICAGO. RON IS THE EDITOR FOR ZMAG FOR THE LOCAL AREA. THE MATERIAL COMES FROM USERS OF BULLETIN BOARDS AND COMPUSERVE. IT BRINGS UP TO THE MINUTE NEWS OF EVENTS, COMPUTERS AND OTHER SUBJECTS. I THINK THAT IT IS A VERY GOOD IDEA. DON'T YOU? WODEN XxAssembly Language Course This is part of a series. Next week part 2. ANTIC PUBLISHING INC., COPYRIGHT 1985. REPRINTED BY PERMISSION. CHRIS CRAWFORD ASSEMBLY LANGUAGE COURSE FOR WORLDWIDE USERS NETWORK Assembly language is the great barrier that divides the professional programmer from the amateur. It is the most powerful language available for a microcomputer. There are four reasons for learning to program in assembly language. First, the speed of execution of assembly language is very high -- about ten time higher than BASIC on the average, perhaps a thousand times faster on certain operations. Even ACTION, the fastest high-level language, is only about half as fast as assembly language. Second, assembly language tends to be more compact than many languages. Again, ACTION! provides a good comparison. Code produced by ACTION! is about twice as large as equivalent assembly language. The third reason to program in assembly language is that assembly gives you access to features of the machine that simply are not available in high-level languages. Interrupts are the most notable examples. Finally, the most important reason for learning to program in assembly language is thait will help you to understand the machine better. And that is a very good place to begin, for you cannot learn assembly language unless you know a little bit about computers. HOW COMPUTERS WORK I am now going to describe how computers work, in very rough terms. Computers operate on a hierarchy of concepts that spans a great range, rather like the hierarchy that starts with protons and electrons, moves through atoms, molecules, cells, people to civilizations. A civilization is composed of protons and electrons, but to understand how it is so composed one must know a great deal about the intermediate steps. So too is a computer composed of transistors. There are four intermediate steps between the transistor and the computer. A transistor is an electrically operated switch. We can assemble transistors into gates that will turn circuits on or off depending on the states of other circuits. There are a variety of gates reflecting the various Boolean operations: AND, OR, NOT, NAND, NOR and EOR. Gates can be assembled into latches, decoders, and adders. A latch is the simplest memory element: it remembers one bit of information. A decoder translates a number encoded in binary form on a few wires into a selection of one of many wires. An adder will add two one-bit values, with a carry, and generate a carry of its own. We can next broaden each of these devices into an eight-bit device by simply slinging the devices side by side. Eight one- bit latches slung side-by-the side give one byte of RAM. Eight adders make an eight-bit adder. We can thus create a RAM module by building many butes of RAM. We access this RAM module with three buses: a data bus, an address bus, and a control bus. The data bus carries information between the central processing unit and the RAM module. The address bus is sixteen bits wide; a decoder inhe RAM module. The address bus is sixteen bits wide; a decoder in the RAM module takes the numeric value on the address bus and decodes it to select the single byte of RAM that is indicated by the address. The control bus establishes the direction of the data flow on the data bus and the timing of data transfer. The central processing unit (CPU) represents the highest intellectual level of the computer. It is composed of four parts: the Arithmetic and Logic Unit (ALU), the registers, the address bus controller, and the instruction decoder. The ALU is composed of adders and gate arrays that crunch numbers. The particular device to use is selected with a decoder. The registers are simply on- board RAM. The address bus controller is a device that puts the desired RAM address onto the address bus. The real heart of the CPU is the instruction decoder, a very complex decoder that takes the program instructions out of RAM and translates them into action. It does this by feeding the instructions (which are numbers) into decoder circuits that activate the desired gateways in the CPU. PROGRAMMING A MICROPROCESSOR Machine code is nothing more than a bunch of numbers that mean something to the CPU. It's hard to work with pure numbers, so we use a little code that makes it easier for us to understand the codes that the computer uses. This programmer -friendlier code is called assembly language, It is a direct, one-to- one translation of machine code. Here is an example of the two side by side: Machine Code Assembly Language A9 05 LDA #FINGERS 133 $9C STA COUNT The code on the right may not look very readable, but you must agree, it's far more readable than the code on the left. And they both mean exactlthe same thing. Unfortunately, the computer cannot read the assembly code, only the machine code. Thefore, we need a translator program that will translate the easier-to-understand code on the right into the impossible-to-understand code on the left. This translator program is called an assembler. A program that goes in the reverse direction, translating machine code to assembly, is called disassembler. It may seem like a bother to go through all the hassle of using an assembler, but it is actually much easier. Assembly language is not only more readable than machine code, but it is also assembly-time relocatable; this means you can move it around in RAM freely before you start the assembly process. A good assembler also offers a number of extra features that make it easier to keep track of your program or modify it quickly. USING AN ASSEMBLER There are three steps involved in writing an assembly language program: editing, assembling, and debugging. Editing is the process of typing in your assembly language statements. Assembling is the invocation of the assembler. Debugging is the process of running your program and analyzing why it doesn't work. Thus, the entire process of writing an assembly- language process can be described by a fictitious BASIC program: FOR 1= 1 to 1,000,000,000... EDIT PROGRAM ASSEMBLE PROGRAM DEBUG PROGRAM NEXT 1 THE 6502 MICROPROCESSOR The first item in the 6502 that I will describe is the accumulator. This is a single one-byte register in the 6502. It is the central workbench of the microprocessor; almost everything happens in the accumulator. Your first three instructions on the 6502 are: LDA address (Load the Accumulator with the contents of address) This instruction loads the accumulator with the contents of the memory location specified by the value of address. The address can be specified by either an out- right value, such as $0600, or a symbolic reference, such as FISH, ere the value of FISH has been previously declared by, say, an ORG statement or an equate statement. LDA #value (Load the Accumulator with value) This is much like the earlier statment; it loads the accumulator with a number, only the number loaded is specified immediately rather than stored in a memory location. Thus, the command LDA # 9 will put a 9 into the accumulator. STA address (Store the Accumulator into address) This command will store the contents of the accumulator into the RAM location whose address is specified in the command. It is just like the first command, except that the direction of data motion is reversed. The LDA command is like a read, which the STA is like a write. You are now equipped to move data around inside the computer. These commands will allow you to readata from one area of memory and store it into another. LDA and STA are the two most common instructions used in any 6502 program. Exercise: Write a program that will read the contents of address $FE00 and store the result into address $680. Your biggest problem here will be just getting your assembler to work. Therefore, I will give the answer away: ROMADD ORG $FE00 RAMADD ORG $680 ORG $600 LDA ROMADD STA RAMADD BRK END That's the program. Try to get it running with your assembler. [Next Week: Part 2 of this series] XxBBS Rewview By:Walt Drummond BBS Review This week, I'm giving the review to Ron Kovacs, SysOp of The Syndicate BBS, because he was having a problem with one of his Users, or Abu, in this case. Ron and I think ALL Users should share his experences, and see what a SysOp has to put up with. Heres Ron-> I have thought about putting the following text in Zmag for about 3 days. After all this pondering I decided I would extract the bad language and let you see what a us on my BBS thinks of some of the changes made on the BBS. Due to the length and the language left in the text I have trimmed it down. Board :SYSOP Message # :243 Date & Time :06/08/86 23:27:26 Subject :HELP/OPINION To :SYSOP Sent by :THE SOCIALIST First of all you must have some weird control stuff in your main menu which is screwing me over something bad over here... Jus' doesn't look right in ASCII. Now for the -who asked you?- Depar- tment. Very honestly, I think this BBS is going downhill and I think something should be done about it! First off, why cant you be indepe- ntdant? Why must you be in a big interstate network, have a big interstate magazine extending all the way to Chicago, and be so damn stuck up.............I mean, you're still the same but you seem to want to jump on the bandwagon, and as a result this BBS isnt just a BBS, it is a collection of BBS's all the way around the tri-state area. I am beginning to feel like I'm on some big timesharing thing like Compuserve or something. My suggestion, drop the whole thing and stop catering to all these stupid BBS's and user groups. I have never heard of BAT, or even BAUD, before a month or so ago. And I don't care. I also don't care wut BBS's are in this great Atomic Network which in my opinion is a fluke............... - - - - - - - - - - - - - - - - - - I am sure you all get the picture of this text. Now I will respond with my opinion. I feel that grouping good systems and people together is a great thing to do. Expanding one's horizons and looking around you is the best way to keep learning and knowing what is going on. To stay 100% local means you are shutting yourself out and not opening up for new ideas. I intend to connue advertising Zmag where ever I can, get these local systems interested and get a group of people together who want to work together at someing more interesting than playing games all day. I feel that what has been accomplished so far is proof that users want more than reading messages and seeing things like you read. If I had the room and the guts to print the exact wording you would see what the other users did. However, this will never happen here. I want to thank the many people who have offered their assistance for the summer, and the SysOps who have joined the fast growing Zmag family. I am sure there are many SysOps out there who have received many messages like this one and I think I will do a future edition on the subject. Thanks to Walt for the space and the positive response in this matter. XxZmag Notes Next week I will have a short text with some comments from Scott Brause about Sourceview. And a few other topics. Part 2 in our continuing series on Assembly language programming. News from The Brooklyn Atari Team newsletter. BBS Review returns with another review from Walt Drummond. BBS Watch, ST NEWS, and more.... See you next week. ----------------------------------- Zmagazine Vol 1 No.4 June 11, 1986 NEXT ISSUE June 18, 1986. Please contribute. NJ Edition -----------------------------------