Z*Magazine: 2-Jul-86 #6

From: Atari SIG (xx004@cleveland.Freenet.Edu)
Date: 07/03/93-08:32:20 PM Z


From: xx004@cleveland.Freenet.Edu (Atari SIG)
Subject: Z*Magazine:  2-Jul-86 #6
Date: Sat Jul  3 20:32:20 1993


_____________^^^___________________
Zmagazine    HOT Atari News Plus+++
Ron Kovacs Publisher/Editor
Middlesex, New Jersey Volume 1
Number 6  July 2, 1986
Liberty Edition-Happy Holiday
___________________________________
Welcome to another Edition Of Zmag.
If you have any ideas you would
like to see implemented in future
editions, Please leave me a message
on any of the Zmag BBS Systems,

In this issue of Zmag we will have 
the 4th installment of our series 
on Assembly Language programming by
Chris Crawford.

Another Zmag Magazine debuts on the
Original Syndicate BBS in New 
Jersey. It is called ZROCK. This
magazine will be devoted to Rock
music news, concert and album
reviews etc... With weekly Top 10,
Top Albums, New releases etc..
If you are interested in more info,
please leave me a message.

Now on with this weeks Zmag!!

By the way, next weeks issue will be
devoted entirely to the ST. So if you
have any information you can send
for publication, please help us
out.  Thanks.

Xx WEFAX
By: Marty Goodan
Flash!  Antic Magazine in its
SEPTEMBER issue will be featuring
an impressive offering:
  Versions of a combined hardware
and software package to allow both
8 and 16 bit Atari computers to
receive, display, edit, store to
disk, and print WEFAX weather
images.  This includes satellite
photos, synoptic charts, and, in
some cases, UPI type wire photos as
well.  Details follow:

The software/hardware package will
allow owners of Atari 520 ST
computers to receive WEFAX images
with a max resolution of 640 pixels
horizontally by 480 pixels
vertically.  The image will be
visible as it is being received,
and phasing adjustment and image
reversal can be made DURING image
reception. Images can be saved to
disk in DEGAS format, for later
editing or printing with that
popular graphic editor.   Owners of
the 8 bit Atari 800 and 130ST have
versions that will receive an image
with a max resolution of 512 pixels
horizontally and 480 pixels
vertically. During reception they
will be able to not only adjust
phasing and inverse video the image
at will, but will also be able to
scroll the monitor screen image
both horizontally and/or vertically
over the larger virtual picture as
it is being received.  On the 8 bit
machines, an option is provided to
receive a screen resolution only
type picture, and save it to disk
in Micropainter format.  Tho the
resolution here is so poor in this
case that this option is worth very
little.

    Unlike the Color Computer WEFAX
that I presented in the Feburary
1985 issue of Rainbow Magazine, the
Atari implimentation requires a
significant, tho rather simple,
external hardware circuit.  A
single XR2211 FSK demodulator /
tone decoder chip is used in an
easy to build circuit that had
about a dozen components.  The
circuit (pretty much exactly one of
the "suggested implimentation"
circuits presented with the
manufacturer's specs on the chip)
will be provided by Antic, tho at
this time there are no plans for
them to supply PC boards, kits, or
assembled and tested units.

    I have had the pleasure of
seeing some images received with
both Atari WEFAX systems.  They are
of sufficiently high quality as to
be professionally useable, tho
noticeably less clear and detailed
than Color Computer WEFAX images.
Full assembly source code for the
driver programs will be provided,
and hooks have been placed for
hackers to provide support for
higher resolution reception (very
sorely needed on the 520ST package)
and for gray level reception too
(tho for gray levels totally
different HARDWARE will be required
as the existing XR2211 circuit is
incapable of receiving gray level
information).  It IS very
impressive to see a full WEFAX
image on the screen of an Atari
520, after over a year of viewing
CoCo WEFAX images by scrolling my
Color Computer's 256 by 192 screen
over the larger virtual image
received by the color computer.

    Overall, the CoCo WEFAX remains
a far superior package:  It
receives a 768 by 576 pixel image,
for a total of 54K bytes of image
data. This is in contrast to the
640 by 480 res (32.0K bytes) on the
520ST WEFAX, or the 512 by 480 res
(30.72K bytes) on the 8 bit 130St
or 800 machine.  The CoCo version
requires nearly nothing in the wa
of external hardware.  And it
provides for both receiving AND
sending of WEFAX images.  It also
is totally in the public domain,
while the Antic version is of
course copyright ANTIC magazine,
creating in theory some barriers to
its most wide possible distribution

    But the Antic WEFAX is a very
nice package, and the 520ST version
CAN be modified by a conscientious
hacker to receives TWICE the linear
(or four times the pixel count)
resolution.  This should be done
immediately upon publication of the
item, for a WEFAX signal contains
image information of around 1500
pixels by 1000 pixels, and there is
no reason why the 520ST, with its
outstanding graphics capability and
ample memory, cannot be made to
receive a larger vritual image and
have its screen scroll over that
image, just as the existing Color
Computer and Atari 8 bit versions
do. The hardware whose circuit
will be published in  ANTIC will
support such higher resolutions,
tho, as noted, it will NOT support
gray level discrimination.

   Publication in ANTIC will assure
a reasonably wide distribution of
this extremely valuable program
and hardware.   Other additions
hackers might want to make to the
520ST WEFAX will be auto picture
reception start, and auto phasing. 
Both of these can be added by
appropriate software.  No hardware
modifications are needed for those.
It is possible that some or all of
these enhancements will later be
provided in future issues of ANTIC.

    Of great significance will be
the form in which this product will
be presented by Antic.  A GREAT
deal of work is going into the
September issue.  Antic staff
visited both the local national
weather service office and the
local WEFAX relay rebroadcasting
facility.  Interviews with staff
there, photos of the equipment, and
side by side comparisons of
unretouched Atari WEFAX images with
images received on national weather
service FAX machine costing many
thousands of dollars will be
presented.   Overall, it seems the
September issue of ANTIC will be
QUITE a block buster.   Versions of
this WEFAX project will later be
developed for the Apple family of
computers.

    (Note:  I have NO connection
with Antic Magazine other than a
friendship with Charles Jackson,
its managing editor.  I made a
rather small contribution to the
development of the ANTIC WEFAX,
primarily by harassing the folks at
antic by demoing the Color Computer
WEFAX.  I also provided some
information to them about
frequencies to listen to, and lent
for a few months my high frequency
general coverage receiver to ANTIC
to assist them with the project.)

---MARTY GOODMAN

Xx  Software Review 
** Fooblitzky ** By:Bill Parker

Infocom, the dependable developer
of quality text adventures, has
attempted to broaden thier spectrum
of offerings with their first gfx
assisted action/strategy game,
Fooblitzky.......($32.99)....

Infocom's impressive past track
record, and appealing packaging
were more than enough to seperate
me from my money.  Among the game's
appealing attributes are the multi-
player (2-4) capability (at last
another "family game" - I thought),
limited playing time (1-2 hours),
and broad age appeal (14 to
adult-whatever age that may be).

As to play, the exterior 
description on the box provides an
accurate simulation:   ...a unique
game of deduction strategy, and
chance. It's a dog-eat-dog world,
as you rove the crowded streets of
Fooblitzky, trying to deduce and
obtain the four objects needed to
win the game. But this is no
scavenger hunt: victory depends on
how well you use funds, keep
records, and out smart your fellow
players.

Fantastic, a learning experience
disguised as fun. On screen 
movement of each players' alternate
persona, in the form of a dog, is 
by joystick and trigger attached to
port number one. The game even
offers a "save game" capability and
the opportunity to tailor various
game parameters to vary the impact
of chance and the degree of
difficulty. What mre could I ask
for? Well...

User friendliness would have been
nice. An inveterate "boot an go-
-we'll get to the instructions
later" type when dealing with 
games, I quickly found that the
game gfx and mechanics only became
comprehensible after careful 
reading of all the included
documentation. While the game
includes a three page refrence card
(useful after you read the manual)
and a seven page "The Bare
Essentials" (a bit too bare),
ability to relate to the on screen
activities evaded me until I made
careful study of the 28-page
"Official Ordinances, Rules &
Regulations for the City of 
Fooblitzky" With both my daughters
ages 10 and 13,a game that requires
reading the documentation is a game
destined to gather dust on the
shelf. Such remains the fate of
FOOBLITZKY after nearly a month.

Expertise with text adventures does
not translate well into graphics.
While adequate and often cute, the
graphics are clearly not state of
the art. Animation is not smooth
and appears to ripple across the
screen in a manner I found
conducive to eye strain. As the
game appears to utilize graphics 8
and depend on "artifacting" for
color generation, use of either a
television or composite monitor is
required.

SUMMARY:
While often cute and sometimes
entertaining, the game fails to
deliver the creditable challenge
required to keep the targeted age
group coming back for more. By
design of the graphics and a
definite leaning toward cute, the
game could have targeted a younger
age group well. However, lack of
self-evident play mechanics, which
results in a need for extensive
familiarization with the manual,
will limit appeal even here.
FOOBLITZKY is a cute idea that
failed to properly identify its
prospective user and will,
consequently, rack up considerable
shelf time. Even the best can fall
on their sword when exploring new
territory.

[Reprinted from the June 1986 issue
of Current Notes; The Newsletter
for Atari Owners]

Xx Syndicate BBS Logo

I am happy to say that I have
received a trademark for the
following logo. If you cant read
it is because it is done in
Atascii.  

   
     
      
   
       
           
                     
    
  
 
                    
           
 
                   
         
    
             

     Bulletin Board Service 






Xx Assembly Language


ANTIC PUBLISHING INC., COPYRIGHT
1985.  REPRINTED BY PERMISSION.

     CHRIS CRAWFORD
 ASSEMBLY LANGUAGE COURSE

 LESSON FOUR: BRANCHING

   One of the most important ideas
in computing is the concept of
conditional execution.  This is the
ability of the program to execute
different routines depending on
conditions at the time of
execution.

   The significance of this
capability is best realized by
considering how programs would
operate in its absence. A program
without conditional execution would
not be able to change its program
flow in response to conditions.

   In other words, it would always
execute exactly the same code in
exactly the same order.  Every run
of the program would follow exactly
the same sequence and perform
exactly the same operations. Not
very interesting, right?

   To get a grip on conditional
execution, we need to look at it in
its simplest expression.  The
simplest type of conditional
execution is binary in nature.  We
have a chunk of code; the 6502 will
either execute it or it will not
execute it.  The decision is made
on the basis of a boolean value; a
true value will tell us to execute
the chunk, while a false value will
tell the 6502 not to execute the
chunk.

   The basic mechanism for doing
this is through an instruction that
performs a transfer of control.This
involves nothing more than altering
the program counter. You may recall
that the program counter is a
register in the 6502 that points to
the address of the currently
executed instruction.

   When that instruction has been
executed, the program counter is
increased by the length of the
instruction (1,2, or 3 bytes,
depending on the instruction).  It
now points to the next instruction.
This little system allows the 6502
to step through a program in
sequence.

   But there are also instructions
that will alter the value of the
program counter, alowing the 6502
to jump to another area of memory
and another part of the program.
The simplest of these is the JMP
instruction. It takes the form JMP
LABEL.

   This loads the value of the
LABEL into the program counter.
Its effect is to make the 6502 jump
to the address of LABEL and
continue execution from there.  It
is directly analagous to a GOTO
instruction in Basic.

   For conditional execution we
need something more.  We need the
6502 to have capability to make a
binary decision based on a binary
value.  The solution used by the
6502 involves flags. These are
single-bit Boolean values stored
together in a single byte of the
6502 called the processor status
register (SR).

   The status register is eight
bits wide but stores only seven
flags.  These seven flags are
labelled N,V, B, D, I, Z, and C.
You have aready encountered the C
(Carry) flag and the D(Decimal)
flag.  In this chapter, we are
concerned only with the N, V, Z,
and C flags.

   The magic instruction that makes
possible conditional execution can
take many forms.  Its general form
is Bfv LABEL.  The B stands for
"branch". The "f" stands for a
flag, and the "v" stands for the
value of the flag, either true or
false. However, in this case, we do
not use the terminology "true or
false".

   Instead we use the terms "set"
or "clear".  "Set" means the same
thing as "1" or "true", while
"clear" means "0" or "false".  The
label is the address to which the
6502 should branch if the condition
is satisfied.  If the condition is
not satisfied, then the 6502 will
simply skip this branch instruction
and go to the following instruction.

   For example, suppose that we
have the following instruction
sequence:

            LDA      #0
            BCS      KARELIA
            LDA      #5
 KARELIA    STA      FISH

   This will first load the
accumulator with a zero. Then the
6502 encounters the BCS ("Branch on
Carry Set") instruction.  It looks
at the Carry flag.  If this flag is
set then the 6502 will indeed
branch to the label KARELIA. (For
all you geography buffs, Karelia
used to be in Finland.)  In other
words, if the Carry flag is set,
the 6502 will skip over the LDA
#5 instruction.  Thus, a zero will
be stored into FISH.

   However, if the Carry flag is
clear, then the 6502 will not take
the branch.  It will instead
continue executing the next
instruction, which will load a 5
into the accumulator.  Then it will
come to the label KARELIA and store
that 5 into FISH. Thus, the value
of the Carry flag determines
whether a zero or a five is stored
into FISH.

   The converse of BCS is BCC
("Branch on Carry Clear"). This
will cause the 6502 to take the
branch if the Carry flag is clear.

   There is also a pair of similar
instructions for the V-flag.  These
are BVS and BVC.  They will cause
the 6502 to branch on the value of
the V-flag.

   Now the situation gets
unncessarily confusing.  The
instructions for the Z-flag should
be BZS and BZC -- "Branch on Z Set"
and "Branch on Z Clear".
Unfortunately, the dumb designer of
the 6502 thought he would get cute
at this point, so instead he called
these instructions BEQ and BNE, for
"Branch on Equal" and "Branch on
Not Equal".  He never mentioned 
what he thought is supposed to be
equal to what.  We're stuck with
it, so make the best of it.

   Just remember what these
instructions really mean BZS and
BZC.  If you think in terms of the
Z-flag, it will work out just fine.
If you try to think in terms of
equal or not equal, your attention
will be diverted from the real
truth of the matter and you may
make mistakes.  So keep your eye on
the ball and think in terms of Z!

   The next pair of branch
instructions use the N-flag. These
are even more insidious than the
previous two.  They are called BMI
and BPL, meaning "Branch on Minus"
and "Branch on Plus".

   At first glance, these appear to
be reasonable substitutions for BNS
and BNC.  After all, if you load
the accumulator with a signed
number, and the number is negative,
then the N-flag will be set, while
if the number is positive, the N-
flag will be clear.

   Thus, it would seem that BMI is
truly equivalent to BNS and BPL is
truly equivalent to BNC.  This is
the source of many a bug in
beginner's programs. Consider the
following fragment of code:

 LDA   FISH
 SEC
 SBC   BOAT
 BPL   POSANSR

   This code is supposed to branch
to POSANSR if FISH is greater than
GOAT.  And indeed, if FISH is
greater than GOAT, then when you
subtract GOAT from FISH, you will
get a positive result, right?  Not
necessarily!

   Suppose, for example, that the
value in FISH is $C1 and the value
in GOAT is 1.  When the 6502
subtracts GOAT from FISH, it will
get a result of $CO.  Note that the
highest bit of $CO is set to 1.
This is the value that will go into
the N-flag.  In other words, even
though FISH is greater than GOAT,
the 6502 will not take the branch,
and this code will fail.

   The moral of his tale is, don't
take those instructions literally.
They are misleadingly named.  When
you see BPL, don't think "Branch on
Plus", think "Branch on N Clear".
Otherwise, you'll screw up someday.

   By the way, the correct branch
to use in the above problem is BCS.

   Now for a catch with the branch
instructions.  A JMP instruction is
a simple absolute jump -- you
specify the target address and it
goes there.  The designers of the
6502 realized that the vast 
majority of branch instructions
only go a short distance  They
therefore decided to implement the
branch instruction as a relative
branch.

   The machine code doesn't specify
the target of the branch, it only
specifies an offset.  In other
words, instead of saying, "jump
there", it says, "jump so many
bytes forward or backward."  The
allowable range is 126 bytes
forward or backward.  Thus, you
can't branch anywhere you want,
only to nearby locations,  If you
must branch further, reverse the
logic of the branch and use the
branch to skip over a JMP
statement.

The next installment will be in two
weeks, since next weeks issue will
be entirely devoted to ST news.


Xx Hardware Review

OKIDATA'S 182 TTY PRINTER PROVIDES
MULTISTAGE VERSATILITY
June 1986

Okidata
Div. of Oki America, Inc.
532 Fellowship Rd.
Mt. Laurel, NJ 08054
609/235-2600
Computer: Any computer with
Centronics-style parallel printer
port (serial port operation is
optional).

Features: 120 cps print speed; dot
matrix with 9x9 standard
characters; 80 characters per line
standard or 137 characters per line
condensed; 10, 12 or 17.1 cpi and
expanded character sizes; 6 or 8
line-per-inch spacing; selectable
four-stage operation from "dumb"
TTY mode to full intelligent mode;
bit-image graphics capability; pin
feeding for continuous forms or
friction feeding for single sheets;
top or bottom paper feeding;
re-inking ribbon cartridges;
direct-drive printhead. Options:
RS-232C serial interface (high
speed to 9,600 baud or super speed
to 19,200 baud); tractor drive;
roll-paper stands (both
nonelectronic for attended
operation and electronic for
unattended operation).

Model Tested: Basic 182 TTY printer
with parallel interface driven by a
Compaq Deskpro via standard LPT1
printer port.

Prices: $349 for basic printer;
$409 for printer with serial
interface; $59 for electronic
roll-paper stand; $49 for tractor
drive.

 Reviewed by Ernest E. Mau
As its name implies, the Okidata
182 TTY printer is intended
primarily for telecommunications,
especially where it's connected via
a terminal to dump information
directly to hard copy without
having a local computer capture
and store the information.  As a
teletype-like printer, the 182 TTY
can handle such tasks without
printing "garbage," unlike many
other printers available today.

 Yet this printer works equally
well in computer-controlled
applications because it 
incorporates four stages of
switch-selected intelligence. TTY
model makes it a receive-only
teletype accepting only printable
characters, carriage returns,
linefeeds and form feeds.  CRT mode
adds adjustable margins and
horizontal and vertical tabs for
rudimentary page formatting.  Basic
Printer Mode adds selectable type
sizes and line spacings.  
Intelligent Printer Mode adds
underlining, superscripts,
subscripts, enhanced printing and
emphasized printing.

  At the topmost intelligence
level, the printer includes all
features (including bit-mapped
graphics) expected of any printer
for general-purpose computer
applications.  It responds to the
standard Okidata Microline 182 or
Microline 92 printer drivers
included in commercial software and
does an admirable job with word
processors, business graphics
programs and even computer- aided
design systems.  In extremely small
graphics with fine lettering, it
doesn't provide as crisp an output
as some other printers, but that
application really pushes the 182
TTY beyond its intended uses. 
Still, it should suffice for all
but the most critical graphic
applications.

  Under software control, the
intelligent mode also provides
block graphics, language fonts
(British, German, French, French
Canadian and Spanish), line
skipping, incremental line spacing,
and other capabilities.

  One notable feature is that the
printhead is not driven by a belt.
Instead, it contains a small
direct-drive motor and gearing that
engages a stationary track.  That
makes it quieter than other
printers of the same speed and
should mean greater long-term
reliability. Furthermore, printhead
positioning is microprocessor
controlled and uses an optical
sensor to determine the actual
position, the desired position and
any adjustments necessary to match
them up.  It's nearly impossible to
print a character or dot pattern
out of position, even when
operating under adverse conditions
of vibration and movement.

  I find this printer easy to use,
although I prefer it in the
intelligent mode as a general-
purpose printer. It's small size
makes it unobtrusive and easy to
install in any convenient nook
or cranny, while its comparatively
quiet operation isn't excessively
distracting.

  I can talk on the phone while the
printer s working next to me, so it
should be suitable for most office
environments.

  What I don't like is the position of the parallel connector, which
interferes with the paper feed
path.  Using clean-tear or
microperforated paper, the
stress caused by the connecting
cable easily tears the paper all or
part way across a fold line.  If
torn is only part way, paper jams
in the pin feeds.


Xx Zmag Notes

Next week is our ST edition. I 
wouls also like to welcome The
Sorcerer as our new ST Editor.

Next week also will include a
BBS review by Walt Drummond of an
ST run BBS.

I would also like to inform our
readers that since the Syndicate
BBS has resigned from the Atomic
Network. We ar starting something
new. In a few weeks we will debut
the Zmag Information Network. This
network will list and supply BBS
Systems with weekly issues of Zmag.
Only systems we feel that service
it's users and promote tele-
communications are invited to join.
If you know of a system that might
meet the above criteria, please let
me know on this BBS or on Compuserve
at 71777,2140.

Thanks for reading and I hope
everyone has a great Holiday 
Weekend.  Take care!
See you next week,

-----------------------------------
Zmagazine July 2, 1986
Please contribute!!
-----------------------------------


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