An easy to use sprite editor and animator.
We wish all of you a happy holiday season
and a prosperous and enjoyable New Year. Return to
Top
West
Hartford
Happenings
by Darrell R. Sage
The Wall Street
Journal continues
to be filled with speculation that Coleco will drop the ADAM
after Christmas. Remember this is only speculation. Most of it
comes from the same type of people who thought that the IBM PC
Jr. was the best thing since sliced bread. We all know how
accurate their predictions about the Jr. have been.At the same
time they are predicting the demise of the ADAM.
Coleco has announced a number of
promotions. The most recent will allow many retialers to sell the
ADAM at $499. Rather than cut the wholesale price, Coleco is
offering retailers $175 worth of free software with each
computer.
Infoworld recently carried a
relatively positive article on ADAM. The article quotes industry
analysts who estimate that by the end of the year approximately
320,000 ADAMs will have been sold. Coleco has been busily working
to get peripherals and software on the market before Christmas.
They are currently shipping disk drives, modems and 64k memory
expanders, as well as data drives. Return to Top
What About The
Competition?
by Darrell R. Sage
What competition? Atari
seems to be in
never-never-land. Even if their pledges to support the 800 are
true, it seems as if no one will believe them. It is rumored that
800s will be selling for less than $100 by Christmas. Whether or
not Atari remains a force in the home market will be determined
next yar. They have to get their new product line together and
then they will have to convince retailers to sell it. Based upon
current problems this may be a difficult task. Atari user groups
are up in arms about the current lack of cooperation from the
company.
Meanwhile Commodore is busy shipping the
Plus-4. The name sounds more like a cold medicine than a
computer. I just don't think this computer is what the public
wants.
The PC Jr. is still around, but without
the clunky chicklet keyboard. IBM has provided free exchange of
the old keyboards for the new ones.
Price wise there doesn't seem to be much
competition for the ADAM outside of Atari and Commodore. Maybe
next year the Japanese will enter the market or maybe it will be
the British. The current situation certainly gives Coleco the
opportunity to make ADAM a sucess this Christmas. We'll have to
see what the Winter CES brings us. Return to Top
An ADAM Owners' View:
One
Year Later
by Joe Blenkle
It doesn't seem that
long ago that I
purchased my ADAM, but it's been almost a year since I received
it via UPS. It was delivered almost a month earlier than promised
by Montgomery Ward.
In the time I've had it, I've learned a
lot about computers, both good and bad, and happily most of it
has been good.
My initial response to ADAM was one of
frustration. The early models of the machine seemed to be full of
bugs, and mine was no exception. It had numerous word processing
problems; nothing serious, but little things that were very
annoying. I waited until my warranty was almost up to get them
fixed so I could become familiar with everything that was wrong
with my unit.
The printer was next to cause me
problems, but happily everything is now in good repair, or
almost, as my ADAM occasionally refuses to replace a word it has
searched for in the word processing mode. Other than that, ADAM
works fine and gives me not a single problem.
My experiences with ADAM weren't my first
with computers. In the past I have owned an Atari 400 and Texas
Instruments 99/4A. Both were sold long ago. The TI was bought on
impulse, the Atari for game playing. It has been since replaced
by an Atari 5200 for the same purpose.
I'm very big on game playing. I use the
ADAM for that purpose, along with record keeping and writing. In
the time I've owned an ADAM I have made the following
observations about its capabilities.
First, as far as game playing goes, I
have found no machine that can match ADAM. Graphically, while
games vary from system to system, I've found most games, no
matter what manufacturer produces them, are superior on the ADAM.
While the ADAM doesn't boast the hundreds of colors offered by
other systems, I've found that the graphics are always crisper on
ADAM games, subjects are better detailed, and the whole overall
appearance of the game is better. I'm saying this from experience
as I've compared a lot of games from system to system.
The gaming world is just now opening up
to ADAM as manufacturers can produce cartridges not only for the
computer system, but the ColecoVision game system as well. This
will definitely be a plus when it comes to the decision whether
or not to put out a ColecoVision/ADAM compatible version of a
particular game.
I'm very happy with ADAM as a word
processor, although I can think of a lot more features I'd like
to see in it. Hopefully, Coleco or some other company will put
out an enhanced word processing package with features such as
automatic centering, right margin justification, and a reverse
search so you don't have to return to the beginning of a document
every time you want to search for something. I would also like to
see a graphic printer for the ADAM somewhere down the line.
Like many other ADAMites, I am very
frustrated by the slow appearance of software and hardware for
the ADAM. Living on the west coast, we always seem to be the last
to see products as they are released, not just for the ADAM but
for other systems as well. I know of several products for the
Atari 5200 that have been out for at least six months in the
east, but have not appeared in the west.
It will get better. It's only a question
of when. I could go on and on about ADAM, but knowing there is
limited space in ECN, I won't. It's enough to say that during the
past year I have grown very attached to my ADAM. Unlike some
computer systems that are outdated almost the minute they hit the
shelf, I don't think the ADAM will suffer this fate for quite
some time because of the tremedous potential of the system for
growth.
Despite some of the early problems, ADAM
appears to be here to stay and there hasn't been one minute
during the past year that I've regretted making ADAM my computer
system. Return to Top
Line-Spacing In
SmartWRITER
by Tony Barnert
Many of you have
noticed that SmartWRITER
puts 1.5 spaces between paragrpahs if spaced with a solo
(RETURN). For many reasons, you may want a single space or even
half-space, which can be done as follows. For single space, the
easiest way is to type a subscripted space (or nothing) before
the (RETURN). The half space is a bit more complicated, and
basically involves printing every other paragraph in full
SUBSCRIPT, making sure that each line begins with the (L)
subscript character and ends with the (R) and a (RETURN). It is
also essential to end the paragraph with a subscripted (SPACE),
or the next paragraph is buried. Some of the complexities which
can be handled include the difficulty in editing the shorter line
(the subscript characters are counted by SmartWRITER as spaces,
but not by the printer), the added difficulty in subscripting an
already-written paragraph (say after moving it - this requires
inserting full L & R subscript characters at the beginning and
end of each line, and then deleting the appropriate half - given
the slowness of INSERT and DELETE, this can be tedious). Some of
the problems that remain include the inability to underline the
subscripted paragraphs, and the fact that the printer is then not
bidirectional and is even slower.
Despite all this, I feel that the tighter
look and extra words per page are well worth the time and effort,
at least until an improved word processor is available (or an
RS-232 interface to bypass the printer). The general principal is
also confirmed that most programs can be "tweaked" to do more
than they promise. Return to Top
Getting
The Most Out Of
CompuServe
by Joe Blenkle
With the ADAM SmartLINK Phone Modem available,
there
is bound to be a rush on one of the more popular on-line services -
CompuServe.
The CompuServe Starter Kit (retail around $30)
includes
five hours of connect time. The SmartLINK Modem includes a card that
entitles you to
an additional two hours of time on CompuServe.
Seven hours seems like a long time, but it can
go very fast
if you are not careful. At $6 per hour standard connect time (after
your free time is
used up), CompuServe can quickly run up a bill that you'd rather not
see at the end of
the month.
I've only used the system a short time, but
I've already
found ways to keep your time on-line to a minimum and therefore allow
you to save
money.
The first thing you will want to do is set up
your own
personal menu. you can list up to 10 items and their page numbers that
are of interest
to you. Almost as soon as you log on the system, this menu will be
displayed. By
inputing the appropriate menu number, you will be taken immediately to
that
service.
Another way to save connect time is by using
the free-
demo you receive with the SmartLINK Modem to access the CompuServe
index and
find the page numbers of the items you want to view. In this way you
will save your
own time, while using CompuServe's. You can access the demo mode as
many times
as you want. If you choose to become a CompuServe subscriber, they will
send you
updated indexes on a regular basis.
Once you become a subscriber, you will have
access to
Compuserve's Electronic Mail (EMAIL) service. With this you can send
messages to
other computer users as long as you have their ID number. Upon logging
onto the
system you will be informed if you have any mail waiting and if you do
you will be
taken to the EMAIL menu.
Another way of leaving messages is through
SIG's
(Special Interest Groups) or various public bulletin boards. As of this
writing there
wasn't an ADAM SIG, but hopefully there will be one soon. Upon logging
onto the SIG
you will be told if you have a message waiting. I recommend EMAIL for
general
message writing, as the SIG's take too long to get into. You can read
through all the
messages on the SIG and have the opportunity to answer or comment on
any of
them.
CompuServe is a lot of fun and it is
interesting to browse
through its many services and features. But beware, your time goes very
fast and you
can use up your free time and compile some very high connect charges if
you are not
careful.
I recommend that after you've found your way
around the
system, usung about half of your alloted free time, that you set up a
budget and log
on to CompuServe for a pre-determined amount of time every day, week or
month
depending on your needs.
Always keep a log of how long you've spent on
the system
(you'll be told when you log off how long you've been on) and it is
best when you log
on to know exactly where you intend to go and what you intend to do. Return to Top
Assembling Graphics
Sprites
by Darrell R. Sage
Well we don't have a
sprite editor yet,
but at least we have a demonstration program that creates a
sprite and allows you to move it with a joystick (see program
listing).
The more work we do with machine language
programming on the ADAM, the more we learn. In the last issue I
indicated that you need to save the contents of a number of
registers by PUSHing them before using them and by POPing them
when you were finished. The only time that this procedure is
necessary is when those registers contain information that needs
to be saved. We have eliminated those statements in the sprite
demo.
The best way I know to cover sprites is
by discussing my demo program line-by-line. Line 10 sets LOMEM to
32100. This allows us to reserve a portion of memory for storing
machine language routines and sprite data. Line 20 CLEARs all variables
and
equates "s" to 30000 (this will be the starting location for the
machine language routines). Line 30 sets "x" equal to 32000 (this
is the memory location for the start of the sprite data) and "c"
equal to 0 (this is a counter used in the program).
Lines 110 through 220 contain the data
for the machine language routines. Following each line of data
is a REM statement that gives the assembly language equivalents
for the preceeding data and a brief explanation of what that line does.
Rather than repeat
that information, I will try to provide an explanation of what
it means. Line 110 tells ADAM what size and magnification we want
to use for our sprite(s). The second value in line 110 (227)
specifies a 16 x 16 sprite that is double magnification. Essentially
you have four options available for this value: 224 =
8x8 sprite, no magnification; 225 = 8x8 sprite, double
magnification; 226 = 16xl6 sprite, no magnification; and 227
the value actually used in the program. The fourth value (1) in line
110 is used to
designate one of the eight vdp registers in the video chip. Register
one controls the size and magnification of sprites. The
rest of line 110 contains the data used to CALL a system routine
that stores the value (227) in the appropriate vdp register (1).
Lines 120-160 contain the machine
language routine that stores the sprite data in the proper location in
video
ram. The first lines provide instructions and information used
by the CALL routine in line 160. Line 120 tells the routine to use
Table #1 in video ram.
This is the sprite data table. Line 130 indicates that there will
be four entries to load to VRAM. All 16xl6 sprites require a value of
four (4)
for each sprite; all 8x8 sprites require a value of one (1) for
each sprite.
Line 140 contains the starting location
of the sprite data (32000). This number is obtained by adding the
second value in line 140 (0) to 256 X 125 (the third value). Line 150
indicates the entry in the vdp table to write to (0). Your choices
range from
0 to 31 for a total of 32 entries or sprites. Line 160 CALLs
the routine that processes all of this information. Once this
routine executes the sprite is stored in VRAM. However, sprites
are controlled by entries in two tables - table 1 stores the
sprite data and table 0 stores the sprite attribute data.
Lines 170-210 contain the machine
language data used to load the sprite attribute data. Line 170
designates table #O; line 180 sets the number of entries to one
(1); line 190 specifies the entry to write to (0 which is the
first entry); and line 200 gives the location of the sprite
attribute data (32 + (125 X 256) = 32032). Line 210 CALLs the
routine that processes the data. This is the same routine that
was used to load the sprite data in line 160. Line 220 is the
RETURN statement for the machine language routine.
The data for the 16 x 16 sprite is
contained in lines 250-280. The data must be stored in the order
indicated. Next time I will go into detail on how to code
the sprite data.
Line 290 contains the sprite attribute
data which is described in lines 295-298. Lines 1000-1030 store the
machine
language routine. Lines 1990-2030 store the sprite data. Line
2120 CALLs the machine language routine stored at memory location
30000 which executes and draws the sprite. Lines 2500-2520 read
the joystick and loads the values into memory for the horizontal
and vertical position of the sprite. Line 2530 CALLs the machine
language routine starting at memory location 30023,
which is the part of the program that loads the sprite attribute
table data. The sprite moves as you move the joystick. The
program is terminated by a CONTROL-C.
I realize that this is very complex, but
it does work. Try playing with it. Next time we will try to make this
information more useable, but we have to start somewhere.
10 LOMEN :32100
15 REM SPRITE DEMO by D. Sage
20 CLEAR: a = 30000
30 x = 32000: c = 0
110 DATA 14,227,6,1,205,32,253
115 REM LDC,E3H;LDB,I;CALL FD20
116 REM E3H=16xl6 double sprites
120 DATA 58,24,252
125 REM LDA(FC18H) - table #1
130 DATA 253,33,04,00
135 REM LDIY,0004H - # of entries
140 DATA 33,00,125
145 REM LD HL,7D00H - location of data (32000)
150 DATA 17,00,00
155 REM LD DE,0000H - entry to write to
160 DATA 205,44,253
165 REM CALL FD2C - write tbl entries to VRAM
170 DATA 58 23,252
175 REM LDA(FC17H) - table #0
180 DATA 253,33,1,0
185 REM LD IY,0001H - # of entries
190 DATA 17,0,0
195 REM LD DE,0000H - entry to write to
200 DATA 33,32,125
205 REM LD HL,7D20H - location of data (32032)
210 DATA 205,44,253
215 REM CALL FD2C - write table entries to VRAM
220 DATA 201
225 REM RETURN
230 DATA 256
235 REM end of ml data
240 REM SPRITE DATA
245 REM upper left quadrant
250 DATA 3,3,15,7,5,7,1,1
255 REM lower left
260 DATA 7,11,19,35,2,2,2,14
265 REM upper right
270 DATA 192,192,240,224,160,224,128,128
275 REM lower right
280 DATA 224,208,200,196,64,64,64,112
285 REM SPRITE ATTRIBUTE TABLE DATA
290 DATA 1,1,0,9
295 REM 1=vertical position
296 REM 1=horizontal position
297 REM 0=name
298 REM 9=color code-red
990 REM store ml routine
1000 READ a: IF a = 256 THEN 1030
1010 POKE s+c, a
1020 c = c+1: GOTO 1000
1030 REM
1990 REM store sprite
2000 FOR i = 0 TO 35
2010 READ a
2020 POKE x+i, a
2030 NEXT i
2100 HOME: PRINT " USE Joystick #1"
2105 PRINT "Stop with Control-C"
2110 PRINT " Clear with TEXT"
2115 REM call sprite routine
2120 CALL 30000
2495 REM read Joysticks
2500 b = PDL(1): d = PDL(3)
2510 POKE X+32, b
2520 POKE x+33, d
2525 REM call sprite location routine
2530 CALL 30023
2560 GOTO 2500
3000 END
Return
to Top
Programs, Programs, Programs
In addition to the sprite demo program listed
above, there
are four other subscriber written programs listed in the back of this
issue. Most of
these programs are self-explanatory and require no additional
discussion. All you have
to do is enter them and run them. In the future we plan to handle many
of the
programs written by subscribers in this fashion. If instructions are
required, they will be
provided. The programs in this issue are: