it)

COMPUTE

AUGUST 1993 SPECIAL REPORT!

PLUS!

HP's LASERJET 4 WARS OF THE DISTANT PAST DESKTOP FORGERY Eicle sle‘e's oete » seis oc ewere FAST, POWERFUL, a AND EASY TO USE! : 2]

64/128 VIEW

A veteran 128 publication turns its editorial eye on the 64 with the launching

of Twin Cities 128/64. Tom Neisel

azette celebrated its tenth anniversary when the July issue rolled off the presses. That's almost 120 issues. (We missed a couple during the summer of 1990.) RUN made it to issue 99 before it closed its final page.

Computer magazines come and go, and those that hitch their editorial wag- ons to one machine often experience a meteoric ride. Some flash onto the scene, burn brightly, and then fizzle away; while others maintain a steady glow.

Gazette started its associa- tion with the 8-bit Commo- dores by focusing on the VIC-20 and the 64, adding coverage of the Plus/4, 16, and 128 when those ma- chines came along. When the 64 and 128 emerged as the leaders, we followed the numbers and concentrated our coverage on those ma- chines. Surveys tell us that 70 percent of you own 64s,

Few publications have de- voted coverage exclusively to the 128. Twin Cities 128 was the exception. Founded by Loren Lovhaug in 1985, TC 128 was primarily a tech- nical publication that ap- pealed to 128 program- mers. It had its fans, but they were not enough to keep it in operation. It fold- ed in 1991.

And then along came John W. Brown, president of Parsec. He bought the rights to the magazine a few months later and resumed publication. Coverage at that time was still limited to the 128.

When RUN died last year, Brown figured that his publication should offer some support to 64 owners

in addition to the 128 crowd. So with issue num- ber 33, Brown launched the new Twin Cities 128/64. Pro- duced on a 128-D with a la- ser printer, TC 128/64 de- votes about half of its 56 pag- es to each machine. Look for reviews, articles, GEOS in- fo, and technical pieces, but don't expect a large number of type-in programs.

The cost for U.S. subscrib- ers is $24 for six issues, The magazine and companion disk cost $40. To subscribe or for more information, write to Parsec, P.O, Box 111, Salem, Massachusetts 01970-0111. You can also write for a free copy of the magazine.

In addition to Twin Cities 128/64, Parsec offers a vari- ety of disks, fonts, GEOS graphics, and other prod- ucts for 64 and 128 users. S!Dplayer fans should note that COMPUTE has sold the exclusive distribution rights to the book and disk to Par- sec. That book/disk combina- tion should be repackaged and for sale by now.

In “Upgrading Without Changing Platforms” (June 1993), it was reported that Parsec had dropped plans to produce a board that would let a 128 operate at 6- 12 MHz. Well, that wasn't en- tirely accurate. Brown told me that the company work- ing on the prototype had dropped it, but he still in- tends to produce it—and one for the 64 as well.

Brown says the product is now an external cartridge, CMD compatible, that will plug into the expansion port. It will probably use a 65C816 chip and operate at 12 MHz. The cost is expect- ed to be about $200. im)

GAZETTE

64/128 VIEW

G-]

A veteran 128 publication now covers the 64, too.

By Tom Netsel.

REACH OUT AND WRITE

G-3

Telecommunications can ease the loneliness of writing.

By Karl R. Witsman. REVIEWS

G-10

KeyDOS ROM Version 2 and Risers and Sliders.

FEEDBACK

Questions, answers, and comments.

PD PICKS

Mille Bornes and Maximum Overdrive. By Steve Vander Ark.

G-14

G-16

MACHINE LANGUAGE

Delete extra Returns that cause file to crash. By Jim Butterfield.

PROGRAMMER’S PAGE

Celebrate this column's fifth anniversary. By Randy Thompson.

BEGINNER BASIC

Using BASIC to solve a homework assignment.

By Larry Cotton.

G-18

G-20

G-22

GEOS

G-23

Import graphics into your geoPublish documents.

By Steve Vander Ark. D’IVERSIONS

G-24

How the Multimedia Road Warrior got his name.

By Fred D'Ignazio.

PROGRAMS

32 Sprites (64)

Midway Command (64)

Chase (64)

Memory Monitor (64)

Cubic (64)

The Automatic Proofreader (64/128)

G-25 G-31 G-34 G-37 G-38 G-40

AUGUST 1993 COMPUTE

G1

Writing is a solitary activity, but it doesn't have to be a lonely one if you use your computer to network with other writers. By Karl Witsman

of power a computer gives you—

power that you never had with a typewriter. But if you use your 64 only for word processing or the occasional game of Space Invaders, you haven't explored its most powerful use. There's a great force out there just waiting for you to tap into it with your computer and modem. It’s called net- working, and it can multiply your com- puting power and help your writing!

Most folks using computers have heard of BBSs or bulletin board sys- tems, The popular notion of a BBS run by a teenaged hacker may have some validity, but many systems are run by serious computer enthusiasts, computer clubs, schools, and bus- inesses. Some are created for fun; others have a more serious intent. All require a modem to connect your computer to a telephone line.

Running any BBS can be trouble- some and is definitely time-consuming for the owner or system operator (sysop). These are labors of love, since most BBSs bring in no money. Sysops usually appreciate any help they can get, even if it's only through the messages posted by callers, but volunteers can help in other ways as well. Many boards have areas devoted to special topics, and often these areas are directed by outside sysops. | have volunteered on more than one of my local boards to form a writers’ area. This is a place where local writers can converse about literary topics, and this is the place where networking comes into play.

I. you're a writer, you know what kind

A Waiters BBS

To share the fun and information, try to find a BBS in your local area. If you can't locate one with a writer's SIG, here are some you might want to try. Several of these BBSs have specific writing areas. All allow access up to at least 2400 bps and run 24 hours.

e Almost Paradise, Oakwood, Illinois; (217) 354-4711. The sysop is Christy Blew. Leave a message for Karl Witsman, user number 56. If | can find more BBS/writing infor- mation, I'll reply with it here.

e Electronic Pen BBS, Harrington Park, New Jersey; (201) 767-6337.

e Data Central, Indianapolis, Indiana; (317) 543-2007.

e Heartland Free-Net, Peoria, Illinois; (809) 674-1100.

e Unique and Nifty BBS, Craw- fordsville, Indiana; (317) 364-9600.

e Voyager BBS, East Lansing, Michigan; (517) 641-4367.

For additional BBS sources, try these publications or bulletin boards. e BBS Callers Digest, 701 Stokes Road, Medford, New Jersey 08055. Its BBS is The Livewire at (609) 235- 5297.

e Boardwatch Magazine, 5970 South Vivian Street, Littleton, Colorado 80127. Its BBS number is (303) 973-4222.

e /nfomat Online Weekly PC News Magazine. For information about BBSs everywhere, call (913) 478-9239.

Write Here

On a BBS, writers can discuss any- thing, such as the mechanics of manu- script preparation, agents, who us- es/hates outlines, how to query about possible articles, or how to deal with deadlines. Some topics are even more involved, such as “Where does this sex scene fit into the story?” or “How do | show my character's thinking process- es?” For questions that have no simple answers, the opinions of other writers can often prove helpful. If you're not a member of a writing group that meets in person, this electronic connection may be the only way to pick the brains of others in your field.

Three Approaches There are three main ways to con- verse on a BBS. The first is simply to leave a message in a general mes- sage area and let other:callers read and respond to it. In most cases, other callers can respond on the same message area or send you a private reply through electronic mail. The second method of exchanging information with other computing writers is through SIGs (Special Interest Groups). As their name implies, these areas concentrate their focus on a spe- cific topic of interest and one could be devoted to writers.

Echo, Echo

The third, and most sophisticated, method of communicating on local BSSs is Echo messaging. Echoes are a number of BBSs that form a net-

Whiters' Forums

The commercial online services offer a variety of opportunities for writers to meet and exchange ideas. Here's a sampling of what's available.

GEnie 401 N. Washington St. Rockville, MD 20850 (800) 638-9636

Jack Smith, screen name Writers.Ink, runs the Writer's Round- table. The nonfiction group meets Wednesdays at 9:30 p.m. General Writing meets Sundays at 9:30 p.m., and the Poetry Meeting is held on Tuesdays at 10:00 p.m. Romance Writing meets Thursdays at 9:00 p.m. All times are Eastern Time.

QuantumLink

8619 Westwood Center Dr. Vienna, VA 22182-9897 (800) 782-2278

The Writers’ Forum meets every Tuesday at 10:00 p.m. ET. Contact Karl Witsman, whose screen name is KarlW3.

The Writers’ Forum consists of a very imaginative bunch. After the main topic has been thoroughly dis- cussed, the group talks about current writing projects and other topics.

DELPHI 3 Blackstone St. Cambridge, MA 02139 (800) 544-4005

The DELPHI Writer's Group is for all writers of fiction or nonfiction. “We do admit to being a bit mercenary about writing at times, but of course that’s all a part and parcel of getting into print—our primary interest here!” says the introductory text. Features include a Critique Network and a special database for writers’ résumés, plus public domain and shareware software for writers.

Members are also eligible for special discounts on books, products, and supplies for writers. There are spe- cial databases for poets, screenwrit- ers, and fiction and nonfiction mag- azine and book authors

Poetry Conference meets Tues- days at 9:00 p.m. ET, and the Creative Writing Workshop is held Monday nights at the same time. Contact persons are Ralph Roberts, whose screen name is Author, and Michael A. Banks, whose screen name is Kzin.

CompuServe 5000 Arlington Centre Blvd. Columbus, OH 43220 (800) 848-8199

CompuServe has a Desktop Publishing Forum, a Desktop Vendor Forum, and Journalism Forums. Contact Don (76711,437) or Thom (76702,765) for more information about items of interest to writers.

G-4 COMPUTE AUGUST 1993

=.)

PUMP UP

YOUR PRODUCTIVITY!

Harness the potential of your, The Gazette Graphics 64 and 128 with these , ae

powerful programs.

Get more work out of your 64 and 128 with these two new disk products from COMPUTE's Gazette the 1992 Best of Gazette Utilities, and the Gazette Graphics Grab

Do it all with Commodore

graphics! Here's what's on it— Starburst Graphics, Screen Designer 128, 128 Graphics Compactor, 64 Animator, VDC Graphics, Dissolve 128, Super Slideshow, 128 Animator, 1526 PrintScreen, Supratechnic, Medium-Resolution

Bag! Graphics, Screen Maker, GAS!64— The 1992 Best of Special Edition, GAS!128-Special Gazette Utilities Edition.

Seize control of your operating system and your world!

Here's what's on it-MetaBASIC 64, MetaBASIC 128, Quick, Sprint Il, Ultrafont+, RAMDisk 64, RAMDisk 128, BASSEM, SciCalc 64, List Formatter, MegaSqueeze.

Extend Your Computer Power With This Powerful Software!

___ Check or Money Order _ MasterCard _ VISA | want to pump up my productivity! Please send me the ; @ disks checked below at $11.95 each. Credit Card No. Exp. Date ae Signature ___The 1992 Best of Gazette Utilities (Required) _— The Gazette Graphics Grab Bag Daytime Telephone No. __— Subtotal Name | __ Sales Tax (Residents of NC and NY please add appropriate sales tax for your area. Canadian orders, add 7% goods and services tax.) Address ___ Shipping and Handling ($2.00 U.S. and Canada, $3.00 surface mail, $5.00 City

airmail per disk.)

State/Province ZIP/Postal Code

_— Total Enclosed

Mail this coupon to COMPUTE's 1991 Utilities, 324 West Wendover Ave., Ste. 200, MasterCard and VISA accepted on orders with subtotal over $20. Greensboro, NC 27408.

work. Most of these networks are set up by sysops who know sysops in other towns. Using this system, a writer in Connecticut might leave a message on his or her local BBS, Around 3:00 a.m., the Connecticut BBS might call a BBS in New York and exchange messages, being care- ful to keep the writing messages separate from those dealing with computers, sports, and other topics. The New York BBS might then call a BBS in Ohio and repeat the process. In this way, the messages echo around the country.

When | call my local board, | can read the message posted by the Con- necticut writer and respond to it. Writ- ers all around the country have an op- portunity to respond, and these responses are entered into the net- work. In a day or so, after the BBSs exchange messages again, the Connecticut writer can read the re- sponses, as can all of the other writ- ers on the network.

One such echo is the National Writ- ers Echo. | was a local monitor here in Danville, Illinois, on the Friendship BBS, which was run, before his death, by Terry Claybaugh. Through this net- work, | exchanged messages with many writers of varying degrees of fame, including Billie Sue Mosiman (author of Wire) and John DeChancie

(author of the Starrigger series and the Castle Perilous series).

Such free exchanges of infor- mation and opinions with other work- ing writers can expand your knowl- edge and help you keep track of up- to-the-minute publishing trends. All messages and mail are automatically date-stamped, so you can ignore old information and be aware of the most recent updates and changes.

REF# 432

POSTED: 04-20-91

FROM: Karl R. Witsman

TO: All

Writers, I'm steaming mad! The U.S. Copyright Office has raised the copy- right fee from $10 to $20 to register our works! This may be fine for those who write nothing but books, but for those of us wishing to register short stories or articles, it's an outrage. Next time we must not let this happen; next time we must unite and apply our skills in written communication in let- ters to the Copyright Office, Con- gress, and the president. At five cents a word in a pulp publication, it takes a lot of words to earn $20. Let them charge bigger fees for books, and even bigger fees for screenplays that are being produted into movies, but leave writers of features some slack. If you would like to vent your spleen, as

| just did, be sure to talk to the right people—those at the following address: Copyright Office, Library of Congress, Washington, DC 20559.

As you can see, a BBS can also be a good way to blow off steam and let others know how you feel about trends in the field. Let's face it, writing is a solitary profession, but it doesn't have to be lonely if you can reach out and telecommunicate with someone.

Bigger and Better

Commercial online services are the big alternatives to local boards. These are not custom networks, but gigantic groups serving thousands of subscribers with varying interests. As the word subscriber suggests, these services cost for membership.

Some examples of such services are DELPHI, CompuServe, Quantum- Link, America Online, GEnie, and BIX (Byte Information eXchange). Each service has its own pricing structure and fees, so a call to each would be a good idea for potential subscribers.

Practically all of the major services have at least one area designated for writers. In some, you post a message as you do on a local BBS and then return in a few days to read the replies. Many services also offer areas for immediate writing discussions. This

Publier Ge Online

Have you ever written an article and then spent months mailing it from publisher to publisher? Now you can submit your manuscripts electroni- cally through a groundbreaking step in publishing by Manuscript Mar- keting Technologies Incorporated. MMTI is not like other BBSs and online services. It offers writers a unique opportunity to submit articles or stories which are then offered to publishers electronically. More than 500 authors from all over the world have availed themselves of this ser- vice so far, as have 140 publishers from the U.S. and Canada. Submissions can be made through special software for IBM compatibles which automates the process and records the article or story on disk. Macintosh users can use Microsoft Word format, which is then transferred to ASCII and then into the IBM-compatible program. Manuscripts submitted on paper are scanned through optical character recognition (OCR) software. Publishers can call MMTI’s com- puter and set the parameters for

what they're looking for in a manu- script. Let's say a publisher needs an article on homeless persons that’s about 2000 words long. The publish- er specifies the subject, length, and format (article, screenplay, book), and the software displays only those works meeting the criteria. Within the fiction category, there are 26 differ- ent parameters, and there are 323 categories in nonfiction.

When a publisher finds an article that meets the criteria, the manu- script can be locked so that no other publisher can get it. The service then gives the publisher information about how to contact the writer. The pub- lisher and writer then work out a deal. Once the two parties come to an agreement, the publisher can download the work into the publish- er’s computer. Little or no paper changes hands. Only the original disk and contract have to mailed.

If you're a writer who's spending a fortune on postage in mailing heavy manuscripts from publisher to pub- lisher, this service might be the answer, It's also a good way to make simultaneous submissions for time- sensitive material. Each month, the

writer gets a report of how many times the article was read and why it might have been rejected. This gives the author a chance to judge if the work needs further revision.

The cost is an initial $25.00 fee and $10.00 per month. There is a storage charge of $.0001 per word per day. (A 6000-word piece would run $1.80 a month.) There is also a $2.00 fee per disk . When compared to postage to mail the manuscript to 140 publishers, this is a very good deal. (Just sending a query letter to all these publishers would run $40.60!)

For a full brochure and more infor- mation about its services, write to Manuscript Marketing Technologies, P.O. Box 234, Camden, South Caro- lina 29020. The telephone number is (803) 425-1675.

Remember, MMT! does not act as an agent, and it cannot offer you advice. The company merely offers storage and a distribution service. The software does not handle graph- ics or photos, but authors can leave a note in the manuscript if photos are available.

G-6 COMPUTE AUGUST 1993

SOFTWARE SUPPORT

INTERNATIONAL C-64/128 Specialists For Over Six Years

Thousands of Commodore Owners Choose Us As Their One Stop Supplier . Here's Why! Cheek Out These Examples. ii * Largest Selection of Commodore Software in the U.S.A.! feria: GAMES Nobody in the Commodore market is more committed to your Jd ~~ Leaderboard Golf ; Commodore than we are. We have well over 225 ,000 pieces of | ‘gis Beachhead Triple Pack $9.97 hard to get software in stock to service your every need. If Nong Nord & Bert 12.97 you've heard of a product, odds are that we can locate it for you. Cox gd Blue Angel: 6 ) $4.97 ‘And, we stock most major Commodore titles that are still in hat RAcdog bencieh tees Se i production. be laf “Trump Castle Casino 14.97

rs “wee, Bureaucracy 128 . * Hardware & Peripherals. Datender Ghtha Grown

Although we can't get keyboards and disk drives any longer, we Beyond Zork 128 can offer disks, modems, cables, interfaces, and much r more. 4x4 Off Road Racing

* Used Software Selection. Arcade Smash Hits...............

Our regular customers know how to stretch their software a * Batman/Robocop Bundle $9.97

dollars shopping our Used Software Listings. TE ta 5 Jeopardy 1-2-Jr. Bundle .........$9.97 * Un-Advertised Specials. : .

Our regular customers enjoy VIP service and great bargains i EDUCATIONAL

that are hard to pass up. Thinking Cap .. -$17.97 * Expert Technical Support. Stickybear Math

As aregular Software Support customer, you have access to the Carmen U.S.A.

most knowledgeable Commodore technical departments in the PO kth Typing Tutor 3

country. Of this, we're darn proud.

* Friendly & Courteous Order Takers. Cee You'll have a hard time finding order takers as anxious to help : Me 2, you as Sandy, Mike and Claressa. had

Word Attack.. .., Donald's Alphabet

Sky Travel Perfect Score SAT Word Spinner...

* Fast Order Processing. Thanks to our automated computer system, huge inventory and efficient shipping staff, most orders are processed the same

day. PRODUCTIVITY * Walk In Sales Department. Super 1750 Clone............ $99.95 Newsroom $14.97

We welcome visitors to our warehouse outlet. The same great deals are available and best of all, no shipping charges.

* Worldwide Distributor Of Major Products. Ever hear of Maverick, Super Snapshot, Super 1750 Clone, and the 1581 Toolkit? We've been actively involved in the ground up production and world-wide distribution of these and many other fine Commodore products.

* Purchase From Us With Confidence.

We were very pleased when the Better Business Bureau came to us and told us that our out- standing reputation qualified us as members in their organi- zation. We're here to stay, not a fly by night, here today and gone tomorrow outfit.

Certificate Maker Cadpak 64 «$14.97 Mach 128 Cart 924.97 - Paperclip Ill 64/128 ....... $29.97 Printmaster Plus . $19.97 Superbase 640r128..........$24.97 Video Title Shop .............$19.97 Animation Station ..........$34.95 Outrageous Pages ++0$29.97

emmanncnss Bob's Term Pro 64...........$24.97

Items Listed Above Do Not Include Shipping. Call Or Write For Your Free Catalog Listing Hundreds Of Products And Special Offers For Your

. $14.97

* Extensive Catalog.

Our contacts at other mail or- der companies have told us that producing a catalog such as ours is too time consuming and worst of all - too expen- sive. We say it's the least we can do for our customers, and wouldn't have itany other way. Simply call or write for your free copy.

Computer. Our Order Takers Are On Duty 6:00 a.m. - 5:00 p.m. M- Fand 7:00 a.m. - 3:00 p.m. Sat. - Pacific Time.

SOMWARE Software Support Int.

a Se 2700 N.E. Andresen Rd. Suite A-10

Shinpolt sere" CALL TOLL FREE TODAY! 1-80 0-3§6- I 17 ©

Major Credit Cards Accepted.

Circle Reader Service Number 190

type of system lets you type in a ques- tion or comment which is distributed im- mediately to all of the users who are signed on in the area. In this way, dozens of writers can respond to your comments or questions within seconds. | host such an area called the Writers’ Forum on QuantumLink, the Commodore-specific service. Up to 20 writers meet in realtime once a week in either a lecture or discussion format.

If you still wonder about how an online forum can help you with your writing, here are comments from some of the writers who frequent Q- Link's forum.

“The Writers’ Forum keeps me motivated. When | run out of ideas, the group fires me up! It's a great place to talk to people all over the country who share a love of writing,” says Marti Paulin.

“If | didn't have the online forum, I'd have to drive 20 miles each way at night to get to my local group,” says Cheryl Turney.

“Where else can | talk with people as insane as | am, from all over the country? Seriously, the forum offers me a great place to talk about what a writer goes through, with people who understand,” says Eric Lopkin.

“The forum fires my creative

“Someday I'm going to pull a Gauguin; chuck all this, move to Newark and devote myself entirely to computer art.”

juices—and adds to my degenerate vocabulary,” says Donna Carlene.

“It's fun to chat with folks as poor and stubborn as | am,” says Alex Tishcenko.

“| enjoy the writing contest. It forc- es me to come up with things on a regular basis,” says Mike Cervini.

Even though I’m a forum leader and editor of “The Writer's Newslet- ter," | still learn something from speaking with other writers. We've also been fortunate enough to have guest speakers such as Arlan Andrews, Poul Anderson, and Lawrence Block drop in to answer questions and give writing tips. Occasionally an editor such as Eric Lopkin (Lopkin Publishing) or Tom Netsel (COMPUTE’s Gazette) will stop by to offer advice. And remember, the Writers’ Forum on Q-Link is only one such network. Imagine what joys await you elsewhere. (See “Writers’ Forums” for additional information.)

Commissions and Submissions On the national services, you never know when you might speak with an editor who's looking for someone to write an article, and it could be a topic with which you're familiar. At other times, an online conversation might

SULLIVAN [BROTHERS |

G-8 COMPUTE AUGUST 1993

spark an idea that could lead to an arti- cle or story. This very article was par- tially queried and updated via E-mail and online meetings on QuantumLink.

Most services have online magazines or areas where you can submit work for others to read. This is also a great way to gain feedback on your writing

Fiction is popular, and some areas ask you to post articles and nonfic- tion. Another area of considerable interest is poetry. Here, poets can post their works, and readers are encouraged to leave comments.

Number: 3/26 -Doze with Prose Poetry

Date : 10:59 p.m. Tues., May 19, 1992 From : Paul #57 . Title ; More Poetry

Today | remembered Our old phone number.

Like a long ago children's rhyme It came back to me.

| recall phoning late— On the road, still To tell you I'm OK; I'm alive. Sometimes breathless, Sometimes angry, You'd tell me

—hurry home.

A machine tells me that the number

Is disconnected

And | wonder

Who calls you now?

But more,

| wonder

Why | want to

Still.

—Paul May 27, 1990

Into the Future

Computers are the writing tool of the late twentieth century, but networks are play- ing a major role as writing moves into the twenty-first. If you write with a computer, you owe it to yourself to use this tool as something other than an electronic type- writer. Use it to exchange ideas with other writers, conduct research, submit articles and ideas to publishers, get feedback on your work, and more.

You could never have this amount of power with a typewriter alone, so har- ness this power and put it to work for you. Writing is an ancient art, but the tools and technology associated with it are still growing. Don't be left behind! 0

PO BOX 542 LINDENHURST NY 11757-0542

WE NOW CARRY | MINDSCAPE Hard Drives & 3.5 inch Drives!) POWERPLAYERS AT LOWER PRICES THAN) THE MANUFACTURERS! 1.6 Megabyte 3.5"..... $ 215.00 100 Megabyte HDD. $ 750.00

Hardware Items Require Additional Shipping Fees ! Call Before Ordering! KEYBOARD SEELS DON’T LET YOUR COMPUTER SUFFER A MELTDOWN Protects your keyboard even while you type | (C64 or Vic 20.......# VS64

6PACSETS PD & Shareware Sets JOYSTICK) 4 BIG HIT AT ONLY $5.00 OREN. ear aes $5.00 | 4;

QUICK GUNNE Joystick / Flyingstick 4 seperate fire buttons to assure your comfort! (Trigger, Thumb, and both left & right base.) | B: ASST: SuperMario Hand Contoured Stick | C: MUSIC SET

And 4 suction cups on the bottom of the base.| E: GEOS FILES i for complete control ! For serious gamers!

H: HACKER PAC ONLY $ 15.00 | One eae

COMMERCIAL SOFTWARE CLOSEOUTS J: Telecommunications| Original Packages ONLY $5.00cach! | ———_

Save your Commodore | ONLY $19.00

PA }.00 |)

PUFFY’SSAGA, PARADROID, | ear AC%2510.00)

BLOCKOUT, | DIBHARD You must be over 18 | CLUBHOUSE SPORTS To receive this 6PAC!

WE ARE ALWAYS ADDING NEW TITLES TO | Signature Required! OUR COMMERCIAL SOFTWARE STOCK! =| “#/ to request s more CALL TO SEE WHAT'S NEW THIS MONTH! | S<rptive 6 PAC list /

SHIPPING $2.00 For First Item + $1.00 cach additional item

U.S. Funds Only! *SORRY NOC.O.D.’s OR CREDIT CARD ORDERS FOR A FREE COPY OF OUR CATALOG, CALL:

(516)-957-1110 MONDAY - FRIDAY 10am to 5 pm EST

Circle Reader Service Number 162

grams for your Commodore 64 or 128—already on disk!

programs published in the corresponding issue of COMPUTE.

New on the Gazette Disk! In addition to the programs that appear in the magazine, you'll also get outstanding bonus programs. These programs, which are often too large to offer as type-ins, are available only on disk—they appear nowhere else. As another Gazette Disk extra, check out

Yes, save time and money! Subscribe to the Gazette Disk and get all the exciting, fun-filled Gazette pro-

Subscribe today, and month after month you'll get all the latest, most challenging, and fascinating

Big Blue Reader 128/64 - 4.1

Transfers word processing, text, ASCII, and binary files between

(64/128 and IBM PC compatible 360K 5.25" and 720K 3.5" disks.

New Version 4.1 features: Transfers ASCII, PET ASCII and Screen

Code files including: WordWriter, PocketWriter, SpeedScript, PaperClip,

WriteStuff, GEOS, EasyScript, Fleet System and most others.

Supports drives # 8-30. New Backup (C128) and Format (1571/1581)

programs. Reads MS-DOS sub-directories, uses joystick, and more. Includes C128 & C64 programs. Requires 1571 or 1581 Disk Drive,

Big Blue Reader 128/64 - 4.1 only $44.95 Version 4.1 upgrade, send original BBR disk plus $18.

Bible Search 3.2

1. The entire Old & New Testament text on 4-1541/71 disks.

. An Exhaustive English Concordance on 2-1541/71 disks. Indexes every word in the entire Bible; 700,000+ references,

. Incredible five (5) second look-up time, per/word, per/disk. . Instant, automatic spell checking of more than 12,800 words. . Wildcard and boolean AND, OR & NOT search options. . Search the entire Bible in 5 seconds with 1581 or HD (v 3.52). . Money back guaranteed!

KJV $49.95 | NIV $59.95 | KJV & NIV $90 Includes: C64 & C128 programs; screen, printer and disk output; users guide, disk case. Available on 7-1541/71, or 4-1581 disks. «= Any questions? Call or write for more information. Also available! Amiga, Bible Search Order by check, money order, or COD. US funds only. t FREE Bookrate shipping in US. No Credit Card orders. Canada & Mexico add $4 S/H, Overseas add $10 S/H ($5 BBR)

SOGWAP Software @ (219)724-3900

115 Bellmont Road; Decatur, Indiana 46733

“Gazette Gallery,” where each month we present the very best in original 64 and 128 artwork.

So don’t waste another moment. Subscribe to- day to COMPUTE’s Gazette Disk and get 12.issues for only $49.95. You save almost 60% off the single- issue price. Clip or photocopy and mail completed coupon today.

Individual issues of the disk are available for $9.95 (plus $2.00 shipping and handling) by writing to COMPUTE, 324 West Wendover Avenue, Suite 200, Greensboro, North Carolina 27408.

YES! Start my one-year subscription to COMPUTE’s Gazette Disk right away for only $49.95.*

O Payment enclosed (check or money order)

OCharge OMasterCard O Visa Exp. Date

Signature

(Required) Name Address City State/ ZIP/ Province Postal Code

! | i | | i 1 | | | 1 Acct. No. | ] I i | | | 1 | 1

Mail to COMPUTE's Gazette Disk, P.O. Box 3250, Harlan, IA 51593-2430

* Residents of NC and NY, please add appropriate sales tax for your area. Canadian orders, add 7% goods and services tax

REVIEWS

KEYDOS VERSION 2

Version 2 of KeyDOS Function ROM for the 128 is similar to DOS for IBM ma- chines in that it lets you change drives easily and defaults to the chosen drive until changed again. KeyDOS ROM is a chip that contains 20 func- tion key definitions and 20 utilities.

It includes Swapper, a utility that lets programmers work on one pro- gram in memory, call up KeyDOS to work in another program, and then go back to the original program. There's 1581 Visual Partitioner, RAMDOS, GEOS SuperRBoot, Video Manager, and Hexpert. The main advantage to the KeyDOS program is that it makes it easy to switch drives.

| was happy to find that installation was easy. It took 5 minutes to take the 128's case apart, 2 minutes to install the chip, 15 minutes to vacuum out cat hair—hey, might as well while you're there—and 4 minutes to put the case back together, Subtract 15 minutes from this if you don’t own a cat. In oth- er words, this doesn't take long to in- stall, even for a nontechnician like me. On boot-up, the screen will say HOLD ALT KEY DURING RESET OR SYS 65366 TO ACTIVATE KEYDOS ROM. Position cursor over the SYS line, hold Alt, and press Return. You'll get a cop- yright notice from author Randy Win- chester and a message telling you that KeyDOS is installed. Here's a list of how KeyDOS programs your func- tion keys and some other changes.

fi—Load program f2—Run program f8—Disk catalog f4—Run 64 program f5—Type SEQ file f6—Scratch file f7—New active drive f8—Scratch and save Run—Boot disk/file Help—Drive #

The Esc key offers many new com- mands when used in conjunction with other keys. Commands include Help, a compiler, a 1581 partitioner, a subdirec- tory key, a batch exec key, GEOS Su- perRBoot, CBM RAMDOS, Diskmon, a monitor dump, Hexpert, a drive renum- berer, an UNNEW commana, a screen

G-10 COMPUTE AUGUST 1993

dump, find and replace, an alternate screen, and more. KeyDOS is very use- ful for running a directory and for run- ning some programs. It's also cool for checking out SEQ files. It allows you to scratch an old file and rewrite a new file in one easy command. If you load it when you first power up, you can ex- amine what's on a disk without loading an extra program.

The program goes downhill from there. | had trouble with the lockups and syntax errors. | needed to reset the 128 almost every third time | at- tempted different commands. The pro- gram includes a demo disk, but it wasn't helpful. It lists nine programs and four sequeniial files, but | was ei- ther denied access or else the 128 lock- ed up whenever | tried to load or run the programs.

Two programs, Write-SEQ-File and Write-List-File, for instance, both tell me that | have no room. | must delete a function key’s programming and repro- gram a key for these programs, but the manual isn’t helpful in telling me how to do this. There are two separate func- tion keys for running 64 and 128 pro- grams. Unless you keep the 64 and 128 programs on separate disks, there's no way of telling a 64 program from a 128 program. Having both types on one disk gives me an error message and forces me to reboot eve- ry time | choose the wrong program.

The manual doesn't say which RAM expansion units work with KeyDOS. Since GEOS is the center of my world, | used geoRAM. | tried it and was told to put Desktop 2.0 on the REU, which | had already done. KeyDOS may work with another REU, but not with geoRAM.

Don't worry if programs or files scroll off the screen when a directory is being listed. Go into Utility with Esc-1, and you have a lot of help at your fin- gertips. KeyDOS has 18 utilities: for- ward, back, select, unselect, toggle se- lection, select all, copy, select drive, directory, new disk/list, print, quit, re- name, scratch, type, unselect all, 1581 subdirectory, and drive command. Type, for example, sends SEQ files to the screen in PETSCII, true ASCII, and Screen mode.

This utility is great for renaming files, scratching files, and printing

files, but it requires you to call up the directory again. The program doesn't re- display the directory by itself, but this is a small point.

| gave an incorrect command to print, and then realized my printer was not hooked up. The program kept tell- ing me to redo from the start or enter a device number. It would have been handier to default back to the program. As it was, | had to reboot yet again.

The compiler allows you to reassign functions to different function keys. You can save any new configuration to disk and reload it the next time you wish to use it. The 1581 Visual Partition- er lets you not only format a disk but al- so add a partition to a previously used disk.

The monitor dump sends the moni- tor output to either a PETSCII disk file or a PETSCIl printer. Diskmon and Hex- pert should be very useful for machine language programmers.

With KeyDOS you can renumber drives, reset drives, run new collect, res- cue a deleted program, execute pro- grams on the alternate screen, install a find/replace/scroll utility, execute a one- drive routine, and run Screen Edit, Clock Manager, and Video Manager.

With Video Manager, you can change the cursor’s shape, flash rate, and blink rate. You can use an inter- laced monitor, and you can select from 80 colors for text and back- ground. The colors appear only as shades of gray on an RGB monitor. It's also possible to change the back- ground and text to the same color, mak- ing the text invisible. This can cause panic city the first time you do it, be- fore you figure out how to undo it. Be prepared for massive button pushing. | had to press f3 at least twice and sometimes three times before | could call up a directory. When | accidental- ly changed both text and background to the same shade of gray, it took three pushes to change the color. Of course, there's the good old reset but- ton (unless your screen is totally gray). KeyDOS is a specialized product that will appeal to some users more than oth- ers. Average users like me probably won't find it as useful as programmers will. If you're a programmer, you'll prob- ably love KeyDOS.

DONNA CARLENE

Antigrav Toolkit

P.O. Box 1074 Cambridge, MA 02142 $32.50

Circle Reader Service Number 414

RISERS AND SLIDERS

Step right up and grab a Slider! Hop on board and take a ride! No, I'm not talking about a new skateboard; I'm talk- ing about a new game from Micro- Storm that's called Risers and Sliders.

When | first heard the name, | must admit, the first thing | thought of was the children's game Chutes and Lad-

| REL, USR File, NEW features include:

| Rename File/Partition/Header + Change Current Partition/Subdirectory

RAMLina win 4 MB RAMCard Real Tere-Ciock for RAMCard (Optional)

CMD Offers One-Stop Shopping to Commodore Owners Effective May 1, 1993 CMD acquired all rights to RUN software and has UN Mag. backissues | Microprose games Blank disks 3.5" 8 525° purchased all items from their inventory. As result, CMD will be offering one of RUNRCAUN software elec Pritt irteraces Misc. IC Chips the largest selections of Commodore 64/128 software and hardware available Abacus books & sottware | Electronic Ans Games | RAM Chips/SIMM's today. CMD's decision reinforces its commitmentto C-64/128 ownersworidwide. GEOS 2.08 applications | Skyies Electric Works and MUCH More Itis our hope that we can offer One Stop. to Commodore owners. It Timeworks Software we don't have it..we can probably find it! Here is a partial ist of products. For a complete list call or write for a free catal

Dr. Ts Music Sofware

Superbase & Superscript ‘SOGWAP-Big Bive Reader! Mi

CMD U A Powerful and Unique Collection of Disk Utilities

| I les for Commodore and CMD Storage Devices FCOPY+ A two drive file copier featuring 1541,71,81, REU and CMD DIR SORT Alphabetizing utility for 1541,71,81 drives and all CMD device compatibility which is capable of copying any size PRG, SEQ, storage devices makes it easy to organize large directories,

MCOMPARE Two drive aisk tity makes t " Scratch/Unscratch Files + Copy/Dolete C128 Boo! Sector: Disk/Parttion he accurancy ol a CMD partion against a disk copy. Creek ios Pompe, access DOS Commands thry Menus + LOCK’ FOLLOW LINKS Helps to locate and remove corrupt tes Unlock Files + Format Disk/Partition » Create/Remove Sub Directories + rane

increased storage on 1541 disks altar MCOPY'ing to 1571 or partition. [74

MCOPY Atwo cive whole ci/partion fe copler which supports CMD - a5 REWD ACG Clears memory in REU or RAMLinkDACG partion, [i

storage devices and Commodore 1541, 71, 81 disk drives.

[}] BCOPY+ A powertul backuprrestore utlity which backs up any CMD HO POWER TOOLS Alows editing of CMD Device Parton Table.

Gevice or partition to a 1541,71,81 drive or CMD FD Series floppy drive. REBUILD PDIR Holpstorecover partitions aftercompletelyrecreating |) | ‘This new version incorpoates the ability to dump an entire CMD device the system on CMD Devices,

to an HD Sories hard drive, ‘Shareware Utilities Included: | FIND Searches specified partitions on CMD devices for files that match DEDIT64/128, SuperDEDIT64/128 Sort or manually editdirectories |

s| 2 user defined filename pattern. Includes handy printer/screen toggle. subdirectories and partitions on 1541,71,81 drives and all CMD Devices.

High Performance SCSI Hard Drive for the C64 &C128_ | |

available in capacitos up to 200 MB, aro fuly parttionable, and |) |, 1571, & 181 disks whilo Native partitions utlize MSDOS-siyie

subdirectories, HD's connect easily tothe serial bus or paralel via RAMLink. Includes bul:

In JityOOS, SWAP feature and Feal-Time-Clock. HO Series Drives cttor superior

Compatlity wth most commercial software including BBS, Productivity and GEOS. And |)

with new pricing, HO Series drives offer the lowest cost

ders. Then, | booted up the game and discovered a maze that vaguely resem- bles the mouse-shaped symbol that the Disney channel uses as a logo. Kid stuff, | thought again. However, when | began to play, | quickly saw how wrong | was. This game is definitely not geared to the preschool crowd.

Risers and Sliders is an arcade ac- tion game that offers 50 increasingly dif- ficult levels of play. The game's title comes from the red-colored Risers and the blue Sliders that you use to move swiftly around the screen. The Risers move your character up and down; the Sliders move you from side to side. There are also wedge-shaped Sliders that are a cross between the other two transports. They move more or less di- agonally on the screen. Of course, you can also walk your character from side to side, but he can't jump or climb. Using combinations of the trans- Refurbished -dardware

Power Backed Expandable RAM Disk and Interface |

The fastest possible form of storage, RAMLink provides instant accozs to les and retains data while your compute is tured oft. Easy touse and expandable up to 16 MB, RAMLink |) utlzes the same powertl operating system [ound in the HD, RAMLink also ofers buit- |

i JittyDOS, SWAP feature, reset button, enable'dsable switch, pass thru port and RAM port for REU/GEORAM use, ideal for those requiring maximum speed, expandabiity and [9

ity wih al typos of software and hardware including GEOS 10-4000 (00%, "6 MBané 32 8 Formas) aS ars

FD Real Time-Clock Option

Box of 10, Hgh Density Disks (68) i High Capacity 1.6 and 3.2 MB 3.5" Floppy Disk Drives

‘The FD-2000 end FD-4000 disk dives ulize days latest Sinch technology FD-2000 fi ‘Support 800K (1581 style) and 1.6 MB (High Density) formats, while the FD-4000's otter |) ‘support for the 3.2 MB (Enhanced Density) format as well, Fast and reliable, they support [im 1541, 1571 and 1581 style partttons, Native Mode partitioning and can actually read and wie '1581 dss, Fs feature buitn JtyCOS, SWAP bution and optonal RTC. High Capacity, speed and compatiblity maka the FO rightfor every application, including GEOS, Speeds up disk access by as much as 1500% while remenr rape x maintaining 100% compatibility with commercial software penttiedinte iho meer: + Speeds up Loading, Saving, Veriyrg, Forming and Reacing Wntng ol PAG, SEQ, USA ard REL fees Z

fe] Cotene Unites narcy EOS nies BuitinDOS Wedge pus 17 additonal featuesincuding fle cope, textdup,prntortcoge andredefnaboinctonkeys fe fo] Perfect Print LO tor GEOS (Font Con 142, 49 Fonts) ROM upgrade instals easily into most computers and disk drives. Supports C-64, 64C, SX-64, 0-128, 128-D, 1541 Font Collection 3(17 Fonts and $ Borders) 15410, 1541-1 1881 and more. 128 systam supports both 64 and 128 modes and upgraded Ki

Bowder Font Colecton 1 (2 Bret Fors 2 Creative Micro Designs, Inc.

“StHyMON « ML. Mantes for JtyD0S 64 E. Longmeadow, MA 01028

iB HD-Series Hard Disk Drives HO-4, (Special Eon w 85 MB Ove) HO-100, (Special Ecttion wi 170 MB Drive B] 200, (Special Eaton wi 245 MB Drive) *, Floppy Disk Drives FO 2000 0K ara 6a Ferm) s

UltfyDOS sows Comoarsove moo bul eer C6t Sytem (Computer & deve) SK 64 System (Compute 8 Irtral 1641) {©128 System (Computer & ve) H] 128.0 System Compuor& iriornal 1571) +} Aostiona Orve ROMS Software Products B] peoMlakeBoct aes crt cape 9 EOS 4728

Circle Reader Service Number 139

Upgrade your Commodore system!! New APROTEK modems

ports and walking, your goal is to || wontrors DRIVES OTHER 64/128/Amiga-2400 baud $119

move through the mazes, gather all the ||1701- $219 1541- : 99 ey 38 user extech re i i i 702- $239 1541c- $109 64C-$11 onvert -a-Com

eras ieee ean sOula: Hp your 1B02- tace 15411I-$139 128-$179 New CMD accessories

score) ; 1802D-$279 1571- $169 128D$329 JiffyDOSC64/sx64 "system" $69 It's not nearly as easy as it sounds. || y592- §299 1581- $179 1660$ 29 JiffyDos128/128D "system" $79

Learning how to move around takes |] 1902a-$319 1001SFD$139 1670$ 49 128 Kernal $55 64 Kernal $45

practice. You have to move your man |}1084- $329 1530 Datasette - § 39 Add’l JiffyDOS drive ROMs $35,

over the transport and press the fire but- 1084S-$349 B.I. Buscard II- $ 59 Ramlink, RamcardII & bat. $

RL bat. $29 1Meg $59 4Meg $199

Ramlink base$199 RamcardII$89 NEW DRIVES!

FD2000 $249 FD4000 $339

Extended Density disks (10) $89

We may just have it!

ton while moving the joystick handle in the direction you want to travel. If you have good joystick skills, you'll proba- bly learn the game faster than | did. | have a tendency to overshoot the mark when |'m using a joystick. Do, that in this game, and you'll fall to your death. Even my joystick jockey teen- ager had to make several attempts be- fore clearing a level.

For one thing, there's the pesky little critters called moths that can sneak up

Books $10-15 Interfaces $35-$75 Software $5-20 512k RAM Exp. $179 Real Time Clock-extra $25

Ask for anything!

Send CDN funds/15%USA Ex.

J.P. PBM Products By Mail 15 day warranty on refurb.

N.Sheridan Mall P. 0. Box #60515 Downsview ON M3L 1B0 hardware

Allow 4-6 weeks for delivery. TAX-Canada+7%GST, Ont.Res.+8%PST SHIPPING- (-$25=$4, -$100=10%, -$200=8%, -$499=7.5%, $500+=6%)

NEW!! Catalogue Disk (64 format) - $2 (USA Ship. =15%)

AUGUST 1993 COMPUTE G-11

G-12

C64/128 PUBLIC DOMAIN SOFTWARE REQUEST FREE CATALOG or send $2 for sample disk and catalog (RE- FUNDABLE). Categories Include education, utilities, games, business, PRINT SHOP graphics, pre-tested programs and more. Rent for 75¢ or buy as low as $1.00 per disk side or for 80¢ for 70 or more. $20 order gets 4 free disks of your choice.

NEXT DAY SHIPPING! SINCE 1986

Fences CALOKE INDUSTRIES (Dept. GK) =e

= PO BOX 18477, RAYTOWN, MO 64133 a

Circle Reader Service Number 181

DEPENDABLE SERVICE FOR YOUR COMMODORE! C-64, 1541, C-128, or 1571: “AST TuRNAROUND!

$25 .°° pus parts Send computer* or drive with name. ad- dress, phone, & describe problem. We'll call with parts estimate, then repair and return to you insured by UPS. Payment can be COD or VISA, M/C. Minimum charge, estimate only is $20. * Include power supply.

503 East St. Dept.C TYCOM Inc. eld, MA Of:

Pittsfield, MA 01201

AUTHORIZED COMMODORE SERVICE CENTER

ON ALL REPAIRS

(413) 442-9771

Circle Reader Service Number 242

THE MOINS, ONG ELRRE

C-64 or C-128 in 64 mode ME ARCADE/ROLE PLAYING GAME ed \?

Assume the role of Circe and Pegasus! 2 Battle wizards and dragon! a (at \ . $19.95 Check or Money Order ( { CREATIVE PIXELS LTO. P.O. BOX 592, LIBRARY, PA 15129

Circle Reader Service Number 113

COMPUTER REPAIR <se

C-64: $40.00 1541: $54.95 64C: $50.00 1541-Il: $64.95 C128: $64.95 6©€128D: $74.95 1581: $64.95 ~ EIC.....

WE ALSO REPAIR IBM Clones, Sega, Genesis, Nintendo

For more info cal: BEAR TECHNOLOGIES

Computer Sales, Service & Repair 1005 McKean Street, Philadelphia, PA 19148

215-336-5295 1-800-755-5295

eS

Circle Reader Service Number 152

Label Maker- Use 11 pre-designed labels or create your own, floppy & micro disk labels, audio & video cassette labels, and more. Use your printer's font and color capabilities. Both Commodore 64 and 128 versions included. - $19.95

Special - both for only $35.00

Mail List Manager - Makes maillist management a snap! Print one record ata tme, pick and choose for exporting or printing, or print the entire list. Holds 300 records for each C64 list, 1000 for C128, transfer between lists. Use new label designs created with Label Maker. Both 64 and 128 versions included -$19.95

SHIPPING: - U.S. $4.50, Canada $5.50, Intl. orders $12.00. Intl. orders paid by credit card or Canadian bostal money order only. Write for free catalog of Software and Leroy’s Cheatsheets.

Keystone Software Dept.G P.O. Box 8369 Pittsburgh, PA. 15218 412-243-1049 Fax: 412-731-2460 Hours: 9 to 5 Eastern Time

Circle Reader Service Number 170 COMPUTE AUGUST 1993

on you. They move around the screen unfettered by transports and can pounce rather unexpectedly. Their bite is deadly to you, and you have on- ly three lives to lose. You can evade the moths, or you can attempt to kill them. You do that by smashing them with your transporter. It’s worth attempt- ing a kill since you'll earn an extra life if you manage to dispose of 12 of them. You'll also add five points to your score for each one of the moths you eliminate

Another danger when traveling through the mazes is falling. Be care- ful where you step! One false step and—BOOM! You've lost a life. In the more advanced mazes you'll also need to know whether or not it's safe to take the diamonds. You'll soon discov- er how disastrous it can be if you guess wrong. By the way, you get one point for every diamond that you col- lect. Whenever you earn 200 points, you will get another life.

The screen border helps you keep track of how well you're doing. In addi- tion to the typical score information, the border flashes whenever you earn an extra life. It flashes blue for earning a bonus life on points and red for earn- ing a life for slaying those pesky moths. You'll want to get as many lives as possible because the dangers increase as you advance in the game.

With 50 levels, this game is quite a value. Some levels are complicated; some are deceptively simple. Each has its own dangers. The game's designer, Daniel Lightner, knew how challenging the game was, so he programmed in bonus points for you at the end of eve- ry level. You'll get 600 points if you fin- ish a maze in one try, 400 points for two tries, and 200 points for three at- tempts. If it takes you more than three attempts, you get zip. | played a lot of practice rounds (my name for games in which | died) before | earned any bo- nuses. Maybe you'll do better. The game will keep you busy for several hours.

That reminds me. Did | mention the clock? Well, that's another little surprise the designer added as a booby trap. You have to complete each of the maz- es in five minutes or less. Now five min- utes may sound like a lot of time to you, but you'll be surprised how quick- ly it will pass. Trust me on that. | lost more than one life running around the mazes, avoiding moths, and forgetting about the time. | soon learned to keep a closer watch on my time.

Lightner tried to pack the screens with as many diamonds and obstacles as he could. However, | believe he could have done a better job on the graphics. Risers and Sliders doesn't re-

ally utilize the screen as well as it could have. The transporters are depict- ed as minuscule squares just a couple of pixels wide. Only their colors desig- nate them as anything special. The moths are a couple of tiny, intercon- nected loops. The fact that they were moving told me they were supposed to be the deadly moths. Even your char- acter is little more than a stick man that moves. I've seen better graphics on a 64,

The attraction in Risers and Sliders, however, isn't the art. The difficulty of the game is its charm. | suspect once you discover this program, you'll keep coming back for more.

MARTI PAULIN

MicroStorm Software

P.O, Box 1886

Sidney, MT 59270

$24.95 plus $3,00 for shipping and handling

Circle Reader Service Number 415 0

TYPING AIDS

MLX, our machine language entry program for the 64 and 128, and The Automatic Proofreader are util- ities that help you type in Gazette pro- grams without making mistakes. To make room for more programs, we no longer include these labor-saving utilities in every issue, but they can be found on each Gazette Disk and are printed in all issues of Gazette through June 1990.

If you don't have access to a back issue or to one of our disks, write to us, and we'll send you free printed copies of both of these handy programs for you to type in. We'll also include instructions on how to type in Gazette programs. Please enclose a self-addressed, stamped envelope. Send a self-ad- dressed disk mailer with appropriate postage to receive these programs on disk.

Write to Typing Aids, COM- PUTE's Gazette, 324 West Wen- dover Avenue, Suite 200, Greens- boro, North Carolina 27408.

Send new product announcements and/or press releases on your Commodore 64/128 products to Tom Netsel c/o COMPUTE.

COMMODORE 64/128

PUBLIC DOMAIN SHAREWARE PROGRAMS

CALL OR WRITE FOR FREE DESCRIPTIVE CATALOG OF COMMODORE 64/128 PUBLIC DOMAIN & SHAREWARE SOFT- WARE OR SEND $2.00 FOR DE-

SCRIPTIVE CATALOG AND SAMPLE DISK. ADULT SOFT- WARE LISTING AVAILABLE TO THOSE OF LEGAL ADULT AGE.

DISKS O'PLENTY INC. 8362 PINES BLVD., SUITE 270 PEMBROKE PINES, FL 33024

(305) 963-7750

Circle Reader Service Number 253

RECORD FILER |) «cord Keeper =202 FOR BUSINESS OR 1541 =570; 1571 =745.

Original Print Shop Graphics Borders and Fonts.

Western Heritage Turn your Print Shop & computer into a real old western printing press. Make real wild west wanted posters. Use 143 of the best wild west graphics.

$24.95 + S/H $4.00in US. WA res, $1.95 tax

PLUS S/H APO, FPO, AK, HI $6.00 @ UK $1200 @ AUSTRALIA $16.00 ® PAYMENT IN USA FUNDS @ CANADA cend $37.00 TOTAL in Canadian funds.

Call now 509-276-6928 C64 w Write for Free brochure * IBM Horse Feathers Graphics N. 27310 Short Rd., Deer Park, WA 99006 Request 5 25 oF 3 5 for BM

Circle Reader Service Number 234

characters per record. Disk record capacity ** Record Printout 1 or 2 columns. ***Mail 3 columns. NO SET-UP-BOOK/MANUAL

5 Label Printout 1, 2, or PERSONAL USE. Our easy to use Q Printer File Maker lets you enter your own printer's code or use as is with an Okimate 20 or Okimate 180 printer. Standard or Italic print.

NTERPRISES SOFTWARE P.O, BOX 77123 WASHINGTON, OC 20013-7123

Commod

Logo us the property o!

Ge c-6

1541 Repair 1571 Repair

SX64 PC-10. PC Cot Motherboard $110.00

repair $37.95

Prices include parts/labor.

Except PS and drives.

Discount for dealers & schools Prices subject to change without notice.

NEEDED BUILT-IN INSTRUCTIONS-ALL YOU DO IS TYPE. Write- Read-Edit-List-Print-Delete; Fast Search by 4 methods/6 types + “Unique” Search searches and/or print from any set of unique letters in record. CORRECTION Routine restores files/limited power safeguard, PRINTOUT BY DATA FROM ANY OF 9 FIELDS. FIELD/CHARAC- TER SIZE; Name/$2 Addres/32 City/25 State/20 Zip/10 SS or LD/I1 Phone #/12 Remark 1/30 Remark 2/30 total 202 Characters

Screen for Color or Black and White.

NOTHING HIDES FROM RFI - RELAX - LET RFI DO THE WORK FOR YOU!! BUILD A LIBRARY OF LIST DISKS WITH RFI. Cost = $39.95 + $4 S/H USA; Canada and Mexico + $6 S/H; Overseas + $10 S/H. Check or Money Order Only! 2 to 5 weeks delivery.

AMIGA & COMMODORE CUSTOM CHIPS and REPLACEMENT PARTS

Lowest Prices Around

THE GRAPEVINE GROUP INC.

3 CHESTNUT STREET, SUFFERN. N.Y. 10901 ORDER LINE: 1-800-292-7445 / FAX: (914) 357-6243

INTERNATIONAL ORDER LINE: (914) 357-2424 Write or call for prices

16 Business Machines. Inc

Circle Reader Service Number 159

$63.00 $42.00 $52.00 $66.00

$70.00 $87.00 $125.00 $67.00

Amiga 500 BD

Amiga 1000 BD

Amiga 2000 8D

All Commodore monitors

128D $70.00

Computer Technologies 1313-B Washington Ave. Titusville, FL 32780 (407) 269-1081 Toll Free 1-800-237-2835

AUTHORIZED COMMODORE SERVICE CENTER

AUGUST 1993 COMPUTE G-13

Updates and corrections to

earlier

programs, a

program

that calculates chess rankings, and more

G-14

FEEDBACK

Bug-Swatter

Steven Bakke noticed that Fastball (January 1993) high- lights the wrong item when he makes a selection from the menu. To correct this prob- lem, load but do not run the program. Then, type POKE 2133, 201 and press Return. Save this corrected version with another filename.

James T. Jones of Klon- dike, Texas, points out an er- ror in the April “Programmer's Page.” When you run.Sequen- tial File Printer, you'll get a FILE OPEN error message if you select the Print File op- tion. To correct it, change line 190 to read as follows.

190 PRINT#4,A$;: GOTO 160

In the May issue, we pub- lished a review of Video Digitiz- er that is distributed by RIO Computers, At the end of the review, we inadvertently pub- lished the company's old ad- dress, The correct address is RIO Computers, 3310 Berwyck Street, Las Vegas, Nevada 89121; (702) 454- 0335. We regret the error.

In “Screen Gems" (May 1993), several readers spot- ted typographical errors in var- ious program listings. Bill Gisonda of Bethpage, New York, noted that lines 230 and 240 of Brownian Symmetry should be numbered 250 and 260 respectively. Also, lines 150 and 230 should read as follows.

150 IF Y > 100 THEN 80 230 DRAW, (160=X)N,100-Y

Donald Klich of Mount Pros- pect, Illinois, spotted other ty- pos, which just goes to show what can happen when type- setters have to enter listings without the aid of The Automat- ic Proofreader. Curve Explo- sion would look better if line

COMPUTE AUGUST 1993

10 were entered as follows. 10 COLOR 1,2: COLOR 0,1: COLOR 4,1

In Trig Show, lines 270 and 280 had some problems with an extra colon and a missing Return. The lines should read as follows.

270 IF BB=0 THEN DRAW , X*25.5,100-FNY(X)*30

280 NEXT: WAIT 212,1: RETURN

In January 1993, we print- ed a request from a 128 user in Syria who would like to cor- respond with other Commo- dore users around the world. Here is his correct address.

Ahmad Husam Mukhalalati P.O. Box 10392 Aleppo, Syria

Chess Ranking

| would like to start a chess club, and | have been looking for a program that calculates club members’ chess rank- ings. Could you give me some help with a program?

VINCENT SULEWSKI SOUTH HADLEY, MA

Here is a simple program that calculates rankings after players have completed ei- ther one or a series of games. As players compete, they should keep track of the number of games they play; their opponents’ rankings; and their overall score for wins, ties, and losses.

AS 10 PRINT" {CLR}"

GX 26 INPUT"NUMBER OF GAM ES PLAYED";G

ME 30 DEFFNF(X)=(997 (X/80 G)) /(1+ (997 (X/886) ) ) :REM{2 SPACES}RATI NG FORMULA

PX 46 INPUT"YOUR RATING"; R

KA 50 PRINT"OPPONENTS' RA TINGS?"

CE 66 FORB=1T0G

KE 78 INPUT 0

CP 88 X=R-0

FP 96 IF X<-860 THEN X=-8 6G

ED 163 GH 116 RB 126

D=D+ENF (X)

NEXT

INPUT"YOUR SCORE"; $:S=S-D

IF R<2160 THEN 176 IF R<2466 THEN 169 S=S*16:GOTO 220 S=S*24:GOTO 226 S=S*32:1F R+S+.5>1 NT (2099) THEN 226 IF G<4 THEN G=4

IF S>32+(3*(G-4))A ND R+S+S-(32+(3*(G -4)))<2166 THEN 21 6

GOTO226 R=ER+S+S~ (324 (3% (G- 4))):GOT0236

R=R+S

PRINT: PRINT"YOUR N EW RATING IS"; INT ( R+.5)

DR 136 JD 148 JP 156 MP 160 HM 176

MM 180 XH 196

KS 2066 HJ 210

GC 228 GE 230

EE 248 PRINT: PRINT"AGAIN? "

HQ 258 GET AS: IF AS=""TH EN 250

RA 266 IF A$<>"Y" THEN EN D

CD 276 GOTO16

A full-featured chess ranking calculator that keeps track of an entire club's standings would be too large to supply here. If a chess fan who pro- grams would like to submit an original program, we'll consid- er it for publication in the “Pro- grams" section.

Scratched Commas

In the March 1993 “'Feed- back,” you told how to scratch a filename that ap- peared in a disk directory as a comma. Your methods are fine, but there is a much sim- pler method. Simply enter the following line.

OPEN15,8,15.‘'S0:?”:CLOSE15

This question mark wildcard will erase any file whose name consists of but a single character.

AL WILDERMUTH RIVERSIDE, CA

Thanks to Al and all the other readers who replied with this simple solution that slipped Gazette's collective mind. Just check the directory first to see if there are any single-

character files on that disk that you wish to retain. If so, re- name them before deleting.

Interest Calculations

As an active participant in IRA distributions, | was very in- terested in IRA Minimum Dis- tributions (April 1993). | was at- tracted to lines 980, 990, and 1000 where the interest calcu- lations take place.

Years ago, | got involved in interest calculations, especial- ly after | read in a mathemati- cal journal that it was impos- sible to calculate daily com- pound interest (yield) except by the one-day-at-a-time meth- od, as used in the article.

As an engineer, | find the word impossible to be incom- -prehensible, so | devised a means for making long-term calculations easy. As pub- lished, the calculation for a sample 20-year projection and its 20-year payout sched- ule takes nine minutes and 42 seconds. With my revision, the same calculation takes on- ly 7 seconds.

Insert REM after line num- bers 980, 990, and 1000 to preserve the original code and then enter this line.

985 SP=SP*EXP(1)1(365.25 *LOG(1+IR65.25))+.001: SP=INT(SP*100)/100: RETURN

The 365.25 allows for the ex- tra day in a Leap Year.

LES WILLIS DELAND, FL

Machine Language

Over the years, your maga- zine has carried a column for machine language program- ming; however, | haven't seen any instructions on how to actually implement the infor- mation. Is a special program required?

EARL WOODMAN

DILDO, NF CANADA

When you start learning ma- chine language, the first thing you need is an assem- bler. An assembler is to ma- chine language what the BA- SIC programming language is to programming in BASIC. It translates your commands in- to numbers that the computer can understand and use. Since it’s difficult to write a program entirely in numbers, an assembler replaces the se- quence of numbers with stan- dardized mnemonics, com- mands that humans can more easily remember and under- stand. Here's an example.

10 * = 880 20 LDA #147 30 JSR 65490 40 RTS

In this short program, when you enter SYS 880, the com- puter's screen clears. The 147 is the number which clears the screen. LDA is a mnemonic that means Load the Accumulator, a special ar- ea in the computer. So 147 goes into the accumulator, and the program moves on to the next instruction. JSR means that the program then Jumps to Subroutine at 65490, which is the address in ROM which prints whatever character is currently in the accumulator. The screen clears, and the program moves on to RTS. This com- mand, Return from Subrou- tine, causes the computer to leave machine language and return to BASIC.

This program is called source code, but you cannot run it as you would a BASIC program. The assembler takes this code and turns it in- to object code, poking num- bers 169, 147, 32, 210, 255, and 96 into memory locations 880-885

The computer doesn’t have any idea what to do with LDA, but when LDA is converted into 169, it knows

to load the accumulator. It's al- so easier to remember LDA than 169. The 32 means JSR, 210 and 255 is a two-byte ad- dress that represents 65490, and 96 returns the computer to BASIC (RTS).

For those who don't have an assembler, we often print the code in the form of a BA- SIC loader. The computer's ML instructions are in the DA- TA statements.

10 FOR A = 880 TO 885

20 READ D: POKEA,D

30 NEXT

40 SYS 880

50 DATA 169,147,32,210,255,96

As with most Commodore software, finding a good com- mercial assembler such as Commodore Macro Assem- bler, Buddy 64, or Merlin64 may be difficult these days, but a number of public do- main programs are available. Gazette's own BASSEM (April and May 1990) is still availa- ble on the Best of Gazette Util- ities Disk ($13.95).

Resume Typing

| have some suggestions which might help Jack Christ- law, who was was having dif- ficulty entering programs in one typing session.

Whenever | wish to stop typ- ing, | save what | have using the number of the next BASIC or ML line of code as the file- name, This assures that I'll nev- er use the same filename twice and I'll always know where to begin again. | also al- ways use a fresh disk with on- ly MLX or Proofreader on it.

ARNOLD JONES STONE RIDGE, NY

Send your questions and com- ments to Gazette Feedback, COMPUTE Publications, 324 West Wendover Avenue, Suite 200, Greensboro, North Carolina 27408. a

about saving partial

AUGUST 1993 COMPUTE

G15

G-16

PD PICKS _

Steve Vander Ark

MISCHIEVOUS 64 AND MORE

QuantumLink isn't the only place to find shareware and public domain files, but it's probably the best place. Q- Link has more files than any- body else—plain and simple.

| have a copy of its catalog of files, a burly tome close to two inches thick and heavy enough to keep the door to my computer room shut against my one-year-old. This hernia- inducer makes a valiant effort to list all 35,000 of Q-Link's pro- grams and files. Yes, 35,000! Make no mistake; if you're se- rious about your Commodore, you belong on the Q.

If you aren’t a Q-Linker, though, you can find good PD programs on any BBS that sup- ports the Commodore. The Rogue River BBS in Grand Rap- ids, Michigan, has all the files mentioned in this column. The phone number is (616) 361- 8267. Of course, all programs mentioned here are also on Ga- zette Disk. Here are my PD picks for this month.

Mille Bornes

Original author unknown. QuantumLink filename: MILLE BORNES.3; uploaded by RolfB.

| seldom play Mille Bornes. My wife and | bought it about ten years ago, and it's a great game. The problem is that | play it for blood, which is the way my wife plays Monopoly. That's why we don’t play Mo- nopoly either. So when | found this one-player card pro- gram buried in the 64 games section of Q-Link, | got all ex- cited. Now | could stomp some- one at Mille Bornes without hav- ing to sleep on the couch! This version of Mille Bornes isn't glamorous. It's entirely text with gameplay true to the original. You take turns with

COMPUTE AUGUST 1993

the computer, playing or dis- carding cards from your hand, trying to accumulate dis- tance toward a goal of 1000 miles. Along the way you play cards against the computer's hand and try to inflict your op- ponent with all sorts of calam- ities, including flat tires and ac- cidents. You see where atti- tude can creep into the game.

According to comments posted on Q-Link about this game, some of its more ob- scure rules aren't supported in this version. | wouldn't know, since | don't play the original enough to remember any of the more obscure rules! All | know is that this little gem of a game is addicting.

The computer is a bland ad- versary, of course. | miss the scowl | used to get from my wife when | would gleefully slap down an accident card. She doesn't play Mille Bornes on our 128 much. She's too busy playing Monopoly on the IBM.

Maximum Overdrive

By Dan Komaromi. QuantumLink filename: OVER- DRIVE; uploaded by DigiDan.

I'm not sure what category to put this piece of programming genius into—it's certainly not a game.But what the heck: Here it is, and it's absolutely my favorite 64 download of all time. Like | just said, it's not a game. It's not a utility either, re- ally. It doesn't exactly keep you glued to your monitor; in fact, it works the best when you aren't even around.

Let me explain. Maximum Overdrive is the sneakiest buck- et of surprises you'll ever dump on your unsuspecting 64. When you first run it, you are presented with a menu of interesting-sounding options. Once you make your choice, your beloved Commodore com- puter disappears and is re- placed by nothing less than its

evil twin. Oh, it looks just fine— same blue screen, same friend- ly blinking cursor, same every- thing. But, oh, what horrors lurk within!

For example, when you en- ter an innocent LOAD com- mand, the computer might snap back with LOAD IT YOUR- SELF! With another setting, your usually complacent 64 re- acts to a keypress by snarling that it's trying to sleep. It then turns off its monitor.

There's a startlingly impres- sive self-destruct mode which really grabs your attention if you have the volume cranked up. There’s even an option which looks for all the world like you've accidentally con- nected with NORAD comput- ers somewhere and have launched a few missiles.

The author, who calls him- self DigiDan on Q-Link, has had his programs published in several magazines, and his ex- pertise shows in the slick inter- face as well as in the nifty screen tricks. He includes some extra touches, such as allowing you to disable the Run/Stop key and type in your own bits of nastiness for the In- sult section. Koramoni em- ploys some excellent raster in- terrupt effects, a good dose of SID chip sound magic, and an oversized helping of clever- ness to make your 64 go off its electronic rocker.

The general idea is to set up your computer with one of these fake startup screens when you are going to be away from your keyboard. Should some unsuspecting vic- tims try to use it, they'll be left wondering how they managed to make the whole system go kaflooie when they just typed a simple command. |'m not sure why | like this program so much because | don't have anyone to pull these tricks on, but | get a bang out of watch- ing them run.

| know. Get a life! o

Fun f Gr aphis

Haye MACHIN! T CAN BE

WH: vl Pmt te Be YOUR IMAGINATION, ISINESS CARDS ‘custon LABELS

sl ATED W STA FEW EXAMPLES?

2. 22, aan

SEVxAmD

<a

BSn>5

37 Dzz7

~woce-

T T

PUTE UNTH Ews w 0 |

QaROnP>an DVr=-on

ING RAP, PHics MACHINE,

L KEYBOARD OUERLAY ---$3.5) 64, C128, SX-64) OR C64 IS SaipeeD

DISK THIS IS A PREVIEW Je 1S ALL ABOUT

ULL te VERSION OF FGM AMAT $5.01

CS MACHINE RAPHICS MAC

FOLLOWING DISKS REQUI

ES) SESOE =m

>omom <>< Yoo 2

AD a et

Fem, ET Ee FGm UPDATE DISK V6.5 UPD

PLEASE ADD FOR SHIPPIN GH eRe FoF AIR

a) De -oeDDD

on bt >: = mi 21 =} 3 = S m, = = | ° = a Bx

ct

LIA ORAY HO. CHARGE CHADS

The FGM Connection, P.0.Box 2206, Roseburg, OR. 97470

FOR MORE INFORMATION CALL 503-673-2234

UGUST

SALE!! ie ~64 28 (-128 wild 7/20 - 8/31/93 -

Take 20% “off price belov! ‘plus/4 1 C-16

SSeS AMM ET Of. Sifes, or ID /COST/ oH KJV Bible--2 sides Hus., A or 8 PS Grap Ganes 36/3544

C: SpHario3 ,Krakout Poker i Ganes-Fin-Grafpx & DBase 06/ S+2 D: 128 Potpourri -Util.--brod.--Educ.--Gane--Teleconn 06/ 5#2 Es fle Combo --Utjl,--Prod.--Educ.--Gane--Telecona 06/ S¢2 F: Bks-d8p Inst. Activities C= or Apple...fun...Logot Bk/ 1#2 G: Ed Pak A Hath/Sci/Eng /Gen. Educ. = 145 programs 12/13+2 H: Ed Pak 8 Math/Sci/Eng /Gen, Educ. = 600 prograns 06/7047 J: GamPak A-d Hario Bros & Tetris Clones (64/64c/128] 02/ 9+1 K: GawPak B-Trashnan, Starraider Air Denon, Outpost+ 02/ 9+1 L: Prine 554 aales, females, children PS¢ + prearant 07/ 842 Ht Disk Notcher-Use the backside of your 0S/0D disks! OK/ 341 0: KJV Bible-+/4--Text files + 1 side of pleas 30/3044 P: Game Pack C/C-128--60+-Star Trek - Concentration + 10/1342 Q: Musique Classique---Husic by Bach, Chopin, others 03/ 7#2 R: Pets - 347 Domestic aninals PS Graphics, & progs 05/10#2 $: Sports-419 wix--Bsbll, Ftbl1/+ PS Graph. & progs 05/L0+2 T: Cartoon Characters -A nixture of 202 PS Graphics 02/ #2 U: Conptr Parade-255 PSG-Apple/ C= /IBK Logos, & wore 02/ S#2 Yi Fastead Yt (Enhanced CAD 3.0) and support files 05/102 W: Fun Graph Hachine Deno + UT +50 fonts tHi-Res Duap 03/ 6+2 Xs 1941/71/81 Utilities--Readers/Copiers/Hovers, etc. 06/12+3 Y: GEOS: Programmer Hanual-89p, & V1.0 Docunents-27p. 03 /8+2 Please tents PSG ) A/3BLk/Non-C= or 8/2B1k/Comnodore Printer! »)))) Nat labje- Ita oe Poni t/4 BC-16 8 C-bd. MCKKK JH-00 att te Tine-Conbo of 25 Religious Progs. +/4/64 03/ +1 JH-OL --Plus/4 Game Pack-- A combination of 150+ games 19/30+5 JH-03 --C-16 Conbination of 50+ programs. Runs of +/4. 02/ dtl JH-05 --H.A.L.(update)-Assenbler +/4 & Speedscript +/4 04/ 941 Send SASE for info. on HEHL itens, golden oldies, & new iteas, CATALOGS: C64/128-47p-$2+2 - +/4-18p~ MHL ax Pyat: MO/CHK (US$) Ca, Res. +8.25% tax/iten total No C00’s! Shipping--USPS TO Kenneth Franklin/KFPO Software-P0B 470464-LA,Ca. 90047-0464

PO Select Library aainly. We are in our third year! Thanks! |

Circle Reader Service Number 197

If you own a CMD device, you NEED the Compression Kit

NEW!

THE COMPRESSION KIT $39.85

ckup. Sseyiieaiuring fast data ; commodore 64/128

jers away and

te ives, 1541 1571/ Hard

r that puts

for $39, 95 t to:

Mad Man Software 1400 East College Drive Cheyenne, Wy. 82007 For order info call ...1(800)34-MADMAN For general info call.......1(307)632-1178 For fax inquires. 1(307)637-4883

Be sure to enclose a return address. No P.O.Box numbers please.

Circle Reader Service Number 260

SOFTWARE CLOSEOUTS

For Commodore 64 & 128 ANY ITEM IN THIS AD.... ONLY $5

BUY 10, GET 1 EXTRA FOR FREE!! ALL PACKAGES ARE NEW SEALED BOXES. SUPER EXPANDER 64, STARCROSS, ALCON, UNDER FIRE, MACBETH, RASTAN,| BUBBLE BOBBLE, PET EMULATOR, ARKANOID, ARKANOID 2, QIX, SKY SHARK, CHAMPIONSHIP BASEBALL, DAMBUSTERS, DEADLINE, ONE MAN & HIS DROID, PLASMATRON, PRO-GOLF, SPITFIRE ACE, HELLCAT ACE, SUSPENDED, ZORK 2, ZORK 3, SILENT SERVICE, RENEGADE, ARTURA, BUTCHER HILL, CONFLICT IN VIETNAM, REVENGE OF DEFENDER, FINAL ASSAULT, PRESIDENT ELECT, GHOSTBUSTERS 2, SKATE WARS, PUFFY'’S SAGA, CHESSMASTER 2100, SONGWRITER, TERROR, SUSPECT, GHOSTWRITER 128, RICK DANGEROUS, T.V. SPORTS FOOTBALL, EASY SPEECH, SPACE HARRIER, M.A.C.H., F-15 STRIKE EAGLE, AIRBORNE RANGER, RAMBO 3, FAST BREAK, ACROJET, HEROES OF THE LANCE, NETHERWORLD, XENOPHOBE, DIE HARD, TAKE DOWN, THE GAMES:WINTER, THE GAMES:SUMMER, GOLDEN OLDIES, WORLD'S GREATEST FOOTBALL, MINDSHADOW, SKYFOX, PITSTOP 2, RAW RECRUIT, WHEEL OF FORTUNE 2, ACE OF ACES, TOP GUN, TOWER TOPPLER, MANIAC MANSION, BEYOND THE BLACK HOLE, ROADWARS, CALIFORNIA GAMES, DREAM TEAM, SERVE & VOLLEY, DEVON AIRE, FIREZONE, FIGHT

NIGHT, JET BOYS, SUPER SUNDAY, BOP 'N RUMBLE, TRI-MATH, TECHNO-COP, MAGIC MADNESS, TURTLE TOYLAND JR., RAMBO, STATIS PRO BASEBALL, SGT. SLAUGHTER, CLUBHOUSE SPORTS, DIG DUG, CUTTHROATS,

CROSSBOW, COMICS, KIILLED UNTIL DEAD, PS! 5 TRADING CO., COMPUTER DIAGNOSTICS, PRO TOUR GOLF, COSMIC RELIEF, TAU CETI, GREAT ESCAPE, ARMY MOVES, CAPTAIN FIZZ, INTO THE EAGLE'S NEST, GAUNTLET 2, BOSTON COMPUTER DIET, BAD DUDES, BATMAN CAPED CRUSADER, MONDAY NIGHT FOOTBALL, ROBOCOP, EYE OF HORUS, MATH MAZE, DESIGNASAURUS, EUROPEAN NATIONS, PRO TENNIS TOUR, B.A.T., WARLOCK, THUD RIDGE, DARK CASTLE, SUMMER GAMES 2, WINTER GAMES, IMPOSSIBLE MISSION 2, SUB BATTLE, WORLD GAMES, TONY LARUSSA BASEBALL, PARALLAX, SPY VS. SPY, NINJA, PENSATE, QUEST OF THE SPACE}

BEAGLE, MAXWELL MANOR, PLAQUE MAN, BATTLESHIP, GUDERIAN.

MENTION THIS AD TO RECEIVE THE $5 PRICING & FREE BONUS ITE!

‘0 ORDER: Send check or money order, VISA/MC ORDERS CALL TOLL-FREE [nipping charges of $5 for USA. Sb force

II others, California addressesmust include 728% jsales tax. To check for an item not listed 544-6616.

aa ay rice Pea COMPSULT - WE HAVE LOTS MORE C-64/128 PLU: P.O. BOX 5160 TONS OF SOFTWARE FOR IBM, SAN LUIS OBISPO, CA 93403) APPLE, MAC, AMIGA, ATARI & MORE!

Circle Reader Service Number 114

Read a file

with BASIC’s INPUT# statement and

chop any extra Returns that

may Cause a crash.

G-18

MACHINE LANGUAGE

Jim Butterfield

FILE-END TRIMMER

Last time, we learned that a file that ends with more than one return can cause trouble when used with the BASIC IN- .PUT# statement. Now, let's write a program to detect and correct this problem.

A BASIC program will poke the ML code into place. Phase 1 then checks the file, and phase 2 copies the file, chopping any extra returns.

The detection phase uses a brief ML program at $2200, decimal 8704. The file is cor- rected, if needed, by a longer ML program at $2217, deci- mal 8727. This is the code we'll examine here.

File-copying programs must deal with ST, the status word, found at address $90. We must read the ST value right after we reference a file so that it won't be changed by some other file activity.

Our program reads from one file and writes to another. We must check ST (for end-of- file) after each read. We have an input character to dispose of, SO we may need to write to the output file before we act on the end-of-file signal.

We'll test ST right after per- forming an input and push the test results to the stack. Later, we'll act on those results.

Here’s a second puzzle. Our task is to remove extra re- turn characters from the file end. But, as we read the file, we don't know if we're near the end. We must not copy re- turns until we know it's safe.

When we read a return char- acter from the input stream, we won't output it. We'll count it, using location $2100 as a counter. If we find more text, we'll output the correct num- ber of returns before continu- ing. I'll comment on selected Parts of the program.

Initial code zeroes the count- er at $2217. We enter the main read loop, and the input

COMPUTE AUGUST 1993

stream switches to logical file 1.

We grab a character and test the ST variable, pushing the result to the stack with PHP.

2221 JSR $FFE4 LDY $90 PHP

We skip ahead if we didn't get a return. Return needs spe- cial work: We count it and then check to see if we're at the end of the input file. That information is on the stack, re- member? If we're not at end- of-file, we keep reading.

CMP #$0D BNE $2237 INC $2100 PLP

BEQ $2221

If it's a return at the end of the file, we push the test results back on the stack and zero the counter to get rid of the ex- cess returns.

PHP LDY #$00 STY $2100 The program reaches

$2237. Either we've received a character (still in the A reg- ister) which is not a return, or we're at end-of-file. Push the input character to the stack, disconnect the input stream, and hook the output stream to logical file 2.

2237 PHA JSR S$FFCC LDX #$02 JSR = $FFC9

Is the return counter 0? If so, skip the next bit.

LDX $2100 BEQ $2250

Location $2245 sends the re- turns using a loop. We'll omit that code. The next step out- puts the character that was

received.

2250 PLA JSR $FFD2 JSR = $FFCC

We check the end-of-input condition, still on the stack. We either loop or quit.

PLP BEQ $221C RTS

Here's the whole program in the form of a BASIC loader.

ES 100 PRINT "FILE END TRIMMER - JIM BUTTERFIELD" DATA 162,1,32,198,255,1

69,0,141,0,33,32,228,25 5

XR 110

GS 120 DATA 164,144,240,246,14 1,1,33,76,204,255

DATA 169,6,141,8,33,162 71,32,198, 255

DATA 32,228,255,164,144 ,8,201,13,268,12

DATA 238,5,33,40,240,24 0,8,160,0,140,0,33

DATA 72,32,204,255,162, 2,32,201,255,174,0,33 DATA 24G,11,169,13,32,2 16,255,202,208, 248,142, 0,33

DATA 104,32,210,255,32, 204,255,40,240,194,96 FOR J=8704 TO 8794

READ X:T=T+X

POKE J,X

NEXT J

IF T<>11245 THEN STOP INPUT "NAMF OF FILE"; FS JQ 310 OPEN 15,8,15

PJ 320 OPEN 1,8,2,FS

AQ 136 HQ 140 HM 150

PC 160

GB 330 INPUT#@15,E,ES:IF E<>@ T HEN PRINT ES:STOP QH 346 SYS 8704

SB 350 CLOSE 1

SD 360 CLOSE 15

IF PEEK(8449)<>13 THEN

{SPACE}PRINT "FILE DOES NOT END WITH <RETURN>. "SEND

IF PEEK(8448)<>13 THEN

{SPACE}PRINT "FILE ENDS WITH A SINGLE <RETURN> -"2END

PRINT "FILE ENDS WITH M ULTIPLE <RETURN> CHARS.

SE 380

XS 393

XB 400 INPUT "SHOULD I CLEAN I T UP?";X$

XS=LEFTS (X$,1)

IE X$<>"¥" THEN END INPUT "NAME OF REVISED {SPACE} FILE"; R$

OPEN 15,8,15

OPEN 2,8,3,"0:"+RS+",S, wt

INPUT#15,E,E$:1IF E<>0 T HEN PRINT E$:STOP

OPEN 1,8,2,FS INPUT#15,E,E$:IF E<>0 T HEN PRINT E$:STOP

QE 499 SYS 8727

QM 5G CLOSE 1

PP 516 CLOSE 2

EQ 528 CLOSE 15 o

HP 410 AF 4208 AD 439

AH 440 Ds 459

MK 466

PF 470 ce 486

The Gazette Productivity Manager oy,

Harness the productivity SS A

power of your 64 or 128!

Turn your Commodore into

a powerful workhorse, keep track of finances, generate reports in a snap, manage your money in minutes—

all with the

Gazette Productivity Manager! Look at all your 64/128 Productivity Manager disk contains.

GemCalc 64 & 128—

A complete, powerful, user-

friendly spreadsheet with all the features you'd expect in an expensive commercial package (separate 64 and 128 versions are included).

Most commands can be performed with a single keypress!

YOUR GAZETTE PRODUCTIVITY MANAGER TODAY!

Memo Card—Unleashes the power of a full-blown database without the fuss! Nothing’s easier—it’s a truly simple computerized address file. Just type in your data on any one of the index cards. Need to edit? Just use the standard Commodore editing keys. Finished? Just save the data to floppy. What could be easier?

(MasterCard and Visa accepted on orders with subtotal over $20).

CLYES! Please send me Productivity Manager disk(s)

($14.95 each).

Subtotal

——____ Sales Tax (Residents of NC and NY please add appro- priate sales tax for your area. Canadian orders, add 7% goods and services tax.)

—____ Shipping and Handling ($2.00 U.S. and Canada, $3.00 surface mail, $5.00 airmail per disk.)

Financial Planner—Answers all of those questions concerning interest, investments, and money manage- ment that financial analysts charge big bucks for! You can plan for your children’s education and know exactly how much it will cost and how much you need

to save every month to reach your goal. Or, decide whether to buy or lease a new car. Use the compound interest and savings function to arrive at accurate estimates of how your money will work for you. Compute the answer at the click of a key!

DON’T MISS OUT ON THIS

POWERFUL WORKHORSE!

Total Enclosed Check or Money Order

Credit Card No.

—MasterCard _ VISA

Signature

(Required) Daytime Telephone No.

Name

Address

city

State/ up/ Province Postal Code

Send your order to Gazette Productivity Manager, 324 W. Wendover Ave., Ste. 200, Greensboro, NC 27408.

This column celebrates its fifth anniversary with some more great tips sent in by readers.

G-20

PROGRAMMER’S PAGE

Randy Thompson

HAPPY ANNIVERSARY!

“Programmer's Page” is five years old this issue! It made its debut in the August 1988 edi- tion of Gazette. I'd like to take this opportunity to thank all of my readers for your interest; support; and, most important, your great contributions. This column, after all, is a forum for your programming expertise. To celebrate our anniversary, I've assembled a few of the best ‘Programmer's Page” tips ever published.

Selective RESTORE This bizarre tip—written by yours truly—comes from the very first “Programmer's Page.” This short routine re- stores BASIC's data pointer to any line number, just like the 128's RESTORE command. To use it, execute the follow- ing instructions once within your program. BD 16 POKE 784,108:POKE 785,12 2:POKE 786, PQ 20 DEF FN RS(N)=USR(N)+POS(

" {A}LUF {TH{2 EFP<{GP< L'¢2 £}")

Then, add the following com- mand to your program.

X=FN RS(/ine number)

In this case, line number is the line number of the DATA statement at which you want your program to READ. In oth- er words, RESTORE to this line. The line number can be a number, variable, or even an expression such as 1000+1*10. If you want, you can replace X with a variable. Just be warned that the value of the variable used will be scrambled.

Be especially careful when entering line 20. A single typo could cause the computer to lock up when the program is run. Note that there are no spaces between the USR

COMPUTE AUGUST 1993

statement, plus sign, or POS statement.

To ensure accurate typing, use The Automatic Proofread- er; see “Typing Aids” else- where in this issue. To help fur- ther, here's an English transla- tion of how to enter those weird characters found within quotation marks in line 20: space, Ctrl-A, Commodore- U, space, Ctrl-T, two Commo- dore-English Pounds, Shift-F, Back Arrow, Commodore-G, Back Arrow, L, single quote, and two Commodore-English Pounds.

If you're looking for a chal- lenge, try to figure how this tip works—without looking in the August 1988 Gazette.

MIDS Magic

Most programmers use BA- SIC’s MID$ function on the tight side of an equal sign, as in A$=MID$(B$,3,1). On the 128, however, MIDS can also be used on the left side. For example, if AS equals 123456789 and BS equals ABC, the instruction MID$ (A$,4,1)=B$ sets A$ equal to 123A56789, while the instruc- tion MID$(AS$,4)=B$ sets AS equal to 123ABC789.

Using this technique, you can stuff one character or a group of characters into the middle of another string with- out juggling LEFTS and RIGHTS functions. Credit for this useful string-handling ad- vice goes to Michael Ver- diguel of Lawton, Oklahoma.

Unscrollable Lines

Here’s a short machine lan- guage subroutine from Sean Ganess of Woodside, New York, that protects the top two lines from being scrolled off the screen. You can still print text to these lines and erase them by clearing the screen, but they are unaffected by scrolling text. You might want to use this feature to display such things as your location

in an adventure game or to show the disk drive status in a utility program.

FR 10 GOSUB 3000:END GF 3000 FOR I=828 TO 875:READ

{SPACE}D:POKE I,D:C=C+ D:NEXT

IE C<>6376 THEN PRINT

{SPACE}"ERROR IN DATA

{SPACE} STATEMENTS" : END

XK 3010

CF 3026 SYS 828:POKE 59639,1:P

OKE 64982,53:POKE 1,53

HQ 3636 RETURN

FJ 3040 DATA 169,0,132,38,169, 224,133,39,177,38,145, 38,266,208,249,230,39, 165

QA 3G5@ DATA 39,201,0,208,241,

160,0,132,38,169,160,1

33,39,177,38,145,38,28

6,208

DATA 249,230,39,165,39

201,192,208,241,96,0

KJ 3060

To use this program, simply GOSUB 3000 whenever you want to protect the top two screen lines. This subroutine needs to be executed only once when your program is first run.

Missing Data

Neglecting to put numeric da- ta between the commas in a DATA statement is the same as including the digit 0. For ex- ample, check out the follow- ing program.

10 FOR I=1 TO 10: READ D: PRINT D:NEXT 20 DATA , 5555545

Line 20 produces the same re- sults as the following.

20 DATA 0,0,0,0,0,0,0,0,0,0

If you are reading string da- ta—as in the command READ D$—the missing data is inter- preted as a null string. This tip came courtesy of Doug Ross of Merrickville, Ontario, Canada.

Send your programming tips to Programmer's Page, COM- PUTE’s Gazette, 324 West Wendover Avenue, Suite 200, Greensboro, North Carolina 27408. We pay $25-$50 for each tip that we publish. O

Gazette Index

Everything’s included! Features, games, reviews, education/home applications, programming, bugswatter, feedback, and columns!

A superb interface includes pull- down menus, help screens, and keyboard, joystick, or mouse con- trol. Features include super-fast searching and sorting capabilities. An options screen allows you to choose text colors, drive number, and input device. And there’s full documentation on disk.

Choose from three modes of opera- tion—browse for quick scanning, view for detailed information and descriptions, and edit for adding items from upcoming issues—and print to any printer. There’s even a turbo-load option for maximum disk-access speed.

ORDER YOUR GAZETTE INDEX TODAY!

(MasterCard and Visa accepted on orders with subtotal over $20.)

To order, send $7.95 per disk, the quantity of disks ordered, check

or money order,* your name and

complete street address:

Gazette Index

324 West Wendover Avenue Suite 200

Greensboro, NC 27408

* Please add $2 shipping & handling ($5 foreign) for each disk (residents of NC, NJ, NY please add appli- cable sales tax; Canadian orders, add 7% goods and services tax). All payments must be in U.S. funds. Please allow 4 weeks for delivery.

KeyDOS ROM Version 2 is here!

The KeyDOS ROM is a chip for the empty socket inside your C128 that adds more than 40 powerful features, KeyDOS is available instantly as soon as you switch on your 128! KeyDOS js loaded with useful tools to simplify file access on multiple drive systems without typ- ing file names—all major DOS functions included. Select multiple files for copying, viewing, printing, renaming or scratching. ASCII/CBM/Screen code converter, Full support for 1581 subdirectories. Built-in RAMDOS for REUs up to 2MB. New GEOS SupeRBoot.

Alarm clock. Disk editor. Powerful debugger.

Only $32.50. Satisfaction Guaranteed! Write for more information. Enhance your system with the speed and convenience that KeyDOS provides!

Antigrav Toolkit, PO Box 1074, Cambridge, MA 02142 Shipping outside of US, Canada and Mexico add $3

Circle Reader Service Number 244

NEW GEOS SOFTWARE THE LANDMARK SERIES

Dual Top - The PREMIER Desk Top replacement. Provides full four drive support, RAM drive priority system, one click access to major file functions, comprehensive error reports, full set of keyboard shortcuts, multiple user options nl many more features. 40 and 80 col modes.

GeoSolitai Checkerboard - Pla To

REU users: Battery Back any 17xx, or ‘GEORAM, with the BBU. Use with GEOS (V1.3 up), RAMDOS or other programs that use REUs. Great for BBS. No heavy power supply needed. GEOS users: BBGRam, Battery backed RAM for GEOS 2.0. A fast, reliable altemative to mechanical drives. Supports all drive types, multiple partitions and alternate DESKTOPs.

PERFORMANCE PERIPHERALS, Inc.

5 Upper Loudon Road, Loudonville, NY 12211.

US orders, literature: 800-925-9774. Tech support, orders, FAX: 518-436-0485. BBU $59, BBGRam 512K $89, BBGRam 1M$119, BBGRam 2M $159. US S&H $8. US COD $4. Canada & Mexico S&H $10. Other countries S&H $19.

30 day money back guarantee. £0 day warrantee. Master Card / VISA welcome.

Circle Reader Service Number 153

- ‘the MOST POWER for the BUCK’

Qi | Nn wer that only AMIGA owners have enjoyed until now" im = fates an A-... pushes the C-128 to the edge of the graphics envelope’ RUN Oct. 1991

= 640 by 400 pixel that

T= Inter lace! ATLEAST DOUBLE the see ured by Ey olka propia software

T= Incredible! 1 Paint 's Iiuerace s sereen offers the unique ability to blend colors for Supports 24 pin, COLOR, & LASER Printers, & RAM Expansion!

I Porta. trectescen

Manager

g0714 oy GIF, MAC, GEOS, Basic8, Doodle, Print Shop! PO Box Expon I Paint GIF! Define ction GIF pales! Minneapolis, MN

NOW Version 1.2 - UP TO 3 TIMES F/ Prices for U.S.A. Check or money ordar only. MN res. add 6-1/2% sales tax. Alow 2 - 4 weeks for delivery.

Circle Reader Service Number 146

Fast Action Arcade Style Game for the Commodore 64/128+1541

; $24 95 plus $3 Shipping and Sliders e Handling in the U.S.A. S/H in Canada $5 and $10 for all others. American Currency Only

Rand Cues feroStorm Software. Order to: Box 1086, Sidney, MT 59270

Circle Reader Service Number 289

G-21

How many combinations of fives, tens,

and twenties can you

G-22

find that will total $200?

BEGINNER BASIC

Larry Cotton

BUCKS IN A POT

Let's get back to reviewing BA- SIC statements, specifically FOR-NEXT loops. Here's a quick review. FOR-NEXT (or FOR/TO/STEP/NEXT as the Commodore 128 Program- mer's Reference Guide calls it) executes repetitive loops. We've seen how each FOR- NEXT loop requires seven sep- arate and distinct elements and how STEP can be less than 1, more than 1, or aneg- ative value. (Omitting STEP yields a step size of +1.) Here are some simple examples.

10 FOR J=1104 20 PRINT J 30 NEXT

10 FOR J = .5 TO 3.5 STEP .5 20 PRINT J 30 NEXT

10 FOR J = 10 TO 1 STEP -2 20 PRINT J 30 NEXT

A very common use for FOR-NEXT is to load arrays. We've studied arrays in this column before, but if you don't understand or remem- ber them, we'll get back to them soon. For now, just think of an array as a group of pigeonholes that need num- bers stuffed into them. The pi- geonholes_ usually have names such as A(1) or B(4). Here's how to fill a small one- dimensional array using a FOR-NEXT loop.

10 FOR J=170 10 20 A(J) = 25 30 NEXT

This simple pigeonhole stuffer will make each varia- ble A(1) through A(10) equal to 25. Here’s how you can make the variables equal the counter as it's increased.

10 FOR J=110 10

COMPUTE AUGUST 1993

20 A(J) = J 30 NEXT

You can read DATA state- ments and place them into the arrays, too.

10 FOR J=11T07

50 DATA 12, 2, 52, 41, -3, 3.5, -7.34

After this program runs, A(1) will be 12, A(5) will be -3, and so on.

Let's take another look now at nested FOR-NEXT loops. Here's an example.

10 FORA=11T03

20 FORB=31T04

30 PRINT “‘A="A,"B="B 40 NEXT B

50 NEXT A

The A loop is the outer one, and it loops a total of three times. The B loop is the inner one, and it loops twice for each value of A. The use of the variable names after NEXT is optional, but it can help keep things straight.

Now, let's get to the meat of this month's column. The other day, a friend called to ask for help with his third- grade son Derek's homework.

The problem, as we under- stood it, was to calculate how many combinations of twen- ties, tens, and fives could be in a pot of $200. Naturally, | don't need much inspiration to write a BASIC program. So | wrote one to solve the prob- lem, and it just happened to use nested FOR-NEXT loops. Here it is.

10 PRINTCHRS(147)

20 INPUT“HOW MUCH IS IN THE POT”;P

30 TW=P/20

40 FORI=0 TO TW

50 R=P-1*20

60 TE=R/10

70 FORJ=0 TO TE

80 C=C+1

90 NEXTJ

100 NEXTI

110 PRINT:PRINT' THERE ARE”C'‘COMBINATIONS.”

Line 20 asks the user for a pot value. Enter the number only, not a dollar sign. Line 30 finds the maximum number of twenties (TW) which can be in the pot. Then we start a loop in line 40 which counts up from no twenties to TW.

Lines 50 and 60 calculate the maximum number of tens there can be in the pot for any given number of twenties. Our inner loop (J) begins at line 70 and counts up from no tens to the maximum number of tens for each value of |, the twenties counter.

Inside the inner FOR-NEXT loop is another counter (C in line 80) which simply incre- ments every time the inner loop is used. For each num- ber of tens for a given num- ber of twenties, there will be a certain number of fives neces- sary to arrive at the total pot. Therefore, we've counted all the possible combinations!

If there were ones in the pot, you would need another FOR-NEXT loop which would increment (or decrement) the fives while holding the twen- ties and tens constant. The number of combinations would become staggering.

This seemed like a tough problem for a third-grader to solve. We discovered later that the actual assignment was to find just some of the possi- ble combinations—not all of them! Anyway, it was an inter- esting problem and a good ex- cuse to write a BASIC pro- gram. By the way, there are 121 possible combinations of twenties, tens, and fives in a pot of $200. With larger pots, watch the time it takes to cal- culate the combinations grow exponentially. 0

GEOS

Steve Vander Ark

IMPORTING GEOS GRAPHICS

Two of my favorite subjects are graphics and geoPublish, and last month | talked about both. | described differences between geoPaint's bitmap- ped graphics and geoPub- lish's object-based ones.

This fundamental differ- ence between the two formats is important for you to under- stand, lest you find yourself confused and _ frustrated. Once you get the hang of ob- ject-based graphics, though, you'll love the freedom that they give you to experiment and to create.

Working with geoPublish, you'll most likely want to use clip art with your documents. Most of this art will be in bitmap format, which means that it's stored as a fixed set of dots laid out to form an image. This graphics don't use the same format as those created by geoPublish itself, but that doesn't mean that you can't use them. You can import these bitmaps very easily.

Each mode of geoPublish has an import tool. In both Page Graphics and Master Page modes, the bitmap ap- pears where you click the cross hairs on the page. Once imported, the bitmap is an object on its own layer, just like any other object on the page. Remember, if you en- large this image, you won't be adding more dots to the im- age; you'll only be making the existing dots bigger. As a re- sult, an enlarged bitmap looks blocky and jaggy. Geo- Publish offers a smoothing op- tion which helps by rounding off some of the sharp edges, but this doesn’t always make it look better.

In Page Layout mode things work a little differently. You can still resize an image and change its attributes, but

the way you move a bitmap on- to your page is unique to this mode. In Page Layout mode you create rectangular areas (regions) on the page in which to place text or, in this case, bitmaps. Before you can import an image, you must de- fine an area in which the im- age will be located. This re- gion can contain only the graphic or text file you specify for it. If you place a region on top of another region, you won't be able to see through the one on top. And if you place the region on top of a text region, the text will adjust around it.

This is very useful for mixing text and graphics on a page. You can create a large text re- gion, then create graphics re- gions on top where you want the bitmaps to appear. The text will flow around those re- gions as pretty as you please.

In Page Graphics mode, however, if you place a graph- ic in the middle of a text area, the two will just overlap. This also can be a useful tech- nique if you change the pat- tern of the bitmap to gray in- stead of black, allowing the text to stand out. But if you want text to flow around graph- ics, you'll want to import those graphics in Page Layout mode.

Remember that | said that the regions you create in Page Layout mode are rectan- gular. The text will flow around that rectangular area, not around the edges of the im- age itself. There’s no built-in way to make text flow around an irregular edge. You can sim- ulate this effect by creating a number of text regions, each sized to hold a few lines of text and each fitted to the edg- es of the graphic image. The problem occurs if your graph- ic was imported in Page Lay- out mode. This mode won't let you cross its straight region edges with your text regions.

lf you import the image in Page Graphics mode it won't be visible in Page Layout mode at all, which means it'll be next to impossible to fit a text region next to it with any precision. Probably the easi- est way to simulate text flow- ing around an irregular graph- ic is to create text which has a built-in flow created by press- ing the Return key at the end of the lines in strategic places, then fitting the graphic to it in Page Graphics mode.

There is one other way to get graphics onto your geoPub- lish page. You can first import them into a geoWrite docu- ment which you then import in- to your geoPublish document. The graphic gets imported as well as the words. It even keeps its formatting within that text area (centered, for ex- ample). This method works par- ticularly well if you want the graphics to be tied to the text, such as in a fancy headline or a letterhead. Of course, you're stuck with geoWrite’s rather lim- ited photo scrap size.

Let's think bigger for a min- ute. It can be a bit of a hassle to import photo scraps when they're limited to the size of the geoPaint window. There are utility programs which will let you clip photo scraps as large as an entire page. One of the best, called Scrap Can, comes as a bonus on the geo- Canvas disk from Creative Mi- cro Designs. A shareware ex- ample is Scrap It (Q-Link file- name: SCRAP IT, uploaded by TerryV7). These utilities will in effect let you convert an en- tire geoPaint page into a geo- Publish page, although the whole thing is then a single large object. You can also con- vert a geoPublish page froma series of layered objects into a large bitmap (in other words, convert it into a geoPaint docu- ment) with the program Paint Pages, which comes in the GEOS 2.0 package. 0

AUGUST 1993 COMPUTE

Get the most

from geoPublish by

importing

bitmapped graphics

and clip art.

G-23

Who is that little guy

rushing through

airports with duffel

G-24

hags stuffed

with more parts than a small electronics store?

D'IVERSIONS

Fred D'Ignazio

MULTIMEDIA ROAD WARRIOR

My name is Fred D'Ignazio, but most people know me as the Road Warrior. For the past ten years, I've journeyed to more than 100 school districts in North America, Europe, and Australia as a multimedia evan- gelist—a Johnny Appleseed of new technology.

My mission began in the mid-1980s in a kindergarten classroom in Cahaba Heights, Alabama. | had con- ceived a concept of class- room learning known as the multimedia sandbox. Children and teachers in the sandbox- es scavenged common items from around their schools such as a computer, a tape re- corder, a record player, a tiny musical keyboard, a VCR, a TV, a camera, and so on. | then taught them how to use $5 Radio Shack cables to con- nect these items into a chil- dren's multimedia publishing center.

The idea caught on like wild- fire in the Jefferson County, Al- abama, schools. Pretty soon we had 13 multimedia sand- box schools and almost 100 children, parents, and teach- ers who were learning to as- semble, troubleshoot, and op- erate these scavenged multi- media workstations.

In early 1986 | was invited as a featured speaker to one of the foremost national confer- ences for computer-using ed- ucators. To prepare for the na- tional debut of the multimedia sandbox, | asked the confer- ence organizers for the basic elements of a scavenged work- station (a computer, VCR, camcorder, and so on) along with presentation devices such as a video projector and a speaker system for a room full of hundreds of adults. | ar- rived at the conference fully ex- Pecting all the equipment to

COMPUTE AUGUST 1993

be assembled for me. After all, the Jefferson County kids and teachers had mucked around with this stuff for months.

Boy, was | surprised! None of my stuff was ready. Techni- cians were scratching their heads and telling me that it was impossible to plug acom- puter's video-out jack into a VCR and that it was not appro- priate to use a common tape recorder as an audio input de- vice for a VCR. There were none of the Radio Shack ca- bles and adapters that | re- quired to integrate the little de- vices into a multimedia work- station.

But | toughed it out. | reas- sured everyone that such things were being done every day by five-, six-, and seven- year-olds in Alabama. Then, | rushed out of the hotel and ran across town to a Radio Shack and quickly purchased $25 worth of cables and adapters.

Back at the conference ho- tel, | hurriedly plugged cables to the equipment and comput- er. A short time later, hun- dreds of people arrived for the demonstration of my multime- dia sandbox. | turned on the video projector. Uh-oh! The bulb burnt out. | turned on the large speaker that the hotel had provided for my sound sys- tem. No sound. No one could hear or see my stuff.

I'd brought an hour's worth of videotapes and computer slides created by the Alabama children on their scavenged multimedia —_ workstations. They included multimedia sto- ry problems for math class; mul- timedia book reports and biog- raphies; and multimedia sci- ence projects featuring animat- ed black holes, beating hearts, and dancing skele- tons. | also had a wonderful presentation by a team of kin- dergartners and sixth-graders titled “What Is a Principal?”

| couldn't show any of it. | was stunned. What had be-

come simple for us in my kin- dergarten classroom in rural Al- abama was impossible to dem- onstrate in a world-class tech- nology conference in one of America’s largest cities.

| survived that experience by calling my audience to the front of the room to see my stuff on a little TV and comput- er screen and to listen careful- ly to the puny sounds coming out of my portable speaker.

That's the day | first be- came a multimedia Road War- rior. | vowed that | would nev- er be caught off guard again.

Since then, l've traveled with all of my multimedia sup- plies squashed into four dura- ble Road Warrior bags. | carry the two smaller ones on board each plane and check the two larger bags. If the two larger bags don't show up at my des- tination, | can do a “Multime- dia Lite” presentation with the cables and stuff from the two carry-on bags. If I'm fortunate and the airlines doesn't lose the two bags that I've check- ed, | can put on a whiz-bang “Multimedia Classic” presenta- tion full of rocket ships blast- ing off, kindergartners’ digital videos, and New Age music composed by deaf children.

So if you're in an airport in the coming months, watch for me. |'m the small bearded man, rushing from one airport gate to the next, carrying two small duffel bags, trailing green and red Radio Shack ca- bles, and spilling stacks of CD- ROMs and disks on the floor behind me.

It's a dirty, sweaty job, but some day, people will look at their gleaming multimedia TVs and remember the early days of multimedia, back to the days of spaghetti-like cables, the multimedia boxes that nev- er seemed to work together. If you jog their memories, they may even recall a little man with a vision—the guy they called the Road Warrior. O

PROGRAMS

32 SPRITES

By Bill Soudan

As far as games go, most 64 users are aware that they normally are limited to hav- ing eight sprites (or MOBs, Movable Ob- ject Blocks) to manipulate. There are pro- grams, however, that can double or even triple the eight-sprite limit, but these pro- grams often impose restrictions or cause annoying flicker—making the ex- tra sprites almost worthless.

Thirty-two Sprites lets you quadruple the 64's sprite limit without losing any flex- ibility, while keeping flicker to the barest minimum. Thirty-two Sprites can handle up to 32 sprites at a time, and each sprite can be placed anywhere on the screen!

Thirty-two Sprites isa BASIC program that lets you create a customized ma- chine language routine for up to 32 sprites. To help avoid typing errors, en- ter 32 Sprites with The Automatic Proof- reader; see “Typing Aids" elsewhere in this section. Be sure to save a copy of the program before you run it.

Getting Started

Load and run 32 Sprites. After a short pause, a main menu will come up. This is where you can customize al- most every aspect of 32 Sprites. To change an item on the menu, type in the number in front of the parameter you want to change and press Return. If the parameter can be turned on and off, the program will first prompt you for the desired setting. Next, the program will ask you the new memory location. You can enter the new location in ei- ther hex (by preceding it with a dollar sign) or in decimal. You may simply press Return if you wish to leave the pro- gram at its default location.

Menu Selections : The first item in the menu is Starting Ad- dress. This simply specifies the mem- ory location where the machine lan- guage code for 32 Sprites will begin in memory. The next eight menu items cor- respond to the computer's sprite regis- ters. Each of these can be turned on or off, and each can also place the shad- ow registers anywhere in memory. Because there are only enough reg- isters in the VIC chip for eight sprites, 32 Sprites must set aside a section of

memory to handle 32 sprites. The hex and decimal addresses listed next to each of the sprite parameters indicate where in memory the shadow registers of that particular parameter will start.

You can place these shadow regis- ters anywhere in memory. For exam- ple, the default Y position shadow reg- isters start at 52992 ($CFOO). To change sprite 1's Y position, simply poke 52992 ($CFOO0) with the desired Y position. Each consecutive memory lo- cation controls the next consecutive sprite number, To change sprite 2's Y position, poke 52993 ($CFO1) with the desired number. This continues to loca- tion 53023 ($CF1F), which controls sprite 32's Y position.

Temp Page

The next menu item is Temp Page. This is a workspace in memory, 256 bytes long, required to sort the sprites from the least Y position to the greatest Y position. All 256 bytes are used, and this area of memory should not be used by any other program.

Order Table

Order Table is the next menu item. This is a 32-byte area needed by 32 Sprites to hold the order of the sprites after they are sorted.

Extra Y Table

Because 32 Sprites uses interrupts to function, changing a sprite’s Y position while the VIC chip is drawing will cause that particular sprite to flicker and possibly will cause other sprites to flicker as well. The Extra Y Table is a copy of the Y position shadow regis- ters, and it is used by the interrupt rou- tine to prevent flicker. Again, this 32- byte area should not be used.

How Many Sprites?

The last menu item lets you determine the maximum number of movable ob- ject blocks or sprites that you want to use at one time. This number can be changed to 16, 24, or 32. Note that changing this register changes the length of the shadow registers. If 32 Sprites is set to 16 sprites, only 16 shad- ow registers are needed. This should al- ways be set to the maximum number of sprites which you plan to use in your program.

Generating 32 Sprites

After you've set the parameters for your sprites, it's time to generate 32 Sprites, which is a machine language routine. This is item 14 on the menu.

A minute or two after selecting this option, the program will generate the code and supply you with its starting and ending addresses in both decimal and hex and with information on how to enable and disable 32 Sprites. The pro- gram will ask you if you'd like to save the ML routine to disk. Respond with Y or N.

If you wish to save 32 Sprites to disk, press Y and the program will prompt you for a filename. Type in your choice of a filename and hit Re- turn. Make sure a disk is in the drive. Be careful because the program doesn't check for disk errors.

After the program is saved or after pressing N at the save prompt, the pro- gram will ask if you want to print an in- formation sheet. The info sheet is sim- ply a listing of the starting and ending addresses of the ML routine; the SYS addresses that enable and disable 32 Sprites; and a copy of the main menu parameters, with the on/off status and address. If you'd like a copy, turn on your printer and press Y. Once the print- out is completed or after hitting N, the program will clear the screen and end. The 32 Sprites machine language is now in memory and ready to be used.

Your Own Programs

With 32 Sprites, you can now write your own BASIC programs that contain up to 32 sprites. Before calling the SYS address to start 32 Sprites, your pro- gram must clear out the shadow regis- ters; otherwise, a screen full of gar- bage sprites will appear on the screen when 32 Sprites starts. You can do this by poking Os into the shadow regis- ters with something like the following.

100 FOR J=0 TO 31: POKE 52992+J,0: NEXT

This line will set each sprite's Y position to 0. Don't forget to do this to any oth- er shadow registers which are being used, too.

Once all registers have been cleared and/or set up as desired, use SYS and the starting address of the ma- chine language program. Thirty-two

AUGUST 1993 COMPUTE G-25

PROGRAMS

Sprites will enable raster interrupts, Clear out the temp page, and begin to operate.

The best way to handle the shadow registers is to define a variable at the beginning of the program with the reg- isters' location. Here's an example.

110 YPOS=52992: REM Y POSITION SHADOWS

Then to change any given sprite's Y po- sition, use the POKE command.

120 POKE YPOS+5,100: REM SPRITE 6'S YPOS

Note that you subtract 1 from the sprite’s actual number. To change sprite 32's Y position, you'd add 31 to the YPOS. To change sprite 1's Y po- sition, you could use YPOS plus 0, or simply YPOS.

The shadow registers of High X bit, X expand, Multicolor, and Priority oper- ate a bit differently. Each of these reg- isters can be either off (by poking them with a 0) or on (by poking them with any number other than 0).

Each of the sprite parameters you turned on before generating 32 Sprites with its BASIC generator can be changed for each sprite by using the corresponding shadow register. Note that 32 Sprites doesn’t change any registers in the VIC chip which you turned off before generating 32 Sprites.

For example, multicolor can still be used even if you didn't turn it on from 32 Sprite’s main menu. However, be- cause you told 32 Sprites to leave the register off, its shadow registers won't work, and you won't be able to tell 32 Sprites which sprites are multicolor and which are not. But you can change the actual register in the VIC chip.

For example, if you decide before- hand that you are going to design all of your sprites in multicolor mode, you could turn off the multicolor shadow reg- isters before generating and then tell the VIC chip to display all sprites that it draws in multicolor by using POKE 53276,255.

32 Sprites won't interfere with the mul- ticolor register, and the VIC will display all eight sprites as multicolor. In order to display more sprites, 32 Sprites

G-26 COMPUTE AUGUST 1993

tricks the VIC into displaying either two, three, or four sets of eight sprites on the same screen. The VIC believes it's displaying eight sprites in all, and it dis- plays them in multicolor.

Thirty-two Sprites can handle up to the maximum number of sprites you set for it on the main menu. Every sin- gle sprite can be displayed anywhere on the screen. Displaying more than eight sprites on a horizontal row could cause flickering and some distortion. Thirty-two Sprites operates at its best when the sprites are spaced out along the y-axis. Careful designing of game screens will prevent too many sprites on one row.

You may have noticed there wasn't a shadow register which turns a sprite on or off. To do this with 32 Sprites, sim- ply set the corresponding sprite’s Y po- sition to 0. This tells 32 Sprites you don't wish to have that sprite drawn.

Hints and Tips

While greatly enhancing the 64’s graph- ics capabilities, 32 Sprites is a ma- chine language routine which does take up processor time. The more sprites displayed on the screen and the more parameters set to on, the slow- er the computer runs. The best way to conserve speed is to cut down on the number of sprites. Of course, whenev- er you need all 32 sprites, this will not be possible.

The other way to increase the speed of the computer is to turn off any unneeded sprite parameters. In 32 Sprites’ machine language routine, on- ly the parameters turned on are updat- ed by the program. The rest are left to the VIC chip to handle. Although it takes a minimal amount of time to copy a value from a shadow register to the corresponding VIC register, it becomes noticeable when you multiply this time by 32.

The parameters which bog down the computer the most are the High X bit, X expand, Multicolor, and Priority. Do without them whenever you can. Al- though the High X bit cannot usually be done without, Priority is rarely used and can usually be set to off.

The next way to conserve processor time is to place the sprites nearer the top of the screen. Thirty-two Sprites be- gins at the top of the screen and search-

es down until it finds the number of sprites for which it was set. By placing the sprites closer to the top, 32 Sprites will have to do less searching and use less processor time.

You may notice some distortion of the tops and bottoms of the sprites when you're using 32 of them. This is because the computer may be too slow to update the VIC registers as fast as needed when the sprites are in certain positions. The best way to avoid this is to leave the top and bot- tom row or two of the sprite definitions blank.

Because 82 Sprites is a raster inter- rupt, it does change the interrupt vec- tor at $0314-$0315. Machine language programmers can still use another inter- rupt, as long as it doesn't use another raster interrupt. Every '/eo second, like the normal timer interrupt, and after all the sprites on the screen have been drawn, 32 Sprites jumps to the normal interrupt routine, usually located at $EA31. This JMP is located at the start- ing address plus $61. It can easily be changed to jump to your own interrupt routine instead. Just remember to end your interrupt with IMP $EA31.,

Although 32 Sprites provides im- proved sprite capability and flexibility, it's not infallible. Placing the sprites in certain positions can often cause flick- er or cause some sprites to disappear. The best way to prevent flicker is to de- sign playing screens which space the sprites out along the y-axis.

Since the VIC chip is actually limited to eight sprites, 32 Sprites divides all of the sprites into eight-sprite chunks and displays each chunk as one group. You still cannot display more than eight sprites on a horizontal line be- cause of the VIC chip's limitations. If you decide to put more than eight on one row, 32 Sprites will do its best to display more than eight sprites per hor- izontal line.

How It Works

Thirty-two Sprites works by use of the VIC chip feature called raster inter- rupts. The computer screen is redrawn every '/eo second. After one screen is drawn but before the next one begins, 32 Sprites quickly sorts the sprites in or- der from lowest Y position to highest Y position. On the screen, that is from

the sprite closest to the top to the one closest to the bottom.

The program then displays the top- most eight sprites and tells the VIC chip to let 32 Sprites know when these sprites have been drawn. Once the VIC chip alerts 32 Sprites, the screen is only partially redrawn. The topmost eight sprites have been drawn, but the rest of the screen hasn't been drawn yet. So 32 Sprites puts the next eight sprites into the VIC's registers, and they are drawn. This process repeats for each series of eight sprites.

A Demonstration

To give you some idea of 32 Sprites's power, try this demonstration program. The demo consists of a BASIC pro- gram and machine language sprite da- ta. Before you can run the demo, how- ever, you must generate 32 Spritess. Load and run the main BASIC pro- gram. Once the menu comes up, type 14 and hit Return. When the program asks you if you want to save to disk, an- swer Y and type in 32 for the filename. This is the name the demo searches for when it runs. Don't print out the in- formation sheet at this time.

To help avoid typing errors, enter the demo with The Automatic Proofread- er. Save the program before you try to run it.

Sprite data is written in machine lan- guage. Enter it with MLX, our machine language entry program. Again, see “Typing Aids." When MLX prompts, re- spond with the following addresses.

Starting address: C3A0 Ending address: CAFF

Since the demo automatically loads this data, save it with the filename 32 DEMO.ML. Make sure that this file and 32 are all on the same disk as the de- mo. Control the demonstration with a joystick plugged into port 2.

32 Sprites

KX 106 REM COPYRIGHT 1993 - CO MPUTE PUBLICATIONS - AL L RIGHTS RESERVED

REM WRITTEN BY BILL SOU DAN

REM POKE53281,0:POKE53280,8 : PRINT" {CLR}":ZP=191 PRINT" {CYN} {CLR} {H} {N}

HB 116

MA KC

120 139

XxX 146

MP

DK

156 166 179 186

196 269

216

226

238

246

258 266 276 286 296

366 316

326

338 346

356 366

376 386

396 49g

416 426

430

446

456 468

476

{BLU} {G}{CYN} {14 SPACES}32 SPRITES" POKE1663,103:POKE55335,

6

PRINT" {BLU}{39 T}{LEFT}

{INST} {T}"

PRINT: PRINTTAB (15) "{33M

AIN MENU"

PRINT:DIM P$(12),P(12,1

) ,HS$ (16)

X$="G123456789ABCDEF"

FORJ=1T016:HS(J-1) =MID$ (X$,J,1) :NEXT

FORJ=@T012:READPS (J) :NE

XT

DATA "STARTING ADDRESS" ,"Y POSITION", "x POSITI

ON™, "HIGH X BIT™

DATA "X EXPAND", "COLOR" ,"MULTICOLOR", "PRIORITY hn 7 "POINTER"

DATA “TEMP PAGE", "ORDER TABLE","EXTRA Y TABLE" ,"MAX # OF MOBS"

FORJ=GTO12:READ P(J,8),

P(J,1):NEXT

DATA 3,49152,3,52992,1, 53024

DATA 1,53056,2,53088,1, 53126

DATA 2,53152,2,53184,1, 53216

DATA 3,52736,3,52672,3, 52704

DATA 3,32

FORP=6T012:GOSUB1200

EXT PRINT" {YEL}14) {CYN}GE

NERATE {WHT}32 SPRITES"

WS="{HOME}{21 DOWN}"

GOSUB136G: PRINTWS; : INPU

T"{3}YOUR CHOICE";CS$

C=VAL (C$) : IFC<1ORC>14TH

EN340 IFC>12THEN47@ IFP(C-1,@) =3THEN420

GOSUB1360: PRINTWS; :PRIN

T"{3}SELECT: ";PS$(C-1); " {WHT}1.¢3} ON {2 SPACES}{3}2. {WHT}

{2 SPACES}OFF"

GETAS: IFAS<>"1"ANDAS<>"

2"THEN39G

IFAS="L"THENP (C-1,0) =1 IFAS="2"THENP (C-1,@) =2

GOSUB1360: PRINTWS; :MLS= "_1":INPUT"{3}NEW MEMOR

¥ LOCATION"; MLS

IFLEFTS (ML$,1) ="$"ANDLE

N (ML$) =5THENDS=ML$:GOSU

B134G :ML=D:GOTO459

ML=VAL (MLS) : IFML<GORML>

65535THEN46G

P(C-1,1)=ML

P=C-1:G0SUB128G:GOTO34B

iN

IFC=14THENS19

CJ

BB

XK

HJ

HP

AS

PE

JA Qu

JP

486

496 500 516 520

530 540

559

566

576

586

596

600

645

607 608

609 619

620

636

632 635

636 637

638 646 659

660 676

GOSUB136@: PRINTWS;:PRIN T"{3}SELECT: {WHT}1.{¢3} 16 {WHT}2.¢3} 24 {WHT} 3.43} 32" GETAS: IFAS<>"1"ANDAS<>" 2"ANDAS$<>"3"THEN496 P(12,1)=(VAL (A$) *8)+8:G 0T0460 REM GENERATE ML CODE AD=P(G,1) GOSUB1370 PRINT" {HOME} {11 DOWN} {CYN} "TAB (12) "GENERATIN Gioia.” DEF FNH (X)=INT (X/256) DEF FNL (X)=X-(FNH (X) *25 6) PRINT" {DOWN} "TAB (9) "INT TIALIZATION CODE..." MP=0:GOSUB144G FORJ=1T0P (12,1) /8:PRINT TAB(12)"RASTER HANDLER" 7J:GOSUB1560:NEXT AD=AD-34:DA$="A9FA8D12D GA9008D00004C31BA":GOSU B143G POKEAD-5,FNL(P(0,1) +100 ) : POKEAD-4, FNH (P(@,1)+1 GB) GOSUB 1907 DI=AD:DA$="78A9318D1403 A9EA8D1503A9908D15DG8D1 ADGA9818DGDDCA9GG8DGDDC A993" DAS$=DA$+"2@D2FF5860":GO SUB1430 GOSUB1370: PRINT" {HOME } {7 DOWN}"'TAB (16) "COMPLE Isa iT PRINTTAB(5)"{2 DOWN}BEG INNING ADDRESS:";:D=P(6 71) :GOSUB1390 PRINTP(G,1);" S"+AS$:PRI NTTAB (5) "ENDING ADDRESS :{3 SPACES}"; :D=AD:GOSU) B1300 PRINTAD;" $"+AS PRINT"{DOWN} ENABLE 32

{SPACE}SPRITES: {3 SPACES}";:D=P(0,1): OSUB1368

PRINT"SYS";P(G,1);" (JM P{SHIET-S! SPACE} S"+AS+")™

PRINT" DISABLE 32 SPRIT ES:{2 SPACES}";:D=DI:GO SUB1366

PRINT"SYS";DI;" (JMP

{ SHIFT=SPACE}$"+AS+#") " PRINTTAB (13) "{2 DOWN}SA VE 32 SPRITES ML?" GETAS: IFAS<>"Y"ANDAS<>" N"THEN65@ IPAS="N"THEN719 GOSUB137G: PRINT" {HOME} {7 DOWN}"TAB(5) "ENTER F ILENAME:"; :OPEN1,@: INPU T#1,F$:CLOSEL

AUGUST 1993 COMPUTE

G-27

PROGRAMS

JD

DQ

XM

KG

RP sc

KM

MR KE QH DG

GE

CK

QX

SA

HC

ES

BR

AF MX GJ RR RX

BQ PJ

FS

EJ

680

696

788 716

720 736 746

750 760 776 780

790

800

862

804

806

808

816

826 836 846 856 860

876 880

898 998

PRINT: PRINTTAB(15)" {2 DOWN}SAVING...." SYS57812 FS$,8,1:POKE193 ,ENL(P(G,1)) :POKE194,EN H(P(@,1)) :POKE1L74,FNL(A D+1) POKE175,FNH(AD+1):SYS 6 2957 GOSUB1370: PRINT" {HOME} {10 DOWN} "TAB (10) "PRINT OUT INFO SHEET?" GETAS: IFAS<>"Y"ANDAS<>" N"THEN720 IFAS="N"THENPRINT" {CLR} "SEND GOSUB1370: PRINT" {HOME} {16 DOWN} "TAB (14) "PRINT TNGioe jeiait OPEN4,4,7:PRINT#4: PRINT #4: PRINT#4 PRINT#4,SPC(23)"32 SPRI TES" PRINT#4:PRINT#4: PRINT#4 PRINT#4,SPC(23) "STARTIN G ADDRESS:";:D=P(@,1):G OSUB1399 PRINT#4,P(6,1);" S$"+A$: PRINT#4 , SPC (23) "ENDING {SPACE} ADDRESS: {2 SPACES}"; :D=AD:GOSUB 1390 PRINT#4,AD;" $"+AS:PRIN TH4 PRINT#4,SPC (19) "ENABLE {SPACE}32 SPRITES: {3 SPACES}";:D=P(@,1):G 0SuB1300 PRINT#4,"SYS";P(G,1);" {SPACE} (JMP {SHIFT-SPACE}$"+A$+")" PRINT#4,SPC(19) "DISABLE 32 SPRITES: {2 SPACES}" } :D=DI:GOSUB1308 PRINT#4,"SYS";DI;" (JMP {SHIFT-SPACE}$"+AS+")": PRINT#4:PRINT#4 FORJ=1T012: PRINT#4,SPC ( 16) ;P$ (J) ;SPC(24-LEN (PS (J)))3 IFP(J,@) =3THENPRINT#4,"

N/A"; TEP (J,@) =2THENPRINT#4," OFE"; TFP(J,6)=1THENPRINT#4," ON ";

PRINT#4,SPC(5);P(J,1)7: D=P(J,1) :GOSUB1340 PRINT #4, SPC (10-LEN (STR$ (P(J,1)))) ¢"S"+AS2NEXT PRINT#4:CLOSE4:END

DATA 78,A9,<0+72,8D,14, 63,A9,>0+72

DATA 8D,15,03,A9,7F,8D, 6D,DC,A9, G1

DATA 8D,1A,D0,AD,11,D@, 29,7F,8D,11

JB 916 DATA DG,A9,FA,8D,12,D6,

G-28

COMPUTE AUGUST 1993

SF

FH

928 930 949 959 960 976 986 996 1666

1618

19626 1636 1640 1656 1068 1676 1684 1696 1169 1116 1126 1136

1146 1142

1144

1149 1156

1160 1176

1186 1209 1216

1229 1236

1246 1256

A9,00,8D

DATA <0+100,>0+190,A9,F F,A2,00,9D

DATA <9,>9,E8,D0,FA,A9, FF,8D,15,D9

DATA 58,66,01,02,04,08, 16,20,40,80

DATA FE,FD,FB,F7,EF,DF, BF,7F,A9,@1 DATA 8D,19,D0,AD,<0+100 1>0+100,0A DATA A8,B9,<G+101,>0+10 1,8D,<8+95 DATA >0+95,B9,<0+102,>0 +162,8D DATA <0+96,>0+96,4C,FEF, FF,4C,31,EA

DATA @6,<6+111,>0+111, 00,08,00,66

DATA 00,01,00,09,A2,00 7BD,<1,>1,C9,1D,96,0E, Ag

DATA B9,<9,>9,38,04,C8 14C,<O+121

DATA >6+121,8A,99,<9,> 9,E8,E0,<C

DATA 96,E6,A2,00,A0,1D 1B9,<9,>9,16

DATA 4F,C8,B9,<9,>9,10 149,C8,B9,<9

DATA >9,10,43,C8,B9,<9 1>9,10,3D,C8

DATA B9,<9,>9,10,37,C8 1B9,<9,>9,19

DATA 31,C8,B9,<9,>9,19 1 2B,C8,B9,<9

DATA >9,10,25,C8,B9,<9 1>9,16,1F,C8

DATA B9,<9,>9,14,19,C8 7B9,<9,>9,18

DATA 13,C8,B9,<9,>9,19 ,@D,C8,B9,<9

DATA >9,16,07,C8,C@,1D 7BGO,AE,90,GF

DATA 9D,<A,>A,A9,FF,99 1$9,>9,E8,E9

DATA <C,90,A4,BG,18 DATA EG,08,80,05,BC,<@ +56,>0+56

DATA 88,2C,AG,FF,8C,15 ,DG

DATA A9,FF,9D,<A,>A DATA E8,E0,<C,90,F8,EE 1 $G+100

DATA >@+166,A2,<C,CA DATA BD,<1,>1,9D,<B,>B 7CA,10,F7,XX

END

POKE214,5+P:PRINT PRINT" {YEL}";P+1;" {LEFT}) {CYN}"PS(P) PRINT" {UP} "TAB (22) 7 IFP(P,@) =1THENPRINT" {3}0N "

IFP(P,@) =2THENPRINT" {4}0FF" IFP(P,@)=3THENPRINT"

BJ

SA AX

BD KF

JA KA JE QP DA JK KB

FB QE

EG

FX

cQ cr

XM KG AX Gs QB SE

HK

RA

HS

SP

ER

1266

1276 1286

1296 1366

1316

1326

1336

1346

1356

1360

1376

1386 1396

1460

1416

1426 1436

1446

1456

1466

1476

1486

1496

1568

1516

1526

1538 1546

{RED}N/A{3}"

PRINT" {UP} "TAB (26) 7P(P 71);"{5 SPACES}" D=P(P,1) :GOSUB1300 PRINT" {UP} "TAB (34) "S"; A$

RETURN

T=INT (D/4896) sAS=HS (T) :D=INT (D-T*4996)

T=INT (D/256) :AS=AS+HS ( T) :D=INT (D-T*256) T=INT (D/16) :BS=AS:AS=A $+HS(T) :D=INT (D-T*16) : BS=HS (T) tHS (D) +BS AS=AS+HS(D) : RETURN D=6:FORJ=3TOQSTEP-1:J1 =ASC (MID$(D$,5-J,1))-4 8:1FJ1>16THENJ1=J1-7 D=D+(J1*167J) :NEXT: RET URN PORX=21T024:POKE781,X: SYS 59903:NEXT: RETURN FORX=2T024: POKE781,X:S ¥S59903:NEXT: RETURN DAS="68FG0D";GOSUB143¢ POKEAD, 185; POKEAD+1,FN L(P(6,1)+56-SB) : POKEAD +2,FNH (P(G,1)+56-SB) :A D=AD+3 DAS="@D"+AAS+"BD"+AAS+ "FOOBD0G9":GOSUB1430 POKEAD, 185: POKEAD+1,FN L(P(@,1)+64-SB) : POKEAD +2,FNH (P(@,1)+64-SB) :A D=AD+3 DAS="2D"+AAS+"8D"+AAS: GOSUB1430:RETURN MP=1:FORJJ=1TOLEN (DAS STEP2:A$=MID$(DAS,JJ,2 ) :GOSUB1456:NEXT:MP=G: RETURN

READAS: LFAS="XX"THENRE TURN

IFLEFTS$ (A$,1)="<"THENL 508

IFLEFTS (AS$,1)=">"THENL 536

A1=ASC (LEFTS$(A$,1))-48 :A2=ASC (RIGHTS (AS$,1)) - 48: IFA1>16THENA1=Al-7 IFA2>1L6THENA2=A2-7 POKEAD,A1*16+A2:AD=AD+ 1:0N -(MP=8) GOTO1449 {SPACE}: RETURN

PL=@: IFLEN (A$) >2THENPL =VAL (MID$(AS$,4) ) WGS$=MIDS(A$,2,1) :WG=VA L(WG$) : IFWG$>"@"ANDWGS <"D"THENWG=ASC (WGS$) -55 POKEAD,FN L(P(WG,1)+PL ) AD=AD+1:0N -(MP=8) G 0T0144G :RETURN

PL=@: IFLEN (AS) >2THENPL =VAL (MIDS (AS,4)) WGS$=MIDS$ (A$,2,1) :WG=VA L(WGS$) : IFWGS>"@"ANDWGS$ <"D"THENWG=ASC (WG$) -55

ER

BH

GF

HF DA QR BB AG Qs AF AH CJ GP SP HK ES BE RQ GD PP XX

BB

HE QH PE

EE XP FP

QD AF

1556

1566

1576

1580 1596 1606 1619 1626 1636 1646 1656 1660 1676 1686 1696 1766 17198 1728 1738 1746 1756

1766

1776 1788 1796

1806 1816 1826

1839 1849

POKEAD,FN H(P(WG,1)+PL ) :AD=AD+1:0N -(MP=8) G 0T01440 :RETURN

POKEP (@,1)+101+3*2,FNL (AD) : POKEP (@,1)+162+3* 2,FNH (AD) DAS="A2GGAG": IFJ=1THEN DAS=DAS+"@G":EPS="G8": SB=0

IF J=2THENDAS=DAS+"68" tEPS="16":SB=8 IFJ=3THENDAS=DAS+"10": EPS="18":SB=16

IF J=4THENDAS=DAS$+"18": EPS="26":SB=24 DAS=DAS+"84BF":GOSUB14 30 IFJ=1THENB1=AD:GOTO166 ) B1=AD:DAS="B9":GOSUB14 36 POKEAD, FNL (P(16,1)-8): POKEAD+1,FNH (P(18,1)-8 ) SAD=AD+2 DAS=""3GGEA8B9<B>BA4BF1 86914CD12DGBGFB":GOSUB 1436 DAS="B9<A>A":GOSUB1436 DAS="10034C0GGGA8":GOS UB1430 DAS="B9<B>B9DG1D6":GOS UB143@6

IFP (2,0) =1THENDAS="B9< 2>29D6GD6":GOSUB143@0 IFP (7,8) =LTHENDAS="B9<¢ 7>748":GOSUB143G

IFP (4,@) =1THENDAS="B9< 4>448":GOSUB1430 IFP(6,@) =1THENDAS="B9< 6>648":GOSUB1436

IFP (5,G) =1THENDAS="B9< 5>548":GOSUB1434 IFP(3,0)=1THENDAS="B9<¢ 3>348":GOSUB1436

IFP (8,0) =1THENDAS="B9< 8>8A4BF99":GOSUB1436 IFP(8,G)=1THENPOKEAD,F NL (2640-SB) : POKEAD+1,F NH (264G-SB) :AD=AD+2 IFP(3,8)=1THENAAS="16D 6" ;GOSUB1380 IFP(5,@)=1THENDAS="689 9":GOSUB1436 IFP(5,6)=1THENPOKEAD,F NL (53287-SB) : POKEAD+1, FNH (53287-SB) :AD=AD+2 IFP (6,0) =1THENAAS="1CD @":GOSUB1386

IFP (4,0) =1THENAAS="1DD 0" :GOSUB1380 IFP(7,@)=1THENAAS="1BD 6":GOSUB1386

PL=6: IFJ>1THENPL=25 POKEB1+PL,FNL (AD) : POKE B1+PL+1,FNH (AD) :DAS$="E 8E8C884BFCG"+EP$:GOSUB 1439

PQ QG

BS

Qs

Qs MK

XA

XG

BE

1850 1868

1876

18890

1885 1899

1906

1965

1987

1916 19290

1936

D=254-(AD-B1l) IFD>129THENGOSUB1360:D AS="DO"+RIGHTS (A$,2):G 0SUB1436:GOTO1886 DAS="F0034C":D=B1:GOSU B139@:DAS=DA$+B$:GOSUB 1436 DAS="AD<A>A361GA8B9<B> B38E9078D12DGEEGG664CB CFEA99@8DG0GGGA9FA8D12D G4C31EA"

GOSUB1436 POKEAD-33,FNL(P(10,1)+ 8+SB) : POKEAD-32,FNH (P( 16,1)+8+SB) POKEAD-19,FNL(P(@,1) +1 @@) : POKEAD-9,FNH (P(G,1 ) +168) POKEAD-18,FNL(P(G,1)+1 66) :POKEAD-17,FNH (P (6, 1) +169) POKEAD-2,FNL(P(8,1)+97 ) :POKEAD-1,FNH (P(@,1)+ 97)

RETURN B1=AD:DAS="B9GGGG30GEA 8B9<1>1A4BF186914CD12D GBGFB":GOSUB1436 POKEB1+1,FNL(P(16,1)-8 ) : POKEB1+2,FNH (P (16,1) -8) : RETURN

DEMO

166 110 126 125 127 136

135 146

156 163 176

186 196

206 216

220 236 246 256

REM 32 SPRITES DEMO

REM

PRINT" {CLR} {N} {H}":POKE 53281, 6: POKE53280,0 IFA=OTHEN A=1:LOAD"32 D EMO.ML",8,1

IFA=1THEN A=2:LOAD"32", 8,1

REM INITIALIZE 32 SPRIT E REGISTERS

DIM C(1@) ¥=52992:X=53024 :HX=5305 6:C=53120 P=53216:PR=53275 FORJ=@T031: POKEY+J,@:PO KEX+J, 0: POKEHX+J, 0: POKE C+J,0:POKEP+J,14:NEXT FORJ=0T063: POKE704+J,0: POKE832+J,0: POKE896+J,0 :NEXT

FORJ=3T059: POKES32+J,25 5:NEXT

POKEPR,255:SYS 50080:SY S 49152:POKE53269,255 DT$="{HOME}{24 DOWN)" PRINTLEFTS$(DT$,8) ;TAB(1 5)"{CYN}32 SPRITES" PRINTTAB(9)"{7}CUSTOM 3 2-SPRITE RASTER™ PRINTTAB (15) "CONTROLLER

PRINT: PRINTTAB(9)"YOU C AN DISPLAY UP TO 32" PRINTTAB(6)"SPRITES ON

JM

EF

FJ

BF

GE

DG

EH

268 279

286

2968

306 319 326 336 346

356

368 376 375 377 378

379 386

385 398

490

416 426

449

456

466

476 486 499

506

519

{SPACE}THE SCREEN AT AN y"

PRINTTAB(7) "TIME. EACH {SPACE}SPRITE CAN MOVE" PRINTTAB (9) "ANYWHERE ON THE SCREEN." FORCL=1T010:READC (CL) :N EXT:DATA 8,2,9,108,7,1,7 118,9,2 FORJ=31TOGSTEP-1: POKEP+ J,13:FORCL=1T016: POKEC+ J,C(CL) :NEXT:NEXT

GOSUB 1619

GOSUB 1000

PRINTLEFTS (DT$,12) ; TAB ( 7)"YOU HAVE FULL CONTRO L OVER"

PRINTTAB(7) "EVERY SPRIT E OPTION EXCEPT" PRINTTAB (13) "Y-EXPANSIO nN." FORJ=@T031:POKEC+J, INT ( RND (1) *15)+1:NEXT:GOSUB 1626

FORJ=6T031: POKEC+J, 2:NE XT:GOSUB10290 FORJ=6T063: POKE832+J,0: NEXT FORJ=6T031:A=INT (RND (1) *3)+1:IFA=1THENPP=13 IFA=2THENPP=14 IFA=3THENPP=11 POKEP+J,PP:NEXT:CC=85 FORJ=3T059: POKE704+J,1N T (RND (1) *256) : POKE896+J 7CC3CC=255-CC: POKE832+7 7255

NEXT POKE53285, 7: POKE53286,1 G

GOSUB1626: POKE53276,255 :GOSUB10620:GOSUB162G: PO KE53276,@:GOSUB1620 FORJ=0T031: POKEP+J,13:N EXT

GOSUB162@: POKE53277,255 : GOSUB102@: POKE53277,0 PRINTLEFTS$ (DT$,12) ; TAB ( 5) "MOVE SPRITE #1

{2 SPACES}WITH JOYSTICK "

PRINTTAB(2)"IN PORT 2. {2 SPACES}PRESS + AND - TO CHANGE” PRINTTAB(3) "SPRITE NUMB ER.{2 SPACES}PRESS C TO CHANGE" PRINTTAB(8)"COLOR. PRES S Q TO QUIT." SYS 50272:POKE254,0:SP= 1 POKE254,SP-1:PRINTLEFTS (DT$,12);TAB(18) ;MID$(S TRS(SP),2);" " GETA$: IFA$="+"ANDSP<32T HENSP=SP+1:GOTO 490 IFAS="—-"ANDSP>1THENSP=S

AUGUST 19893 COMPUTE G-29

PROGRAMS

P-1:GOTO 490 C56¢:1B 1B 1B 1B 1B 19 19 19 DD |C796:60 GO OH BG GG GB GG GB 2G EJ 520 IFAS="C"THENPOKEC+SP-1,]| C568:19 19 19 19 18 18 18 18 E4 |C798:40 GG GG GO GB GO GG OG 28 (PEEK (C+SP-1) +1) AND15 C576:18 18 18 18 18 18 18 18 FB /C7AG:06 60 GO BG BG BG GO BO 30

EG 530 IFAS<>"Q"THEN5G@ C578:18 18 18 18 18 18 18 16 G2 |c7A8:00 G6 BG GG BG BB BB GO 38 GS 549 POKE828,@:SYS 828 C586:18 18 18 18 18 18 18 18 GC |c7BG:60 GB G6 GG BG BG GG GG 40 GG 999 END C588:18 18 18 18 18 18 18 18 14 |c7B8:00 GG 66 GG BG BB GB G5 48

DH 1660 FORJ=11T024:POKE781,J:| ©599:18 18 18 19 19 19 19 19 3B |c7c¢:06 96 ao ao

SYS 59903:NEXT:RETURN | C298:19 19 19 1B 1B 1B 18 1B 62 |c7c8:08 oo ao a6 4 He He a 38 DJ 1010 FORJ=17T01000:NEXT:RETU| C240:1B 1c 1c lc lc 1c 1E 1E Bl |c7Dd:66 66 G0 G9 GG oo GG GO Go

RN CSA8:1E 1E 20 20 2G 20 21 21 BS |c7D8:00 G8 86 BG GO GG GG GG 68 PQ 1020 FORJ=1T050G:NEXT:RETUR| CobG?22 23 23 23 25 25 25 25 59 |c7EG:06 O08 06 G0 G5 OH Od OG 70

N : a eeeeeae 3 28 ae 38 2h a a Be C7E8:00 G6 00 68 BO BG GG OG 78 32 DEMO.ML C5C8:30 32 32 34 35 35 37 37 AS |c7Fa:00 OB OB OO 00 OO OO OO Bo C3AG:78 AS GB 8D 62 CO AY C4 D5 | C5DG:39 39 3A 3C 3C 3E 3E 3F E8 |C8GG:4G GG GB BB BB BG GB BG 91 C3A8:8D 63 CG A2 OG 8A GA GA 5A | C5D8:41 41 42 44 44 46 47 49 F4 |C8G8:00 GB OG GO GG GG GG aa 99 C3BG:0A GA 9D EG C4 8A 4A 4A BG | C5EG:4B 4B 4C 4E 56 51 53 55 17 |C810:06 GB GG GO GG GO GO Go Al C3B8:4A 4A 9D CO C4 E8 EG 26 63 | C5E8:56 58 SA SB SD SF 68 62 42 |C818:40 GB G1 G1 G1 G1 G1 G1 EB C3CG:98 EB 58 68 39 00 39 GG DB | C5FG:67 69 6A 6C GF 71 76 79 46 |C82G:G1 G1 G1 G1 G1 G1 G1 G1 Bl C3C8:39 60 39 BG 39 GG 39 GB 5G | C5F8:7C 8G 83 86 98 97 AD AD 9B }c828:51 G1 G1 G1 G1 G1 G1 G1 BO C3D6:39 66 39 GG 39 GG 39 GB 58 | C6GG:A9 BA C@ CA CD D1 D4 D7 BD |cg83G:G1 G1 G1 G1 G1 G1 G1 G1 Cl C3D8:39 GB 39 6G 39 GG 39 GB 6g | C608:DB EG El ES E6 EB EA EE FS |C838:G1 G1 G1 G1 G1 G1 G1 G1 CO C3EG:39 36 39 GB 39 GG 39 GG 68 | C61G:FG F2 F3 FS F7 FB FA FC 47 |c84G:61 61 G1 G1 G1 G1 G1 G1 D1 C3E8:39 G6 39 GB 39 GG 39 GB 7G | C618:FD FF @1 G2 G4 G6 G6 G7 30 |c848:G1 G1 G1 G1 G1 G1 G1 B1 DO 86 39 GG 39 G8 39 GG 78 | C620:G9 OB GC GC GE 16 1 11 19 |cg5G:G1 G1 G1 G1 G1 G1 G1 G1 El 63 39 GO 39 BG 39 GG BG | C628:13 13 15 15 16 18 18 19 52 |cg58:g1 G1 G1 G1 G1 G1 G1 G1 ED @6 BD CO C4 DG 24 BC Gp | C639:19 1B 1B 1D 1E 1E 26 26 16 |cg6G:G1 G1 G1 G1 G1 G1 G1 G1 Fl C4 B9 G6 C5 9D 26 CF 1F | C638:2G 22 23 23 23 25 25 27 14 |cg68:G1 G1 G1 G1 G1 G1 G1 G1 FO 66 C7 9D 46 CF BO GG FD | C640:27 27 28 28 28 2A 2A 2C 1D |c87G:G1 G1 G1 G1 G1 G1 G1 G1 G2 9D 6G CF C8 D@ G5 AD 28 | C648:2C 2C 2C 2D 2D 2D 2F 2F FA |C878:G1 G1 Gl G1 Gl G1 G1 G1 GA 9D CO C4 98 9D EG C4 B7 | C650:2F 31 31 31 31 32 32 32 E3 |C8BG:G1 G1 G1 G1 G1 G1 Gl G1 12 50 C4 BC EG C4 BO GG DD | C658:32 34 34 34 34 34 36 36 EA |c888:G1 G1 G1 G1 G1 G1 G1 G1 1A C43G:C6 9D 20 CF B9 GG CB 9D 82 | C669:36 36 36 36 37 37 37 37 FC |cg9G:G1 G1 G1 G1 G1 G1 G1 G1 22 C438:40 CF B9 OG CA 9D @@ CF ag | C668:37 37 37 37 39 39 39 39 14 |cg98:g1 G1 G1 G1 G1 G1 G1 G1 2A CGO FE 90 G7 AO GG 9D C3 | C6749:39 39 39 39 39 39 39 39 FD |cgag:G1 G1 G1 G1 G1 G1 G1 G1 32 C4 AG GG 98 9D EG C4 39 | C678:39 39 39 39 39 39 39 3B 68 |cgaa:G1 G1 G1 G1 G1 G1 G1 G1 3A EG 26 90 AD 4C 31 EA 7F | C680:39 39 39 39 39 39 39 39 BE |c8pG:G1 G1 G1 G1 G1 G1 G1 G1 42 C458:00 G8 GG GG BO GB BG BG E1| C688:39 39 39 39 39 39 39 39 16 |cgps:G1 G1 G1 G1 G1 G1 G1 G1 4a C460:78 AI 75 8D 62 CO AI C4 46 | C695:39 39 39 37 37 37 37 37 DF |caca:G1 G1 G1 G1 G1 G1 G1 G1 52 C468:8D 63 CG A9 GB 85 FD 85 DB| C698:37 37 36 36 36 36 36 36 EG |cece:G1 G1 G1 G1 G1 G1 G1 G1 SA C47G:FC 85 FE 58 68 A6 FE AD 88 | C6AG:34 34 34 34 34 32 32 32 26 |cang:g1 G1 G1 G1 G1 G1 G1 G1 62 C478:00 DC 4A 90 03 FE 6G CF 6F| C6A8:32 32 31 31 31 2F 2F 2F E8 |cgp8:G1 G1 G1 G1 G1 G1 G1 G1 6A €480:4A 90 G3 DE G6 CF 4a 90 G6 | C6BG:2F 2D 2D 2D 2C 2C 2C 2A 2E |cREg:G1 G1 G1 G1 G1 GG OG GO GB C488:15 48 BD 26 CF 18 69 Gl 1B| C6B8:2A 2A 28 28 28 27 27 25 BE |cges:GG GG BG GB GG BG GO BG 7A C490:9D 20 CF 90 G8 BD 40 CF 7B | C6C9:25 25 23 23 22 22 20 20 BA |cErg:o0 66 GG GG BG GG BG GB 82 C498:49 G1 9D 40 CF 68 4A 9G 94 | C6C8:20 1E 1D 1D 1B 1B 19 18 F2 |cerg:gd 6G G6 GO BG GG 6G OG BA C4AG:15 48 BD 20 CF 38 £9 G1 B4| C6D0:18 16 16 15 15 13 11 11 2C |c9qg:32 32 33 33 34 35 36 36 EB C4A8:9D 20 CF B@ G8 BD 4G CF 95| C6D8:10 16 GE GC OB 89 G9 B7 8A | c9ogg:37 38 38 39 3A 3B 3B 3C 51 C4B0:49 G1 9D 4G CF 68 4c 31 ca| C6EG:G6 G4 G2 G1 G1 FF FD FA Cl |c91g:3c 3D 3B 3F 3F 40 41 41 8B C4B8:EA 66 G@ GG GO GG GO Go B7| C6E8:FS F8 F7 FS F3 FO EE EB BC |c918:42 43 44 44 45 45 47 47 7F C4C0:G1 G1 G1 G1 G1 G1 G1 G1 4A | C6FO:EA E8 E6 El EG DC DB D7? 33 |c92G:48 48 49 4A 4B 4C 4C 4D 29 C4C8:61 G1 G1 G1 G1 GO GG GB 4B | C6F8:D4 CD CA C5 CO BA AY 23 81 |c928:4D 4B 4F 58 5G 51 52 52 A3 C4DG:00 GG GG GG BG BG BO GB 5A| C700:G0 BG BH BB GO BG BG BG BF | c939:53 54 55 55 56 56 58 58 97 C4D8:00 GG GB GB GB G1 G1 G1 69| C7G8:6G BG GG GB BO BG BB BB 97 | c938:59 59 SA 5B 5C 5C 5D 5E 3D C4EG:3A 4A 5A 6A 7A 8A 9A AA E9| C719:00 9G GB GB GG BG BO BG IF |co4g:5E SF 6G 61 61 62 62 63 BY C4E8:BA CA DA EA FA GC 1C 2C F8| C718:96 GG GG GB GB BG GB GB A7 | c948:64 65 66 66 67 67 69 69 AF C4FG:3C 4C 5C 6C 7C BC 9C AC F9| C720:66 BG GG GB BG BG GB GB AF |c95g:6A 6A 6B 6C 6D 6D 6E 6F 55 C4F8:BC CC DC EC FC @C 1C 2C FA| C728:06 06 84 GG GG GG GB BB B7 |co5g:6F 76 71 72 72 73 73 74 DL C500:A9 97 99 8B 86 83 7C 79 C5| C730:90 GO BB GB GG GB GO BB BF |c96g:75 76 76 77 78 78 79 7A AS C508:76 74 71 6F 6A 69 67 65 3E| C738:0G G9 GB GG BG BO BB OG C7 |c968:7B 7B 7C 7C 7E 7E 7F 8G SD C516:62 64 5D 5B 5A 58 58 56 81| C740:9G GH GB GO GG BG GG OH CF |c97G:8G 81 82 83 83 84 84 85 ED €518:53 51 5G 59 4E 4C 4B 49 34| C748:09 9G G8 BO BO BG OG OO D7 |\c9o78:86 87 87 88 89 89 8A 8B BD C520:47 47 46 44 42 41 41 3F @7| C750:09 GB GG BG GF BB GG OG DF |coBg:8Cc BC 8D 8D BF BF 9G 9G 74 C528:3F 3B 3C 3C 3A 3A 39 39 94| C758:06 G6 03 GG GG GO GO BG E7 | c9gg:91 92 93 93 94 95 95 96 Fl C530:37 35 35 34 34 32 30 30 89| C760:00 GB G0 GG BO GG BB BG EF | c99g:97 98 98 99 9A 9A 9B 9C DS €538:30 2F 2F 2D 2D 2B 2B 2B F7| C768:00 08 G8 BG BB GB GB BG F7 |c998:9D 9D 9E 9E AB AG Al Al 8C C54G:2A 2A 28 28 28 26 26 26 3F| C770:G0 GB OG GG GG GO BO OO FF |coag:A2 A3 A4 A4 AS AG AG AT GA Geaai28 25 25 23 23 23 21 21 BF | C778:90 GB G6 GO GG GO GO OG G8 |coAB:AB A A AA AA AB AC AD ES €55G:21 21 26 20 20 1B 1B 1E gE| C780:@@ 66 Gd BO GG BO BG BO 18|coBG:AD AE AF AF BO Bl B2 B2 IC Css8:1E 1E 1c 1c 1c 1c 1c 1B 64| ©788:80 06 G0 G6 GB GO GG GG 18)c9B8:B3 B4 BS BS B6 B7 B7 BB 22

G-30 COMPUTE AUGUST 1993

C9CG:B9 BA BA BB BB BC BD BE FD C9C8:BE BF C@ CO Cl C2 C3 C3 34 C9DG:C4 C4 C6 C6 C7 C7 CB CO F5 C9D8:CA CA CB CC CC CD CE CF D5 C9E@:CF D@ Dl Dl D2 D3 D4 D4 4c C9E8:D5 D5 D7 D7 D8 D8 DY DA GE C9FG@:DB DB DC DD DD DE DF E@ ED COF8:E@ Bl El E2 £3 E4 E5 E5 44 CAG@:E5 E4 E3 E2 El El EG EG AS CA@8:DF DE DD DD DC DB DB DA C7 CA1@:D9 D8 D8 D7 D7 D5 DS D4 F7 CA18:D4 D3 D2 Dl Dl CF CF C5 CA2@:CE CD CC CC CB CA CA C9 DF CA28:C8 C7 C7 C6 C6 C4 C4 C3 18 CA3@:C3 C2 Cl C8 CO BF BE BE DD CA38:BD BC BB BB BA BA B9 B8 FB CA4G6:B7 B7 B6 BS BS B4 B3 B2 6C CA48:B2 Bl BO AF AF AE AD AD F5 CA5@:AC AB AA AA AQ AQ AB AT 14 CA58:A6 A6 A5 A4 A4 A3 A2 Al 84 CA6G:Al AM AG YE YE 9D 9D 9C 38 CA68:9B 9A 9A 99 98 98 97 96 4C CA76:95 95 94 93 93 92 91 98 9C CA78:98 8F 8F 8D 8D 8C 8C 8B 48 CA8G:8A 89 89 88 87 87 86 85 64 CA88:84 84 83 83 82 81 8G 80 C5 CA98:7F 7E 7E 7C 7C 7B 7B 7A 68 CA98:79 78 78 77 76 76 75 74 7C CAAG:73 73 72 72 71 76 6F 6F DD CAA8:6E 6D 6D 6C 6B 6A 6A 69 88 CABG:69 67 67 66 66 65 64 63 1D CAB8:62 62 61 61 6@ 5F 5E 5E FS CAC@:5D 5C 5C 5B 5A 59 59 58 AB CAC8:58 56 56 55 55 54 53 52 35 CADG:52 51 58 56 4F 4B 4D 4D 8E CAD8:4C 4C 4B 4A 49 48 48 47 F8 CAEG:47 45 45 44 44 43 42 41 4D CAE8:41 40 3F 3F 3E 3D 3C 3C A6 CAFG:3B 3B 3A 39 38 38 37 36 15 CAF8:36 35 34 33 33 32 32 39 BO

Bill Soudan manipulates sprites in Gi- rard, Pennsylvania.

MIDWAY COMMAND

By Michael Sedlezky

Midway Command is a two-player strat- egy game for the 64. You and a friend as- sume the roles of American and Japa- nese naval commanders during World War Il.

Experience the Battle of Midway as each of you orders your powerful carrier forces into battle with each other. Your flo- tilla is made up of battleships, cruisers, de- stroyers, and aircraft carriers. There are 14 vessels per side. Winning the game is accomplished by sinking your enemy's carrier. Your ships battle each other with cannon shells.

Midway Command is written entirely in machine language, but it loads and runs like a BASIC program. To enter it, use MLX, our machine language entry pro-

gram. See “Typing Aids” elsewhere in this section. When MLX prompts, re- spond with the following values.

Starting address: 0801 Ending address: 1680

The game is played on a grid that resembles a standard checker- board. Each occupied square con- tains a marker that indicates a ship. The American marker is black, and the Japanese marker is white.

Use your joystick in port 2 to po- sition the game's cursor to select a square of your choice. As the cur- sor moves over a square, a view of the ship is displayed along with its type and two scale bars.

Ship Strength

One scale represents the ship’s strength. This scale represents the amount of damage the ship can with- stand, As the scale decreases in size, the ship is in danger of sink- ing. Damage inflicted on any ship cannot be repaired.

Ship Firepower

The firepower scale represents the amount of damage the ship's guns will inflict on an enemy vessel's strength. This scale will increase if this ship fires the blow that sinks an enemy ship. As a ship gains expe- rience, it becomes a deadlier fight- ing vessel.

Playing the Game

The game is played in turns. Each player has the option either to move or to attack. The American commander starts first. You choose one of your ships by selecting it with the cursor and then pressing the fire button. You then have the op- tion either to move or to fight by pressing a function key. Follow on- screen directions.

You finish a turn by selecting a tar- get square. The cursor is a green shade if the target square is within legal boundaries. In order for you to move onto a square, it must be un- occupied and within range. The bor- der flashes red if you attempt an il- legal move.

Moving and Firing

All ships can move at least one square in any direction. Destroyers can move two.

To attack, you must select an enemy ship that is within firing range. Each ship has different ranges, and you can fire in any direction. The carrier cannot fire. A destroyer can fire a distance of only one square. Cruisers can fire two squares only; they cannot fire one square. A battleship can fire one or two squares. The battleship is your strongest piece, followed by the cruis- ers and then by destroyers. Protect your carrier at all times.

Game Hints

Whenever possible, force the enemy to move into your range of fire so you can get first shot. Use your cruiser or bat- tleship to finish off an enemy so you can increase your stronger piece’s fire- power.

Fight cruisers with destroyers. Use the destroyers’ two-square advantage to jump to an adjoining square where the cruiser can't fire on you.

If your opponent takes a defensive strategy, analyze the setup and probe the weakest side with your destroyers. Attack from different sides and try to draw the ships out of position.

MIDWAY COMMAND

6861:6C G8 G1 GG 9E 20 33 33 48 @859:32 39 GG 86 BG GB 27 1D EB 6811:13 69 1D 27 27 27 1D lp 30 6819:27 27 27 27 68 OG 26 24 4E G821:22 28 24 26 26 26 24 24 69 G829:26 26 26 26 G6 19 G3 OO 67 9831:98 86 G6 FA OB GF BC GB BD G839:00 GG GG BO GB GB 8F GH 68 G841:08 GG BG BO GB GG GG BB 51 G849:96 G9 GB BG BG GB BG BG 59 G851:00 6G 18 8G BGO 82 86 BO OF G859:AA 46 G2 7C 8G G5 FF 46 2F G861:06 7C BB BG BO BB BG BG 9B 9869:06 84 GB GB BG BB BG BB 79 G871:06 68 GB GB GB BG BB GB 81 @879:06 G6 GG BG BG BB 87 BB 98 G881:066 G3 G8 BG BB BB BG BB 91 9889:06 GB GB GG BB GB GB BB 99 G891:061 6G GB G63 BH GB 33 BO BB G899:03 FF @@ 79 FF @@ 3F FF 41 G8A1:FE FF FF 3F FF FF @F FF C3 G8A9:FF G7 FF FF 86 G6 GG GG 7B 98B1:06 6G GB BG BG GG BB BB Cl 98B9:08 6G GB GB BG BB 8B BG CA G8C1:08 6G GB BG GG GB BG BB D1 G8C9:8% 88 GG CO GB GB 8G BG 27 G8D1:06 D@ GB BB 9B BB BB D7 72 G8D9:CB GG FF 9C GG FF FF 8@ 94

AUGUST 1993 COMPUTE G-31

PROGRAMS

6951:06 9959:00 O961:FF @969:FE 0971:06 0979:06 9981:96 0989:06 G991:66 6999396 G9A1:06 G9A9:FE G9B1:06 G9B9:G0 G9C1:06

69C9:60 68 99D1: 00 @9D9:06 G9E1:F8 G9E9:80 G9F1:06 G9F9:0G GAG1:00 @AG9:00 GA11:49 GA19:00 GA21:FE GA29:FF GA31:00 GA39:06

GAF9: 00 OBG1:65 GB09:96

oo 6S oo

G-32

FF 6G 96 Ci) go Cy) Ci) 1F PF CT) G6 Ci) 6G oa 96 oo FF 06 Cr) ao Cr) CT) CT) G3 FE CK) ao oo GO is) vr) oa cc GG Cs) 0G oo 60 ao EE FE Cr) aa 89 6a cs) BO FF FF go 66 oo i) oo Ct) FP c3 oa i) Go oo oo Xe oo FC oO oo oo Go oo

FF oo 6G 9G 0G 96 oa 7F FF 06 Vt) 09 Ti) oo ao FF FE Ui) oo a6 Uy) 6G 06 UT) FF 1) ao 1) 60 i) 6G ca 1) oo C11) ao v1) 6a i) OF FF ao Cs) 66 i) Ur) Oo FF FR 66 6G Ui) Ot) rs) 9G Cy) FE i) yt) oo Ur) a6 9G FE OF ao oo oo Cy) 96

COMPUTE AUGUST 1993

@B11:6¢6 @B19:98 @B21:7F @B29:FF GB31:48 GB39:66 0B41:80 @B49:05 @B51:99 GB59:80 OB61:FF OB69:FG 6B71:66 @B79:66 @B81:300 @B89:06 @B91:09 9B99:96 GBA1L:96 GBA9:FF GBB1:80 GOBBI: 98 GBC1: 06 OBC9: G6 @BD1:00 @BD9: 63

0C21:43 @C29:FF 6C31:06 9C39: 06 6C41:86 6C49:66 @C51:60 @C59:A5 GC61:FF OC69:FE 6C71:06 6C79:66 @C81:60 6C89:68 6C91:86 6C99:28 GCA1: 36 GCA9: GB GCB1:40 GCB9: 06 G6CC1:60 6CC9: 86 GCD1:46 GCD9:38 @CE1:60 GCE9: G0 OCF1:60 GCF9: G8 @DG1:A9 @pg9:85 @N11:8C @D19:FE @D21:F6 @D29:CF @D31:61 GD39:18

@D41:GE @D49:93 @D51:6B @D59:0D 6D61:07 @D69:F7 @D71:13 @D79:8D @D81:AG @D89:AD @D91:19 @D99:47 9DA1:35 8DA9: 20 @DB1:8D @DB9:CF 6DC1:86 GDC9:F9 6DD1:61 @DD9:GD @DE1:8D @DE9:8D ODF1:10 @DF9:8D GEG1:20 G569:8D GE11:GE @E19:14 GE21:23 @£29:8D GE31:CF 9E39:CD @E41:A9 GE49:CF GE51:99 @E59:8D GF61:9D GE69:CF GE71:60 GE79:AD @F81:55 @E89:55 GE91:55 GE99: FF GEAL:FF GEA9:0D @EB1:6F GEB9: GC @EC1:6C @EC9:12 @ED1:99 @ED9:12 @EE1:06 GEE9: 26 @EF1:@1 GEF9:15 GFO1:03 GFG9:20 GF11:GE GF19:20 GF21:14 GF29:95 GF31:6B GF39:12 GF41:13 OF49:G0E GF51:20 GF59:05 GF61:12 GF69:20

DG D7 96 19 16 12 8D 16 26 ag FO AQ 4c @D GE AG cg G1 76 8D CF GF bg CE ll 13 @4 2D 99 ao 78 CA 66 14 BD 9D CF 08 9D 78 AA AA AA 99 FF 19 G4 26 Gl 26 26 GE OF 20 26 06 GE 09 12 12 20 13 61 17 61 13) GE 16 17 GE

GF71:68 GF79:16 GF81:12 GF89:14 GF91:2G GF99320 @FA1:19 OFA9: B80 GFB1:9A @FB9:8D GFC1:2D GFC9:19 @FD1:8D @FD9:8D G@FE1:8D GFE9:37 OFF1:85 GFF9:4A 10661:8D 1699:6F 1611:BD 1619:69 1621:61 1629:88 1031:6D 1639:60 1641:26 1049:CF 1651:CF 1059:BD 1061: 2D 10669:D9 1071:A6 1079:AD 1081:CF 1689:AG 1091:A9 1999:CA 1G6A1:8D 10A9:88 19B1:61 16B9:20 16C1:88 1609: 20 16D1:11 16D9:65 1GE1:11 18E9:DG 1GF1:50 10F9:9D 1161:CF 1169:A9 1111:ED 1119:AD 1121:8D 1129:CF 1131:26 1139:8D 1141:CF 1149:0A 1151:66 DUS 9 sue 1161:63 1169:88 1171:6F 1179:F8 1181:D4 1189:D4 1191:11 1199:8D

BE E3 33 63 c4 BC B6 BA 86 9c AD B4 F8 D8 DB 19 30 3D 09 98 Ag 4a 81 E4 @3 99 16 B9 8D Ag 76 1A 09 2A 1E 8D 88 16 63 BO E6 AD 13 22 9E A8 69 6B De 21 47 69 G2 DB a 8C 3F 9A 16 ras 82 98 71 58 2a E2 68 57 75

11A1:8D 11A9:78 11B1:14 11B9:FA 11¢C1:D4 LLCO eI! 11D1:FC 11D9:84 11E1:85 11E9:65 LLF1:A5 11F9:CE 1261:60 1209:FF 1211:06 1219: 3F 1221:8D 1229:9D 1231:78 1239:61 1241:9D 1249:CE 1251:8D 1259:CA 1261:9D 1269:50 1271:D4 1279:9D 1281:50 1289:D4 1291:16 1299:68 12A1: 67 12A9:14 12B1:32 12B9:42 12C1:4A 1209:14 12D1:BC 12D9: 6B 12E1:6B 12E9:00 12F1:A9 12F9:A2 1361:21 1369:8D 1311:CE 1319:49 1321:00 1329:16 1331:61 1339:FE 1341:69 1349: 86 1351:FF 1359:16

G4 Dg CA G6 85 FE F8 85 8E CF 85 0G 16 EE FD 09 Cs) ce AD A8 96 09 67 OD BD 99 78 BD 99 99 8D Gl oc 3c 36 A6 AE B8 15 LS Cr) oo ag 8D AG gl @D CF E6 8D 8D 85 CA FC FD Bl

138

1391:F1l

26 CF 4c

13B9:29 13C1:ED 13C€9:96

13D1:93 13D9:14 13E1:92 13E9:13 13F1:08 13F9:AD 1461:8D 1409:CF 1411:19 1419:0F 1421:0E 1429:GA 1431:58 1439:CF 1441:3AD 1449:EO 1451:CF 1459:28 1461:6D 1469:6E 1471:90 1479:CE 1481:A9 1489:D4 1491:CA 1499:69 14A1:0D 14A9: FO 14B1:EE 14B9;:GE 14C1L:CF 14C9:AD 14D1:64 14D9:EE 14E1:04 14E9:BD 14F1:D8 14F9:CF 1561:7D 1569:83 1511:D3 1519:A9 1521:AD 1529:D9 1531:6F 1539: 3B 1541:8C 1549:CF 1551:18 1559:18 1561:18 1569:8D 1571:A9 157 158 1589:8D 1591:D8 1599:DG 15A1:CF

23 4E 25 Bl F8 8c 66 E9 14 D7 8B EA 86 13 9E 88 51 Dl 20Cc

43 Al 96 76 5D aly) 76 2D BE AA 66 Fl A8 D7 63 D8 B4 41 63 Do 92 18 BC 6c 72 48 26 3D 2D El 8E 53 1F

64 cs 64 45

8E 39 26 62 7A 9A 6c

15C9:AA 15D1:9D 15D9:99 15E1:26 15E9:8C 15F1:A9 15F9:14

BS 99 97 CI) 03

AUGUST 1993 COMPUTE G-33

PROGRAMS

93 78 74 78 16 16 16 AA D4 16 CF D4 16 4c Oo 60

cs 45 o9 EO 36 6B DE 16 26 E8 C6 3E 69 6E 23 32

16 8D 16 15 4c 16 07 AD CE CE 16 CE CE 91 6o 0)

Ag 15 8D 63 Ag 49 29 19 18 85 91 18 85 D3 1) i)

1F 63 14 58 OF 61 G1 CE 69 D3 D3 69 D3 8D @5 9@

14 68 AD CE 78 7A 79 16 85 79 a4 85 77 16 @5 Ur)

16293AD 1631:8D 1639:AG 1641:BD 1649:BD 1651:BD 1659:BD 1661:BD 1669:49 1671:31 1679360

Michael Sedlezky is a 35-year-old me- chanic and father of four children. He’s the author of Gazette programs Code- busters, Hoverjet, and Checker Com- mand. He lives in Mississauga, Ontar- jo, Canada.

CHASE

By Jon Piltingsrud

You're at home, quietly studying with a friend, when a fanfare of noise erupts from your 64. It announces the arrival of a message from aliens who have taken control of your computer. The communi- qué informs you that the advanced race has sent the two of you something impor- tant: a game! Before you know it, you and your friend are in deadly competition on the game's playing field.

Chase is an arcade-style, two-player game for the 64 that requires two joy- sticks. The game consists of two pro- grams: Chase, a BASIC loader; and Chase ML, a machine language pro- gram. To help avoid typing errors, enter Chase with The Automatic Proofreader. See “Typing Aids” elsewhere in this sec- tion. Be sure to save a copy of the pro- gram before you try to run it.

Chase ML is written in machine lan- guage. Use MLX, our machine language entry program, to enter it. When MLX prompts, respond with the following start- ing and ending addresses.

Starting address: 2795 Ending address: 3484

Be sure to save the ML program with the filename CHASE ML on the same disk as Chase. Chase automatically loads this program when it runs and searches for that filename.

G-34 COMPUTE AUGUST 1993

The Rules

When you run Chase, you'll see the message from the aliens. After you've read it, press any key, and you and your opponent will be on the playing field. One player operates the red disk and the other the yellow one.

You'll see your weapons on the field. They resemble footballs. Each weapon is colored to match one of the players. The idea simply is to pick up your weapon and touch your oppo- nent, thereby destroying him.

While the rules may be simple, exe- cuting the game plan isn't. Your oppo- nent will be trying to avoid you until he is armed. As powerful as these weap- ons are, they have a few quirks. You can hold them for only a few seconds before they fly from your grasp and land on another part of the screen.

As you chase after your weapon, you may reach your opponent's first. If you touch your opponent's weapon, it will jump to a random location on the screen. To make the chase more inter- esting, each field has a number of ob- stacles scattered about it.

To quit the game and see a tally of each player's kills, press the Q key. From the score screen, press either of the joystick fire buttons to resume.

CHASE

CS 16 REM COPYRIGHT 1993 - COM PUTE PUBLICATIONS INLT L TD - ALL RIGHTS RESERVED IFA=@THENA=1:LOAD"CHASE {SPACE}ML",8,1

POKE56, 39:CLR:A=RND(-TI) 2C=65526 $=54272:D=56576:E=53272: F=53265

POKEF ,, 0: POKE53289,: POKE 53281,6

FORL=GT023: POKES+L,@:NEX T

PRINT" {CLR}{6}{DOWN} "7A S="1#S$5() *+,"+CHRS (34) POKES+24,15: POKES+18,128 POKES+6, 255: POKES+2, 255: POKES+4, 33 POKES+15,RND(G) *5+1 POKED, PEEK (D)OR3: POKEE, 2 8:POKEF, 27 FORW=@T03:FORL=GTORND (8) *4 PRINTMIDS (AS, INT (RND (@) * 11+1),1); POKES+1, PEEK (S+27)/8:FOR T=1T050:NEXT

NEXTL: PRINT" ";:NEXTW

RB 12 HQ 14 FD 16 MC 18 PM 26

22

68

73

72 74 76 78 8G 82 84 86 88 96 92 94 96

98

164 162 164 166

168 116

112

114 116 118 120

PRINTCHRS (13)CHRS$(145)TA B(13);

READBS$: IFBS<>"Z"THENPRIN TBS$:GOTO32

READBS$: PRINTBS: POKES+18, @:POKES+4,9 POKE198,@:WAIT198,1

POKE826,@:POKE821,0:SYS1 6133 POKEF,@: PRINT" {CLR}" POKE781,9: POKE782, 9: POKE 783,0:SYSC PRINTTAB(9)"{GRN}/////// VINITITIITITT LT" PRINTTAB (9) "{RED} PLAYER {SPACE}ONE'S SCORE:"; A=PEEK(82@) : PRINTA: PRINT PRINTTAB (9) "{YEL}PLAYER {SPACE}TWO'S SCORE:"; B=PEEK (821) : PRINTB: PRINT : PRINTTAB (9) IFA>BTHENPRINT" {GRN} {3 SPACES}PLAYER ONE WIN s[" IFA<BTHENPRINT"{GRN} {3 SPACES}PLAYER TWO WIN st" IFA=BTHENPRINT" {GRN} {2 SPACES}THE GAME IS TI ED." PRINTTAB(9)"//////////// LITA1111/" POKE781, 24: POKE782,8:POK E783,0:SYSC AS="PRESS FIRE TO PLAY A GAIN" POKED, PEEK (D) OR3: POKEE, 2 8:POKEF, 27 PRINTTAB(8)"{GRN}"; A=46:GOSUB90:IFB=1THENSS PRINTTAB (8) "{BLK}"; A=10:GOSUB90:IFB=1THENSG GoTO8s PRINTAS;"{UP}":B=6:X=1 IF (PEEK (56326) AND16) =OTH ENB=1 IF (PEEK (56321) AND16) =OTH ENB=1 IFB=QTHENX=X+1: IFX<>ATHE N92 RETURN DATA H DATA DATA DATA @eae DATA DATA eeae DATA D

LIVE BROADCAST WIT GAZETTE'S TACHYON IMPULSE COPYRIGHT CIRCA 1993. . .@@@

GREETINGS FROM THE PLANET +#S$%*&&S().

WE ARE WELL PLEASE

DATA DATA DATA DATA

TO BRING YOU THIS GAME PLAYED BY THE COOL GUYS AND GALS ON INHABITED PLANE

GJ 122 CH 124 FX 126

ER 128 DB 138

AS 132

Gs 134 HA 136

CK 138 JM 149 JA 142 FR 144 CA 146 RS 148 BX 156 QJ 152 RA 154 Sx 156 EM 158 AK 166 FS 162

EJ 164

DATA THROUGHOUT THE KNO DATA STELLAR SYSTEM. @@@ DATA WITHIN MOMENTS THI

DATA TWO PLAYER MARVEL DATA WILL BE TRANSFERRE

DATA TO YOUR REMOTE 64.

DATA FORTUNATELY ENOUGH DATA FOR YOU- WE HAVE M

DATA IT POSSIBLE TO PLA DATA ON YOUR PRIMITIVE-

DATA ALBEIT JUGGERNAUT- DATA COMPUTER INTERFACE

-@@@

DATA COINCIDENTALLY- TH E

DATA AUTHORS ALSO HAPPE N

DATA TO BE AMONG YOU.@@ eee

DATA THEIR NAME'S ARE. {SPACE}. .

DATA TODD PILTINGSRUD A ND

DATA JON{2 SPACES}PILTI NGSRUD. @@@@@

DATA IF YOU HAPPEN TO R UN

DATA INTO THEM- TELL TH EM

DATA TO PHONE HOME. @@@@ @aee

DATA Z,.+. »END OF MESS AGE

CHASE ML

2795:A9 279D:8D 27A5:8E 27AD: 2D 27B5:8E 27BD: 2B 27C5:1F 27CD:1E 2705:2C 27DD:E6 27E5:6A 27ED:2D 27F5:D0 27FD:78 2805:99 286D:63 2815:80) 281D:AD 2825:4C 282D:20 2835:68 283D:AD 2845:8F 284D:61 2855:29

GA 8D 24 2E 8D 6F 2E E3 7D 2D 8D DC 2D A2 9G 71 22 2B 8E 6D 2E 8E 7B 2F 8E DA 20 8E 1A D@ E8 CB 19 D@ 26 Bl 28 26 9B B7 20 9F 2B AD 1E D@ AD 35 DG AO G1 8D 1A DG AD 41 DG 8D B4 2C 4A 8D B3 BS 9G 2A A2 @0 26 El 2B 3D G2 D@ 18 EE 22 2E AQ BE 8D 27 DG AY 64 8D 7B G4 AD 15 D@ 29 FB 8D 15 57 4C 62 28 E@ G3 DB BS 3c 20 9F 2B 58 4E B3 2C C6 31 A2 G1 20 El 2B EO GE D@ 18 EE 6D 2E AQ BA 86 28 D@ AQ 64 8D DA 2D 27 15 D@ 29 F7 8D 15 DG 27 38 28 EG G2 DG GB 78 98 9B 2B 58 4C 38 28 D3 FO GF AQ 7F 8D 88 DC 4D 81 DC C9 BF DG 88 4C 7B 28 AD 7B 2D F@ G2 AY AF AE DA 2D FG 82 69 G2 9B 03 FO DF C9 G3 FO DB 2F

285D: 26 2865: 8E 286D:03 2875:FB

NOFVQH#NOGCCCCOTDOSRAVNOASASBBOBANGVISIUYT

298D:00 2995:62 299D:2E 29A5:03 29AD:6E 29B5:62 29BD:6E 2905:29 29CD: 29 29D5:AE 29DD:BD }529E5:5¢

29ED:1B 295: 2A 29FD: 2A 2AG5: 2A 2AGD:58 2A15:5E 2A1D:5E 2A25:5D 2A2D: 3F 2A35: 3F 2A3D:41 2045: 42 2a4D:44 2A55:02 2A5D: 2A 2A65:91 2A6D: 62 2A75: 06 2A7D: 66 2A85:AA

96 EE 3F FB 32! FB 15 8E A2 AQ 8D 8D 14 26 28 Da 27 cg De DG DD 8D 8E PA Ly ol 16 6c @D 68 6B Ur) 82 ae} 2B F2 2B 62 63 63 3c 2B G2 2B AE BD 56 85 a1 91 Ui) 2A 2A 57 5D SE SE 5B 3E 3F 41 44 65 8c 84 G2 93 oo 66 BD

2A9D:DB 2AA5: 22 2AAD:C8 2AB5: 04 2ABD:05 2AC5:C8 2ACD: 62 2AD5:65 2ADD:B1l 2AE5:29 2AED:91 2AF5:65 2AFD:AC 2B@5:CE 2B@6D:44 2B15:05 2B1D:40 2B25:2B 2B20:98 2B35:CB 2B3D:C6 2B45:61 2B4D:CF 2B55:02 2B5D: 04 2B65:26 2B6D:C5 2B75:A8 2B7D:A4 2B85:00 2B8D: 28 2B95:09 2B9D: FO 2BA5:96 2BAD:35 2BB5: 2B 2BBD: 64 2BC5: 00 2BCD: 8D 2BD5: 2B 2BDD:FB 2BE5:2C 2BED:CB 2BFS:F9 2BFD: FO 2C05:DG 2C6D:BD 2C15:D9 2C1D: 39 2C25:A9 2C2D:3D 2C35:A9 2C3D:C9 2045:49 2C4D:61 2C55:FF 2C5D:CB 2C65:8E 2C6D:CA 2075: 67 2C7D: 68 2c85:2¢c 2C8D:2C 2095:88 2C9D:9D 2CA5:A2 2CAD:16 2CB5: 06

65 Dg c8 DO DG C8 Bl 64 65 04 AG 86 Bl 64 65 04 95 85 G4 36 7E C8 G2.CB G2 85 1D 2B 1E 2B 85 04 CE lc 6G 6B 58 2B G1 62 cc 61 26 80 04 C6 DG GC D4 DS BE 26 66 Cl 48 98 68 26 64 AS 66 85 96 86 88 2F G2 A2 AG 2B 48 AQ 18 69 DO 68 GA GA E@ 2B GD EG OO F7 8E BS 2C GA 5D AD 55 38 BO 64 2c 38 8D CC C4 2c G1 8D C4 2c @1 28 FE FG FF 69 FO 64 99 BC 2c 'c9 CBE2C 16 FA 48 BD 2c CC BO G6 48 98 16 DE B8 2C @3 BD F8 8E 0G 6G

AUGUST 1993 COMPUTE

68 cD cB 2c 2c oo

DB Tt) 8D Dg ag E6 2B Ag A8 OL G4 Go 98 63 D6 65 85 1) 58 62 CA G8 C6 G2 ol Ol c2 44 68 BC Go 85 oo 06 Ag 69 6E 9D 69 GA DD 66 CB AD 2c 2c ol 99 Go DG 2c Dg 2c OF 2c cg AQ AD G3 2c AG 2c BC BC CA 86 CB CA i) a6

G-35

PROGRAMS

2CBD:0G GG 86 GO GG BG GG G1 17 | 2EED:G3 20 9F 2B 60 28 GB 8G YE |311D:73 G3 G3 BC G7 G3 7E 30 8C 2CC5:0@ G2 G6 G4 GG GB BG GB FE | 2EF5:28 G2 80 AD GG DC 29 GF AG | 3125:18 GC FS 3C 66 66 BC 18 76 2CCD:00 AG GF 8C G5 D4 BC GC 99 | 2EFD:49 GF AA AD 10 DG 29 G1 GA |312D:33 36 FC 68 38 18 GC G6 SC 2CD5:D4 AG GA 8C G6 D4 BC GD 74 | 2FG5:8D 8C 2F 18 AD BG D@ 7D 41 |3135:73 DB 6E GE 1C 38 8G BO BB 2CDD:D4 AG 96 8C GE D4 AG 29 89 | 2FgD:6B 2F 8D GB DG AD 8C 2F 24 | 313D:G8 BG OG CC 66 66 77 77 OF 2CE5:8C 19 D4 AG G3 8C 1l D4 GE | 2F15:7D 76 2F 8D 8C 2F AD 10 1B | 3145:66 66 33 18 36 66 66 66 AA 2CED:AG 81 8C G4 D4 8C GB D4 8C | 2F1D:DG 29 FE OD 8C 2F 8D 16 2B | 314D:G6 7C GG GG GB FE G6 E6 CO 2CF5:A@ 40 8C 12 D4 AG G2 8C 1B | 2F25:DG 18 AD Gl DG 7D 81 2F 66 | 3155:3E 18 1E G6 FE 18 30 FC 56 2CFD:FA 2F 78 A@ 8D 8C 14 G3 82 | 2F2D:8D G1 DB AD G1 DC 29 GF 64 | 315D:06 FC BG OG 3E FG 38 FO 19 2D05:A@ 2F 8C 15 63 58 66 20 BB | 2F35:49 GF AA AD 14 D@ 4A 29 AD |3165:3F F3 GG GB GB GG BG GG 64 2D8D:29 2D 26 88 2D 20 E7 2D BA | 2F3p:G1 8D 8C 2F 18 AD G2 DG 5G | 316D:38 38 70 BB GB GB BG BG GB 2D15:20 2F 2E 26 7A 2E 26 F8 D8 | 2F45:7D 6B 2F 8D G2 DG AD 8C 37 |3175:38 38 G0 BG GO GO EF FF 62 2D1D:2E 68 A8 68 AA AQ Gl 8D CF | 2F4D:2F 7D 76 2F GA 8D 8C 2F 33 | 317D:08 GG GG 7C C6 DE F6 C6 GE 2D25:19 D@ 68 46 AD 15 D@® 29 DD | 2F55:AD 16 DG 29 FD @D 8C 2F A7 | 3185:C6 7C OG 18 18 78 18 18 D6 2D2D:G4 D@ 4A AD 7B 2D FG @5 59 | 2F5p:8D 14 DG 18 AD G3 DG 7D BA | 318D:18 FF GG 7C C6 G6 1C 74 BA 2D35:CE 7B 2D D@ 48 AD 7D 2D 69 | 2F65:81 2F 8D G3 NG 6G GB GG 3A | 3195:CB FE @G 7C C6 G6 3C G6 AC 2D3D:C9 GA D@ OF AO G2 BD 27 Al | 2F6D:0G OG FE FE FE @@ @2 G2 99 | 319D:C6 7C OG GE 1E 36 E6 FF FA 2D45:D@ 20 9B 2B A9 BB 8D 7D 1C | 2F75:G2 GO BG GG BG FF FF FF D4 | 31A5:06 G6 @G FE C@ FC 96 G6 88 2n4D:2D FG 95 CE 7C 2D D@ 25 67 | 2F7D:96 66 6B OB GO FE G2 OG DB | 31aD:C6 7C BG 7C C6 CA FC C6 54 2D55:A9 06 8D 7C 2D AE 7D 2D CB | 2F85:08 FE 62 G6 6 FE 82 G8 E3 | 3185:C6 7C OG FE C6 GC 18 18 39 2D5D:BD 7E 2D 8D @@ D4 E8 BD 97 | 2F8D:CE FA 2F DG G8 AY 8G 8D 7A | 31BD:18 18 GG 7C C6 C6 7C C6 GB 2D65:7E 2D 8D G1 D4 E8 8E 7D FO | 2F95:04 D4 8D OB D4 AD FB 2F 12 | 31c5:c6 7C GB 7C C6 C6 7E G6 C6 2D6D:2D E@ BA DG G8 AD 15 DB DE | 2F9D:FG 21 CE FC 2F DB 1C AY G5 | 31CcD:Cc6 7c GO GO GB GO GG GO B2 2075:09 64 8D 15 D@ 68 GO G6 66 | 2FA5:G5 8D FC 2F EE FS 3F AD G4 | 31D5:60 G8 0 GB GO BO GO GO 38 2D7D:0A 39 35 3E 2A A5 1F 1F FA | 2FAD:F8 3F C9 D2 D@ GD AY BG CC | 31DD:48 BO BO BA BB BB BG GG 4a 2D85:15 @@ 6G AD 15 DG 29 G8 8B | 2FB5:8D FB 2F AD 15 DO 29 FE D7 | 3165:08 GG BO BG BO GB GB GO 48 2D8D:D@ 4A AD DA 2D F@ 65 CE 4C | 2FBD:8D 15 D@ AD FD 2F F@ 21 CC | 31ED:00 GG GO GG GB 15 15 1A EB 2D95:DA 2D D@ 4G AD 7D 2D C9 4E | 2FC5:CE FE 2F D@ 1C AY G5 8D 5D | 31F5:1A 1B 1B GG GG 55 55 AA 3A 2D9D:GA D@ GF AY G7 8D 28 DB 3D | 2FCD:FE 2F EE F9 3F AD F9 3F D8 | 31FD:AA FF FF @@ 00 54 54 A4 54 2DA5:26 9F 2B A9 GB 8D 7D 2D 56 | 2FD5:C9 D2 DG BD AY BG BD FD 1F | 3295:A4 E4 E4 E4 E4 E4 E4 E4 49 2DAD:F9 G65 CE 7C 2D D@ 25 AD G4 | 2FDD:2F AD 15 DO 29 FD 8D 15 60 | 32gp:E4 E4 E4 1B 1B 1B 1B 1B 62 2DB5:66 8D 7C 2D AE 7D 2D BD 5C | 2FE5:D@ AD 1B D4 8D G1 D4 8D 78 | 3215:1B 1B 1B 1B 1B 1A 1A 15 6D 2DBD:DD 2D 8D 67 D4 E8 BD DD 18 | 2FED:68 D4 68 A8 68 AA AY Gl SF | 321D:15 @G GO FF FF AA AA 55 61 2DC5:2D 8D 68 D4 E8 8E 7D 2D 12 | 2FF5:8D 19 D@ 68 48 8G GB G5 B9 | 3225:55 GG GB E4 E4 A4 A4 54 DO 2DCD:E@ GA DO G8 AD 15 DB GI 22 | 2FFD:66 G5 2C GG GB BG GB BG 23 | 322D:54 BG GB 54 5C 58 78 68 JE 2D05:08 8D 15 D@ 68 GB G6 GA 6G | 3665:G6 BG GB BG BB 7C GE 7E El | 3235:E8 28 28 28 2B 29 2D 25 1D 2DDD:6B 2F A2 25 31 1C Dl 12 16 | 360D:C6 7E GB CG CO FC C6 C6 CA | 323D:35 15 D7 GO BA 2A 2B 2D FB 2DE5:0@0 @@ AD 22 2E F@ 35 AD 65 | 3015:C6 FC 68 GG GB 7E CB CG 54 | 3245:35 15 D5 OD BS DS 57 SC 25 2DED:24 2E C9 GA D@ G7 AY BB BS | 361D:CG 7E GB BE B6 7E C6 C6 5C | 324D:76 CO BB 5C 7A EA AA GO B4 2DF5:8D 24 2E F@ 65 CE 23 2E CC | 3625:C6 7E 68 BB BB 7C C6 FE G7 | 3255:G6 BG GB BG AA AA AB GD 1lE 2DFD:D@ 22 AO G6 8D 23 2E AE E2 | 362D:CG 7C GG GE 18 18 7E 18 24 | 325p:gg g@ BO GD BS DS 57 SC A2 2605:24 2E BD 25 2E 8D @@ D4 85 | 3635:18 18 6G BG BG 7E C6 C6 FS | 3265:99 @G BG 5C 7A EA AA Gl 65 2E0D:E8 BD 25 2E 8D Gl D4 E8 D7 | 303D:7E G6 FC C@ C@ FC C6 C6 58 | 326p:gg ao GG GO AZ AB AB 68 33 2E15:8E 24 2B E@ GA DG G5 AY DC | 3045:C6 C6 GG 38 GO 78 18 18 68 | 3275:68 28 28 28 28 29 29 2A G2 2E1D:00 8D 22 2E 6@ BG G6 GA 1D | 364D:18 7C GO G6 GB G6 G6 G6 63 | 327p:2A GA GB GG GB GG 40 AA A4 2625:1F 15 A5 1F 3E 2A 39 35 3F | 3055:06 86 7C C@ C@ CC D8 F8 BY | 32g5:aB AD 35 GG GG BB 35 D5 12 2E2D:6@ GG AD 6D 2E F@ 38 AD 69 | 305D:CC C6 GG 78 18 18 18 18 C6 | 3280:57 5E 74 GO GG GG 7G EA GF 2E35:6F 2E C9 GA DG 67 AD GB A4 | 3065:18 7C GB GB GG C6 FF FF GBC | 3295:AA AA GO GG GB GG GG AA A4 2E3D:8D 6F 2E F@ @5 CE 6E 2E 7F | 366D:DB C3 68 BG BB FC C6 C4 F4 | 329D:AB AD 35 6G G3 GD 35 D5 76 2B45:D0 25 A9 G6 8D 6E 2E AE 1A | 3075:C6 C6 GB BG BG 7C C6 C6 31 | 32a5:57 5E 70 57 54 5C 78 ES BE 2E4D:6F 2E BD 7@ 2E 8M @7 D4 36 | 347D:C6 7C 68 BB BB FC C6 C6 AB | 32AD:A8 AG BB GO GG AA 8B 8G BA 2E55:E8 BD 76 2E 8D @8 D4 FB A5 | 3085:FC CO CG BG GG 7E C6 C6 FA | 32n5:8F 8C 8C GO GB AA BG GO 41 2E5D:8E 6F 2E EG GA D@ G8 AY FD | 388D:7E G6 G6 BO BG FC C6 CG Bl | 328n:FF GG GG GG GG AA G2 G2 D2 2£65:00 8D 6D 2E 8D 88 D4 6G 4C | 3995:CB CO GB BB BB 7E CB 7C 7E | 32c5:F2 32 32 BC BC BF BB 8G 63 2E6D:00 66 GA Dl 12 31 1C A2 D9 | 369D:06 FC 6G 18 18 FE 18 18 C6 | 32cp:AA GG GG GG GG FF G0 GO 87 2E75:25 6B 2F 6G OG AD 1F D@ EA | 36A5:18 GE GB BG BB C6 C6 C6 GS | 32p5:An GO GG 32 32 F2 G2 G2 16 2E7D:4A 48 9G 1A AD F2 2E 8D E7 | 36AD:C6 7E 3G BG BG C6 C6 C6 8G | 32pD:AA GG GB BC 8C BC BC BC 9C 2£85:00 D@ AD 16 D@ 29 FE GD G3 | 39B5:7C 38 GG GG BG 63 6B 7E 46 | 3265:8C BC 8C 32 32 32 32 32 59 2E8D:F3 2E 8D 16 D@ AD F4 2E 77 | 36BD:3E 36 G8 BG GG C6 6C 38 F6 | 32ED:32 32 32 2A AS 83 3F FD BG 2E95:8D @1 D@ 4C AF 2E AD @@ 69 | 30C5:6C C6 BO BB BB C6 C6 C6 7D | 32F5:D5 54 42 AB 2A C2 FC 7F G3 2E9D:D@ 8D F2 2E AD 16 DG 29 7F | 36CD:7C 38 FG GB BG FE GC 38 E4 | 32FD:57 15 81 6G GG BB GG GB 83 2EA5:61 8D F3 2E AD G1 D@ 8D E7 | 36D5:66 FE 98 1C 1C 1C 1C 1C 8D | 33¢5:00 GG GG GO GG GG GG G2 6D 2EAD:F4 2E 68 4A 48 96 1A AD 28] 36DD:1C G8 1C 86 GG BB BG GB CF | 33gD:AA 8G GA AA AG GA 55 AG 4D 2EB5:F5 2E 8D 62 D@ AD 16 DG 98 | 3GE5:GG6 GB GB BG GB GG GO BB 46 | 3315:29 55 68 29 7D 68 29 FF E4 2EBD:29 FD GD F6 2E 8D 16 D@ D7 | 3GED:G0 6G GB BB GO BG GB BO 4E | 331D:68 29 FF 68 29 7D 68 29 Cl 2EC5:AD F7 2E 8D @3 D@ 4C E2 6C | 3GF5:60 BG GB BG BG BB BB GO 56 | 3325:55 68 GA 55 AB GA AA AG 4A 2ECD:2E AD @2 DG 8D F5 2E AD 48 | 3GFD:9G GG BG GG GG BB GB GB SE | 332p:G2 AA 86 GH GG GG GG OG 4F 2ED5:16 D@ 29 G2 8D F6 2E AD G6 | 31465:60 BG BB 7C C6 C6 6C 18 71 | 3335:g4 BG BB GB GB BB BG 2G OB 2EDD:03 D@ 8D F7 2E 68 4A 48 11 | 316D:30 34 1F 96 86 7C CB C@ 3C | 333p:g6 BG G8 GB GB GB BG GG A4 2BE5:99 63 20 9B 2B 68 4A 94 29 | 3115:7C G6 G6 C@ CG CE DB DB D8 | 3345:4¢ gG GB GG GO GO GO GG AB

G-36 | COMPUTE AUGUST 1993

334D:06 08 GB GB GB GB GB BG B3 3355:08 G8 68 GB 28 BB GB AA AT 335D:08 62 96 86 6G AA BB GB C9 3365:28 66 90 GB BB BG GB GB DF 336D:08 66 GB GO GG BB GB GB D3 3375:068 6G GB BB GG BG GB BG DB 337D:68 66 G2 G6 GG GB BB GG 24 3385:98 66 GG G6 GG BG GO G2 ED 338D:8A 80 GA AA AG GA 54 AG BB 3395:29 55 68 28 7D 66 29 FF 35 339D:68 G9 FF 68 29 7C 68 29 36 33A5:55 68 68 55 20 GA AA AG 46 33AD:02 A2 86 GG GG BG GB GB CD 33B5:66 69 96 G8 GG GG BB BG IC 33BD:08 00 68 GG 6G GG GB GB 25 33C5:06 G6 6G BB BG BGO GO G2 2E 33CD:GA 86 GA 8A AG GA 56 AB Bl 33D5:29 54 68 20 7D 406 98 FF Fl 330D:60 09 FF 68 29 76 68 26 39 3365:54 68 G8 54 26 GA 82 26 25 33ED:02 A2 86 6G GG BO GB GB GE 33F5:08 G6 G8 OG BB BG BB GB SC 33FD:06 G6 G8 BB GB BG BB BB 65 3405:06 G6 88 GG GG BG GB G2 GF 3460:0A 66 62 8A AG G8 5B AGB CO 3415:29 54 28 20 76 48 G8 3F 62 341D:66 66 CF 46 29 76 68 26 AF 3425:54 68 68 14 26 GG 82 GG 1A 342D:062 AG BG BG BB BB GB BG BE 3435:00 G0 GG GB BG BB BB BG 9D 343D:08 68 G8 BG BH GB GB BB AG 3445:06 G8 G@ G@ OG BG BB G2 AF 344D:GA 66 G2 88 AG BB 5G 86 C9 3455329 14 28 26 76 406 G8 33 26 345D:68 08 CC 6G 28 76 68 26 83 3465:44 48 68 14 26 GB 82 GO 4A 346D:02 20 66 88 GB GB GG BG DE 3475:08 64 GG 8G G6 GB GB BG DD 347D:06 GG G8 GO BB GB BO GG E6

Jon Piltingsrud lives in New Richland, Minnesota.

MEMORY MONITOR

By Kenneth R. Warrick

Several weeks ago, | was in a room filled with more than 200 people, demonstrat- ing a program that did a lot of string build- ing. After a while, the program came toa screeching halt by the inevitable gar- bage collection process.

For more that a minute, | had all these people cooling their heels while my trusty 64 did its housekeeping. | thought to my- self how helpful it might be to keep a run- ning check on the amount of string stor- age space still available.

Of course, this number is what we are looking for when we execute the BASIC FRE command. But since FRE performs garbage collection first, it doesn’t tell us how much space has been taken up by obsolete string fragments. An onscreen monitor that would keep track of space

available would be just what the doctor ordered!

That's what Memory Monitor for the 64 does. It's a machine language utility that keeps track of the amount of free memo- ty remaining and prints it in the upper left corner of the screen.

Typing It In

Memory is a BASIC loader that creates Memory Monitor when it runs and saves the machine language program to disk with the name Memory Monitor. To help avoid typing errors, enter Mem- ory with The Automatic Proofreader. See “Typing Aids” elsewhere in this sec- tion. Be sure to save a copy of the pro- gram before you try to run it.

Before | get into the program itself, here's a little of the process that went into its creation.

Sparked by the creative muse, | thumbed through my copy of Mapping the Commodore 64 and 64C to find the location of the pointers at the begin- ning and end of RAM that's available for string storage. The end of the BA- SIC array storage area (+1) marks the first byte of the string storage area. This address is stored at 49-50 ($31- $32). Creating numerical variables takes up memory, moving this number upward and reducing the amount of space left available for strings.

As strings are created, storage be- gins at 40959 ($9FFF) and moves down- ward toward the address found in $31- $32. Thus the low end of currently used string space marks the highest ad- dress still available for string storage. This address is kept at 51-52 ($33- $34). By subtracting, we could find our number.

We don't want our monitor to take up any precious RAM, so we shouldn't write a long BASIC routine to do the job. A machine language routine that’s hidden away would be best.

Our routine should run unattended in the background without having to be called repeatedly from our BASIC pro- gram. The Kernal has in its bag of tricks a routine which every '/eo second interrupts whatever BASIC is doing to increment the clock, control flashing of the cursor, update whatever needs to be on the screen, and check the key- board buffer for any keypresses. By wedging our routine in ahead of all

these housekeeping chores, our task could be taken care of automatically.

Getting back to our little subtraction | problem, subtracting the address found at $31-$32 from the address found at $33-$34 obtains our number in the form of two bytes in the mathe- matical format of base 256. How do we convert this to decimal format that hu- mans can understand? Programmers fa- miliar with Kernal routines will recall the routine LINPRT found at 48589 ($BDCD) which is normally used to con- vert the two-byte BASIC line numbers to decimal and print their ASCII repre- sentation to the current output device. That should take care of this project in short order.

Wrong! The interrupt routine has a strict time schedule that will only allow us to wedge in a fairly short routine. An- ything longer will crash! That is just what LINPRT is—too long. Back to the drawing board!

By writing an efficient routine that util- izes a large (2048 byte) lookup table, we can meet the time schedule. Those of us who hate mile-long lists of DATA statements will like how short our loader is. Our lookup table is created for us by some fancy mathematics in lines 30-60.

The program searches the first part of our lookup table for the screen POKE codes (which for the digits 0-9 are the same as their ASCII codes) for multiples of 256 (represented by the high byte obtained from our subtrac- tion) in decimal format. The results are parked in a five-byte holding area at $C800-$C804.

The second part of the lookup table has the values of 0-256 (represented by the low byte) to be added into our five bytes. Later we correct for any of these sums that exceed 9 and make ap- propriate carries. Then, poke to the screen, color it white, and exit to the nor- mal interrupt routine.

After reading the code for the work- ing routine from DATA statements and poking it into place, our loader creates the lookup table. It then saves the en- tire bundle to disk with the filename MEMORY MONITOR by calling the Ker- nal routine SAVE at 65496.

Once Memory Monitor is on your work disk, you can load it with the ,8,1 extension and run it with SYS 51205.

AUGUST 1993 COMPUTE G-37

PROGRAMS

You can also load and run the routine from within a BASIC program with the following line.

10 IF J=0 THEN J=1: LOAD ‘MEMORY MONITOR”,8,1 20 SYS 51205

The manipulation of J prevents endless loop recycling since a LOAD com- mand from program mode automatical- ly executes a GOTO the first program line. While this may be done easily at the beginning of a BASIC program, lo- cating it anywhere else would require a first line of IF J=1 THEN XXX, with XXX the line with the SYS command. Here's an easier one-liner that may be located anywhere in your program.

10 POKE 780,0: OPEN8,8,8,1,"“MEMORY MONITOR”: SYS 65493: CLOSE 8: SYS 51205

To turn off Memory Monitor and re- turn to guessing how much memory is left, enter SYS 51326.

MEMORY

DM 1 REM COPYRIGHT 1993 - COMP UTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED HA 5 PRINT" {DOWN}WAIT 66 SECON DS...":PRINT"CREATING MEM ORY MONITOR" 16 FORI=51205 TO 51338:READ A:CK=CK+A: POKEI ,A:NEXT 28 IFCK<>16246THENPRINT"ERR OR IN DATA STATEMENTS":E ND FORN=6T0255:JS=RIGHTS ("@ GG0G"+MIDS (STRS(256*N) ,2 ) ,5) :FORK=1T05 POKE48896+256*K+N,ASC (MI DS(J$,K,1)) :NEXT:NEXT FORN=6T0255: JS=RIGHTS ("9 G6"+MIDS (STRS(N) ,2) ,3):F ORK=1T03 POKE5G176+256*K+N, VAL (MI DS$(J$,K,1)) :NEXT:NEXT:0P EN8,8,8,"MEMORY MONITOR" POKE25@,6:POKE251,192:PO KE789, 250: POKE781,138: PO KE782,200:SYS65496 DATA 120,169,18,141,29,3 ,169,260,141,21,3,88,96, 56,165,51,229,49,133,251 7165 DATA 52,229,50,168,185,0 1192,141,0,260,185,0,193 7141,1,200,185,0,194,141 2 HR 106 DATA 200,185,9,195,141, 3,266,185,0,196,141,4,2

COMPUTE AUGUST 1993

MC

sc

SX 36

JB 49

RJ 58

XK 68

DM 76

JK 86

BA 90

G-38

60,24,164,251,185,0,197 1109,2

DATA 264,141,2,200,185, @,198,169,3,200,141,3,2 G8,185,0,199,199,4,208, 141,4

DATA 266,160,5,162,9,13 4,252,162,0,185,255,199 124,101,252,201,58,144, 4,24

DATA 165, 246,232,153,25 5,3,169,1,153,255,215,1 36,208,227,76,49,234,12 6,169

DATA 49,141,20,3,169,23 4,141,21,3,88,96

PRINT" {DOWN}ACTIVATE ME MORY MONITOR WITH SYS 5 1205"

QQ 119

SF 126

HG 136

sc 146

MC 156

Kenneth R. Warrick is a physician who lives in Charleston, South Carolina.

CUBIC

By Stephen A. Bakke

Cubic is a logic puzzle for the 64, Itresem- bles a brightly colored cube whose six sides can be twisted to mix up the colors. When the puzzle starts, the colors are mixed randomly. The object of the puz- zle is to maneuver the colored pieces so that each side consists of but one of the six colors.

Presenting six sides of a cube on- screen at one time can be a problem. To get around this difficulty,