Z*Magazine: 3-Dec-90 #187

From: Atari SIG (xx004@cleveland.Freenet.Edu)
Date: 10/02/93-03:38:08 PM Z


From: xx004@cleveland.Freenet.Edu (Atari SIG)
Subject: Z*Magazine:  3-Dec-90 #187
Date: Sat Oct  2 15:38:08 1993



           ==(((((((((( ==    Z*MAG/A\ZINE ATARI ONLINE MAGAZINE
           =========(( ===             December 3, 1990
           =======(( =====                Issue #187
           =====(( =======    ----------------------------------
           ==(((((((((( ==    Copyright (c)1990, Rovac Ind Inc..
 
                      Publisher/Editor : Ron Kovacs
                     Contributing Editor: Stan Lowell
 
 -----------------------------------------------------------------------
   CompuServe: 71777,2140    GEnie: Z-NET     Z*NET BBS: (908) 968-8148
 -----------------------------------------------------------------------
 
 
 EDITORS DESK
 ============
 by Ron Kovacs
 
 
 It has been a month since the last release and we blame this on a few
 matters not worth going into details about.  We are however, building
 a library of informative articles, so we should be able to start a
 regular release schedule.
 
 We welcome the new systems who have joined the Z*Magazine crossnet
 conference and look forward to some interesting conversation in the
 weeks ahead.  If your FoReM ST board is not carrying the Z*Mag
 conference, tell your sysop to send email to node 593 and request
 it.  The conference code is 10593 and of course the lead node is 593.
 Pass this information along so a quick sign-up can take place.
 
 Special thanks to Bob Smith for the newsletters which have been the
 source for some of the articles we are publishing this week.
 
 
 
 Z*NET NEWSWIRE
 ==============
 
 
 MICHTRON GOES EAST           PRESS RELEASE
 Michtron's operation has been purchased by a software group from Newark,
 Delaware.  The new president, James A. Dorsman, has taken over full
 operation of all technical support, development, and publishing.  Other
 support staff includes Douglas E. Mackall, Curtis S. Wayne, Richard E.
 Lamb, and Scott R. Lahteine.  Gordon Monnier, former president of
 Michtron, will be consulting with the new firm to help make the
 transition as smooth as possible.
 
 Under Michtron's new management team, an aggressive and exciting new
 product launch is being formulated.  Michtron's existing product line
 will continue to be sold and serviced with the usual expertise.
 
 Michtron intends to continue distributing and servicing for the overseas
 publishers it has worked with in the past, and to seek out new products
 from home as well as abroad.  For more information, or to be included on
 Michtron's mailing list, please call or write to:  MICHTRON, INC., 3201
 Drummond Plaza, Newark, DE 19711, 1-302-454-7946, 1-302-454-1403 (FAX).
 
 At present we are working very hard to get things organized and working
 smoothly.  Please bare with us a for a few weeks, until we have our
 customer support, BBS, and tech support put together.  If at all
 possible, please submit any questions in writing to the above address
 for the next month or so.  When we are completely operational, I will
 post another notice here giving the new BBS number.  Thank you for your
 patience,  and we look forward to serving you with the best customer
 support in the business in the near future. -- Doug Mackall, Michtron
 
 
 MICHAEL KATZ LEAVES SEGA
 ZNS (Dec 2) Michael Katz has stepped down as chief of game maker Sega
 of America Inc.'s consumer products division, a position he has held
 since joining a year ago.  Katz was previously employed by Atari
 Corporation.
 
 
 MOTOROLA SHIPPING 68040 CHIP
 ZNS (Dec 2) Motorola recently announced that it has begun shipments of
 its 68040 microprocessor.  Motorola introduced the state-of-the-art
 chip in March 1990 with expectations of large volume shipments by
 summer, bugs in the microprocessor forced the delay.  The chip packs
 1.2 million transistors on a tiny piece of silicon.  The chip is
 expected to be in short supply for several months as Motorola attempts
 to fill a backlog of orders from several companies, including Apple,
 Unisys Corp. and NEC.
 
 
 CONVICTED CRACKER APPEALING
 ZNS (Dec 2) One of three Georgia men who pleaded guilty to illegally
 entrying BellSouth Corp.'s computers is appealing a portion of his
 sentence that prohibits him from using computers while serving his time.
 Robert Riggs was sentenced to 21 months in jail, while his associates,
 Franklin Darden Jr. and Adam Grant, were handed 14 month jail terms,
 half of which may be served in a halfway house.  Parts of the sentence
 have some people concerned, Riggs, Darden and Grant were ordered to pay
 $233,000 each to compensate BellSouth for injury to network and to help
 pay for repairs.
 
  
 NEW COMPUTER CHIP
 ZNS (Dec 2) NMB Technologies announced the availability of its new
 AAA1M300 series 1-Mbit CMOS DRAM at 60ns.  The high-speed design
 supports direct access with 16-MHz microprocessors, eliminating the
 need for cache memory and allowing designers to create true zero wait
 state systems.  Pricing for the 1-Mbit 60ns DRAM is approximately $5
 per unit for quantities of 10,000.  For further technical and pricing
 data, contact Tony Takeshita, NMB Technologies, 9730 Independence Ave.,
 Chatsworth, CA 91311, 818-341-3355.
 
 
 
 
 Z*MAGAZINE SPECIAL REPORT
 ATARI AT FALL COMDEX 1990
--------------------------
 by John Nagy
 
 ZNS (NOV 26):  Twice a year, the INTERFACE GROUP throws the biggest
 computer show the USA ever sees.  It is COMDEX, with the Fall show in
 Las Vegas and the Spring show in Atlanta.  This is where manufacturers
 meet the distributors and dealers who will buy the newest and best
 Computer products to put into their stores and catalogs.  COMDEX is the
 computer re-sellers mecca.  Atari was there, and so was the Z*NET NEWS
 SERVICE.
 
 SUNDAY: November 11:  It's setup time at the ever-more massive COMDEX
 computer exposition here in Las Vegas, Nevada.  I visited the new show
 floor at the Sands Convention facility on Saturday afternoon to see the
 Atari exhibit being built.  It is the largest floor area for a COMDEX
 that I have seen Atari have yet, with a mixed color scheme that clearly
 illustrated the differentiation of the Atari Personal/Home computer
 products from the Atari Business products.  The Home area is accented
 by rainbow colored banners, rich in fluorescent oranges, while the
 Business area is a dignified Black and  White.
 
 Yes, the MEGA/STE is REAL, and I am writing this first report on one!
 The configuration is as predicted weeks ago in Z*Net, identical
 construction to the TT, although in Grey rather than off-White.  It is
 NOT in production yet, and may see distribution in very early 1991.
 
 At least five Mega/STe units are set up in the Atari booth, along with
 more than seven TT/030 units.  All the Mega/STe units here on display
 are hooked to the new Phillips 14" color monitors, the STEREO SOUND
 units, model SC1435.  This is VERY nice, large screen unit that will
 replace the SC1224 monitors completely, and should retail at or just
 above the current color monitor price (around $399 retail).  It IS a
 step UP.  The picture is every bit as good as the smaller screen units
 that preceded it, but comfortably larger.  Full adjustments are offered
 (from the outside!) for picture size and centering.  The internal sound
 is indeed stereo, but the amplifier and speakers are sadly no better
 than in the older mono units, leaving you to use external amps and
 speakers if you want the really clean, loud, distortion free sound that
 the new output of the STe series is capable of.
 
 The TT's are almost old news by now after a year has passed from the
 COMDEX introduction in 1989.  But today they are running the new SC1434
 color monitors that offer the new TT resolutions ($450), and at least
 two are on the new Atari 19" monochrome monitors... VERRRRY impressive
 at under $1,000 each.  The latest TT configuration, running at 32 Mhz
 with the new TOS and GEM NEWDESK, is expected to base price at nearly
 $3,000 (no monitor) for a four meg, fifty megabyte hard drive unit.
 Many developers are worried that this price is just too high to be
 competitive with the MAC II, available in similar (albeit slower)
 configurations for as little as $2,500.  While "street price" of the TT
 may well match or barely beat the Mac II, there must be some additional
 incentive for buyers to select against the MAC name and software base.
 
 The REALLY bad news is... the TT has NOT passed the FCC testing, and so
 it is NOT ready for US distribution.  Yes, Atari had promised that the
 TT would be shipping right after COMDEX, and the failure to have it
 ready is a major blow to both morale and sales impact at this pivotal
 show.  There are now NO promises on WHEN the TT030 can be shipped,
 despite the hopeful words of "real soon now".
 
 Attending third-party Atari vendors are quite dismayed, both to find
 that the TT will not be available, and also to find that a new machine
 has been "sprung" on them, as the Mega/STe was NOT announced even to
 developers.  There are wide concerns that the new machine may cause new
 software compatibility headaches.  Atari assures them that it will NOT.
 
 In keeping with the business flavor of COMDEX, the "Home" part of the
 Atari booth is small... featuring twin setups of 1040STe units on modems
 for CompuServe and GEnie.  It looks like the ONLY computer that Atari
 considers as a HOME unit now is the 1040STe.  It may, in fact, become
 available to ALL dealers of any hardware or software if plans to place
 the 1040STe line with national distributors come to fruition.
 
 Portfolios are all over the place, with hookups to a couple "alien"
 computers...  a Mac SE and an IBM PS/2.  It was a bit odd to see those
 computers in the Atari booth, but they are there to demonstrate
 connectivity with the palmtop Portfolio computer.
 
 MONDAY: November 12:  This Fall Comdex spans 2.2 MILLION square feet,
 and perhaps even MORE than 2.2 million SORE feet.  The crowds are at
 least as large as ever, although there was much more traffic in the
 "established" convention halls than there was in the Sands Exposition
 and Convention Center (SECC), the brand new facility that helps make
 this Comdex 20% larger than any ever before.  Unfortunately, Atari Corp
 is in the new SECC, and enjoyed less than throngs of people today.  The
 traffic grew throughout the day, however, and most of us expect that
 the newness of the facility will wear off and that Comdex "regulars"
 will visit the hall later in the week.
 
 The Atari exhibit looked even better today, with the last of the boxes
 and plastic carpet protectors put away, revealing further division
 between the "Home Computing" and "Business" areas of the booth.  The
 Home area is about 20% of the booth, separated by a wide isle of
 burgundy carpet that exactly matches the regular isles.  The visual
 impact is that Atari has two adjacent booths.  I am told that at CES,
 the same concept will be used, with the proportions reversed.
 
 Portfolio developers included XETORIX with their remarkable tiny hard
 drive, and IBP with PORTALOG, a mobile systems logging and analysis
 system for monitoring of environmental control systems, like huge plants
 or office buildings.
 
 Atari itself showed their new FSM GDOS ("Font Scaling Module"), to be
 released this winter, perhaps as a freeware update to the world, perhaps
 as a bundle with every new machine sold and some small fee to everyone
 else.  This outline font technology updates the old and limited GDOS
 system to provide completely scalable and rotatable GDOS fonts.  The
 outlines will be standard Ultrascript outlines, although from the IBM
 family of fonts rather than the Atari ST Ultrascript family.  The added
 interchangability is probably worth the inconvenience to existing ST
 Ultrascript users.  I played with the FMS system long enough to know
 that although it is even MORE complicated to install than the OLD GDOS,
 the power and versatility it adds to even simple printing programs is
 going to be worth every minute of effort.
 
 On hand were Jack Tramiel, Sam Tramiel, Garry Tramiel, new General
 Manager Greg Pratt, and the Atari regulars including Bob Brodie, Art
 Morgan, Mel Stevens, Dan MacNamee, J.Patton, Don Thomas, Ceazar Dennis,
 Diana Goralcyzk, and the new guy, Bill Rehbock.  Greg Pratt is younger
 than I expected, and is very approachable.  His enthusiasm for Atari
 shows in every word... and Greg is no newcomer to Atari, having been
 head of the Financial division for some years.  It looks like he must
 have reason for optimism.  I remain ready to believe.
 
 Yes, Atari looks GOOD at this COMDEX, and has more square footage in the
 largest hall of the convention than any vendor except JVC.  While one
 developer observed that they wished some of the COMDEX show dollars were
 going to support the developer and dealer network, in a very real way,
 they ARE.  Here at COMDEX, in the largest computer resellers convention
 in the world, ATARI is making sure that NO ONE thinks that ATARI is a
 second class manufacturer.  THAT MATTERS, friends.  Across the board.
 
 WEDNESDAY: November 14:  Tuesday brought larger numbers of visitors to
 the SANDS convention hall, the new facility that was comparatively
 lightly traveled on Monday.  This brought crowds into the Atari booth,
 the largest and most central to the front doors in the entire hall.
 
 Atari had some of the nicest literature on hand to date, fold-out color
 brochures for the "TT030 Graphics Workstation", the "Mega STe Business
 Computer", and the "1040STe Personal System".  These were prepared by
 Marken and Associates, just recently re-signed with Atari after a less
 than dramatic stay with the advertising firm of Bob Thomas and
 Associates.  Andy Marken was on hand throughout the show to help, talk,
 and learn more about what the users seem to want to know.  That can only
 help in his efforts to promote Atari products.
 
 While many of the passers-through were most intrigued by the rows of
 Portfolio palmtop computers, others were interested in what they
 perceived as a "more advanced Macintosh" environment.  Still others knew
 of Atari "way back" and wanted to know what these new machines could do.
 We won't get a real report of the true effectiveness of the Atari
 presence at Comdex until (or IF) we hear what kind of numbers of dealer
 inquiries and distributor contracts are made.
 
 Openly discussed by sales representatives and exhibitors was the
 possibility/likelihood of placing the 1040STe line into the major
 distributor channels, making them as easy for any dealer anywhere to buy
 as any given software title.  Pricing would become uniform for any
 quantity, and delivery would be out of Atari's hands.  While this idea
 has a great deal going for it, Atari has concerns over possible abuses
 of the plan, such as distributors or dealers "unbundling" bundles of
 hardware and software for the purpose of selling it separately for more
 total income.
 
 Bundles?  Yes, there are at last approved Atari bundles for fourth-
 quarter distribution and promotion.  There are still several to be
 approved, mostly including games and leisure software, but here are the
 ones that are a go so far.  Remember, the prices here are SUGGESTED
 RETAIL.
 
 520STFM HOME ENTERTAINMENT PACK: 520STFM, Missile Command, Star Raiders,
 Crack'd, Moon Patrol, NEOChrome, Joust.  Retail: $579.65
 
 520STFM COMMUNICATIONS PACK: Computer, SX212 modem, STALKER and STENO
 telecommunications software.  Retail: $529.85
 
 1040STE HOME PRINT SHOP BUNDLE: Computer, MIGRAPH HAND SCANNER, Touch-
 Up, Easy Draw 3.0.  Retail: $1,398.90
 
 1040STE DELUXE PAINT PACK:  Computer, ELECTRONIC ARTS DELUXE PAINT
 ANIMATOR.  Retail: $799.90
 
 DTP PACKAGE #1: Mega 2 computer, SM124 Mono Monitor, Megafile 30 hard
 drive, SLM605 Laser Printer, CALAMUS.    Retail: $2,199.00
 
 DTP PACKAGE #2: Mega 2 Computer, SM124 Mono Monitor, Megafile 30 hard
 drive, SLM605 Laser Printer, DESKSET II.  Retail: $2,099.00
 
 PORTFOLIO PC TRAVELER:  Portfolio computer, File Manager ROM card, PC
 CARD DRIVE, and 128K Memory Card.  Retail: under $500.
 
 New SC1435 COLOR MONITOR, 14" screen, STEREO SOUND, swivel/tilt stand.
 Retail: $399.00
 
 If any of those prices sound a bit high, remember that Atari is now
 offering about a good markup in their retail prices, so dealers can
 either actually make some money OR offer great deals.  Dealer costs tend
 to be about 66% of the retail, and street prices may be closer to 3/4 of
 the retail.
 
 Late word is that the Portfolio may soon be in PRICE CLUB mass-marketing
 discount stores CHEAP.  Dealers need not fear too much, since Price Club
 and other similar membership-oriented warehouse stores usually carry NO
 accessories, so dealers can pick up on the considerably more lucrative
 support market.
 
 More promotion of the Atari Line came as a surprise to Bob Brodie, ISD's
 Nathan Potechin, and new Atari U.S. General Manager Greg Pratt on
 Tuesday night.  The three attended the Beach Boys concert at Caesar's
 Palace as guests of the Beach Boys, longtime Atari MIDI users.  During
 the opening act, the comedian Andy Bumatai mentioned that he was a
 computer fan and that the Atari TT "just blew me away".  He wasn't
 joking at the time, either.  Later, during the Beach Boys set, Bruce
 Johnston of the band stopped the music and said that he had a dedication
 to make, despite dedications being "old stuff these days".  He proceeded
 to explain that the little computer at the corner of the stage had
 performed flawlessly for three years, "saving their behinds" over and
 over.  He finished by saying, "Atari, this one's for you", and the bad
 went into "Don't Worry Baby".  The Atari table was totally surprised,
 and Greg asked Bob how he pulled that one off.  Bob, as surprised as any
 of them, recovered enough to say "it was just a phone call..."  Betcha
 Greg remembers Bob at Christmas...
 
 WRAPUP
 
 This is perhaps the longest review of a show I have ever assembled...
 and perhaps it should be.  Although I left before the Friday close of
 the show, I know that I could have walked non-stop all week and NOT have
 seen MOST of the show.  I did see the COMMODORE exhibit, a ways back in
 the same hall as Atari.  It was perhaps 25% the size of Atari's area,
 but was filled with very dramatic video presentations on the Amiga
 machines.  One, a real-time color video digitizer, was so good that it
 made our VIDI-ST pictures look like kids drawings.  Of course, it was
 maybe 10 times the price... or more.  But the crowds weren't there.
 Atari had lots more general interest.  Much of it for the Portfolio.
 
 There was LOTS of Atari to see and discuss at this COMDEX, although much
 of the discussion was less than a treat to participate in.  The
 disappointments from Atari just keep coming.  But the presence of Atari
 simply won't go away, either.  Atari proves over and over that there is
 every reason to expect that the company can indeed produce the right
 machine at the right price.  This time it is the Mega/STe.  (My personal
 opinion of the TT030 is that it is too much money for what it delivers.)
 
 The amount of money and effort that goes into a dramatic showing of best
 intent, as Atari has shown and spent at this COMDEX, once again has
 pulled many users and developers (and writers!) back from the brink of
 jumping ship.  We hope that it will do the same for dealers and
 distributors of Atari hardware in the USA.  That's what COMDEX is for.
 
 
 
 SOUPING UP THE 1200XL
 =====================
 by Paul Smith
 
 (Reprinted from the November 1990 Issue of the Mid-Florida Atari
  Computer Club Bulletin by permission.)
 
 
 Those of you who like your 1200XL may have felt a little forlorn
 recently with all the nifty mods available for the other XL/XE machines.
 Well, help is on the way.  I've had a chance to tear apart a 1200XL and
 "make it all it should have been."  I'll describe the various mods
 available for those of you with enough know-how (or enough guts) to try.
 
 PRINTER INTERFACES
 
 Some of the "Apeface" style of printer interfaces won't work on the
 1200XL.  This is because they get their power from the computer.  The
 power available from the 1200XL is not enough to drive these external
 devices.  To fix this, short out R63.  This is the 100 OHM resistor,
 (brown-black-brown), in series with the power supply and is located near
 the serial I/O connector (J1).  Just solder a wire from one end of the
 resistor to the other.  It is easiest to do this from the solder side of
 the board.
 
 SERIAL I/O CONNECTOR
 
 Connect together pin 4 and 6 of the serial I/O connector.  These should
 be both connected together and then to ground.  The 1200XL schematic
 shows these both connected, but on my machine only one was.  As before,
 this is easiest to do on the solder side of te board.
 
 CHROMA OUTPUT
 
 As with the entire XL series, the chroma output has been left off of the
 monitor jack.  This can be easily restored with the addition of a single
 75 OHM resistor, (violet-green-black).  Find the transistor Q7.  Its
 emitter is soldered to the square pad, (the others are circular).  On
 the solder side of the board, connect one end of the resistor to this
 square solder pad.  Connect the other end of the resistor to the unused
 pin of the monitor jack (J2) through a wire of appropriate length.
 
 XE-COMPATIBILITY
 
 An XE-compatible 256K upgrade is possible.  To perform this mod, remove
 R30 (near DRAM U5).  Also lift up pin 12 and 13 of the PIA (U23) from
 the socket, (with this mod, you lose the use of the two LED's on the
 fromt panel).  Remove the 8 DRAMs located along the front row of the PC
 board.  Build up the circuit with the following parts:
 
 UA - 74LS393
 UB - 74LS153
 UC - 74LS151
 UD - 74LS10
 
 Since the shield is low, the piggyback technique cannot be used.  Nor is
 there much room for a small PC board.  I hand wired the parts by placing
 the IC's upside down on the top side of the board and soldering from leg
 to leg.  When connecting the circuit, pin 1 of the DRAM is the hole left
 by R30 nearest DRAM U5.  Left pin 9 from U10.  This is to be connected
 to one end of R97, the other end should be connected to pin 6 of the new
 74LS151 (UC).  To test this modification, run any of the programs
 written to utilize the 130XE extra memory.  Better yet, try running one
 of the RAMdisk programs available for the 256K 800XL.
 
 TRANSLATOR
 
 It is possible to re-program the OS sockets to accept 2764 EPROMs.  This
 will allow you to have built-in translators installed in your machine.
 To perform this modification, locate jumpers W6 through W13.  They must
 be set up according to the following label.  Note:  W10 is not used for
 this - it is used to program the GTIA for US or European TV standards.
 
 JUMPER    ROMS    EPROMS
 ------    ----    ------
 W6        IN      OUT
 W7        IN      OUT
 W8        IN      OUT
 W9        IN      OUT
 W11       OUT     IN
 W12       OUT     IN
 W13       OUT     IN
 
 With these modifications installed, you have brought your machine up to
 the state-of-art, (although it is still a little large).  It should be
 able to take on all comers.
 
 
 
 USING 'USR'
 ===========
 8-Bit Programming Tutorial - Part 2 (Conclusion)
 by John Picken of GCACE
 
 (Reprinted from the Puget Sound Atari News, September 1990)
 
 Editor's Note:  Please refer to the August 1990 issue of PSAN and Issue
 #186 for Part 1 of this article.
 
 ASSEMBLER TECHNIQUES AND TRICKS
 
 This section is written with reference to MAC/65 and will obviously
 apply in only varying degrees to other assemblers.
 
 Use some form of standard header which can be ENTERed before or after
 you start coding.  It saves typing, ensures you don't forget things, and
 makes it easier to classify and file your code.  You can include SAVE
 statements after semicolons and space the lines so the cursor ends up on
 the appropriate one each time you hit [RETURN].  Then just [SPACE] over
 the line number and semicolon and press [RETURN] to save.  Note that's
 "tatement" with an "s" at both ends -- working out of RAMdisk is
 convenient BUT just kick the wrong cord when you've got an hour's worth
 of work saved to the RAMdisk only!
 
 I follow the header with syntax and parameter instructions as well as a
 description of routine returns.  These are started before coding, but
 are updated and revised as ideas occur or difficulties arise during the
 actual writing.  In this way they serve as a kind of program
 specification to work toward and as "DOC's" when done.  In the same
 area, when assigning variables, the *=*+ trick saves a lot of typing
 each time you want to insert or change one -- just be sure FR0 ends up
 where it's supposed to.
 
 Don't overlook the flexibility offered by MAC's TEXT mode and the PRINT
 option.  In TEXT mode, you can ENTER and edit anything including LISTed
 BASIC.  You can also REPlace semicolons in ML with periods, LIST to
 disk, and then ENTER the lines as REM's directly into a BASIC program.
 
 If you want to reorganize a program, it is often easiest to PRINT to
 disk to kill the line numbers and then reorganize using a word
 processor.  Then you can use the ENTER #Dn:... ,A option to get it back
 into MAC/65 which will supply new line numbers.  These techniques are so
 convenient that I often use a combination of TEXT mode, PaperClip and
 line labels to work on Turbo BASIC programs.  Once done, either PC or
 MAC can replace the labels with line numbers for use with Atari BASIC.
 
 If code exceeds 250 or so bytes, many assemblers produce compound files
 which cannot be used in a string.  An easy way around this is to
 assemble to RAM (somewhere around $6000) and use BSAVE.  This has the
 added advantage of allowing you to work on the file with a monitor.
 Check the last few lines of both examples.  The percent sign in the
 BSAVE line is used to indicate a line delete character [ESC] [SHIFT]
 [DELETE].  This causes the line to appear on screen as a command after
 assembly so all you have to do is overtype "LAST" with the address which
 appears above it.
 
 TWO EXAMPLES
 
 The best way to demonstrate technique is with short programs that serve
 real and useful functions.  The first sample listing obtains a key press
 from a list of allowable keyboard codes.  To avoid a series of IF-THEN
 statements or conversions, the routine returns the position in the list
 of the key pressed.  This means a calling program can use ON-GOTO(SUB)
 or variable line numbers; for example:
 
 ON USR(ADR(K$),k1,k2,k3) GOTO 100,200,300 or
 GOTO 100*USR(ADR(K$),k1,k2,k3)
 
 The second routine is a flexible and powerful disk access tool.  It can
 form the basis for any number of programs since it includes some
 functions normally found in DOS.  The program I wrote it for, uses it to
 (among other things) read SpartaDOS directories from BASIC while working
 under any FMS.  This routine is an example of what I call "one bit
 programming".  This means making use of individual bits, several flags,
 and every possible known condition to save bytes.  FR0 is used to find
 the routine's address, loops are started so as to leave an index
 register set for subsequent operations, etc.  BIT is used for the trick
 mentionned above as well as for its true purpose and, in conjunction
 with that, both the N and V flags are used.
 
 THE FAT LADY SINGS
 
 The sample routines are complex but worth working through.  You'll
 discover numerous byte saving tricks, especially in the second.  Of
 course you don't start by writing anything so difficult.  Consider, for
 example, a routine to set your system defaults.  For screen color and
 keyboard defaults, all you need to use are load and store instructions
 though this is an excellent spot for loop(s).  Setting things up this
 way is considerably faster (and more satisfying) than using SETCOLOR and
 POKE and, if you skip the PLA, the same code can be used as a SpartaDOS
 COM.
 
 Like any other language, you learn assembler by doing; and the best way
 to start doing is with short USR routines.  BASIC programmers who don't
 want to "do" assembler can still use the two example routines; I've
 included both in the form of LISTed BASIC lines in the file USRTUTOR.ARC
 for your intrepid editor to stick on a BBS.  (You'll still have to look
 at the source code for the "DOC's".)  Up here, in The Great White North,
 the file is on The Pothole BBS at 604-642-6795.
 
 EXAMPLE 1
 
          .TITLE "Get Key"
 ;  Programmed by John Picken
 ;   last revision: 20 Sep 89
 ;            Syntax
 ;K=USR(ADR(KEY$)[,k1,k2,...,kn])
 ; k1,.., etc. are Keyboard codes
 ;
 ; Gets a key press and compares
 ; its keyboard code with a list
 ; of target codes. When matched,
 ; the key's position in the list
 ; is returned. Maximum allowable
 ; keys is 26 in Atari Basic, 27
 ; with Turbo. Keys are checked
 ; in the order passed so, if a
 ; code is passed twice, the 1st
 ; match is reported.
 ;
 ; If called with no parameters,
 ; the routine supplies defaults
 ; as if called for RETURN only.
 ; ESC always exits and returns 0
 ; BREAK is disabled until the
 ; routine exits to Basic.
 ;
 ;    Equates and macros
 CH       =   $02FC   Last key pressed
 POKMSK   =   $10
 IRQEN    =   $D20E 
 MASK     =   $3F
 ; Mask values for use with AND
 ;  $3F = All converted to
 ;        upper case
 ;  $7F = Ctrl and Shft Ctrl
 ;        converted to Shft
 ;  $BF = Shft Ctrl
 ;        converted to Ctrl
 ;  $FF = No conversion
 ;
          .MACRO SKIPW
          .BYTE $2C
          .ENDM
 ;
          *=  $CB
 POKSAV   *=  *+1
 COUNT    *=  *+1
 UNUSED   *=  *+7
 FR0      *=  *+2     ;  D4
 TABLE
 ;
          *=  $6000   Relocatable
 ENTRY    LDA POKMSK  Save <Break>
          STA POKSAV  key status.
          AND #$7F    Kill <Break>
          STA IRQEN
          STA POKMSK
          LDX #0      x for later but
          STX FR0+1   clear msb now.
 ;
          PLA         Get parameter
          TAY         count and branch
          BNE BUILD   if any. Else set
 ;
          INY         up a default of
          LDA #12     one key <Return>
          SKIPW      and skip 2 PLA's
 ;
 BUILD    PLA         msb   Key codes
          PLA         lsb  from Basic
 ;
          STA TABLE,X Build key table
          INX         using x as index
          DEY         and y as param
          BNE BUILD   count.
 ;
          STX COUNT   x=table length.
          DEY         Keep $FF in y to
 ;
 CLEAR    STY CH      clear key press.
 ;
 KEY?     LDA CH      Loop til some
          CMP #$FF    key pressed.
          BEQ KEY?
 ;
          AND #MASK   Upper case only.
          LDX #0      Table index.
          CMP #28     ESC pressed?
          BEQ REPORT  If so, exit.
 ;
 MATCH?   INX         Next entry.
          CMP TABLE-1,X Match found?
          BEQ REPORT  If so, exit.
 ;
          CPX COUNT   At table end?
          BNE MATCH?  No, try next.
 ;
          BEQ CLEAR   Yes, refuse key.
 ;
 REPORT   STX FR0     Report match.
          STY CH      Leave CH clear
          LDA POKSAV  and restore
          STA POKMSK  original status
          STA IRQEN   of <Break>.
 ;
          RTS         That's it
 ;
         .OPT LIST
 CODELEN  =   *-ENTRY
 LAST     =   *-1
 ;%BSAVE #D1:GETKEY.OBJ <6000,LAST
 ;
          .OPT NO LIST
          .END 
 
 EXAMPLE 2
 
         .TITLE "SIO Utility"
 ;  Programmed by John Picken
 ;   last revision: 05 Oct 89
 ;
 ; A USR routine to access SIO.
 ;           Syntax
 ;Status only
 ;  S=USR(rtn)
 ;
 ;Status or Format
 ;  S=USR(rtn,cmd)
 ;
 ;Read or Put/Write ops
 ; single sector
 ;  S=USR(rtn,cmd,sec,buf)
 ; consecutive sectors
 ;  S=USR(rtn,cmd,sec,buf,lim)
 ; trace file links
 ;  S=USR(rtn,cmd+$80,sec,buf,lim)
 ; follow list of sectors
 ;  S=USR(rtn,cmd,adr,buf)
 ; follow offset list of sectors
 ;  S=USR(rtn,cmd,adr,buf,off)
 ; _____________________________
 ; 1st param is command: !"PRSW
 ;
 ; No other parameter is needed
 ; or accepted for Format. Since
 ; the routine checks status when
 ; called, the Status command is
 ; not needed but will execute
 ; correctly if used.
 ;
 ; If cmd is passed with the high
 ; bit set (inverse P, R, or W),
 ; the routine reads or writes
 ; sectors by tracing Dos 2 type
 ; file links until a forward
 ; pointer less than 3 is found
 ; or until the limit in param 4.
 ; The trace assumes bits 2-7 of
 ; the forward pointer msb are a
 ; file number and ignores them
 ; (MyDos/TopDos style). This
 ; limits it to sectors 4-1023.
 ;
 ; The high bit of cmd is simply
 ; ignored on format or status.
 ; _____________________________
 ; 2nd param is sector number of
 ; the starting (or only) sector.
 ;            or
 ; If greater than 1279 (msb 5+),
 ; this param is taken to be the
 ; address of a string of sector
 ; numbers in 6502 order. This
 ; string must end with two zero
 ; bytes. This is the format used
 ; by SpartaDos in map sectors
 ; from byte 4 on (bytes 0-3 are
 ; previous & next map pointers).
 ; _____________________________
 ; 3rd param is buffer address.
 ; _____________________________
 ; The msb of the 4th param is
 ; always ignored.
 ;
 ; This param is total number of
 ; consecutive sectors or maximum
 ; traced sectors to do. Since
 ; the longest possible buffer
 ; string is 32767, the routine
 ; will not allow more than 127
 ; double density sectors.
 ;            or
 ; If operating on listed sectors
 ; this is the offset in sectors
 ; counting from 1. eg. to start
 ; with the ninth sector in the
 ; list, this param would be 9.
 ; The routine uses 2*(offset-1)
 ; for indexing so it is limited
 ; to 128 sectors. For greater
 ; offsets, adjust the string
 ; address in param 2.
 ; _____________________________
 ;    Default parameters
 ; Drive and timeout may be
 ; altered by string assignment:
 ;   Sio$(8,8)=CHR$(DUnit)
 ;   Sio$(13,13)=CHR$(DTimlo)
 ;
 ; The routine sets DBytlo/hi
 ; based on the status call but
 ; always uses single density
 ; with boot sectors.
 ; _____________________________
 ;           Returns
 ; The routine reports SIO status
 ; via FR0. Error 168 is used for
 ; a parameter error. Error 255
 ; indicates an attempt to access
 ; more than 127 DD sectors.
 ; 
 ; Following sector operations,
 ; the number of successful ops
 ; is PEEK(208) and the final, or
 ; abort, sector number is left
 ; in Daux1/2 (778-779)
 ;
 ; The status frame is left in
 ; Dvstat (746-749).
 ;
         .MACRO SKIPW
         .BYTE $2C
         .ENDM
 ;
 ; System equates
 DVSTAT   =   $02EA
 DDEVIC   =   $0300
 DUNIT    =   $0301
 DBYTLO   =   $0308
 DBYTHI   =   $0309
 SIOV     =   $E459
 ;
 ; Program variables.
          *=  $CB
 LIMIT    *=  *+1     Not
 OFFSET   *=  *+1     cleared
 STRPTR   *=  *+2     on
          *=  *+1     entry
 ;
 COUNT    *=  *+1     Bytes
 TYPFLG   *=  *+1     cleared
          *=  *+1     on
          *=  *+1     entry
 FR0      *=  *+2     ;  D4
 ; 
          *=  $E0
 ZDEVIC   *=  *+1     Shadow DCB cuts
 ZUNIT    *=  *+1     3-byte ops to 8
 ZCOMND   *=  *+1     total. Aside
 ZSTATS   *=  *+1     from speed and
 ZBUFLO   *=  *+1     length benefits,
 ZBUFHI   *=  *+1     this simplifies
 ZTIMLO   *=  *+2     setting defaults
 ZBYTLO   *=  *+1     and lessens the
 ZBYTHI   *=  *+1     chance of a 155
 ZAUX1    *=  *+1     or 34 character
 ZAUX2    *=  *+1     in a string.
 ; 
          *=  $6000
 START    LDX #INIT-DATA ;    x=count
          LDY #INIT-1-START ; y=index
          BNE INIT    Go always
 ;
 DATA     .BYTE '1    Dcb defaults
          .BYTE 1     DUnit
          .BYTE 'S    DComnd
          .BYTE $40   DStats
          .WORD DVSTAT DBuflo/hi
          .WORD 3     DTimlo/hi
          .WORD 4     DBytlo/hi
 ;
 INIT     LDA (FR0),Y
          STA DDEVIC-1,X Set up DCB
          STA ZDEVIC-1,X and shadow
          DEY
          DEX
          BNE INIT    On exit x=0 y=5
 ;
 ZLOOP    STX COUNT,Y Clear FR0
          DEY         down to COUNT
          BPL ZLOOP   inclusive
 ;
          JSR SIOV    Execute and
          STY FR0     save status
 ;
          PLA         Done if no
          BEQ EXIT    parameters
 ;
          TAX         Else keep count
 ;
          PLA         Msb Command
          PLA         Lsb    "
          DEX         Stack count
 ;
          ASL A       Bit 7 to carry.
          ROR TYPFLG  To bit 7 of flag
          LSR A       Restore Cmd with
          STA ZCOMND  bit 7 stripped
 ; 
          CPX #1      Params left?
          BEQ CLRSTK  Error if only 1
          BCS SETZST  Branch if more
 ;
          CMP #'S     Status already
          BEQ EXIT    done
 ; 
          CMP #'!     BCC/BCS avoids
          BCC ERR168  quote in string
 ;
          CMP #'#     when checking
          BCS ERR168  for format cmd
 ;
          STX ZSTATS  Use 0 for format
          STA ZTIMLO  Allow 33" or 34"
          BCC GOTALL  Go always
 ;
 CLRSTK   PLA         Error handler
          PLA         to clear stack
          DEX
          BNE CLRSTK
 ;
 ERR168   LDY #168    Syntax error
 ;
 YEXIT    STY FR0     Final report
 EXIT     RTS         to Basic
 ;
 SETZST   CMP #'R
          BEQ GETSEC  If not read
 ;
          ASL ZSTATS  make Zstats=$80
          CMP #'P
          BEQ GETSEC
 ;
          CMP #'W     If not Write, an
          BNE CLRSTK  invalid command
 ;
 GETSEC   PLA         Msb of start
          TAY         sector number
          PLA         Lsb
          DEX         Stack count
 ;
          CPY #5      For carry only
          ROR TYPFLG  B7=Str B6=Trc
 ;
          STA STRPTR  Strptr ignored
          STY STRPTR+1 by consec/trc.
          STA ZAUX1   If string, zaux
          STY ZAUX2   is re-set later
 ;
          PLA         Msb
          STA ZBUFHI  Buffer address
          PLA         Lsb
          STA ZBUFLO
          DEX         Stack count
          BEQ GOTALL  Go if got last
 ;
          PLA         Limit: keep lsb
          PLA         only (max DIM)
          DEX         Last param?
          BNE CLRSTK  If not, too many
 ;
          TAX         Error if Limit=0
          BEQ ERR168  Else, DEX now to
 ;                    offset default;
          DEX         or, if a string,
 ;                    to index from 0.
 GOTALL   LDY FR0     Check status
 JMIYEX   BMI YEXIT   Abort if bad
 ;
          DEY         Else
          STY ZBYTLO  clear ZBytlo
          SEC
          LDA #$20    Check DD bit in
          AND DVSTAT  drive status
          BEQ SINGLE
 ;
          ROL ZBYTHI  Carry to bit 0
           SKIPW
 ;
 SINGLE   ROR ZBYTLO  Carry to bit 7
 ;
          BIT TYPFLG  Doing string?
          BMI STRING
 ;
          INX         Else add default
          STX LIMIT   Any limit less
          BPL EXEC    than $80 is OK
 ;
          TAX         If no DD bit
          BEQ EXEC    max limit OK
 ;
          DEY         Else error #255
          BMI YEXIT   Go always
 JVS168
 STRING   BVS ERR168  No trace if str.
 ;
          STX OFFSET  Two bytes per
          ASL OFFSET  sector number
 ;
 NEXT     LDY OFFSET  Get next sector 
          LDA (STRPTR),Y ; number lsb
          STA ZAUX1   from string
          INY
          LDA (STRPTR),Y ; and msb
          INY         Adjust offset
          STY OFFSET  for next pass
 ;
 DOAUX2   STA ZAUX2
          ORA ZAUX1   Next sector=0?
 JEQEXI   BEQ EXIT
 ;
 EXEC     LDX #11
 EXLOOP   LDA ZUNIT-1,X Copy shadow
          STA DUNIT-1,X to real DCB
          DEX
          BNE EXLOOP
 ;
          LDA ZAUX2   Boot sector?
          BNE GOSIO   No, got an msb
 ;
          LDY #3      Check lsb. Leave
          CPY ZAUX1   set carry for
          BCC GOSIO   Force SD below
 ;
          BIT TYPFLG  Can't trace
          BVS JVS168  without links
 ;
          STA DBYTHI  Force SD for one
          ROR A       sector but don't
          STA DBYTLO  alter shadow DCB
 ;
 GOSIO    JSR SIOV    Execute
          BMI JMIYEX  Oops
 ;
          INC COUNT   Good one!
          BIT TYPFLG  If trace, get FP
          BVC BUFADJ  before Bufadj
 ;
          LDY ZBYTLO  Set Y to index
          DEY         forward pointer
          DEY         lsb in last sec
          LDA (ZBUFLO),Y Get lsb of
          STA ZAUX1   next sector
          DEY
          LDA (ZBUFLO),Y Filenum+msb
          AND #$07    Ignore filenum
          TAX         Save msb
 ;
 BUFADJ   LDA DBYTLO  Add real sector
          BEQ DOBUFH  length to bufptr
 ;
          CLC
          ADC ZBUFLO
          STA ZBUFLO
          BCC BFDONE
 ;
 DOBUFH   INC ZBUFHI
 ;
 BFDONE   BIT TYPFLG  If string go
          BMI NEXT    get next secnum
 ;
          DEC LIMIT   Else count
          BEQ JEQEXI  down to 0
 ;
          TXA         Recover fwd ptr
          BVS DOAUX2  Go if tracing
 ;
          INC ZAUX1   Else point to
          BNE EXEC    next sector
 ;
          INC ZAUX2   Bump high byte
          BNE EXEC    Go always
 ;
          .OPT LIST
 CODELEN  =   *-START
 LAST     =   *-1
 ;%BSAVE #D1:SIOUSR.OBJ<6000,LAST
          .OPT NO LIST
          .END 
 
 
 
 
 FILENAME EXTENSIONS
 ===================
 
 .1ST       Text file, read this first
 
 .ACT       Action file
 .ACC       ST accessory
 .AMS       Advanced Music System file
 .AMP       Antic Music Processor
 .ARC       ARC compressed file
 .ASC       Ascii text file
 
 .BAK       Back-up data file
 .BAS       Saved BASIC file
 .BAT       Batch file
 .BIN       Binary file
 .BXL       BASIC XL program
 .BXE       BASIC XE program
 
 .C         C language data file
 .COM       SpartaDos Command file
 .COM       Compiled Object code file
 .CZ        Casio MIDI data file
 
 .DAT       Data file
 .DCM       Diskcomm compressed file
 .DIS       Diskcomm compressed file
 .DOC       Wordprocessor, text file
 
 .EXE       Executable file
 
 .FNT       Font
 
 .GIF       Graphics Interchangeable Format picture
 .GRx       Graphic screen mode x
 
 .H         ST resource data file
 .HAM       Amiga picture format
 
 .IFF       Amiga picture format
 .INF       Information  file
 
 .KOA       Koala format picture
 
 .LGO       Logo data file
 .LST       Listed BASIC
 .LZH       LHarc compressed file
 
 .M         ST Michtron BBS data file
 .ME        Read me extention, text file
 .M65       MAC-65 source code
 .MAC       MacIntosh picture file
 .MPT       Micropainter picture file
 
 .OBJ       Object file
 
 .PAS       Pascal data file
 .PC1       ST Degas Low resolution picture (compressed)
 .PC2       ST Degas Med resolution picture (compressed)
 .PC3       ST Degas Hi resolution picture (compressed)
 .PCX       IBM picture format
 .PI1       ST Degas Low resolution picture (uncompressed)
 .PI2       ST Degas Med resolution picture (umcompressed)
 .PI3       ST Degas Hi resolution picture (umcompressed)
 .PIC       Koala, Micropainter picture file
 .PIT       MacIntosh Pit compressed file
 .PRG       ST executable file
 
 .RSC       ST resource file
 
 .SCR       Scrunch compressed file
 .SHR       Shrink compressed file
 .SPB       Superboot compressed file
 .SPC       ST Spectrum compressed picture
 .SPU       ST Spectrum uncompressed picture
 .SRC       Source code
 .SUP       SuperArc compressed file
 .SYN       Synassembler source code
 .SYS       System file
 
 .TOS       Executable ST program
 .TTP       ST application program
 .TXT       Text file
 
 .V         Pokey player music file
 
 .WP        ST WordPerfect data file
 
 .ZIP       Zip compressed file
 
 
 =======================================================================
 Z*MAGAZINE Atari 8-Bit Online Magazine is a bi-weekly magazine covering
 the Atari and related computer community.   Material  contained in this
 edition may be reprinted without permission,  except where otherwise
 noted,  unedited,  with  the  issue number, name and author included at
 the  top  of each reprinted article.  Commentary and opinions presented
 are those of the individual author and  does  not  necessarily  reflect
 the opinions of Z*MAGAZINE or the staff.  Z*Magazine Atari 8-Bit Online
 Magazine, Z*Net Atari Online Magazine, Z*Net  are  copyright (c)1990 by
 Rovac Industries  Inc, a registered corporation.  Post  Office  Box 59,
 Middlesex, New Jersey 08846.  (908) 968-2024.  Z*Net  Online  BBS  24
 Hours, 1200/2400 Baud, (908) 968-8148.  We can be reached on CompuServe
 at 71777,2140 and on GEnie at Z-NET.
 =======================================================================
                  Z*Magazine Atari 8-Bit Online Magazine
                Copyright (c)1990, Rovac Industries, Inc..
 =======================================================================


-----------------------------------------
Return to message index