30.12.2013 Views

May June 1980 - Commodore Computers

May June 1980 - Commodore Computers

May June 1980 - Commodore Computers

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MAY / JUNE <strong>1980</strong> ISSUE 4. $2.00<br />

MAY/JUNE, 198O ISSUE 4. $2.OO<br />

The Journal for Progressive Computing'M<br />


THE WORLDS MOST<br />

INTELLIGENT PRINTER.<br />

With Wrth more features ihan -than any other oiher machine-­<br />

regarctless of price- prioe- it if turns mild-mClnnereq<br />

mild-mannerec)<br />

regardless<br />

~rsohal personal computers irrto into super-powered word processors.<br />

1ALPHA MlCZo_<br />

r ^dhio<br />

SCiBNTlFtCi<br />

A SPf'E'DING PRINT print BA.LL. ba<br />

whee, ,ets<br />

~ "fl-If'oN doiSV<br />

print" wheel lets )1:>u .<br />

• fA tier qu.ll~ sty,eS in seronds.<br />

seconds.<br />

t;",onqe tvp RFUt.. WAN COST"L"( SOFrWARE<br />

•• or1 umns ... al/automatlca fly. .<br />

• THE . of 6 LANGUI'eES ·<br />

.,.Q:>,oni.5;h,Frel)ch, Gerrnol) and<br />

Enne boafh-<br />

r<br />

APPLj<br />

7BXAS<br />

!£XiP)<br />

I<br />

I<br />

l<br />

- • . .. -.'<br />

,.<br />

17791 ll1ql o^ParKCifcie,SuitsH, Sk)tParKCiIC\e, Sui1aH, Irvine,Cq.C714)557-8501<br />

1"·Ina. Ca. (714)557' 850\<br />

Available af-Vhebestcomputerciealer5-ordifedfrDmXYtTiec at fuebest computerdealers·ordireclfrom)(ymec -Oealensinquiries . Dea\elS ins/ited inviteq. ©1S80XYMEC


ow you can add high<br />

resolution graphics<br />

to your <strong>Commodore</strong> PET<br />

computer. The MTU<br />

K-1008-6 GRAPHIC INTERFACE<br />

can be used with either old, new,<br />

or business PET computers. It is<br />

simple to use, and fits inside the<br />

PET for protection.<br />

PET<br />

,<br />

-<br />

-<br />

-<br />

. . -. - -<br />

.,... - ,<br />

* - - -<br />

,~-.---~ - ',<br />

The GRAPHIC INTERFACE gives you easy con<br />

trol over each dot in a matrix which is 320 wide by<br />

200 high for a total of 64,000 dots. Because each<br />

dot can be controlled, either graphic Images, text<br />

lines, or any mixture of the two can be displayed.<br />

Since each dot is controlled from software you can<br />

even design your own special character font or graphic<br />

image set (logic, chemical, architectural).<br />

INTERFACE TO ALL PETS - With separate connector boards<br />

for each style PET (K-1007-2 for OLD PETS, K-1007-3 for NEW).<br />

The K-1008-6 can be used with either.<br />

THREE TYPES OF VIDEO - You can select either normal PET<br />

video, graphic video, or the COMBINED image of both video sig<br />

nals simultaneously!<br />

8K RAM MEMORY EXPANSION - The graphic matrix requires 8K<br />

RAM which is supplied onboard. This rnqmory can be used for<br />

program or data storage when not being used for graphics (or see<br />

your program in binary on the display!).<br />

FLEXIBLY ADDRESSED ROM SOCKETS - Five ROM sockets are included<br />

on the board. They can be set at the same or different addresses, with you<br />

controlling which sockets are enabled at any time through software control.<br />

You also choose the sockets to be enabled when the PET is turned on.<br />

EXTERNAL EXPANSION - This board also creates the KIM memory expansion<br />

bus supported by al) MTU products. This allows insertion into our K-1005-P<br />

card file for expansion up to 4 other boards outside the PET case.<br />

LIGHT PEN - The board has been designed to work with an optional light<br />

pen which MTU will be announcing soon.<br />

SOFTWARE INTERFACED TO BASIC - MTU also has available machine lan<br />

guage software to allow you to plot points, draw lines, and display char<br />

acters at high speed.<br />

Call or write for our full line catalog of products.<br />

MICRO TECHNOLOGY UNLIMITED<br />

P.O. Box 12106<br />

2806 Hillsborough Street<br />

Raleigh, N.C. 27605<br />

(603) 627-1464<br />

Micro Technology Unlimited<br />

• P.O. Box 12106<br />

2806 Hillsborough Street<br />

Raleigh, N.C. 27605<br />

As of <strong>June</strong> 1, <strong>1980</strong>


2 COMPUTE. MAY/JUNE. / <strong>1980</strong> 198O. . ISSUE 4.<br />

Professional Business Software<br />

For The <strong>Commodore</strong> 32K Microcomputer System<br />

With 2040 Dual Drive Disk & 2022 Tractor Feed Printer<br />

General Ledger<br />

Accounts Payable<br />

Accounts Receivable<br />

Payroll<br />

General Ledger Accounts Payable Accounts Receivable Payroll<br />

• Holds Up To 300 Accounls.<br />

Accounts. • Interactive Data Entry With<br />

Verified I Input And Complete<br />

• Accepts Up To 3000<br />

Operator Prompting.<br />

Transactions Per Month.<br />

• Cash Disbursements Journal,<br />

Cash Receipts Journal, and<br />

• Automatic Application Of<br />

Credit And Debil Debit Memos.<br />

Petty Cash Journal for lor<br />

simplified data entry.<br />

• Maintains Complete Purchase<br />

• Maintains Account Balances<br />

Records For Up To 200<br />

For Present Month, Present<br />

Vendors.<br />

Quarter, Present Year, Three<br />

Previous Quarters, And<br />

• Invoice File Accepts Up To<br />

Previous Year.<br />

400 Invoices.<br />

• Complete Financial Reports<br />

Including Trial Balance,<br />

Balance Sheet, Prolit Profit & Loss<br />

• Random Access File<br />

Organization Allows Fast<br />

Individual Record Updating.<br />

Statement, Statement. Cash Receipts<br />

Journal, Cash Disbursements<br />

Journal, Petty Peny Cash Journal<br />

• Multiple Reports Provide A<br />

Complete Audit Trail.<br />

and more.<br />

• Accepts Postings From<br />

• Check Printing With Full<br />

Invoice<br />

Detail.<br />

External Sources Such As<br />

Accounts Payable, Accounts<br />

Receivable, Receivable. Payroll. Payroll,<br />

• Full Invoice Aging.<br />

• Automatic Posting To<br />

Etc . . .$295.00 General Ledger .... $195.00 S195.00<br />

• Maintains Invoice File For Up<br />

• Maintains Monthly, Quarterly.<br />

Quarterly,<br />

To 300 Invoices.<br />

And Yearly Cumulative Totals<br />

For Each Employee.<br />

• Accomodates Full Fuil Or Partial<br />

Invoice Payments.<br />

• Payroll Check Printing With<br />

Full Deduction And Pay Detail.<br />

• Customer File Maintains<br />

Purchase Information For Up<br />

• Sixteen Different Reports<br />

To 1000 Customers. Including W2 And 941. .<br />

• Allows For Automatic<br />

• Interactive Data Entry With<br />

Progress Billing.<br />

Easy Correction Of Entry<br />

Errors.<br />

• Provides For Credit And Debit<br />

Memos As Well As Invoices.<br />

• Automatic Data Verification.<br />

• Complete Job Costing Option<br />

• Prints Individualized<br />

With Cumulative Totals And<br />

Customer Statements.<br />

Overhead Calculations.<br />

• Interactive Data Entry With<br />

FullOperator FuliOperator Prompting.<br />

• Random Access File<br />

Organization For Fast<br />

• Complete Data Input<br />

Updating 0Of1 Individual<br />

Verification And Formating. Records.<br />

• Automatic Posting To<br />

• Automatic Posting To<br />

General Ledger .....$195.00<br />

S195.00 General Ledger... er .5350.00. 5350,00<br />

Structured around the time lime tested and reliability proven<br />

series of business software systems developed by Osbome<br />

and Associates, these programs have been designed to fill<br />

the need of a comprehensive accounting package for the<br />

new <strong>Commodore</strong> PET micro computer system. Each program<br />

can either stand alone, or be integrated with the others in a<br />

total software system.<br />

Designed with the first time user in mind, these programs<br />

lead the operator through step by step, verified data entry, entry. it It<br />

is impossible to 'crash' a program due to operator error or<br />

invalid data input. Design consistency has been maintained<br />

from program to 10 program to greatly increase operator<br />

familiarity and confidence.<br />

Documentation, normally a problem for small systems<br />

users, is provided by the comprehensive series of Osborne<br />

and Associates user manuals. These three manuals together<br />

total over 800 pages of detailed step by step instructions<br />

written at three levels for DP Department Managers, Data<br />

Entry Operators, and Programmers. You don't dan', have to worry<br />

about getting gelling 'promises' instead of documentation because<br />

the documentation was written before the programs<br />

were developed. A second set of manuals detailsd any<br />

changes required during conversion. Each programp provided on disk with complete documentation. Packaged<br />

in a handsome three ring binder with pockets and twelve<br />

monthly dividers for convenient storage of reports. repons.<br />

See your nearest <strong>Commodore</strong> dealer for a demonstra·<br />

See your nearest <strong>Commodore</strong> dealer for a demonstra<br />

tion of this outstanding business software system.<br />

CMS eMS Software Systems<br />

5115MENEFEEDRIVE5 5 • DALLAS, DALLAS. TX 1)( 75227 • 214-381-0590<br />

214-381·0690


MAY/JUNE, I NE. <strong>1980</strong>. I960. ISSUE 4.<br />

COMPUTE.<br />

3<br />

Table of Contents<br />

The Editor's Notcs Notes . . ... . ... ... . .. . ... . .. Robat Robert Lock, 6<br />

<strong>Computers</strong> and Societyy . David D. Thornburg Thomburgand Betty}. J. Burr, Butt, 8<br />

Microcomputers and the Handicapped: : The Delmarva Computer<br />

Club Column . . . . . . . . . . Susan Scmancik, Semancik, 13<br />

Product Feature: The <strong>Commodore</strong> 8032 .... Larry Isaacs and Robn"t Robert Lock, 14<br />

Keeping Up the Payments: Basically y Useful<br />

BASIC .. . Marvin L. De}ongand Dejong Robert Lock, 19<br />

6502 Software Design (New Book Excerpt) : . Leo}. LcoJ. Scanlon, 21<br />

<strong>Computers</strong>: Boring, Boring, Boring . . . . . . . . . . . . . . .. Ron KushnitT, Kushnier, 27 11<br />

Inside Atari Basic . .. . . .. . .. ...... Larry Isaacs, 31<br />

Book Review: Pet and the IEEE·4BB IEEE-488 (CPIB) (GPIB) Bus . .. ... .Jim Butterfield, Butterfieid, 37<br />

Book Review: 6502 Software Design .. . . Jim Butterfield, Butterfieid, 40<br />

Big Files on a Small Computer. . . . . . . . . . . . .. . Elizabeth Deal, 42<br />

Using Pet's Second Cassette Buffer to Increase Memory<br />

Space . . . . . . . . . . . . . . Chuck Stunrt, Stuart, 48<br />

Enhancingng <strong>Commodore</strong>'s Word Pro III . Larry Isaacs, 53<br />

Machine Language Tools . . . JJim Butterfield, Butterfieid, 57<br />

Algebraic Input For thc the Pet .. . __. _...... Harvey Davis, 58<br />

Pct Pet Data Copier . . . . . . . . . . . . . ........ . . Ron Run Straley, 59<br />

Cross Reference for the Pet . . . .Jim Butterfil!ld, Butterfieid, 63<br />

Review: Digiclocks Digielocks Printer . . . . David Bosleel Bosteel and Chuck London, 66<br />

The Learning Lab ...... Marlene rll!T/l! Pral/o, Pratto, 69<br />

Structured Gaming in High School Computer Science<br />

. . . . . . . . . . . . . . J.I\;[. J.M. A'foshell, Moshell, G. W. IV, Amann, and W.E. Baird, 72<br />

A Pct Pet ""Answer-Box" Program ...... . .. . . .. Thorwald ThonvaldEsbmsen, Esbu/.S(1/, 74<br />

Pet-GET with Flashing Cursor . . .. . .. . .. .......... Gary Greenburg, 77 11<br />

Two ""mini" Reviews: Atari Basic Cards (Micronottons)<br />

icronotions)<br />

Mailing List (Dr. Daley) . . Robat Robert Lock, 79<br />

The Consumer Computer . . . . . . . . . . . . . . . . . Len Lindsay, 83<br />

Review: D&R Cassettee System . . . . . . . . . . . . . . . . . Robert Robal Baker, Bakl!r, 86<br />

PETting With AJoystick A . . . ... .. . Harvey f1arvl!Y Herman, f1trmoll, 89<br />

The Apple Gazette . . . . . . . . . . . . . . . . . . . . .91<br />

Appletivitics Appletivities at the West Coast Computer Faire . . . ..Joe J Budge, 91<br />

The Apple Pi Trading Library. . . . . . . . . . . ........ Terry Ta)'lor, Taylor, 93<br />

Interview with Taylor Pohlman, Apple's Product Marketing<br />

Manager ager .. . .ft'[ichaei Michael S. Tomczyk, TomcZ)'k, 95<br />

The Atari Alari Gazette . . . . . . . . . . . . . . .... . 97<br />

Introduction to "Three-Dimensional" " Threc- Graphics for your<br />

Atari . . . .. ... . .. . David D. Thornbutg, Thornburg, 97<br />

Atari TapeT Data Files: A Consumcr Consumer Oriented Approach .... ..AlBaker, At 99<br />

"Enter" " with Atari a"i . . . . . . . . . . . . . . .. . ... . ... . . . .. . . Len Lindsay, Lindsa)', 103<br />

Atari Program Saving, Part II ...... . Lr/i Lell Lindsay, Lil/dso)', 103<br />

The Pet Gazette . . . . . . . . . .................. 104<br />

BAM- - Block Access Map for r <strong>Commodore</strong> Drives s .... Tom Conrad, 104<br />

Rambling . . . . . . . . . . . . . . . . .. ... . . . ... .. Roy O'Brien, 109<br />

Cheep Chcep Print, Part II . . ...... .. . .. ......... C.A. McCarthy, l\4cCarthy, 111 II I<br />

Relocate Pet Monitor or Almost Anywhere . . . ... Roy Busdiecker, 115 l IS<br />

Pet Programs on Tape Exchange .................. Gene Gellt Beals, 119 I 19<br />

Capute: Caputc: Our Corrections Page .... . .. . . . . . .. .. ...... . Robert Lock, 120<br />

Pel Pet Program Listing Explanation . .. . . . . . . . ... .. .... . .. . . . . . 120<br />

Sublcription Information:<br />

U .S . $9 .00/6 issue yea r<br />

CANADA J12.00/6 $1 issue<br />

year (U.S. funds)<br />

Europe: Air Subscription<br />

J22.50 $22 U.S./6 U .l6 issue iuue year<br />

Other O areas: Inquire for<br />

air rates.<br />

Dealers DealerJ in Canada should . contact: COlil ael:<br />

Micron Distributing<br />

409 Qficen Queell Street Wist West<br />

Toronto, T oronto. Ontario O IlI :lrio M5V !l. 15V 2A5<br />

(416) :i(i:i-6058 363·6058<br />

In (he the United Kingdom and Europe, new<br />

.ubtcriber. .u:).( ; ilici - and dealers dealeu should roniac! contact ::<br />

L.P. LoP. Enierpritci Enterpri.e.<br />

Ing. I W. W . Hofackcr H ofacker GMBH<br />

8-11 8· J J Cambridge House 8 Munchen 75<br />

Cambridge Road Postfach 437<br />

7<br />

Barking. . Essex Esscx<br />

West \VeSt Germany G England IG1 I 18NT l (Germany, Switzerland,<br />

(United Kingdom and<br />

and Austria) Au.tria)<br />

Northern Europe)<br />

Address all articles, circulation<br />

Address all articles, circulation<br />

questions and other inquiries to:<br />

COMPUTE.<br />

P.O. Box 54O6 5406<br />

Greensboro, NC 274O3 27403<br />

(919) 272-4867<br />

(919) 272-4867<br />

surf Staff of COMPUTE; UTE:<br />

Robert C C. . Lock, . Editor/Publisher<br />

Carol Holmquist Lock. Lock, Circulation Manager.<br />

.<br />

Lu Larry ry Isaacs. Softwarc:lH ware/ Hardware lIrdwa re Lab.<br />

j Jorctta l1a Klepfer, Editorial Auistant.<br />

Assistant.<br />

Marlene PratlO. Pratto. Educational Assistant. .<br />

COMPUTE, PUTE. receives \'es continuing aassistance u i ~ l a n from Ihe the following<br />

pcrsons:<br />

persons:<br />

Han Harvey 'ey B. Herman, . University niveuity of North h Carolina at Greensboro,<br />

Dept. of Chemistry. Edi Editorial An Assistance.<br />

David Gibbs. The [ksign Design Group, Greensboro, N.C N.C, . , Arl Art Directionl<br />

Direction/<br />

Design Consultation.<br />

j Jim BUllerfi Butterfieid, cld, Toronto. Editorial AssiSlance.<br />

Assistance.<br />

The following writers contribute ntrii> lU e on a regularr basis ;I as S Associate<br />

Editors:<br />

:<br />

Gene Beals. 11 Ilfi 5 E. Stump u Road, . Monignmcryville, ontgomeryville. Pennsylvania<br />

18936.<br />

Len Lindsay, 1929 Northport Drive '#6, r-,·Iadison. Madison, Wisconsin 53704.<br />

Roy O· O'Brien, . POSt Post Office Box 426, , Beaumont, California aliro 92223.<br />

Eric Rehnke, Rehnkc, '61. # 61, 5540 .. 0 S. Ranchview Circle, Anaheim Hills,<br />

Calirornia California 92a07.<br />

92807.<br />

Appliu Application to mail at controlled circulation postage ralCi rates is pending<br />

at Greensboro, North Carolina. Postma. Postmaster: ter; Send change or of address ..<br />

10 to COl\-IPUTE, COMPUTE, Post Office Box Oll 5406, Greensboro, , NC 27403.<br />

COMPUTE is published by Small Systcm System $crvices, Services, Inc., 900·902<br />

900-902<br />

Spring Garden Sireel Street, , Greensboro, Non Northh Carolina 27403. Telephone:<br />

(91 (919) 9) 2i2-4867. 272-4867. COr-.·IPUTE COMPUTE is published six times ~ each a year on a<br />

bimonlhly bimonthly schedule. Subscription COSI cost for one year IS is $9.00. 19.00. C01l.·1- COM<br />

PUTE is ;\V;libble available by subscription ion or through retail dealcr dealer sales. .<br />

Suhscription Subscription prices higher outside the US. US, (Sec (See below)<br />

below}<br />

Addrcss Address all lllanuscripu manuscripts alld and corn:spondcllce correspondence to COMPUTE.<br />

Post Office Box 5406, Greensboro, N.C. 27403. Materials<br />

alerials<br />

(ad\'enising (advertising an art work, , hardware. hardware, Ctc.) etc.) should be addressed 10 to<br />

CCOMPUTE., O ~I 900 Spring Gardcn Garden Street, Greensboro, , N.C. 27403.<br />

Emirc Entire eontcllls contents copyriKht copyright © t980 <strong>1980</strong> by b)' Small Systcm System Scrvices Services. ..<br />

Inc. All rights reserved, rved. "CO "'COMPUTE. The Journal j for Progressive<br />

Computing" is a Iradcmark trademark or of Small S)'uelll System Services. Inc.<br />

ISSN0194-357X.<br />

Ot94-J X .<br />

COMPUTE, ~ I P U T E . assumC5 assumes no liability ), for errors in :lrt ankles icles or<br />

advenisemelll advertisements. s. Opinions expressed by b)' authors arc are not necessarily n« esurily<br />

those of COMPUTE.<br />

Authors of manuscripts war"lnt warrant that all materials submitted to<br />

COMPUTE, PUTE. arc are original materials with ...·ilh full rull ownership righlS<br />

rights<br />

resil[ent resident in said authors. Dr By submitting articles to 10 COMPUTE,<br />

CQ1I.-II'UTE.<br />

authors acknowledge 111;11 that such materials, upon l>on acceptance for<br />

publication, . become the exclusive cxclusive property of Small Smail System<br />

Services, Inc. Unsolicited manuscripts m;tnusc nOt not accepted for publica ­<br />

tion by COMPUTE, COMPUTE. will witt be returned u rned if author provides a selfaddressed,<br />

. siamped stamped en\·clope envelope. . Program listings should be pro·<br />

vided in printed form rorm as well as machine readable fnrm. form.<br />

Articles should be furnished as :IS typed uipy (U p y with double spacing. spitcing.<br />

self­<br />

Each E:u;h page of your )'our arlide article should bear bl'ar the title tl c of the article,<br />

dale d;lIe and name n:lllle of the author.<br />

PET is a trademark of Cnminodorc <strong>Commodore</strong> Business Machines, /I.·1achincs, Inc.<br />

Apple is a trademark of Apple Computer Company.<br />

Atari '\ !:Iri is a trademark of Atari, Inc.<br />

Advertisers<br />

iscl"I Index Indell<br />

AB AU <strong>Computers</strong> Compulers .. .. . .. . . . . 26<br />

Abacus Atmcus Software ; u·~ . . 24<br />

Automated Simulations Simuhlt iOlls . ........ 85 a5<br />

BYTE . ... 9<br />

CGRS Microtech M ...... 22,110<br />

1 to<br />

CMSC 1I. IS Software ... .. .... . .... 2,108 2. JOa<br />

Cognitive Cogniti\"t: Products. . .. 71<br />

<strong>Commodore</strong> Business Busilless<br />

Machines M .... 15,16,17,18,1Y'.RV.<br />

15. 16, l i,18.52. BC<br />

Competitive Software Sortware . .. ...... Jit! J 18<br />

COMPUTED CO:\II' UTE's Book Corner .... DMC<br />

Computer Center Celi terof South Bend .87 . Computer pUler House Hou$


COMPUTE. MAY/JUNE. MAY/jUNE. 19BO. 198O. ISSUE 4.<br />

NEECO<br />

1 NEECO<br />

Mcrocomputty Syslems Qvekxi<br />

3SK<br />

PROUDLY ANNOUNCES THE NEWEST<br />

HARDWARE AND SOFTWARE FOR YOUR PET!<br />

HARDWARE AND SOFTWARE FOR YOUR PET!<br />

The PET is now a truly sophisticated<br />

4~~,.~t~ Business System with the announcement<br />

of these peripherals and software packages.<br />

frf~ O~<br />

tfJO ~f,~ f'.\<br />

~ ()~~ r-----P-R-O-OU-C-T-------O-ES-C-R-,P-T-,O-N----P-R-,C-E---A-VA-'L-A-e-'L-'T-y--I<br />

PRODUCT<br />

DESCRIPTION<br />

PRICE AVAILABILITY<br />

CI ~.t~;~ PET 2001-BKN 2001—8KN ILarge 'Large Keys) BK 8K RAM $ 795 IMMEDIATE<br />

,0'Il'" PET 2001-BK 2001—8K BK 8K RAM $ 795 IMMEDIATE MEDIATE<br />

PET 2001-16KN(lllrge — 16KN/\ Mon-Fri 9:30-5:30<br />

INLL^/U<br />

MasterCharge &<br />

679 Highland Ave. Visa Accepted<br />

Needham, MA<br />

02194<br />

(617)449-1760<br />

Telex: 951021<br />

MICROAMERICA DISTRIBUTING<br />

MICROAMERIGA. DISTRIBUTING<br />

"Nationwide distributors of Computer Equipment"<br />

21 Putnam Street<br />

Needham, MA<br />

02194<br />

02194 (617)449-4310


MAY/JUNE. 1Q80.ISSUE I960. ll. 4 COMPUTE.<br />

5<br />

NEECO<br />

PROUDLY<br />

INTRODUCES<br />

Channel Module<br />

CM-BOO<br />

CM-800<br />

Multi-Cluster<br />

$995<br />

Model MC-800A<br />

MO800A<br />

Standard 3 Channels)<br />

Multi-Cluster supports all 2040 disk O/S commands<br />

including sequential, random access, and user files.<br />

Multi-Cluster does not utilize any RAM or ROM from the<br />

2040 or host CBM/PET units.<br />

Multi-Cluster is compatible with all known softwear that<br />

utilize the IEEE port.<br />

Multi-Cluster can be fully implemented on 8 PETS,<br />

completely ready to use, in less than 15 minutes.<br />

Simply plug the Multi-Cluster unit into the IEEE port of<br />

the 2040 Disk Drive, then attach a Channel Module,<br />

#CM800, (3 Channel Modules are standard with unit), to the<br />

I IEEE port of each PET.<br />

THE MULTI-CLUSTER SYSTEM HAS BEEN USED AND FULLY-TESTED BY NEECO<br />

Multi-Cluster<br />

•<br />

Model MC-800A<br />

MO800A<br />

(Standard 3 Channels)<br />

....- ~<br />

( )<br />

Up to 8<br />

t<br />

CBM/PETS<br />

<strong>May</strong> Access<br />

.- One 2040<br />

Disk Drive<br />

!<br />

•<br />

t<br />

Optional<br />

( Output<br />

)<br />

Printer<br />

Module<br />

Multi·Cluster Multi-Cluster is ideal for industrial, OEM, , Vertical<br />

Markets, and Educational Institutions. Multi·<br />

Multi-<br />

Cluster allows you to make full use of the Com·<br />

modore 3 units for the price of 2 educational pro·<br />

grams.<br />

MULTI-CLUSTER<br />

"Multi User Management System for<br />

<strong>Commodore</strong> CBM/PET' CBM/PET* <strong>Computers</strong>"<br />

UP TO 8 CBM/PETS MAY NOW SIMULTANEOUSLY ACCESS ONE 2040!<br />

Module<br />

o Up to 8 Channel (3 {3 Standard) for CBM/PET <strong>Computers</strong>.<br />

o Up to 8 CBMIPETS CBM/PETS can multi-use one <strong>Commodore</strong> 2040<br />

dual disk drive simultaneously with equal access.<br />

o Multi-Cluster supports all 2040 disk OIS commands<br />

o Multi-Cluster does not utilize any RAM or ROM from the<br />

o Multi-Cluster is compatible with all known softwear that<br />

o Multi-Cluster can be fully implemented on 8 PETS,<br />

o Simply plug the Multi-Cluster unit into the IEEE port of<br />

THE MULTI-CLUSTER SYSTEM HAS BEEN USED AND FULLY-TESTED BY NEECO<br />

Output Printer Module allows<br />

1 CBM/PET to scan 2040 Disk<br />

and print flagged files.<br />

-~<br />

•<br />

Standard Components:<br />

1 Multi·Cluster Multi-Cluster . .... .. .. . #MC800A<br />

3 Channel Modules .... . .. . .. . #CM·l00<br />

#CM-100<br />

3 6' Ribbon Cables .... . . • .... #RC6<br />

Optional Component Prices:<br />

Each additional CM·l00 CM-100 .......... . ....... $250<br />

Each 12' Ribbon Cable (RC12) ......... . .. $ 40<br />

Each 18' ' RibbonCable(RC18) ....... ... .. $ 60<br />

Output Printer Module (PM200) ........ ... $200<br />

(For Centronir.s Centronics Protoca Protnnall Printers)<br />

• ■ PET is a registered trademarkt ra~ of <strong>Commodore</strong> Business Machines. Small Keyboard PETS require a ROM Retrofit Kit for Multi.<br />

Multi-<br />

Cluster system operation.<br />

Multi·Cluster Multi-Cluster is available in Canada from BMB Compu Science, Milton, Ontario, (416) 878.7277<br />

878-7277<br />

■<br />

NEECO<br />

NEECO<br />

Dealer Sales:<br />

Mlcroamerlca Microamerica Distributing<br />

679 Highland Ave. 21 Putnum St., Needham, MA 02194<br />

Needham, MA (617) 449-4310 Telex: 951021<br />

00194<br />

Customer Sales:<br />

NEECO<br />

679 Highland Ave., Needham, MA O?·IA~I.<br />

02194<br />

(617)449-1760


6 COMPUTE. MAY/JUNE. I 198O. <strong>1980</strong>. ISSUE 44.<br />

The Editor's<br />

Notes<br />

The Editor's<br />

NOtOS Robert Lock<br />

The Fifth West Coast Computer Faire<br />

The Fifth West Coast Computer Faire<br />

San Francisco. Francisco,California March 14,15 and 16<br />

A wonderful show! I guess I enjoyed it partially because<br />

it was our first West Coast show, and we got gOL<br />

to meet many people e we'd only talked to on the e phone.<br />

The show broke it's s own attendance projections<br />

with close to 19,000 people. . .most of them computer<br />

user/consumers. One interesting ting point: Apple,<br />

<strong>Commodore</strong>, and Atari didn't t show, deciding (I<br />

assume) to hold off for the NCC in Anaheim.<br />

.<br />

Instead, , large regional dealers were there, frequently<br />

y<br />

receiving corporate staff support. On Saturday and<br />

Sunday, for example, <strong>Commodore</strong> corporate staff<br />

were assisting in g the Mr. Calculator people, e, and Atari<br />

retail training staff and support personnel el were<br />

assisting several dealers.<br />

An Apple Breakthru<br />

An Apple Breakthru<br />

Microsoft Consumer Products (the new end-user/<br />

dealer branch of Microsoft) ) introduced their first piece<br />

of hardware. . Called the "Z-80 Softcard", it's simply<br />

a Z-80 board that plugs into your Apple, comes<br />

with Microsoft Disk Basic and CP/M M operating<br />

system, , and opens up a whole new world for you<br />

Apple owners. At a package price of $349.00 S349.00 (with<br />

<strong>June</strong> deliveries) they're being innundated. For the full<br />

details, read The Apple Gazette in this issue.<br />

PET Owners Take Heart<br />

PET Owners Take Heart<br />

Since the show, I've talked to both <strong>Commodore</strong><br />

and Microsoft about the possibility of a Z-80 soft-<br />

ftcard<br />

for the PET. At this point, it hasn't been ruled<br />

out, so I'd like a show of interest. You'll find a direct<br />

mail response card in the center of the magazine<br />

to assist in the survey, , and since I'm doingg this on<br />

my own initiative, ive, at my own expense, I've added a<br />

few other choices as well. I'll keep you posted on the<br />

results.<br />

other Other Highlights of the Show<br />

Systems Formulate Corporation demonstrating<br />

their new line of ""heavy-duty" heavy-duL Y" business printers<br />

for the PET/CBM line.<br />

Harry Saal of Nestar Systems demonstrating the<br />

Cluster-One System for thee Apple.<br />

Bob Skyles of Skyles Electric Works showing g off hiss<br />

current line of PET products, including Macrotea,<br />

which started shipping a week before we sent you<br />

Issue 3'5 3's with a review indicating he still wasn't<br />

shipping.<br />

OOhh well.<br />

David Cox and Micro Technology Unlimited<br />

demonstrating their new 6502 DOS with a 20 KB<br />

transfer ra rate (!!!). !).<br />

Atari reps trying to balance machine displays<br />

between new business software and Star Raiders, onlyy<br />

to keep finding them mysteriously returning rn g (in<br />

n<br />

mass) to Star Raiders.<br />

Professional business software vendors emerging, g, with<br />

a lot of interest in Word Pro III at the <strong>Commodore</strong>/<br />

<strong>Commodore</strong>!<br />

Mr. Calculator booth; Compumax and Grass Valley<br />

were also exhibiting/demonstrating their e ir respective<br />

business software offerings.<br />

Infoworld Infowodd (the new weekly newspaper ol of microcomputing)<br />

had a nice touch supporting g their timeliness.<br />

OnO n Sunday morning g they handed out a special<br />

Faire edition covering g the Faire. Unfortunately,<br />

U COMPUTE, COMPUTE. didn't 't win the Apple they gave away.<br />

Programma showing off their newest software<br />

offerings for PET, Apple anda Atari, , complete with<br />

a wide-screen TV so we could alla ll watch.<br />

.<br />

Enough of this... on with Issue 4. Thanks, California,<br />

,<br />

for r an exciting show.<br />

On <strong>Commodore</strong>'s new ROMs and the 8O 80<br />

Column CBM<br />

Column CBM<br />

I've received a bit of flack nack for treating g the new<br />

ROM R O M introduction rather matter-of-factly. What can I<br />

say? I do feel feci the new 80 column machine can have<br />

a substantial impact on the emerging small business<br />

market, and I1 like the design of the unii. it. It<br />

makes sense to bring it out with the new Basic<br />

4.0 as standard (e.g. built-in DOS). For the market<br />

it's designed for (small business, etc.) a built-in<br />

DOS is ideal (if not nOt crucial). . It presents a pain for<br />

those of you software vendors who are clilli dilligently<br />

y<br />

trying to keep up with <strong>Commodore</strong>, but at the same<br />

time, lime, we can't encourage orr expect them to take a<br />

no-growth position. There have been valid reasons<br />

(improvements) for each new set of ROM releases.<br />

I do think it's time to slow things down a bit.<br />

Certainlyy they must continue to support all existing<br />

units as they continue to introduce new ones. I<br />

will try to keep you posted as we findd out what's what.<br />

The IEEE-488 Acoustic Coupler<br />

The IEEE-488 Acoustic Coupler<br />

COMPUTE is still coupler-less. 1 I appreciate your<br />

calls and letters askingg for preview information, ion, but<br />

I still don'tt have it. Our coupler should have arrived<br />

by now but hasn't. I promise (with <strong>Commodore</strong>'s<br />

help) I'll have a review for new issue.<br />

Good News for<br />

Good News for<br />

Apple and Atari Owners<br />

Al Baker (of Al Baker's Game Corner in Interface<br />

Age and Image Computer Products) will be joining us<br />

with a column. Al Baker's Programming Hints will<br />

begin in Issue number 5 of COMPUTE, providing<br />

helpful information to Apple and Atari owners. Look<br />

for his excellent article in this issue on Atari basic.<br />

COMPUTE grows ant on!<br />

The Editor's Feedback<br />

The Editor's Feedback<br />

I mentioned earlier in this column my personal survey<br />

of your feelings on a Z-80 softcard for the PET.<br />

I've added other informationn to thee card as well, , and<br />

if you respond, , will try to continue this process. The<br />

cards are a good way to get feedback to me in a concen-


MAY/JUNE, I JUNE. <strong>1980</strong>. ISSUE 4. 4 COMPUTE.<br />

. 7<br />

lrated (rated form, , and will help me keep the magazine on<br />

lragel. traget. I feel that many of you won't write without<br />

some easy to use method such as this one. Forr<br />

those of you who want to take the time to write, please<br />

do. Eventually y (note the eveilluall eventually), , I read all<br />

letters that come through here. Even when I don't have<br />

time to respond, , the message is received. . Here (with<br />

name removed) is a "wish-list" that one reader sent<br />

me. lL It was not intended for publication, , but for my<br />

own information... that's whyy I've removed the name<br />

of the author. I'm printing excerpts fromm it because<br />

it's an excellent example of mail that's extremely<br />

valuable to me:<br />

A Reader's Shopping List<br />

A Reader's Shopping List<br />

I. 1. Devote last page to corrections checklist. Herman's<br />

farl fantastic fastic article in issue 2 has a i)'po typo in line 205;<br />

il it should be POKE E 53, 16 aTld and nol not 24.<br />

Okay, it's done. The last page is now reserved<br />

for previous goofs. Several readers have suggested a<br />

clearlyy defined location for fixes. . From my end, , I'll<br />

work on keepingg thee last page blank.<br />

2. Provide clear diagrams oj of aTlY any hardware type<br />

arlicles. articles. RESETR bulloTl button is a good example. My<br />

dealer is overworked and it is a crime far fo r me to Lo bug<br />

him about the location of one pin.<br />

him about the local ion of one pin.<br />

3. A tutorial on sys and usr ffunctions. I have similar<br />

problems 10 to Mr. M Wachlel Wachtel (HELP, Issue 2), "TId and though Ihough<br />

I have given him a solution to OTle one of his problems,<br />

others remain. The manual is of no help whatsoever.<br />

W atch Issue 5 for this one ..<br />

Watch Issue 5 for this one...<br />

4. Provide tapes lapes of oj 10Tlger longer programs...<br />

ThisT s request t shows up on the Editor's Feedback<br />

card. I'll be curious us to see what you think. . Thanks,<br />

anonomyous reader, for r your input. I enjoyed the<br />

chat. chal. Perhaps we'll call the last page "Capute!"" Writers<br />

Writers<br />

COMPUTE currently pays for unsolicited material<br />

(that we accept for publication) at a page rate of<br />

$25.00 per published page. We also pay for little lill ie<br />

things, short shan program hints, him three-liners, etc.<br />

We vVe expect to raise ouro rates as we grow, so stick<br />

with us. When you write for COMPUTE, you u can<br />

expect three things: 1. You'll ' help other machine<br />

owners; 2. Your r material won't t sit around for six<br />

months; and 3. You'll appear in a young, growing<br />

magazine that al now is distributed in the US, U Canada,<br />

Great Britain, Europe, Australia, , Japan, J and a lot ofo f<br />

places in between. . Follow the directions on the title<br />

page for submitting your material al to COMPUTE.<br />

C When and if we ever publish your work again, , as<br />

for example in "Best .. of COMPUTE." p or<br />

"COMPUTE's Book of Atari", you'll be paid again,<br />

the second time at our then current page rate.<br />

Business Software<br />

Business Software<br />

HELP! H ELI" I've added a spot on the Editor's Feedback<br />

card in an attempt to entice you u business user's<br />

to provide some help. I know you're out there, so<br />

write.<br />

e.<br />

Product Complaints/Problems<br />

Product Complaints/Problems<br />

If you have a problem or complaint that involves a<br />

product in the micro industry, I I'd like to offer the<br />

following guidelines:<br />

1. Write (or call) the manufacturer/supplier. Most<br />

will cheerfully replace a defective product, or<br />

refund your money if you're ' not satisfied with the<br />

performance of the product.<br />

2. Be fair with the supplier. Hostility, while understandable,<br />

is frequently not justified. . A simple<br />

letter, stating the problem, should be as effective<br />

(or more so) than a threatening one.<br />

3. If none of this produces results, drop me a note<br />

at the address below, and I I'll look into it. I've<br />

had several "chats" with manufacturers recently<br />

as a result of reader complaints.<br />

One final point: Don't jump to the worst conclusion.<br />

I think our industry is maturing. Magazines are<br />

certainly more alert to "scams",, as are their readers.<br />

With good communications between readers, magazines,<br />

and advertisers, we'll resolve some of the<br />

problems of the past.<br />

Articles, Programming Notes,<br />

Articles, Programming Notes,<br />

New Product Announcements.<br />

Material submitted for possible publication in<br />

COMPUTE should be addressed to:<br />

Robert Lock, Editor<br />

COMPUTE<br />

P P.O. . Box 5406<br />

Greensboro, NC 27403<br />

©<br />

Program Listings<br />

Program Listings<br />

For an on expjanation explanation of COMPUTE'S COMPUTE's PET/CBM<br />

ICBM<br />

program listing codes, see page 12O. 120.


8 COMPUTE. MAY/JUNE. I 198O. <strong>1980</strong>. ISSUE 4.<br />

<strong>Computers</strong> and<br />

<strong>Computers</strong><br />

-ety<br />

and<br />

Society Socl<br />

David D. Thornburg<br />

and Betty J. J Burr<br />

Innovision<br />

Innovision<br />

P.O. PO Box 1317, Los Altos, CA 94O22 940 Assuming that you are a persona! personal computer enthusiast,<br />

you have no doubt noted that your approach to<br />

computers is different from that of some of your<br />

neighbors. We have spent many hours with people<br />

who are afraid that computers are responsible for all<br />

that is wrong with the world. . While there is no one<br />

cause for this attitude, the following owing perceived<br />

characteristics of the computer world seem to be<br />

instrumental in perpetuating a fear of o f technology in<br />

some people:<br />

1. <strong>Computers</strong> are only understood by "strange"<br />

genius level people who would rather hide out<br />

with machines than interact with other humans.<br />

2. Computer technology will cost people their<br />

jobs.<br />

3. Increased reliance on computer technology will<br />

make our society vulnerable to collapse from<br />

m<br />

technological failure. (The New York blackout<br />

of some years back is often cited as an example<br />

of future woes in this regard).<br />

4. Any small computer which fits in the home<br />

budget is little more than a toy - a glorified<br />

video game; the II "real" computers are buried<br />

in the cellars of banks and large corporations.<br />

Despite computer-phobic statements tatemCnlS like these, th (hee<br />

phenomenal revolutionary ry growth of computer technology<br />

will soon reach out to touch us all - computer<br />

users and non-users alike. The computer will soon be<br />

like the automobile. While we do not all need to drive<br />

cars to be functioning members off society, we do need<br />

to know enough about them to not walk out in the<br />

street without lookingg both ways. We would like to<br />

encourage you to take part in discussions with your<br />

friends to let them know more about the realities<br />

and promise of this technology, and we would like to<br />

make some suggestions that you might find helpfuL<br />

helpful.<br />

The remainder of this column will be devoted<br />

to background material you might find interesting<br />

yourself, and that you might want to share with those<br />

friends who engage you in discussions about computers.<br />

Books and movies aare thee principal media for<br />

information about computers, and (he the ways Lhey they may<br />

be used in the future. As we promised in the last<br />

column, , we will present reviews of books in this<br />

column from time to time, and we will on occasion<br />

review relevant movies as well.<br />

These aare two types of books that lend them emselves<br />

to inclusion in this s column. . The first is the e<br />

""Role of the Computer in Society" book, , and the<br />

second is the ""II Don't Know Anything At All<br />

About <strong>Computers</strong> But I Wish I Did" book. . The<br />

first of these is typically y quite philosophical in<br />

content, and is conducive to being read with furrowed<br />

brow and heightened social awareness. The T second<br />

type of book is devoted to cutting through the mystery<br />

of computers and getting you to flex your fingers<br />

anda start writing programs. In suggesting books of<br />

each type, we leave it to you to decide (after<br />

reading the books yourselves) which type might be<br />

appropriate for those of o f your friends who o want to<br />

know more about this technology.<br />

We must confess that ouro reason for suggesting<br />

that books be used to help you interact with your<br />

friends on this issue is based on a problem that one<br />

of us (DT) often has when giving a demonstration<br />

of a computer. As a professional in the e personal<br />

computer field, he finds it all too tempting to start<br />

off at the right level and then to "show off orr '<br />

by running some zippy program written in half- half­<br />

BASIC half-machine achine code, all the e time suggesting<br />

g<br />

that the guest could generate programs twice as<br />

exciting in half the time. Trying, in the e span of a<br />

few minutes, to demonstrate a complex system while<br />

trying "6 CTRL K RETURN", R N". tossing out jargon<br />

left and right, , and bringing up a super dazzling<br />

g<br />

demo has turned off several people who would have<br />

much benefited from a softer approach. a And, let's<br />

face it, , you too really are a computer enthusiast,<br />

or you wouldn't be reading this magazine. Your<br />

enthusiasm for personal computers requires that you<br />

exercise tremendous restraint when demonstrating<br />

your system to someone who has never sat at a keyboard<br />

before. Good books can help build a buffer<br />

between your expertise and your neighbor's unfamiliarityy<br />

aand apprehension. .<br />

unfami­<br />

While there are many books we cann write about,<br />

we thought that the following sampler should get<br />

you started towards building a library to share<br />

with your friends.<br />

One of the better books on the social impact of<br />

computers is Computer Power and Humall Human Reason: From<br />

Judgment judgmellt to Calculatioll, Calculation, by JJohseph ohscph Wcizcnbaum<br />

Weizcnbaum<br />

(W.. H H. . Freeman and Company, San Francisco,<br />

ISBN 0-7167-9463-3, $5.95). $5,951. Dr. Weizenbaum Weizcnbaum is a<br />

Professor of Computer Science at M MIT who is widely<br />

known for his development of ELIZA, , a natural<br />

language processing system. . This system was<br />

used to create a script that made the system behave<br />

similarlyy to a Rogerian psychotherapist conducting<br />

an initialial interview. iew. The user would sit at a computer<br />

terminal keyboard and t.ake take part in a "discussion"<br />

withh the computer in which it appeared that the<br />

computer "understood" what was going on. In fact,<br />

the program was looking for certain words in the<br />

user'ss responses and was using these words in later<br />

imeractions. interactions. Of concern to Weizenbaum was that<br />

several psychoanalysts looked forward to this program<br />

paving the way to automated psychotherapy - something<br />

the author neither believed in nor intended.


Take the mystery<br />

lake the mystery<br />

out of programming<br />

out of programming<br />

with the latest from BYTE Bookstm<br />

The BYTE Book of Pascal<br />

Edited by Blaise W. Liffick<br />

Based on the growing popularity of Pascal as a<br />

programming language, numerous articles,<br />

language forums and letters from past issues of<br />

BYTE magazine have been compiled to provide this<br />

general introduction to Pascal. In addition, this<br />

general introduction to Pascal. In addition, this<br />

book contains several important pieces of software<br />

book contains several important pieces of software<br />

including two versions of a<br />

yoU JUST BOUGHT ~<br />

, PEKSOHAl WIA;.<br />

~ l';JJ<br />

Pascal compiler - one writ­<br />

Pascal compiler - one writ<br />

ten in BASIC aand the<br />

other in 8080 assembly<br />

language; a p-code interpreter<br />

written in both<br />

Pascal and 8080 assembly<br />

languages; a chess playing<br />

program; and an APL interpreter<br />

written in Pascal.<br />

terpreter written in Pascal.<br />

$25.00 S25.00 Hardcover pp. 342<br />

ISBN 0-07-037823-1<br />

YOU JUST BOUGHT<br />

YOU JUST BOUGHT<br />

A PERSONAL<br />

WHAT?<br />

WHAT?<br />

~~<br />

J..-'-:::';:::"~ by Thomas Dwyer and Margot<br />

..- /.f/ CrItchfield<br />

Critchfield<br />

Whether you are a novice pro<br />

Whether you are a novice programmer<br />

or an experienced<br />

grammer or an experienced<br />

computer user, this book is filled with practical<br />

Ideas ideas for using a personal computer at home or<br />

work. .. It will take you through the steps necessary<br />

to Write write your own computer programs, and then<br />

show you how. to use structured design techniques<br />

to tackle a varIety variety of larger projects. The book<br />

contains co~tams over 60 ready-to-use programs written in<br />

MICrosoft Microsoft and Level II BASIC in the areas of<br />

educational edu~a o n a l games, financial record keeping,<br />

business bUSiness transactions, disk-based data file and word<br />

processing. $11.95 pp. 256 ISBN 0-07-018492-5<br />

Beginners Guide for the<br />

UCSD Pascal System<br />

by Kenneth Ke,meth Bowles<br />

Written by the originator of the UCSD Pascal<br />

System, this highly informative book is designed as<br />

an orientation guide for learning to use the UCSD<br />

Pascal System. For the novice, this book steps<br />

through the System bringing the user to a<br />

sophisticated level of expertise. Once familiar with<br />

the System, you will find the guide an invaluable<br />

reference tool for creating advanced applications.<br />

This book features tutorial examples of programming<br />

tasks in the form of self-study quiz programs.<br />

The UCSD Pascal Software Systems, available<br />

from SofTech Microsystems Inc, 9494 Black Mountain<br />

Road, San Diego CA 92126, is a complete<br />

general purpose software package for users of<br />

microcomputers and minicomputers. The package<br />

offers several interesting features including:<br />

• Programs which may be run<br />

• Programs which may be run<br />

without alteration on the<br />

General Automation or DEC<br />

PDP-II minicomputers, or an<br />

PDP-11 minicomputers, or an<br />

an 8080, 8085, 280, Z80, 6502,<br />

6800, or 9900 based<br />

microcomputers.<br />

microcomputers.<br />

• Ease of use on a small, singleuser<br />

computer with display<br />

single-<br />

screen and one or more<br />

screen and one or more<br />

floppy disk drives.<br />

$11.95 ISBN 0-07-006745-7<br />

These and other BYTE/McGraw-Hill books are available<br />

from BYTE Books or your local computer store. .<br />

.----------------------------------------,<br />

m<br />

: Please send ~ ,~ ~ :<br />

Please send<br />

o D copies of The BYTE Book of Pascal y. I<br />

o □ copies of You Just Bought a Personal What? I. n j:<br />

o copies of Beginner's Guide for the UCSD Pascal System! I<br />

Add 75( 75c per book to cover postage and handling.<br />

Name Title Company<br />

Street Stree' City State/Province<br />

Cod. Codt<br />

ZJ Chl'Ck Check enclosed in the ihe amount of S _________<br />

o Z2 Bill Visa<br />

0 □ Bill Master Charge<br />

Card No.<br />

Exp. Date.. ___<br />

~~TI BYTE BOOKS Division. • 70 Main Street<br />

Peterborough, NH 03458 DeP'-<br />

IJ[)[)~~ ______ ~~~r~~ ~o~~~,_~~_O~~~ ____ ~:"~ ~~5 __


10 COMPUTE. MAY MAY/JUNE. I JUNE. <strong>1980</strong>. 198O. ISSUE ISSUE4.<br />

His book, then, is a discussion oof f the computerr<br />

world fro m the standpoint of its potential and actu al<br />

world from the standpoint of its potential and actual<br />

impact oon n society. . Written n to the level oof f the<br />

educated layman, this s book shows what computers<br />

actually do, and then goes on to describe his con<br />

actually do, and then goes on to describe his concerns<br />

for a technology which has the power to radicallyy<br />

change society. He suggests that the changes to come<br />

change society. He suggests that the changes to come<br />

from m the invention oof f the computerr will be as pro­<br />

found as those which took place with the invention<br />

found as those which took pl ace with the in vention<br />

of the clock - that soc iety will be irreversibly<br />

One of the topics di scussed widely was Weizenbaum's<br />

description of the prototyp ical co mputer<br />

of the clock - that society will be irreversibly<br />

changed, , for better or for worse, by computers.<br />

When thiss book was published in 1976 it caused<br />

quite a stirr in the computer science community. .<br />

One of the topics discussed widely was Weizenbaum's<br />

description of the prototypical computer<br />

enthusiast, functioning as a "compulsive gambler"<br />

in a self-made universe: ."Their 'The rumpled clothes,<br />

their unwashed and unshaven faces, and their<br />

uncombed hair all testify that they are oblivious to<br />

uncombed hair all testify th at they are oblivious to<br />

their bodies aand to thee world in which they move.<br />

They ex ist, at least when so engaged, onl y through<br />

They exist, at least when so engaged, only through<br />

and for the computers. These are computers bums,<br />

compulsive programmers. They are an international<br />

,'phenomenon."<br />

. II<br />

Hmmm!<br />

While Weizenbaum's book preceded the advent of per­<br />

While Weizenbaum's book preceded the advent of per<br />

sonal computers, , it stands as a powerful work certain<br />

to stimulate much thought and conversation between<br />

you and your friends.<br />

you and your friends.<br />

A more recent book, which concentrates on the<br />

personal computer r revolution, is Running Wild, The<br />

Next Industrial Revolution, by Adam OsborneO (Osborne/McGraw-Hill, Berkeley, , CA, ISBN-O-<br />

931988-28-4). This book gives an exciting glimpse of<br />

931988-28-4). This book gives an exciting glimpse of<br />

the roots of the personal computer revolution n and is<br />

concerned with the followin g major idea: the micro­<br />

concerned with the following major idea: the micro<br />

processor was so radical an invention that established<br />

computer companies could not respond quickly to<br />

computer companies could not res pond quickly to<br />

bring small distributed computing power to the public.<br />

bring small distributed computing power to the public.<br />

It took new w ideas and new lean companies to see<br />

the potential which lay in this technology.<br />

OsborneO goes on to suggest that if the big companies<br />

couldn't t see the potential for this technology, then<br />

how can the bulk of the peo ple in society under­<br />

how can the bulk of the people in society under<br />

stand and cope with w its s implications. His message<br />

is that the microprocessor has spawned a revolution,<br />

,<br />

rather than it being part of an evolutionary develop<br />

rather th an it being pa rt of a n evolutionary development.<br />

A result of this thinking is Osborne's fear<br />

that blue collar workers will be displaced by robots<br />

soon and that half of today's jobs will change<br />

soon, and that half of today's jobs will change<br />

drastically dras;icall y within the decade. . The microelectronics<br />

revolution carries with it both promise and danger.<br />

This fast moving book is written for the layman and<br />

This fa st moving book is written for the layman and<br />

is fun to read.<br />

Leaving the heavy stuff aside, we now come to a<br />

couple of books for those who want to learn to do<br />

some programming with no prior exposure to com ­<br />

puters whatsoever.<br />

OOne book we had to have fo for r it its s title alone was<br />

Compuler Computer Programming Jor for Ihe the Com/)Iete Complete Idiot, by<br />

Donald McCunn (Design Enterprises of S. S.F., San<br />

Francisco, CA, ISBN-0-932538-04, $5.95). This book<br />

Francisco, CA, ISBN-0-932538-04, $5.95). This book<br />

was written by someone who only recently became<br />

in involved with personal computcrs computers, , and who realized<br />

the need for a book to help other neophytes co cope<br />

with the idiosyncracies oof f sending instructions to a<br />

machine. Written from the standpoint of a T RS-80<br />

machine. Written from the standpoint of a TRS-80<br />

user, most oof f his s material is ooff relevance to users<br />

of the various 6502-based machines as wel l. He<br />

of the various 6502-baaed machines as well. He<br />

carefullyy illustrates the importance of proper<br />

syntax in communicating Ling with computcrs computers and then<br />

goes oonn to illustrate the creation of a program<br />

by carefullyy constructing a small payroll program<br />

step-by-s tep. The choice of a mundane topic like<br />

step-by-step. The choice of a mundane topic like<br />

payroll may not seem as exciting g to you as a program<br />

to pl ay Space Wa rs, but a la rge nu mber of<br />

gram to play Space Wars, but a large number of<br />

potential computer users seem to be concerned with<br />

having these machines do something "useful"; ";<br />

so from their standpoint, , the e choice seems prettyy<br />

good. . This is the type of book you can leave beside<br />

your computer to let your friends explore computer<br />

programming for themsel ves. If you can't fi nd this<br />

programming for themselves. If you can't find this<br />

book locally, it can be ordered fromm the publisher<br />

(P.O. Box 27677, , San Francisco, CCAA 9'f 94127) I27) for<br />

$5.95 plus $1 .00 for shipping and handli ng.<br />

$5.95 plus $1.00 for shipping and handling.<br />

Another fairl y recent book that is very well<br />

Another fairly recent book that is very well<br />

writtenn is Basic and the Personal Computer, by<br />

ThomasT Dwyer and Margot Critchfield (Addison- n­<br />

Wesley Publishing Company, Reading Massachusetts,<br />

Wesley Publishing Company, Reading Massachusetts,<br />

ISBN-0-2-1-01589-7). This book is published as part of<br />

Addison-Wesley's "J oy of Computing Series" and it<br />

Addison-Wesley's "Joy of Computing Series" and it<br />

assumes no prior computer experience on the part<br />

of th e reader. Sta rting off wi th a straigh tfo rwa rd<br />

of the reader. Starting off with a straightforward<br />

description ion of computer r jargon, , along with a brief<br />

overview of the components which make up a computer<br />

, the book quickly moves to its main thrust:<br />

ter, the book quickly moves to its main thrust:<br />

software. Rather R r than use one large program to<br />

illustrate various programming techniques, Dwyer<br />

and a Critchfield create a large rge number of small<br />

programs which not onl y help to get various pro­<br />

programs which not only help to get various pro<br />

gramming ideas across, , but which are of o f interest<br />

rest<br />

in their ir own right. This is an exceptionally readable<br />

book which is made all the more enjoyable by the<br />

book which is made all the more enjoyable by the<br />

whimsical illustrations tio ns sprinkled throughout the text.<br />

We could go on and on and perhaps ps we should<br />

publish a bibliography next time - what do you<br />

thi nk? Anyway , we hope that these books a re of<br />

think? Anyway, we hope that these books are of<br />

interest to you.<br />

.<br />

Next time we might talk about the relation n between<br />

Goedcl 's Incompleteness T heorem , Star T rek -<br />

Goedel's Incompleteness Theorem, Star Trek -<br />

The T he Movie, M and the proof that machines cannot<br />

" thin k". H ow about it? If this sounds illleresting,<br />

"think". How about it? If this sounds interesting,<br />

let us know. We welcome suggestions for topics, and<br />

more re importantly, we want you to tell us how you<br />

feel. As we said before, , this s is is your column as<br />

much as it it is is ours.<br />

©


MAY/JUNE. I <strong>1980</strong> 198O ISSUE .d. &. COMPUTE. 11<br />

An Introduction to Small Business<br />

Software for the PET*. ll. H.<br />

Can DR. DALEY's offer a better<br />

Mailing List Maintenance System?<br />

You' ve seen them all ! Every softw are sup·<br />

You've seen them all! Every software sup<br />

plier offers a mailing list system off some<br />

sort orr another. Each of them has some ad·<br />

vantages and some disadvantages over the<br />

others.<br />

So when DR. . DALEY's decided 10 to offer<br />

a mailing list we felt that it had to offer<br />

some other advantages over all all of the<br />

others. lhers. We have ooffered—and red-and sold<br />

some-mailing some—mailing listt systems before, but<br />

these offer feww things that makes them<br />

unique.<br />

unique.<br />

SERIOUS BUSINESS<br />

When you wish to purchase a software<br />

system forr any business purpose youu need<br />

to give it serious and thorough considera·<br />

tion. What do you wish to accomplish with<br />

the software? What arc are your needs? How<br />

can a computerr assist you in filling these<br />

needs?<br />

We have asked these questions<br />

numerous us times to 10 people people who do mailings<br />

with lists in the size range off 500 to 15,000<br />

names. The result was unanimous: every·<br />

one has different information on needs. This,<br />

off course, means that everyone who buys a<br />

mailing list system, , or any otherr business<br />

software, must find a program that comes<br />

closest to his needs. This is a time consum·<br />

ing, expensive task. We've talked with<br />

businessmen who have become frustrated<br />

with this process and are ready to throw in<br />

the towel. Another option n is to hire a pro·<br />

grammer cr to write the e software for r you u or to<br />

write writc your own. ThisT can cost more than the<br />

cost of the computer.<br />

The last opiiono ptio n is to find prepackaged<br />

software which each individual ividual user can<br />

easily y configure to his own needs. This<br />

would d allow each business to customize its<br />

s<br />

own computer maintained ned mailing g list files<br />

to, , as closely as is possible, parallel llellhe the cur·<br />

rentr e n~ mailing list operation. o Until now, this<br />

optiono ptIo n has been virtually y impossible to<br />

fulfill, ll , from any software publisher.<br />

IMPLEMENTATION<br />

OurO computerized mailing list system is<br />

designed to be easy for r you, the user, to be<br />

able to easily configure your files to contain<br />

information in much the same way as you<br />

currently are doing. dOing. This means less of the<br />

pain and anguish that frequently accompanies<br />

computerization.<br />

io During the programming the author was<br />

in frequent contact with potential ti end<br />

users. The main thought o during the<br />

development phase p was to make the opera·<br />

tion easy to understand, , yet powerful<br />

enough to handle the job. Give the user as<br />

many options as is feasible, with the flex.<br />

ibility y to make the greatest possible use of<br />

the file information. Finally, y. be sure that<br />

the capaci ty o f the sys tem is sufficient to<br />

the capacity of the system is sufficient to<br />

allow most aany business to make use off it.<br />

The final version will allow records of<br />

1177 USABLE E characters in length with a<br />

maximum of 15 fieldss within each record. It<br />

also allows reasonably large capacityy with<br />

multiple diskette e (maximum off 100 dis·<br />

keltes kettes onn a 32K PET or CBM) files and up<br />

to 1340 records per diskette.<br />

to 1340 records per diskette.<br />

WHAT ABOUT SORTING?<br />

We hear this question most frequently<br />

We hear this question most frequently<br />

fromm you. . This is because sorting is the<br />

operation o n that divides the MAl MAILING LIST<br />

system from anyy mailing list system. Why<br />

sorting? Well it is the way that the user can<br />

do such things as selective mailings 10 to<br />

groups with common characteristics. This<br />

could include regional mailings, mailings to<br />

customers of a particular product, mailings<br />

to purchasers orr to prospective cuslomers,<br />

customers,<br />

etc., etc. Or you might wish to make aany<br />

possible combination of these categories.<br />

Try to do this on most ordinary mailing<br />

list programs. p You simply can'tt do it with<br />

most of the offerings on the market today.<br />

This sorting is done by a "wild card"<br />

type of sort. This means that you can<br />

specify the contents off any portion n off a<br />

field for a match and the computer will take<br />

any match for r the rest ofo f the field. This type<br />

of sort is best illustrated with the following<br />

examples:<br />

A sort key can n be: **R**1 uR"1<br />

Matches with FORT#1<br />

RTHI<br />

and T4R321<br />

and %/R@3l% / R@31<br />

Our system allowsa this type ofo f sorting using<br />

up to three fields within in each record. Thus<br />

you should be able to retrieve rieve almost any<br />

conceivable subset of the files.<br />

.<br />

File organizationo o n is done using g two o of the<br />

fields as sort son keys. This again is user select·<br />

able. You u could, for example, specify that Iha t<br />

you wish the file to 10 be in ZIPZ CODE se·<br />

quence or in alphabetical sequence anda all<br />

records within n the file will be sequenced<br />

with h ihat that field. . There is also a second sort<br />

field which is used to sequence the file<br />

where the first field is the same.<br />

where the first field is the same.<br />

WHAT ABOUT LABELS?<br />

We hear r this oneo almost as often as the<br />

Charge C to<br />

your<br />

MC/VISA<br />

M C / S A<br />

DR. DALEY's Software Soflware<br />

425 Grove Gro\'e Ave., Berrien Springs, MI 49103<br />

Phone (616)471-5514<br />

471·5514<br />

Sun.-Thurs. noon n to 9 p.m., Eastern Time<br />

sorting. We ll , here this is up to you. Yo u<br />

sorting. Well, here this is up to you. You<br />

can, at the lime time you print labels, choose the<br />

la layout of the labels, you can also choose the<br />

number ooff labels per li line. If you wish to<br />

have a fo four line address and printed fo four<br />

records wide you can do it.<br />

WHAT ABOUT EDITING?<br />

Edi tin g is accomplished at several points<br />

Editing is accomplished at several points<br />

in the program. These are at the time of en·<br />

try, before saving the records to the file and<br />

from the disk fi file. You can easilyy modify<br />

any record at any of these points.<br />

This docs does not really cover all ooff the<br />

operations o oonn the fi files. Space simply does<br />

not allow a more completc complete description off<br />

the user oriented approach off the program.<br />

We asked the question: n: Can we offer a<br />

better mailing list system? You bet bel we can! !<br />

It's here now.<br />

HARDWARE REQUIREMENTS EMENTS<br />

At Al present this requires a <strong>Commodore</strong><br />

PET orr CCBM computer with a dual disk<br />

drive and a printer. It is sct set up to work with<br />

the <strong>Commodore</strong> printer or with most any<br />

other printer. Walch Watch for these programs to<br />

be introduced for r use with other types off<br />

popular pular microcomputers. The APPLE II<br />

version will be available about <strong>June</strong> 1,<strong>1980</strong>.<br />

<strong>1980</strong>.<br />

Watch for it!<br />

ORDERING<br />

At the present time many <strong>Commodore</strong><br />

dealers do not carry our software. Thus you<br />

will most likely need to either persuade<br />

them to ordero for r you or calling us directly<br />

at (616) 471-5514 1·55 14 anytime between n noon<br />

and 9 p.m. Eastern time Sunday through<br />

Thursday. For only o y $99.95 plus'four ur per­<br />

cent tax in the state of o f Michigan, you get<br />

this powerful, , field tested, fully y docud ocu·<br />

mented Illent ed program p packaged in a convenient<br />

three-ringed<br />

three·ringed binder.<br />

INVENTORY<br />

We must add this note. There is too little<br />

space to 10 allow a us to describe the INVEN·<br />

TORY system adequately ualely here. It offers the<br />

same flexibility li as does the MAILING LIST<br />

described above, but we can't , tell you much<br />

more. Write or call for details. It also is<br />

priced at al $99.95.<br />

*Watch ·Walch for r it on the APPLE II.


12 COMPUTE. MAY/JUNE. I <strong>1980</strong>. 198O. ISSUE 4. 4<br />

WHY IS CURSOR'<br />

SO GOOD?<br />

A Special Thanks to<br />

Our Talented Authors:<br />

Our Talented Authors:<br />

Howard Arrington<br />

Gary Bainbridge<br />

Chuck Bond<br />

Chuck Cares<br />

Hal Carey<br />

Art Carpel<br />

Carpet<br />

Sheila Dolgowich<br />

Ralph Dufour<br />

Greg Erker<br />

Glen Fisher<br />

Gary Flynn<br />

John Fox<br />

John Grove<br />

Julia Hallford<br />

Mike Hamilton<br />

Mark Heaney<br />

James Hinds<br />

Ken Kasmar<br />

George Leolli<br />

Leotti<br />

Randall Lockwood<br />

Martin Mabee<br />

David Malmberg<br />

Tom Marazita<br />

John Malarella<br />

Matarella<br />

Ken Mallhews<br />

Matthews<br />

John Melissa<br />

Malcolm Michael<br />

Ken Morley<br />

Christopher Nadovich<br />

Norman Parron<br />

Mark Pelczarski<br />

Larry Phillips<br />

David Plallon<br />

Platton<br />

Donald Ross<br />

Herb Sandy<br />

Brian Sawyer<br />

Tony Schellino<br />

Schettino<br />

Larry Stevens<br />

Theodor Wagner<br />

<strong>May</strong>be it's because we've always had high standards. Beginning with<br />

our first issue in July, 1978, we've published some 80 programs in our<br />

first 16 issues. Plus 16 animated graphic "Front Cover" programs.<br />

That's a lot of programs, a lot of code. Each program has been<br />

extensively edited by Glen Fisher, our Editorial Director. The result is<br />

obvious: Cursor programs reflect professional standards. We're<br />

proud of every program we publish.<br />

But there's something else, too.<br />

But there's something else, too.<br />

It's imagination. Our subscribers continue to be delighted with the<br />

new, fresh programming ideas that Cursor provides. Some of the<br />

best graphic animations for the Pet have appeared in Cursor.<br />

Teachers love us! They use Cursor as an example of what can be<br />

done on a Pet, with some skill and imagination.<br />

Finally, there's service. Orders for single issues are almost always<br />

shipped within 24 hours. New subscriptions are processed within<br />

five working days. Should you get one of our rare defective tapes,<br />

just return it for an immediate replacement. And of course you can<br />

cancel your subscription at any time and we'll gladly refund all<br />

remaining ing issues.<br />

Cursor: Quality. Imagination. Service.<br />

For only $3.95 you can buy a sample issue and judge for yourself. Or<br />

send $20 for a six-issue subscription. You'll get six C-30 cassettes,<br />

each with five programs and a Front Cover ready to LOAD and RUN.<br />

With each issue you also get our Cursor NOTES, a lively commentary<br />

on the industry, as well as documentation for the programs.<br />

r------------ ORDER FORM-------- - ----,<br />

r_<br />

L __ Sample Copy of Cursor $3.95 (California residents add 6% tax)<br />

Sample Copy of Cursor $3.95 (California residents add 6% tax)<br />

: __ 6 issues for $20 (US & Canada. US Funds.)<br />

I Name ___ _____ ___________ _____ _<br />

Name<br />

fCURSORi!<br />

CURSO~·<br />

/'TOK'arnj lU I PET'" Cump" I11 "'.' _,<br />

Address ____________________ ____<br />

Address<br />

City ______ ___ _ _ _ State ___ _ Zip _____ _<br />

City Slate Zip<br />

o D VISA 0 □ MasterCharge Expires:<br />

■ Programs Jar PEC* Gompuien % ''<br />

Card Number: _______ _ Signature:<br />

I<br />

CURSOR<br />

Pet is a trademark of<br />

|<br />

<strong>Commodore</strong> Business Machines, Inc.<br />

Box 550<br />

The Code<br />

■<br />

Goleta, , CA 93017 W k -<br />

\ Phone: 805-967-0905 Works<br />

S J<br />

,--------------------------- -- ---~<br />

J


MAY MAV/JUNE. I <strong>1980</strong> 198O. ISSUE 4. COMPUTE. 13<br />

Formation of a<br />

Formation of a<br />

COMPUTE Column<br />

for the<br />

Handicapped<br />

Handicapped<br />

Susan Semancik,<br />

The Delmarva Computer Club<br />

The Delmarva Computer Club is thankful for the<br />

many encouraging and enthusiastic letters we have<br />

received from people all over the country concerning<br />

our activities. We apologize for the length of time it is<br />

taking us to respond to some of the letters, but we are<br />

working on answering each letter on an individual<br />

basis. At the rate mail has been coming in lately,<br />

however, we will soon be spending more time answering<br />

letters than working on those programs for which<br />

the Club was formed!<br />

The Editor of COMPUTE magazine has provided<br />

us with an opportunity to answer some of the common<br />

requests of these letters through his magazine and at<br />

the same time to provide a much needed "clearinghouse"<br />

for information concerning help for the<br />

handicapped. In doing this, we are not trying to<br />

discourage correspondence, but are hopeful that<br />

answers to many similar requests can be quickly<br />

givenn through the magazine and that people needing<br />

special resources for the handicapped can be matched<br />

with those people who possess the programs, equip­<br />

ment, , or innovative ideas to help the handicapped.<br />

We encourage people and organizations to write<br />

to us concerning either their specific needs or<br />

their specific resources available. Even people with<br />

ideas that they themselves cannot implement should<br />

write in about them, , and perhaps other people<br />

with either the needed ability or capital can join<br />

together to help make the ideas into a working reality<br />

to improve the quality of life for the handicapped.<br />

We would appreciate your including in your letters<br />

permissionion to publish in thiss column the information<br />

you give, for we will only make public those requests<br />

and offers for which permission has been<br />

granted.<br />

We also plan, through this column to keep interested<br />

people informed of the progress we are making<br />

in specific program developments in the Club. Thank<br />

you again for your interest. We hope thatt you will<br />

all continue to respond, and will welcome this oppor­<br />

tunityy to openly exchange information.<br />

Response to requests for the Manual Alphabet<br />

Tutorial Program on a PET<br />

Our recent article on the PET Manual Alphabet<br />

Tutorial in COMPUTE's issue #3 resulted in many<br />

requests for obtaining the program. It is currently<br />

being updated and expanded, and will be available<br />

for purchase in approximately 6 weeks. We anticipate<br />

the selling price to be $49.95, with discount prices<br />

for those buying in quantity. If you wish to order<br />

for those buying in quantity. If you wish to order<br />

this program, please advise us so we can place your<br />

name on our waiting list. We really want to attempt to<br />

make this as effective a program as possible and<br />

are considering a novel approach to encourage feedback<br />

on the usefulness of the program: If through<br />

back on the usefulness of the program: If through<br />

use of this program, you are the first to make a<br />

particular suggestion to us for its improvement and we<br />

incorporate your ideas in a revised edition of the<br />

program, we will update your copy of the program<br />

accordingly at no extra charge.<br />

accordingly at no extra charge.<br />

Response to Delmarva Computer Club Membership<br />

and Newsletter Requests<br />

Our membership is currently restricted in our By­ By-<br />

Laws to the Delmarva Peninsula, and our newsletter<br />

is an "in-house" publication, not meant for outside<br />

distribution. We are currently publishing articles and<br />

announcements about the Club's activities in COM­<br />

PUTE magazine, and would suggest that interested<br />

people can follow the development of specific areas<br />

of interest through COMPUTE. We would appreciate<br />

correspondence with anyone wishing to share ideas<br />

and insights with us.<br />

Response to Requests for a Computer Program<br />

Exchange<br />

Since we are a small club that has only recently<br />

formed, our program library is rather limited at this<br />

date. We will forward letters requesting program exchanges<br />

for particular computers to those members<br />

who have the same equipment, and an exchange on<br />

an individual basis may be possible. We would<br />

appreciate people sending us listings of programs<br />

they have available for exchange, and we will keep<br />

them informed as our library grows.<br />

The Delmarva Computer Club<br />

The Delmarva Computer Club<br />

P.O. Box 36<br />

Wallops Island, VA 23337 ©<br />

Wallops Island, VA 23337 ©<br />

aile One oj of the more positive experiellces experiences oj of getting this magazine<br />

started and rolling has been the chance to plug into the<br />

""mainstream" " of microcomputing activity. The mainstream,<br />

I've I'uefound, isn Isn '[ 't by implication the most well known activity...<br />

it's simply individuals or groups working hard to develop new<br />

uses for Jar their micros. The non-proJit non-profit Delmarva group may<br />

feel geographically isolated, at times, from the ((mainstream";<br />

"mainstream";<br />

personally [think I they're at itsJorefront. forefront. [ I'm pleased we've<br />

Jound found each other, alld and especially pleased at their relationship<br />

with COMPUTE.<br />

Robert Lock, Editor/Publisher


14 COMPUTE. MAY/JUNE. I JU'\! E. <strong>1980</strong>. ISSUE 4.<br />

PRODUCT FEATURE<br />

When <strong>Commodore</strong> introduced the CCBM and Professional<br />

computers, we were introduced to an upgraded<br />

BASIC and an upgraded machine that was more con­<br />

venient to use. The same can be said forr the introduction<br />

of the new 80 column machine called the<br />

CBM 8000 Business Computer. There will be two<br />

models, the 8016 ((16K of memory), and the 8032<br />

(32K of memory). Both models come with the business<br />

style keyboard.<br />

The CCBM 8000 series comes with BASIC 4.0.<br />

This s BASIC has the disk commands built in. . (For a<br />

good description of these commands, see Chuck<br />

Stuart's article on BASIC 4.0 in the Marchi<br />

March/<br />

April COMPUTE.)<br />

The major external difference is the 12 inch<br />

monitor. Case size is adjusted appropriately, and the<br />

now familiar green CRT is standard. Resolution is<br />

good, especially when combined with the TEXT and<br />

GRAPHIC functions described below. Internally, the<br />

new versionn of the Main Logic Board has moved<br />

the second cassette port to the right side of the board<br />

(near the rear memory expansion header). You can<br />

now plug in a second cassette without opening the<br />

casco<br />

case.<br />

Since line wrap-around for the screen is no longer<br />

needed in the operating system, , a number of new<br />

screen editor functions have been added. Here is a<br />

brief description of each of these.<br />

First of all, , the REPEAT, TAB, and ESC keys<br />

are functional on the CBM 8000. Holding down the<br />

REPEAT key in conjunction with another will cause<br />

that key to be entered repeatedly. Cursor controls,<br />

insert and delete, and the spacebar repeat automa­<br />

tically. The TAB key causes the cursor to skip to the<br />

next tab stop. Shift-TAB is used to set or clear the<br />

current cursor position as a tab stop. The ESC key<br />

functions when the screenn editor is in quote mode,<br />

or there are outstanding inserts. Hitting the ESC<br />

key will exit the insert aand quote modes.<br />

In addition, there are 11 new functionsns available. able .<br />

These are BELL, TEXT, GRAPHIC, INSERT<br />

LINE, DEL LINE, SCROLL UP, SCROLL<br />

DOWN, , ERASE BEGIN, ERASE END, SET TOP,<br />

and SET BOTTOM. The CBM 8000 won't have<br />

keys corresponding to these functions, ns, but with<br />

some additional software they can be accessed from<br />

the keyboard using a sequence of keystrokes. Also,<br />

TheCBM 8032<br />

The CBM 8O32<br />

Lorry Larry Isaacs, COMPUTE Stoff<br />

Staff<br />

Robert Lock, Editor<br />

each off these functions has an assigned character<br />

value so they can be accessed under program control.<br />

The BELL function uses CB2 sound, so you must<br />

The BELL function uses CB2 sound, so you must<br />

add an external speaker if you want to use this one.<br />

Printing the appropriate character willw sound thee<br />

bell, , as will reaching the e 75thh column when typing<br />

on the e screen. n. The TEXT and GRAPHIC functions<br />

set the corresponding display mode. This involves<br />

set the corresponding display mode. This involves<br />

more than selecting the characterr set. In text mode<br />

the lines arc separated slightly y to make them more<br />

readable. In graphic mode the lin es a re brought<br />

readable. In graphic mode the lines are brought<br />

together th er so the graphics characters will touch.<br />

The INSERT T LINE, DEL LINE, SCROLL UP,<br />

and SCROLL DOWN functions operate as their name<br />

implies. . When scrolling, blank lines are scrolled<br />

onto the screen, and lines scrolled off thee screen are<br />

lost.<br />

ERASE BEGIN erases, from the beginning of the<br />

line occupied by the cursor, up to and including<br />

line occupied by the cursor, up to and including<br />

the cursor position. The rest of the line and thee cursor<br />

position arc left unchanged . ERASE END erases<br />

position are left unchanged. ERASE END erases<br />

from the cursor position to the end of the line, again<br />

leaving the rest of the line and cursor position<br />

unchanged.<br />

SET TOP aand SET BOTTOM are two functions<br />

which greatly enhance the usefulness of the e 80<br />

column screen. They allow you to definee a portion<br />

of the 80 X 25 screen as a window. All screen<br />

editor and display functions operate only within this<br />

window, t with screen contents nts outside the window left<br />

untouched. . SET TOP sets the top left corner of the<br />

window to the current cursor position. SET BOTTOM<br />

sets the bottom right cornerr of the window to the<br />

current cursor position. . After defining g a window, w you<br />

return to use usc of the full screen by hitting the HOME<br />

key twice.<br />

These functions, when coupled with the e 80<br />

column screen, make the CBM 8000 series an aggres­<br />

column screen, make the CBM 8000 series an aggres<br />

sive entry into thee small business market. Word Pro<br />

IV , the ve rsion developed for the 80 column<br />

IV, the version developed for the 80 column<br />

machine, apparentlyy includes the software necessary<br />

to interface with many off the Spinwriter special<br />

characters. .<br />

We expect commodore dealers to have units in<br />

the,<strong>June</strong>/July time frame. Our word is that production<br />

the J unc/July time fram e. Our word is that production<br />

is well along.<br />

is well along.


'<br />

nrnauui<br />

J<br />

Authorized Dealers<br />

APRIL,<strong>1980</strong><br />

ALABAMA<br />

ANDERSON<br />

AII!)(RSO'I<br />

3156 3 156 University Unlvelsl1y Dr 01 NW<br />

Hunlsville 35805<br />

205-539-3444<br />

205-539·3444<br />

8ERNEY BERNEY OFFICE orrlCE EQUIPMENT<br />

EQUIPMWI<br />

1718 Vaughn Rci Rd<br />

Montgomery Monlgomery 36109<br />

205-277-1601<br />

205·277-1601<br />

COMPUTERLAND<br />

~/P\J I [Rl AND<br />

3020 University UmverSlty Dr NW<br />

Huntsville 35805<br />

205-539-1200<br />

205·539·1200<br />

5C COIU'OM TIOIl<br />

5C CORPORATION<br />

246 Soulh South Court COUll SI 5 1<br />

Montgomery Monlgomery 36104<br />

205-262-1961<br />

1961<br />

THE IH[lOGICSIORE<br />

LOGIC STORE<br />

Lagoon Pik Prk Shopping ShoPPing Vlge<br />

Monlgomery 36117 3611 7<br />

205-279-9797<br />

RICKLeS RICKtfS ELECTRONICS<br />

ELEC TfI(J:ICS<br />

2800 Meighan Blvd<br />

Gadsden 35904<br />

205-547-2534<br />

2OS-5


(:: Authorized Dealers<br />

1<br />

SYSTEMS fOOMULATf FORMULATE OOU' COUP<br />

COMl'lJTERt>NO<br />

COMPUTERLAND<br />

PERlMffER PERIMETER OffICf OFFICE SIJPf\. SUPPLY Y & [0011' EQUIP INC<br />

wants<br />

39 Town & 4 Counlry Country Village<br />

500 E SpanIsh Spanish RIver River Blvd<br />

6950 Peachtree Peachlree Ind. Blvd., Blvd.. SUi Suite F<br />

6146N. Unco Lincoln Ave.<br />

Palo Alto 94301<br />

Boca Ralon Raton 33432<br />

Norcross 30071<br />

Chicago 6O&t5 60645<br />

415-326-9100 5·326·9100<br />

305·368·11 305-368-1122<br />

~04 404-449-5832<br />

-·U 312-583-8358<br />

COMPUTERLAND<br />

COLORADO<br />

COMPUTERLANO<br />

HAWAII..<br />

• ORCun OflCUTT BUSINESS MACHlNfS<br />

MACHINES<br />

274 AlhamDra Altiambra Circle<br />

431 First Street<br />

A."'PTEC<br />

AMPTEC<br />

Coral Gables 33134<br />

COMP\J COMPUTERLAND TERLANO<br />

laSalle USalle 61301<br />

2310 Providence Clfcle<br />

Circle<br />

305·442-411 305-442-41122<br />

567 S. S KingS! SI.<br />

81S-224-277~<br />

815-224-2774<br />

Colorado Springs 80909<br />

60909<br />

Honolulu 96813<br />

COMPUTERLAND<br />

303-597-5364<br />

COMPUTERlANO<br />

303-597-5384<br />

808-521-8002<br />

• ■ RUHl RUHL [I, & ASSOCIATES<br />

3963 N. Federal Hwy<br />

24 W. W Stevenson<br />

AMPTEC<br />

Ft Fl lauderdale Lauderdale 33308<br />

IDAHO<br />

Freeport 61 61032<br />

5975 No Broadway<br />

305·566·0776<br />

305-566-0776<br />

815-235-7800<br />

Oenver8021S<br />

Denver 80216<br />

,"ELECTRONIC ElECTRONIC SPt:CIAlIIES<br />

SPECIALTIES<br />

303-571-0833<br />

COMPUTERLAND<br />

SCHAFF S 303-571·0833<br />

COMI'UTERLANO<br />

8411 H411 Fairv fairview iew Ave.<br />

• SCtlMF SYSTEMS [I, ENGINEERS<br />

2777· 2777-66 University Blyd Blvd<br />

Boise 83704<br />

Rts. RIs 25 [I, 4 62<br />

Bm BYTE SHO!' SHOP<br />

Jacksonville 32217<br />

208-376-5040 -5040<br />

Algonquin 60102<br />

3101 WalnulSl SI<br />

904-731-2471<br />

312-658-5013<br />

2-658-S013<br />

Boulder 80301<br />

•'<br />

waltO WOULD TOY & 4 H088YCRAFT<br />

H0B8YCRAFT<br />

303-444-6550<br />

LANO<br />

Fairview INDUSTRIES<br />

-6550<br />

COMPUTERlANO<br />

7820 FaiNiew Ave.<br />

• STEREOTRONIC IES<br />

73744 S. Tamiami Trail<br />

Boise Soise 83704<br />

Wadsworth<br />

B3704<br />

Ad. Rd [I, & North Ave.<br />

BYTESHOI'<br />

SHOP<br />

Sarasota 33581<br />

208-376-3561<br />

lion Zion 60099<br />

300 E. E foothills Foothills Pkwy<br />

813-921-7800<br />

312-336-2222<br />

FI Ft Collins 80525<br />

COMPUTERLAND<br />

303-223-4000<br />

INC<br />

303·223·4000<br />

COMPIJTEALANO<br />

ILLINOIS<br />

SYSTEMS. IHC<br />

1520 E Fowler Ave.<br />

22"00 2200 W. lawrence Lawrence Ave.<br />

,• APPLnREE APPLETREE STER£O<br />

STEREO<br />

BYTESHOI'<br />

SHOP<br />

Tampa 33612<br />

Chicago 60625<br />

1022 W lincoln Lincoln Hwy<br />

970 So. Oneida<br />

813-971-1680<br />

3312-561-6137<br />

-6137<br />

OeKalb601 DeKalb6O115 15<br />

Denver 80224<br />

COMP\JTEAlANO<br />

COMPUTERLAND<br />

815-758-2442<br />

303·399·8995<br />

303-399-8995<br />

INDIANA<br />

4275 Okeechobee Blvd.<br />

■ APPLETREE aJMPllTERlAHO<br />

COMPUTERLAND<br />

Wesl West Palm Beach 33409<br />

• APPlETREE STEREO<br />

,• AUOIO AUDIO Sf'ECtAUSTS<br />

SPECIALISTS<br />

117-119 E. Beaulorl Beaufort 51. St.<br />

8749 Wadsworlh Wadsworth Blvd<br />

305-684-3338<br />

405 N. Michi9an<br />

Michigan<br />

Normal 61761<br />

Arvada 80005<br />

South Bend 46601<br />

~ 1<br />

COt.'.PUTER COMPUTER SPt:CIAlTY<br />

SPECIALTY<br />

309-452-4215<br />

303·420-1877<br />

303-420-1877<br />

2219-234-5001<br />

3820 MinIon Mmton Road<br />

• API'LEIREE APPlEIREE STEREO<br />

OJMPUTERLANO<br />

COMPUTERLAND<br />

Melbourne 32901<br />

• ■ COt.'.MUlIICATIONS COMMUNICATIONS ElfCTR(llICS<br />

ELECTRONICS<br />

1545 1645 N N. . Alpine<br />

45434 ~3 Templeton Gap Ad Rd<br />

305-727-5147<br />

2204 Grand Ave.<br />

Rocklord Rockfor0 61107<br />

Colorado SprIngs Springs 80909<br />

Connersville 47331<br />

COMPUTERS FOR YOU<br />

815-226-9826<br />

393-574-4150<br />

317-825-6893<br />

3608 W. Broward Blvd.<br />

AR!'HAX ARPHAX COfIPORATION<br />

CORPORATION<br />

CUMPUnRLAND<br />

COMPUTERLAND<br />

Ft Lauderdale 33312<br />

'"'.•THECOMPUTER TIE COMP\HffiWllf,ll<br />

CENTEfl<br />

1422 N. E.Adams<br />

2422 S. Colorado Blvd.<br />

305-581-8945<br />

51591 US 31 North<br />

Peoria 61603<br />

Oenver Denver 80222<br />

B0222<br />

:",·::;~~~~lr&~~~~~h<br />

South Bend 46637<br />

CREATIVE EQUIPMENT<br />

309-676-1047<br />

303·759·4685<br />

303-759-4685<br />

219-277-4655<br />

50 NW 68th Ave<br />

fllACKKAWtOFFICE SUPPLES<br />

MICRO I COMPUTER INDUSTRIES<br />

Miami 33126<br />

COMPUTERLAND<br />

420 First St<br />

1520 E Mulberry.<br />

Suile 24<br />

305-261-7366<br />

19 W. 80th Place<br />

Oi*on6i02l<br />

Fl Collins 80524<br />

MerrillviHe46410<br />

FLORIDA BOOK STOflE<br />

815-288-3311<br />

303-221·1955<br />

303-221-1955<br />

19-769-8020<br />

1614 W. University Ave<br />

BYTE SHOP<br />

MICRO WORLO WORLD ELEC1RONIX<br />

ELECTRON!*<br />

Gainsvffle 32604<br />

FT. WAYNE ELECTRONICS<br />

1602 S. Neil St.<br />

6340 W. VV. MiSSissippi<br />

Mississippi<br />

904-376-6066<br />

3606 Maumee Ave.<br />

Champaign 61620<br />

Lakewood 80226<br />

80236<br />

Ft. Wayne 46803<br />

°rocus_<br />

' FOCUS SCSNTiFtC<br />

.217-352-2323<br />

303-936-4407<br />

219-423-3422<br />

22~ 224 N. FedeOlI federal Hwy BYl'ESIt)P<br />

BYTE SHOP<br />

NEIGHBORHOOD COMPUTER "PU"~ 51J. STO# A. Ft Llucterdlle Lauderdale 33301 5<br />

GHAHAM ELECTRONIC SUPPLY<br />

S. laGrange LaG Road<br />

130-15 W Alameda Pkwy.<br />

305-462-1010 l.aGrange60525<br />

23rd and Columbia<br />

LaGrange Lakewood 80215<br />

Anderson 46014<br />

RXJJS FOCUS SCIENTIFIC ~ 312-579-0920<br />

303-988-9140<br />

317-644-3381<br />

1601 BlsCayna BiscayneBlvd Blvd. BYTESICIP<br />

BYTE SHOP<br />

Miami 33132<br />

• GRAHAM ELECTfKHC SUPPLY<br />

CONNECTICUT ~~ .. ~~~.. 3361 W W. Dempster 51. Si,<br />

305-358-3948<br />

133 S. Pennsylvania St.<br />

~ ----- 5kokie Skokie 60076<br />

COlomAL COLONIAL EUTERPIUSES ENTERPRISES<br />

MIJW£ST<br />

Indianapolis 46204<br />

MIDWEST CORP.<br />

CORP 312-673-3550<br />

312-673.3550<br />

360 Broad Street 3341 317-634-8202<br />

NIH NW 82nd 62nd Ave.<br />

New London 06320 Miami CHICAGO SYSTEMS. WC<br />

33122 ~~ .~<br />

' GRAHAM ELECTRONIC SUPPLY<br />

203· 303-442-279B 442-2798 305-592-5355<br />

2200 Lawrence Ave.<br />

305-592-5355<br />

408 North Streel<br />

Chicago 60625<br />

COMPUTERLAND<br />

Lafayette 47902<br />

COMPU1ERlANO MONEY MANAGEMENT<br />

3)2-561-6137<br />

1700 Post Rd Ad ,t- Hentag<br />

1 ,,,,,g ~,.,---,,::::'6:=:':;': ~r:;r,_~5<br />

317-423-5564<br />

904 Oafcview Ave<br />

Fairfield 06430<br />

COMPUIERLAND<br />

Ciearwater 33516 .<br />

■ STEWART BUSINESS MACHINES<br />

203-255·9252<br />

203-255-9252<br />

50E.RandRd.<br />

B13-443-5073<br />

COMPUTERLAND<br />

4778 Broadway<br />

Gary 46406<br />

COMPUlERlANO<br />

(lRlAtUlO ORLANDO ELECTRONICS CO<br />

312-255-6488<br />

55 Pratt Streel<br />

219-884-9474<br />

55 Prat~ ~~~o~ 2356 W W. . Oak Ridge Road CQMPUTERLANO<br />

Hartford 06103<br />

COMPUTERLAND<br />

Hartlor 203-727-1857<br />

Orlando 32809 136 WW. Ogden Ave IOWA<br />

203-727.1857 305-855-1010 Downers Grove 60515 • THE COMPUTER CENTER<br />

CONNECTICUT MICROCOMPUTER<br />

■ THE COMPUTER CENTER<br />

CONNEClICUT MICRClC(w.PU TER PROfll PROFIT CONCEPTS. CONCEpTS. INC JUe 312-964-7762 302 CommerCIal<br />

150 302 Commercial<br />

1 SO Pocono Road 3300 Unlvelslty University Dr COMPUIERLANO<br />

Brookfield 06804<br />

COMPUTERLAND<br />

Water WaterlOO loo 50701 50701<br />

Brook/letd 6 0 5';804 Coral Springs 33065<br />

203-775-9659<br />

1500 1500 SS. LakeSt lake St. 319-232-9504<br />

319-232·9504<br />

203-77S-9 305-753-8303 Mundelem Mundelein 60060 CYBERlA.IUC<br />

OFFICE MACHINES<br />

CYBER1A, INC<br />

HAASE OffiCE MACHItI[S UNITED SYSTEMS & SOFTWARE SOfTWARE 312-949-1300 2330 lincoln Way<br />

Washington 2330 Lincoln Way<br />

908 Washing ton Blvd POP 0 Box 117 tl7 COMPUTERlAIUl<br />

Stamford 06901<br />

COMPUTERLAND<br />

Ames Ames 50010 5001 0<br />

Stamford 06901 Wmler Winter Park 32789 32769<br />

203-359-4680<br />

9511 9511 Milwaukee Milwaukee Ave. Ave 515-292-7634<br />

203-359·4680 305-647-2251<br />

305·&47-2251 THE MEMORY BANK<br />

Niles 60648<br />

THE MEMORY BANK<br />

28 GEORGIA COMPUTERlANO Davenport Oavenport 52806<br />

MULTI BUSINESS COMPUTER SYSTEMS MarlboroughSt<br />

312-967-1714 4128 41 28 Brady Brady St 51.<br />

COMPUTERLAND<br />

Portland 06480 ACTION BUSINESS MACHIUES MACHINES<br />

203-342-2747<br />

10935 SS. Cicero Ave Ave 319-386-3330<br />

3 203· 342 -2747 1684 N. Atwood Drive Oak Lawn 60453<br />

Oak Lawn 60453<br />

DELAWARE<br />

Macon 31204<br />

912-474-3333<br />

~la2c_~~}_h~~;<br />

312-422-B080<br />

3 12-422-8080<br />

KANSAS<br />

~~:~ SAS CfFIC E SVS<br />

COMPUTERLAND<br />

COMPUTERLAND<br />

COMPUTERLAIIO ■ANCRONA ' ANOIOtIA COMPU TERlAND<br />

4507 N. Sterling<br />

234 234 W. W. 4th 4th St.. St .•<br />

Astro Shopping Center 3330 Piedmont R6 Rd. ~S07. N6ISJ;~l ing<br />

Peoria 61614<br />

Hutchinson 67501<br />

Newark 19771 Allanta Atlanta 30305 309-688-6252<br />

3:r6~ 6252 316-662-0513<br />

3<br />

302-73B-9656<br />

302·738-9656 404-261-7100<br />

404·261-7100 - • ...... ......".'.0<br />

•' COMPUTERLAND<br />

CENTRAL KANSAS OFFICE SYS<br />

FINANCIAL FtNAHCIAL DYNAMICS<br />

OYHAlJ.1CS<br />

........ r\" LN'<br />

DISTRICT OF COLUMBIA ATLANTACOMPUtERMART<br />

AT1..AH1A COMPUTER IAART 530 Park Ave Avo. 10049 Santa Sanla Fe Drive<br />

COMPUTER COMP\JTEREMPORIUM EMPORIUM<br />

River Forest 60305<br />

Overland Park 66212<br />

Atlanta ~~-t: 30340<br />

~~;~~d Hwy ~;2~~~f~~:~~0305<br />

312-771-5441<br />

913-492-8882<br />

~3~!92~~~: 66212<br />

5091 -B Bulord Hwy<br />

1990 K Slreel Stleet NW 404-455-0647<br />

Washington Washmgl0n DC 20006 •KAPPELS • KAPPEL'S COMPUTER STORE STORf COMPUTER SYSTEMS DESIGN OESIGN<br />

202-466-3367<br />

202-460-3367 FLORIDA ACCURATE COMPUTING SERVICE SERVIC[ 785 N. Lake Blvd<br />

North Norlh Palm Beach BeaCh 33408<br />

305-B42-4900<br />

305.842-4900<br />

COMPUTERLAND<br />

COMPUTffiLAlIO 2423 Cobb Parkway<br />

..... ay<br />

Smyrna<br />

~~~~n5a3~g.o~2<br />

30080<br />

404-953-0406<br />

THE LOGIC STORE<br />

3050 30SO Macon Road<br />

Columbus 31906<br />

~~~6~~~,3~rs 125 E. MainSt<br />

51. Belleville 62220 618-277-2354 • LILLIPUTE ULlIPUTE COMPUTER MART 4446 Oakton St Skokie 60076<br />

312-674-1383<br />

3 906 N. Main<br />

Wichita 67214<br />

4<br />

316-265-1120<br />

120<br />

COMPUTER VIDEO ROOM<br />

7105 W . 105th St. 51<br />

Overland Park 66212<br />

913-648-7105<br />

105<br />

404-568-0197<br />

COMPUTER CENTER<br />

MAIN ELECTRONICS<br />

' ~~~~~~Rn~~=IT~~e . MERCHANT'S MERCKANl"S BUSINESS 8USIUESS MACH NES UES<br />

6578 Central Ave<br />

225 ~~ Ida I~L!CTRON ICS<br />

St. SI. Petersburg PeterSburg 33707 IB 18 Executive Dr. NE Wichita 67211<br />

813-343-1396 Atlanta<br />

:g:~J~3:~~~~<br />

30329<br />

404-633-1027<br />

316-267-3581<br />

315-267-3581<br />

"""""<br />

Falrlleld 06430 ~~;~:---_iCOMPU~~t~.....,~~~~=~ __ ... __ ~§~~~~~=<br />

PERSClHAI. PERSONAL COMPUTING C(Nt[R<br />

CENTER<br />

3819 W 951h 95th St<br />

Overtand Overland Park 60212 66212<br />

9913-649-5942<br />

13-&t9-5942<br />

KENTUCKY<br />

• BAAN£Y BARNEY MIllER·S MILLERS INC<br />

232 E. E Main 51. St<br />

Lexington 40507<br />

606-252·2216<br />

606-252-2216<br />

COMp\HERLANO<br />

COMPUTERLAND<br />

10414 1 ~ Shelbyville ShelbyvilieRd Rd.<br />

louisville Louisville 40223<br />

502-245-8288<br />

MICROTECH. IM: INC<br />

1127S. 61hSt<br />

6th Louisville 40203<br />

S02-587-8099<br />

502-587-8099<br />

LOUISIANA<br />

COI>'.l'\JTER COMPUTER PlACE<br />

PLACF<br />

3340 Highland Road<br />

Baton Rouge 70812<br />

504-387·0072<br />

504-387-0072<br />

COMPUTER PlACE<br />

PLACE<br />

1904 Pinook Pmook Rd = =202 2{)2<br />

Lafayette 70508<br />

318-232-4097<br />

ID!PUTER COMPUTER SHOPPE<br />

b~~~'Z<br />

12-AW<br />

7~~j<br />

Bank<br />

Expressway<br />

Gretna 70053<br />

504-366-0687<br />

-~66 - 0687<br />

• ■ aw.PU COMPUTER T£A SHOPPE<br />

SHDPPE<br />

3225 Danny Park<br />

Metaine 70002<br />

504-454-6600<br />

EXPAHW EXPANDER TECHtlOLOGIES. TECHNOLOGIES. I/;C INC<br />

3883Greenway Gleenway Place<br />

5hrevepor17 Shreveporl 71105 110S<br />

318-868-5144 144<br />

■FREEMAN ELECTRONIC::<br />

708 N. 7th St<br />

West Monroe 712


■<br />

■<br />

(:: Authorized Dealers<br />

• ■ NEECO (New Ef'lQland EnglandEletlronocsl<br />

Electronics)<br />

679 Highland Ave.<br />

Needham 02192<br />

617·449·1760<br />

617-449-1760<br />

• RETAIL COMPUTER C£NHR<br />

CENTER<br />

455 Cenler Center St<br />

Ludlow01056<br />

413·589·0106<br />

413-589-0106<br />

THE SOUNO SOUNDCOMPANY<br />

Fairfield Mall<br />

Chicopee 01020 020<br />

413·593·5330<br />

413-593-5330<br />

TilE THE SOUNO SOUND COMPANY<br />

447 Sumner Sumnor Avenue<br />

Spllnliald Sprmfielcl 001108<br />

08<br />

413·736·3626<br />

413-736-3626<br />

THE SOUND COMPANY<br />

TheWesttield Westfield Shops<br />

423 E. E Main Mam Sl St.<br />

Westfield Westfieid 01085<br />

413·568·1160<br />

413-568-1160<br />

MICHIGAN<br />

THE COMPUTER CWTER<br />

CENTER<br />

28251 Ford Rd.<br />

Garden City 46135 48135<br />

313· 313-422-2570 422·2570<br />

•'<br />

t::xw.PUlER COMPUTER I10USE HOUSE<br />

1407 Chnion Clinion Road<br />

Jackson 49202<br />

517·783·5343<br />

517-7B3-5343<br />

COMPUTERlANO<br />

COMPUTERLAND<br />

2927 261h 281h St SE<br />

Kentwood 49508<br />

616·942·2931<br />

616-942-2931<br />

CQI.I.PUT£RlAND<br />

COMPUTERLAND<br />

301 S Livernois<br />

Rochester 48063<br />

313·652·9000<br />

313-652-9000<br />

COMPUIERLANO<br />

COMPUTERLAND<br />

29673 NorthweSlern Northwestern Hwy<br />

Southfield SouthhelfJ 48034<br />

313·356· 313-356-8111<br />

I I<br />

• COMPUTERIMRT COMPUTERMART Of OF ROVAl ROYAL OAK<br />

560 W. 14 Mile Road<br />

Clawson 48017<br />

313-288-0040<br />

313·288·0040<br />

"• CQ.!PUTRO/UX<br />

COMPUTRONIX<br />

423 Saginaw Sagmaw Rd.<br />

Midland 48640<br />

517-631-8060<br />

517·631·8060<br />

HILTON FROST. INC<br />

162 Apple Ave.<br />

Muskegon 49442<br />

616-722-6757<br />

616·722·6757<br />

INlEfltlNK<br />

INTERLINK<br />

101 North Maplewood<br />

Bernen Bemen Springs 49103<br />

616-471-2144<br />

616-.471 ·2144<br />

616-471-3126<br />

·3126<br />

•' MAIN SYSTEMS. SVSTfMS.IIIC INC<br />

1161 \161 N. Ballenger Hwy = I8<br />

Flint 48504<br />

313-232-3130<br />

313·232·3130<br />

MAIN IAAlH SYSTEMS SVSTEMS INC<br />

1324 Lake lake Drive. SE<br />

Grand Rapids 49506<br />

616-454-0298<br />

616·454·0298<br />

MAIN SYSTEMS SVSTEMS. INC<br />

2929 Covington Court<br />

Lansing 4B912 48912<br />

517-485-3910<br />

517·485-3910<br />

MATRIX. INC<br />

1241 N Main Marn<br />

Ann Arbor 48104<br />

313-663-6677<br />

313-663·6677<br />

NATIONAL NATIONAlMICSIO<br />

MICRO<br />

1094 Third St<br />

Muskegon 49440<br />

616-722-2929<br />

6t6·722-2929<br />

• NEWMAN COMPUTER EXCHANGE<br />

1250N<br />

N. Mam Main Streel<br />

Ann Arbor 48107<br />

313-994-3200<br />

313·994·3200<br />

MINNESOTA<br />

1• COMPUTER DEPOT<br />

3615 W 70th St<br />

Minneapolis MinneapoliS 55436<br />

612-927-5601<br />

612·927·5601<br />

"• COMPUTER DEPOT DEPOl<br />

7625 Bush LakeRd.<br />

Minneapolis 55435<br />

612-831-2088<br />

612·831 ·2088<br />

COMPUTERLAND<br />

COMPUTEALANO<br />

8070 Morgan Circle Clfcle Dr Or<br />

Bloomington 55431<br />

612-884-1474<br />

612·884· 1474<br />

• 1 DIGITAL DEN<br />

2138 Burnsville Cenler<br />

Center<br />

Burnsville 55337<br />

612·770·3424<br />

612-770-3424<br />

• 1 DIGiTAl DIGITAL DENN<br />

tOO9 1009 Maplewood Mall<br />

Maplewood 55109<br />

612·770-3915<br />

612-770-3975<br />

' 1 I/.lWI:sDIJ. MINNESOTA!.'.ICRO MICRO SYSTEMS<br />

514 Cedar Ave Soulh South<br />

Minneapolis 55454<br />

612·338·5604<br />

612-338-5604<br />

• SCHAAl( SCHAAK ELfCTROIIICS<br />

ELECTRONICS<br />

1415 Mendota Heighls Heights Rd<br />

51. St. Paul 55120<br />

612·454·6830<br />

612-454-6830<br />

11M Z1M COMPUTERS<br />

5717Xeres Ave<br />

Brooklyn Cenler Center 55429<br />

612·560·0336<br />

612-560-0336<br />

MISSISSIPPI<br />

MISSISSIPPI MICROS IIIC INC<br />

Marl Mad 51-1700 Terry Rd<br />

Jackson 392()'c 39204<br />

601·948·1846<br />

601-948-7846<br />

MISSOURI<br />

• COMPUTfR COMPUTER COUNTRY<br />

235 Dunn Road<br />

Florissant 63031<br />

314-921.4433<br />

314-921-4433<br />

'COMPUTER COUNTRY<br />

4479 Lemay Ferry Rd<br />

St Louis 63129<br />

"314-487-2033<br />

COMPt)<br />

1214 S.Noland Road<br />

Independence 64055<br />

816-461-6502<br />

COMPUTERLAND<br />

11990 Dorset! Road<br />

Maryland Heights 63043<br />

314-567-3291<br />

COMPUTER MART<br />

181.5 Nolan[J Ro.id<br />

Independence ti405!><br />

GATEWAY Of FICE W<br />

9505 Gravois<br />

Aflton 63123<br />

314-631-0110<br />

PARSONS ELECTRONICS<br />

ELECIRQWCS<br />

1059 Venture Dr.<br />

St. 5t. Charles 63301<br />

314-723-2227<br />

314·723·2227<br />

MONTANA<br />

8YTESHOP<br />

1201 Grand Ave Suite 5ulle 3<br />

Billings 59102<br />

406-252-2299<br />

406·252-2299<br />

'• THE COMPUTER STORE SIOOf<br />

1316 121616thSt.W. 16th W =35<br />

Billings 59102<br />

406-245-0092<br />

406·245·0092<br />

NEBRASKA<br />

AMERICAN AI.'lR1CAN COMPUTERS<br />

CClMPUTfRS<br />

4442 SS. 841h 84th<br />

Omaha 68127<br />

402-592-1518<br />

402·592·1518<br />

COMPUTERLAND<br />

COMPUTERlANO<br />

11031 Elm SI.<br />

Omaha 68144<br />

402-391-6716<br />

402·391·6716<br />

DOUBLE OOiJ8t.E E ELECTRONiCS<br />

ElECTR(lN:CS<br />

280N N 115thSt<br />

Omaha 68154<br />

402-334-7870<br />

402·334·7870<br />

1" MIDWEST MIOWEST COMPUTER<br />

8625 6625 'I" .,.. Street<br />

Omaha 68127<br />

402-592-3590<br />

402·592·3590<br />

NEVADA<br />

8YTE BYTE SHOf> SHOP<br />

4104 S. KeitzkeLane<br />

Reno 89502<br />

702·826·8080<br />

702-826-8080<br />

• HOME COMPUTERS<br />

1775 Tropicana<br />

las Las Vegas 89109<br />

702·736·6363<br />

702-736-6363<br />

INGEt"UllY. INGENUITY. INC<br />

1562 linda Linda Way<br />

Sparks 89431<br />

702·3S9·667I<br />

702-359-6671<br />

SUPfR SUPER SOUNO<br />

SOUND<br />

1727-CE, Charleston<br />

Las Vegas 89104<br />

702-384·1512<br />

702-384-1512<br />

NEW HAMPSHIRE<br />

COMPUHRLANO<br />

COMPUTERLAND<br />

419 Amherst<br />

NaShua Nashua 03060<br />

603·889-5238<br />

603-889-5238<br />

L 0 D ENTERPRISES<br />

736 Third Ave.<br />

Bertin Berlin 03570<br />

603·752-1942<br />

603-752-1942<br />

SlILlGAtE STILLGATE COMPUtER COMPUTER SYSl[MS<br />

SYSTEMS<br />

1 West Street<br />

Keene 03431<br />

603·357·3981<br />

603-357-3981<br />

NEW JERSEY<br />

JERSEV<br />

"""'"ERlAND<br />

COMPUTERLAND<br />

Highway E65 Route 4<br />

Paramus 07652<br />

201-&45·9303<br />

201-845-9303<br />

""""'ERlAND<br />

COMPUTERLAND<br />

74 Elm SI. St.<br />

Morristown Mornstown 07960<br />

20t 201-539-4077 ·539·4077<br />

COMPUTERLAND<br />

1442 E Rpute?0<br />

Cherry Hilt 08034<br />

609-795-5900<br />

GAHor.N STATE CGMPUTFP<br />

9^*2 South Avesnue<br />

Erist Dr.<br />

West Miltord 07480<br />

201-682-3341<br />

MELAD MElAOASSOClAHS<br />

ASSOCIATES<br />

P O. Box 159<br />

Milllown Milltown 08850<br />

201-828-3682<br />

201·828·3682<br />

•SMI • S \,lI<br />

600 Washington Washinglon Ave<br />

Carlstadt sladt 07072<br />

201-939-4800<br />

201·939·48oo<br />

'• S S COMPUTER ENTERPRISES<br />

ENIEflPRISES<br />

224 EE. Madison Ave.<br />

Cresskill 07626<br />

201-567-8076<br />

201-567·8016<br />

ETONEHENGE STONEHENGE COMPUTER CO<br />

89 Summit Avenue<br />

Summit 07901<br />

201-277-1020<br />

201·277·1020<br />

THOfl THOR ELECTRONICS COfiP CORP<br />

321 Pennsylvania Ave.<br />

Linden linden 07036<br />

2D1-486-3300<br />

201·486-3300<br />

NEW MEXICO<br />

MICROCOMPUTER SERVICES SEIMCES<br />

2201 EE. 11th \1 th Street<br />

Farmington 84701<br />

505-327-6825<br />

505·327·6825<br />

• OMEGA BUSINESS auSINESS PROD PROO. INC<br />

3100Richmmond NE<br />

Albuquerque 87107<br />

505-345-4545<br />

505·34S·4545<br />

NEW YOHK YORK<br />

AMERICAN PERIPHERALS<br />

PfRIPHERAl.S<br />

3 Bangor Street<br />

Lindenhurst lindenhurst 11747<br />

516-226-5849<br />

516·226·5849<br />

•* A S. S D. D OFFICE SYS)"fMS<br />

SYSTEMS<br />

Van Wyck Plaza<br />

Poughkeepsie 12603<br />

914.473·9400<br />

914-473-9400<br />

";ASI J.SI CELESTIAL COMPUTEflS<br />

COMPUTERS<br />

N NY V ASIRQ'()GY ASTROLOGYctNTER<br />

CENTER<br />

127 Madison "'venue<br />

Avenue<br />

New York City 10016<br />

212·679·5676<br />

212-679-5676<br />

•* 8C BC COMMUNICATIONS<br />

207 Depot Road<br />

HuntinglonStn Stn, 11746<br />

516·549·8833<br />

516-549-8833<br />

THE BINARV BINARY CHlCltAAO. ORCHARD. INC<br />

5·5854 S-58S4 Camp Road<br />

Hamburg 14075<br />

716·648·7167<br />

716-648-7167<br />

BrlS BITS & S 8YTfS BYTES<br />

2800 Straight Rd.<br />

Fredonia i a 14063<br />

716·673·1682<br />

716-673-1682<br />

BlIS BITS COMPUTERS<br />

418W. W OominicSI.<br />

Dominic St.<br />

Rome 13440<br />

315·336·0266<br />

315-336-0266<br />

COMf'UCIRClJI COMPUCIRCUITT<br />

222 E. E AmherSl Amherst St.<br />

Buffalo 14214<br />

716·838-2442<br />

716-838-2442<br />

1 THE COMPUTER FACTORY<br />

485 Lexingion Ave<br />

New York City 10017<br />

212-687-5001<br />

' COMBtffEIHSHIBi*] STORE<br />

iO3Atian6cAve<br />

Lvibrook 11563<br />

51S-887-1S00 ;<br />

■CCMflJfiftHOUSF INC '■■■"<br />

721 Atlantic Ave<br />

Rochester 14609<br />

716-654-9238<br />

COMftmRLAND<br />

i6t2NtaflraFaiisBlwi.<br />

WSTEMS-<br />

1311 Northern<br />

seTii030<br />

516-627-2<br />

COMPUTER STRATEGIES. INC<br />

SOON. Main St<br />

Spring Valley 10977<br />

9U-356-7770<br />

COMPUTER CO/.'.PlfTER WORD. WOAD. INC<br />

422 Northern Blvd<br />

Great Neck 11021<br />

516-487-7830<br />

516·487·7830<br />

•- COMPUTER WOfiLD WORlO<br />

519 Boston Boslon PostRd<br />

Rd<br />

Port Chester 10573<br />

914-937-6662<br />

914·937-6662<br />

COMTEK COMIEK ELECTRONICS<br />

ElECTRONICS<br />

2666 Coney Island<br />

Brooklyn 11235<br />

212-332-5933<br />

212·332·5933<br />

DEJ VIDEO vnOSfRVlCE. SERVICE. INC 1NC<br />

840 Wellwood Avenue Avenlle<br />

North Norlh Lindenhurst L,ndenhurSI 11757<br />

516-957-8932<br />

516·957·8932<br />

EXCEL COMPUTER SERVICES SUlVlCES<br />

3636 Hollend Ave.<br />

Bronx 10467<br />

212-652-4028<br />

212·652·4028<br />

HONDERS HIl'IOERS COMPUTER EMPORIUM<br />

57 North Streel Sireel<br />

Middletown 10940<br />

914-343-4880<br />

914·343-4880<br />

LOGICAL PLAYBACK<br />

10 Grace Ave<br />

Great Greal Neck 11021<br />

212-624-9075<br />

212·624·9075<br />

"• MEIZNER !.'.ElZNER BUSINESS auSlNESS MACHINES !.'.ACHINES<br />

4771 Boston Boslon Post Rd<br />

Pelham 10603 10803<br />

914-738-6000<br />

4·738-6000<br />

Mfi I.fI COMPUTER COMPUtER<br />

Imperial Plaza<br />

Wappingers Falls 12590<br />

914-297-1223<br />

914·297.1223<br />

" JOHN JOHND 0 O' OWENS .... ASSOC<br />

12 Schubert Ave<br />

Staten Istand Island 10305<br />

2t2·448·6283<br />

212-448-6283<br />

5(CURITY SECURITY SYSTEMS INS INSTALLERS T AlLfRS<br />

86 Fall Fair Sireet<br />

Street<br />

Carmel 10512<br />

91 914-225-5321<br />

4·225-5321<br />

Ut.1IEO UNITED Pt(lTOCOf'Y PHOTOCOPY CO<br />

41 Unron Union Square<br />

New York City 10003<br />

212·929·4826<br />

212-929-4826<br />

• UPSTAIE UPSTATE COMPUl(R COMPUTER Sl SHOP lQP<br />

629 FrenCh French Rd . Campus Plaza<br />

New Hartlord Hartford 13413<br />

315·733·9139<br />

315-733-9139<br />

NORTH CAROLINA A<br />

BYTE SHOP<br />

218 N. N Elm St SI<br />

G/eenboro Greenboro 27401<br />

919·275·2983<br />

919-275-2983<br />

CAROUtlA CAROLINA ItlFORMATlOt1 INFORMATION S¥SH SYSTEMS<br />

1213Hillsborough<br />

SI St<br />

Raleigh 27605<br />

919·833·0210<br />

919-833-0210<br />

COW'UTERlAND<br />

COMPUTERLAND<br />

3915 E, E Independence Blvd<br />

Charlolle Charlotte 28205<br />

704·536·6500<br />

704-536-8500<br />

DAIA DATA HELP<br />

2716 1651ew3rlLane<br />

Stewart Rocky Min Mtn 27801<br />

919·977·5517<br />

919-977-5517<br />

NIIlClCI< N18L0CK TYPfWRITEfl TYPEWRITER CO<br />

675 W. 4th Street<br />

Winston Satem Salem 27101<br />

919·722-7013<br />

919-722-7013<br />

OHIO<br />

ASTRO VIDEO ELECTRONICS<br />

504 E Mam St<br />

tancasier 43130<br />

614-687-0629<br />

CO<br />

WBffBusch Blvd<br />

Columbys.43229<br />

614-436-84 4 2<br />

AND<br />

■ch Road<br />

umbus 43229<br />

614-888-2215<br />

COMPUTERLAND<br />

CQMPUTEfllANO<br />

1288 Som Sam Center Rd<br />

<strong>May</strong>lield Heighls Heights 44124<br />

216-461-1200<br />

216·46 1-1200<br />

COMPUTERLAND<br />

ClW.PUTERlANO<br />

4579 Great Northern NOrlhern Blvd<br />

North NOrlh Olmsted 44070<br />

216-777-1433<br />

216·777·1433<br />

■• GRAHAM GAAHA'" ELECTRONIC SUPPLY<br />

239 Northland NOrlhland Blvd<br />

Cincinnati Cincinnali 45215<br />

15<br />

513-772-1661<br />

'" INDUCTIVE INOOCIIVE COMPONENTS<br />

1200 Ferns Ferris Rd.<br />

Amelia 45102<br />

513-752-4731<br />

513·752·4731<br />

1" McSHANE<br />

123 W. Washmgion<br />

Washington<br />

Medina 44256<br />

216-725-4568<br />

216-725·4568<br />

" MICRO MINI MiNI COMPUTER WORLD<br />

74 Robinwood Ave<br />

Columbus 43213<br />

614-235-5813<br />

614·235·5813<br />

OMICRON OMiCROO COMPUTER SYSTEMS<br />

873 N Monroe Drive DI1ve<br />

Xenia 45385<br />

513-372-1612<br />

513·372·1612<br />

RADIO RAOIO COMMUNICATIONS<br />

COMMUNIC"TIOOS<br />

1995 Manon-Bocyru5 Marion·Bucyrus Rd<br />

Manon 433D2 43302<br />

614-382-4126<br />

4·382·41 26<br />

-UNIVERSAL • UNIVERSAl AMATEUR RADIO<br />

1280AidaDr.<br />

01.<br />

Reynoldsburg Reynordsburg 43068<br />

614-866-4267<br />

4·866·4267<br />

• Denotes dealer buying bUVlng directly dlreclly<br />

trom Irom <strong>Commodore</strong>


(:: Authorized Dealers<br />

OKLAHOMA<br />

■• AUWO AUOIO HORIZONS<br />

3707 E Frank Phillips<br />

Barllesville Bartlesville 74003<br />

918-333-7748<br />

918·333·7748<br />

'• BRADFOfiD 8IWJ'ORO BROTHERS BAOTH(fIS<br />

507 507 SS. Mam Main<br />

Tulsa Tulsa 74103 74 103<br />

918-584-4558<br />

COMPUTERLAND<br />

COMPUTERLAHO<br />

10621 North <strong>May</strong> Ave<br />

Oklahoma City Cily 73120<br />

405-755-S200<br />

0405-755-5200<br />

COMPUTER COMl'UTEJI SYSTEMS'\ A SOFTWARE<br />

928 N. N. York « = 19 19<br />

Muskogee Muskogee 74401 74401<br />

918-687-3161<br />

•TELCOM.INC<br />

• TR -COM, INC.<br />

727 721 NN. Brauer Ave Ave.<br />

Oklahoma City 73106<br />

405-232-2035<br />

405-232·2035<br />

OREGON<br />

OREGON<br />

•ANCHONA<br />

· 1125 '""""' 11 25 NE 82nd Awe Ave<br />

Portland Portland 97220 97220<br />

503-254-5541<br />

COMPUTERLAND<br />

COMPUTERl.AHD<br />

12020 SW Main St 51<br />

Tigard 97223<br />

503-620-6170<br />

503-620·6170<br />

• COMPUTER PATHWAYS<br />

831 Lancaster Dr NE<br />

Salem 97301<br />

503-399-0534<br />

503-399·0534<br />

• COMPUTER COMP1JTER PATHWAYS PATIfWAYS UNLTD UNLIO<br />

2151 Davcor Daveor SE<br />

Salem salem 97302<br />

503-363-8929<br />

PENNSYLVANIA<br />

• A B8 COMPUTERS<br />

USE 11 5 E. Slump Road<br />

Montgomeryville 18936<br />

2215-699-B386<br />

15-699-8386<br />

•CAHH • CARR ELECTRONICS<br />

EUCTAON1CS<br />

Main & Reliance<br />

Telfoid Telford 18969<br />

215-723-3831<br />

215-723-3B31<br />

CENTURY SYSTEMS. INC<br />

57 5711 11 Sixth SiKih Ave<br />

Aliona Altona 15602<br />

B B14-946-4361<br />

• CHtPS CHIPS "N N DIP<br />

,<br />

4820 Anne Lane<br />

Sharpsville 16150<br />

41 412-962-9682<br />

THE OOMPUTrR COMPUTER HOUSE<br />

1000 GGreentiee reentree Aoad Road<br />

Plt1sburgh Pittsburgh 15220<br />

41 412-921-1333<br />

COMPUTERLANO<br />

COMPUTERLAND<br />

4644 Carlisle Pike<br />

Mechanicsburg 17055<br />

717-763-1116<br />

COMf'UTERlAHO<br />

COMPUTERLAND<br />

61 81 e E Lancas.er Lancaster Ave<br />

Paolo Paoli 19301<br />

215-296-0210<br />

COMPUTERLAND<br />

COMPUrERlAHO<br />

BORDER ELECTRONIC TRONIC SERVICE S£IIVlCE<br />

UTAH<br />

1457 MacArthurRd<br />

Rd.<br />

P. P. 0. o. Box BOll 3804<br />

BYTE SHOP<br />

Whitehall 18052<br />

El EI Paso 79923<br />

W. 215-776-0202<br />

2 915-532-2524<br />

2524<br />

3616 w. 2100 South<br />

--<br />

Salt Sal! Lake Cily City 84120<br />

GLOSSEH GlOSSUl BROS.<br />

COMPUTERLAND<br />

COY.PUTfRl.I;ND<br />

801-355-1041<br />

801-355· 1041<br />

Franklin & a Locusi Locust Sts<br />

3300 Anderson Am~e'son Lane<br />

COMPUTER DATA Johnstown 15901 1590t<br />

Austin AuS lin 7B757 76757<br />

COMi'\JTER OATA SYSTEMS<br />

lOOONorih<br />

314-536-6633<br />

8 512-452-5701<br />

695 E 1000 Norlh<br />

Logan L~an 84321<br />

'MARKETLINE • MARXETUNE SYSTEMS SYS~<br />

COMPUTERLAND<br />

801-753-6990<br />

- 2337 Philmont Ave \Ie<br />

8061 806' WalnuiHillLn. W8Jnut HID =3 # 912<br />

'SdMPUTERHUB<br />

Huntingdon Hunlingdon Valley V 19006<br />

Dallas DaKu 75231 7523'<br />

COtt.i'\JTER -<br />

214-363-2223<br />

5899 S State<br />

215-947-6670<br />

214-363·2223<br />

~s Stale<br />

■Murray Ml.tray B4107 84107<br />

•• MICRO t.OCAO COMPUTER roMPUTEJAPPUtATIIIIS<br />

APPLICATORS<br />

COMPUTERLAND "',.,"',."""<br />

801-262-5416<br />

262·54 16<br />

806PennAv~<br />

Avenua<br />

6439 ~9 Wesltieimet<br />

Westhelmer<br />

COMPUTERLAND<br />

Sinking Spring Spri!'lO 1960S 11808<br />

Houston 77057<br />

TERtANO<br />

€ South<br />

215-670-1300<br />

2 15-670-1300:<br />

713-977-0909<br />

713-977·0909<br />

161 lO. 2nd Soulh<br />

Salt Sail Lake City C ity 84111<br />

111<br />

'• MIGHTY MIGHfY BYTE 8YlE COMPUTER &..utm CENTB1 CENTER<br />

COMPUTBU-AND<br />

COMPlJTER1AIt~l<br />

801-364-4416<br />

537 Easion Easlon.Rd·Hotsh8m Rd-Horsham Pi. PI.<br />

17647 El EI Camino Ca~no Real<br />

COMPUTER Horsham 19044 1,9044<br />

Houston HOuslon 77058 77'158<br />

THE PUIf.R WORKS<br />

]f.'"''<br />

S. Stale 215-348-4848<br />

2 15-348-..4848<br />

713-488-8153<br />

713.:..t88.815~<br />

735 Slale SI<br />

Provo-84601 8-4601<br />

COMPUTERLAND<br />

r-374 -0204<br />

PUERTO RICO<br />

801-314·0204<br />

1535 Promenade Center Cenle!"<br />

""""""""<br />

' THE tii-Fl • MICRO M COMPUTER ~STOIl<br />

STORE<br />

Richardson RIChardson 75080<br />

·T ~tIl.fl SHOP<br />

Wasnmglon 1568 Avenue Central Cen1tal<br />

214-235-1285<br />

2236 W aShington Blvd.<br />

Ogtten 84401<br />

Caparra. Terrace, :rerrace. Rio Piedfas PIe


MAY/JUNE, I <strong>1980</strong>, I960. ISSUE 4. COMPUTE. 19<br />

Keeping Up The<br />

Payments<br />

Basically Useful<br />

Keeping Up The<br />

Payments Robert Lock OCk<br />

BASIC DAvIv Programs furnished by<br />

Marvin L. Dejong, DaJong, School of TheOzorks<br />

TheOzarks<br />

I decided to use this highly useful l SCI set of" programs<br />

furnished by Dr. Marvin L. Dejong to illustrate some<br />

poi nt s to you beginning Atari/Apple/PET Owners.<br />

points to you beginning Atari/Apple/PET Owners.<br />

Much off thee Basic software we provide in this<br />

magazine is easilyy transferred for use oonn your own<br />

machine, even though it may be presented by a PET<br />

owner, an Atari owner, etc. 'rhese These programs,<br />

developed on (I assume) the AIM-65, will run without<br />

revision on your Apple, Alari, Atari, or PE'T'. PET. Your re:;u results il :;<br />

will differ slighliy, slightly, a variation ation caused by your<br />

particular Basic interpreter, bUl but the program code<br />

ilself itself is transparent. In future issues, we hope (Q to<br />

solicitt the help of you readers in maintaining Ihe the<br />

flow of software for various machines, machines. Thus, when<br />

we print an extensive ensive program for PET' that one of<br />

you sits s down and modifies to run on your Apple, ,<br />

please case send me a copy (al (at leasl least the mods), so<br />

we can update in a lalcr later issue for Apple owners,<br />

owners.<br />

I'd like to devotc devote a section of the magazine c to (Q<br />

"listingg reruns" if the e demand warrants. One option,<br />

I suppose, would be to simply y cover techniques for<br />

conversion, with occasional routines rOlltines that provide some<br />

10 REM REfl PROGRAM PROGRAfl 1- CALCULATES THE BALANCE OF<br />

A LOAN AFTER N PAYMENTS.<br />

A LOAN AFTER N PAYMENTS.<br />

20 PRINT "ENTER YOUR CURRENT BALANCE."<br />

30 INPUT BAL0<br />

40 PRINT "ENTER THE NUMBER OF PAYMENTS."<br />

"<br />

50 INPUT N<br />

60 PRINT "ENTER YOUR MONTHLY flONTHLY PAYMENT."<br />

."<br />

70 INPUT PMT<br />

70 INPUT PMT<br />

80 PRINT "ENTER YOUR ANNUAL I NTEREST RATE<br />

80 PRINT "ENTER YOUR ANNUAL INTEREST RATE<br />

IN PERCENT."<br />

90 INPUT APR<br />

100 I=APR/1200<br />

120 DUMY=BAL0<br />

120 DUMY=BAL0<br />

130 FOR J=1 TO N<br />

130 FOR J=l TO N<br />

140 BAL0=BAL0*(1+I)-PMT<br />

150 NEXT J<br />

150 NEXT J<br />

160 NT=N*PHT- (DUMY- BAL0)<br />

160 NT=N*PMT-(DUMY-BAL0)<br />

170 PRINT "YOUR BALANCE AFTER ";N;" PAYMENTS<br />

IS 5";BAL0 $ ";BAL13<br />

180 PRINT "YOU PAID S";NT;" $1t IN INTEREST."<br />

. "<br />

190 END<br />

190 END<br />

ENTER YOUR CURRENT BALANCE.<br />

.<br />

?3000<br />

ENTER THE NUMBER OF PAYMENTS.<br />

PAYHENTS .<br />

?23<br />

ENTER YOUR MONTHLY HONTHLY PAYMENT.<br />

?143.79<br />

.79<br />

ENTER YOUR ANNUAL INTEREST RATE IN PERCENT.<br />

.<br />

?10.8<br />

YOUR BALANCE AFTER 23 PAYMENTS IS 530.3651184<br />

$30.3651184<br />

YOU PAID $337.535119 IN I N INTEREST.<br />

equivalency across machines. Please take the time e 10 to<br />

note your thoughls thoughts on this on the Editor's Feedback<br />

card in the center of the magazine, magazine. My thanks La to<br />

Marvin for the programs.<br />

A hit bit f!f of "ediloria/liunse": "tUtorial license": When l.''' I kl.'}'td keyed ill in tlieu these /)rQ,t!,rams programs for<br />

r{'/)rodlleli(m, reproduction, I lril.'d tried 10 to prt!Jl.'rve preserve Iheir their or(t!,ill(J1 originalflllllor. flavor. }'vu You<br />

should 1I0ie note lIial that I look took tilt the libcrlJ' liberty (jf of IIlltl,t!,;II.t!,<br />

nudging lilies /inn IhiJI that wert were too<br />

lon.1.! long ova over inlo into (J a nOIl-lXisll.'l1/ non-existent (onlilllwfivn continuation lille, line. If ) you 'Oll 're just slartill.1! starting ouf, out,<br />

dOli don'f t I,)' try 10 to enter I/'r the prugram program thaI that wa)'- way... ) you '0 11 'It 'II hUllt hare bla"ks blanks ill i?i ),our your oUlpul<br />

output<br />

(or worse).<br />

EXil Example: lllph.: : Program 2, Line 60.<br />

A'~) My'<br />

Iiiit' line s},mw:<br />

shows:<br />

60 PRINT ""ENTER YOURR INTEREST RATE ELATE IN<br />

PERCENT." ENT ,"<br />

\"Jhell When )'ou'rc you're keying in the pro.l.!ram program, , you should type it like<br />

this:<br />

6U 60 PRINT "ENTER ■ENIER YOURR INTEREST RATE IN<br />

PPERCENT."(press ERCENT, carriage return)<br />

Cleor Clear 1.' enough? 1U1I.l.!h?<br />

10 REM PROGRAM 2- CALCULATES THE flONTHLY<br />

MONTHLY<br />

PAYMENT TO AMORTIZE A LOAN<br />

PAYMENT TO AMORTIZE A LOAN<br />

20 PRINT "ENTER THE NUflBER NUMBER OF PAYMENTS."<br />

30 INPUT N<br />

40 PRINT "ENTER THE BALANCE OF THE LOAN."<br />

505 0 INPUT BAL0<br />

60 PRINT "ENTER YOUR ANNUAL INTEREST RATE IN<br />

PERCENT." "<br />

70 INPUT APR<br />

70 INPUT APR<br />

80 I=APR/1200<br />

90 PMT=BAL0*I*(1/(1-(1+I)t(- PMT=BAL0*I*(1/(1-(1+I)T(-N)))<br />

100 PRINT "YOUR PAYMENTS ARE $";PMT<br />

100 PRINT "YOUR PAYHENTS ARE $";PMT<br />

110 NT=N*PMT- BAL0<br />

110 NT=N*PMT-BAL0<br />

120 PRINT "YOU PAY $";NT;" IN INTEREST."<br />

130 END<br />

ENTER THE NUMBER OF PAYMENTS.<br />

?23<br />

ENTER THE BALANCE OF THE LOAN.<br />

73000 ?3000<br />

ENTER YOUR ANNUAL INTEREST RATE IN PERCENT.<br />

?10.8<br />

?10.8<br />

YOUR PAYMENTS ARE $144.984191<br />

YOU PAY $334.636391 IN INTEREST.<br />

YOU PAY $334.636391 IN INTEREST.<br />

10 REM REfl PROGRAM 3- CALCULATES THE NUMBER NUflBER OF<br />

PAYMENTS TO AMORTIZE A LOAN<br />

20 PRINT "ENTER THE CURRENT BALANCE."<br />

."<br />

30 INPUT BAL0<br />

4400 PRINT "ENTER YOUR MONTHLY flONTHLY PAYMENT."<br />

50 INPUT PHT<br />

5 0 INPUT PMT<br />

60 PRINT "ENTER YOUR ANNUAL INTEREST RATE<br />

IN PERCENT."<br />

IN PERCENT . "<br />

70 INPUT APR<br />

70 INPUT APR<br />

80 I=APR/1200<br />

90 N=~(LOG(1-BAL0/PMT*I))/LOG(I+l)<br />

N=-(LOG(1-BAL0/PMT*I)) / LOG(I+1 )<br />

100 1130 PRINT "YOU HAVE ";N;" PAYMENTS PAn1ENTS TO MAKE."<br />

110 0 NT=N*PMT-BAL0<br />

NT=N*PfIT- 120 PRINT "YOU WILL \HLL PAY $";NT;" $tt;NT;" IN INTEREST."<br />

130 END<br />

130 END<br />

?ENTER THE CURRENT BALANCE.<br />

?3000<br />

ENTER YOUR flONTHLY PAYfIENT.<br />

?l43.79<br />

ENTER YOUR ANNUAL INTEREST RATE IN PERCENT .<br />

7ENTER THE CURRENT BALANCE.<br />

?3000<br />

ENTER YOUR MONTHLY PAYMENT.<br />

7143.79<br />

ENTER YOUR ANNUAL INTEREST RATE IN PERCENT.<br />

710.8 ?10 . 8<br />

YOU HAVE 23.2123282 PAYMENTS PAYHENTS TO MAKE. HAKE.<br />

YOU WILL PAY $337.700665 IN INTEREST. ©<br />

YOU l'lILL PAY $337 .700665 IN INTEREST. ©


"When you have eliminated the<br />

impossible, whatever remains,<br />

however improbable, must be<br />

the truth" — Sherlock Holmes<br />

... and<br />

the truth is, Hayden<br />

publishes the finest<br />

software available!<br />

SARGON II (Sprackiens) (SprackJens) Winner of the recent<br />

European Microchess Tournament. "Buy this<br />

program when it becomes available —-<br />

... an<br />

evaluation routine that enabled it to beat the<br />

giants!... unequaled in the end game..."<br />

"<br />

Personal Computing. #03403, #03403. TRS-80 Level II;<br />

#03404, #03404. Apple II; each $29.95. #03409, #03409.<br />

Apple II Disk Version, Version. $34.95.<br />

MAYDAY (Breitenbach)<br />

An exciting and fastmoving airplane flight<br />

simulation. It takes concentration, judgment,<br />

and agility to avoid crashing. #02601, . PET. PET,<br />

$9.95<br />

GRJDlRON: GRIDIRON: A Microfootball Game (Micro,<br />

flair Associates) Be both offensive and<br />

defensive quarterbacks. Includes time-outs,<br />

penalties, a complete kicking game, and the<br />

two-point conversion used in college football.<br />

#03003. #03003, TRS·80 TRS-80 Level II. II, $12.95.<br />

$ BIOCURVE (Microflair Associates) Will chart<br />

your biorythms against another person's and<br />

suggest when you will be in a state of instability<br />

and therefore vulnerability. #03103. #03103, TRS-80<br />

Level II. II, $9.95.<br />

Avallable Available at your<br />

local computer store!<br />

local computer store!<br />

m \~HT\ Hayden Book Company, Inc.<br />

~ y 50 Essex Street, Rochelle Park, NJ MJ 07662<br />

COMPLEX MATHEMATICS (Gilder)<br />

8 programs that give the user the ability to per·<br />

form computations of complex numbers in<br />

BASIC rather than in FORTRAN. #01201, #01201.<br />

PET; #01203, TRS-80 Level II; #01204, #01204. Apple II;<br />

each $14.95.<br />

ENGINEERING ENGINEERJNG MATHEMAT1CS-1 MATHEMATICS-1 (Gilder)<br />

Contains 8 programs useful to the engineer<br />

such as: Integration by Simpson's Rule, Quad·<br />

ratic Equations (covering all 3 root cases), etc.<br />

#01301,PET; #01301. #01303, #01303. TRS-80 Level II;<br />

#01304, #01304. Apple II; each $14.95.<br />

GENERAL MATHEMATICS-1 (Gilder)<br />

Provides 15 programs useful to<br />

anyone who wishes to improve their<br />

math skills and accelerate their com·<br />

putations. #01101,PET; #01101. #01103, TRS-80<br />

Level II; #01104, #OJl04. Apple II: II; New! Newl#01105.<br />

#01105,<br />

Sorcerer Version; each $14.95<br />

CROSSBOW (Breitenbach)<br />

Features a target game, that besides<br />

offering hours of fun, teaches fractions in<br />

an exciting and competitive environment<br />

Includes 3 levels of display. #02701,. PET. PET,<br />

$9.95<br />

SKETCHMODE (Walton) Create computer<br />

graphics, modify them, save them, and read<br />

them from tape. #03203. #03203, TRS-80 Level II<br />

$11.95.<br />

Newl New! MICROCOMPUTER AIDED<br />

DESIGN OF ACTIVE FILTERS ALTERS (Gilder)<br />

8 programs that simplify the design of active<br />

filters and will calculate the component values<br />

needed for various bandpass, low pass, and<br />

notch type filters. #01401,PET; . #01403.<br />

TRS-80 Level II; #01404. #01404, Apple II;<br />

each $16.95.<br />

Or call (201) 843·0550, 843-0550, ext. 307<br />

TO CHARGE YOUR ORDER TO<br />

Master Charge or BankAmericard!<br />

Minimum order is $10.00; customer pays<br />

postage and handling,<br />

handling.


MAY/JUNE. I <strong>1980</strong>. ISSUE 4. COMPUTE. 21<br />

650 2<br />

SOFTWARE<br />

DESIGN<br />

WHY THE 65O2?<br />

To understand where the 6502 fitss in the microprocessor<br />

spectrum, a brief look must be taken at<br />

the evolution of 8-bit microprocessors. The first<br />

8-bit microprocessor to make a significant impact<br />

on the industry was the 8008 produced by Intel<br />

Corporation. Fabricated with p-channel metal-oxide<br />

semiconductor (PMOS) technology, the 8008 is considered<br />

the foremost 4 "first-generation" " 8-bit microprocessor.<br />

The 8008 was designed with a calculatorlike<br />

architecture, and had six scratch-pad registers,<br />

an internal stack register, and special instructions<br />

to perform input and output. In 1973, , Intel Corporation<br />

introduced a 44second-generation," "second-generation," silicongate,<br />

NMOS version of the 8008 microprocessor, and called<br />

it the 8080.<br />

The 8080 is essentially an improved 8008, with<br />

more addressing, more instructions, and faster<br />

instruction ion times. The internal organization is<br />

better too, but the overall 8008 is historically the<br />

second-generation de facto standard in microprocessors;<br />

the circuit that many people think of first<br />

when microcomputers are mentioned. Intel Corpora·<br />

tion got a head start on the industry with the<br />

8008, and preserved it with the 8080 through the<br />

early 1970s. Until Motorola, Inc. introduced the 6800<br />

microprocessor in 1974, Intel Corporation had virtually<br />

no competition.<br />

Motorola, Inc. saw the tremendous microprocessor<br />

market potential evolving, and decided to make<br />

an entry of their own. They had essentially two ways<br />

to go: (1) they could challenge Intel Corporation<br />

on their own ground, by producing a new and improved<br />

8080 (as Zilog, Inc. did in 1976 with the<br />

Z80), , or (2) they could ignore that approach and<br />

design a more advanced microprocessor. Realizing<br />

that it would be extremely difficult to establish<br />

a strong market position (not to mention a leading<br />

position) by going after Intel Corporation with a<br />

Hme "me too" product, Motorola, Inc. decided to<br />

challenge with a superior product.<br />

The resulting product, the 6800 microprocessor,<br />

was organized along the lines of classic computer<br />

architectural concepts, with input and output devices<br />

accessed as memory. In the 6800 microprocessor, , the<br />

load aand store instructions used to access memory are<br />

the same instructions used to perform input t (read)<br />

and output (write) operations on peripheral devices.<br />

Editor's Note: At $10.50, this 270 page "ew new release from<br />

m<br />

Sams &<br />

Co. represe"ts represents the first Jirst move i"lo into the 6502 by the<br />

Blacksburg group. My tha"ks thanks 10 to LeoL for Jo r permission permissiort 10 to reprirtl<br />

reprint<br />

these i"taeslingJirst interesting first chapla chapter ovaviews. overviews. RCLR e L<br />

This technique, called memory-mapped 1/0, I/O, eliminates<br />

the performance bottlenecks that are associated<br />

with having to 10 pass all the data handling and manip­<br />

ulation through a working register, as in the registerbased<br />

architecture of the 8080.<br />

The preceding brief overview was necessary in<br />

order to set to stage for introducing our subject<br />

microprocessor, the 6502. The 6502 device was<br />

designed by eight ex-employees of Motorola who saw<br />

that advances in processes, coupled with a few<br />

architectural and software changes, could result in a<br />

potentially highly marketable 6800-like microprocessor.<br />

They joined a calculator-chip company called<br />

MOS Technology.<br />

The MOS Technology design team had two<br />

objectives in mind for their next-generation1<br />

l<br />

register-<br />

microprocessor-low microprocessor—low cost and high performance.<br />

Since there is a direct correlation between the manu­<br />

manufacturering<br />

ring cost and the die size (the size of the<br />

piece of silicon that contains the transistors and<br />

resistors which make up the microprocessor), they<br />

reduced the complexity of the basic 6800 design<br />

as much as possible to minimize the amount of<br />

silicon required. Other design decisions included<br />

eliminating one of the two accumulators in the 6800<br />

and its tri-state address output buffers. They also<br />

replaced the 16-bit index register of the 6800<br />

microprocessor with two separate 8-bit index registers,<br />

and they discarded some of the lesser-used<br />

instructions of the 6800. .<br />

The elimination of instructions opened up some<br />

instruction-decode space and permitted the designers<br />

to provide the 6502 microprocessor with 13 addressing<br />

modes, 7 more modes than the 6800 device has.<br />

These modes give the 6502 device capabilities that<br />

are normally found only in larger computers.<br />

Additionally, the design team realized that although<br />

computers are binary machines, man is inherently<br />

a decimal-thinking animal, so they added a modeselection<br />

instruction and control bit that allows the<br />

6502 microprocessor to operate on either binary or<br />

decimal data. This means that the programmer does<br />

not have to remember to write in "decimal adjust"<br />

instructions after addition or subtraction operations.<br />

For electrical efficiency, the design team employed<br />

the newer depletion-load technology, which gives<br />

the 6502 clean switching characteristics, low-power<br />

mode-<br />

Exce.rptcd Excerpted with permission .from 6502 Softwarc Software Design by LeoJ. LcoJ. Scanlon. Copyright © <strong>1980</strong> by Leo J I . Scanlon.<br />

Publtshcd Published by Howard W W. . Sams & Co., Co.. Inc., 4300 Wcst West 62nd Sc St., , Indianapolis, Indianana 46268 USA.'All All rights<br />

reserved.<br />

reserved<br />

LeoJ, J Scanlon<br />

Rockwell International<br />

SOFTWARE<br />

WHY THE 65021


22 COMPUTE. MAY/JUNE. I 198O \980. ISSUE 4.<br />

NEED MORE ROM ROOM?<br />

The Spacemaker $27.00<br />

$2?.oo<br />

Now a Product of CGRS Microtech<br />

The Spacemaker fami ly provides expansion ROM capability for owners of new <strong>Commodore</strong> PETs and C BMs.<br />

The Spacemaker family provides expansion ROM capability for owners of new <strong>Commodore</strong> PETs and CBMs.<br />

The Space makers' Present:<br />

The Spacemakers' Present:<br />

The Spacemakers' Future:<br />

Switch Between Your Toolkit and Word Pro II ROM<br />

Add the Computhink Option and switch between<br />

your Toolkit and Computhinks new ROM DOS<br />

your Toolkit and Computhinks new ROM DOS<br />

Dealers ass of ol<br />

February. February, 198O <strong>1980</strong><br />

A a B <strong>Computers</strong><br />

115 E. E Slump Stump Rd.<br />

Monlgomeryv,jle. Montgomeryvlle. PA 18936 \8QJ6<br />

Active Businesl Business Iv\ochines<br />

Machines<br />

23 Bela Beta Courl Court<br />

Son San Romoo. Ramon. CA 94583<br />

415·837·4421<br />

415-B37-4421<br />

ACT/Pehoil<br />

ACT/Petsoft<br />

Rodclytle Radclyfte House<br />

66-68 Hogley Hagley Rd<br />

Edgbaslor\ Edgoaston. Birmingham<br />

England B16 8PF<br />

American Peripherals<br />

3 Bongor Bangot 51. Si.<br />

lindenhurst. Lindenhurst. NY N.Y. 11757<br />

516-226·0552<br />

516-226-O552<br />

Bils Bits & Byles<br />

Bytes<br />

28OO 2800 Straight Rd<br />

FredOOO. Fiedonia.<br />

NY 14063<br />

14O63<br />

7)6-673-1682<br />

716-673-1682<br />

Computer Cenler Center 01 ot South Bend<br />

51591 US 31 Noflh<br />

North<br />

South Bend, Bend. IN 46637<br />

Computer Factory, Factory. Inc<br />

485 lellinglon Lexington Ave<br />

New York. NY lOOt7<br />

1OO17<br />

212-687-5001<br />

212-687-5OO1<br />

Computer Innovations. innovations. LId Ltd.<br />

171 In SIoter Slater 51. St<br />

Ollo Ottawa. wo. OnIOlio<br />

Onlano<br />

Canada KIP 5H7<br />

Computer NOQI( Nook<br />

rh. Rt 46 Pinebrook Plaza<br />

Pineblook:. Pinebrook. NJ 070 O7O58 56<br />

201·575·9468<br />

201-575-9468<br />

Computer Specioll.es<br />

Specialty<br />

3820 382O MinIon Mmton Rd<br />

Melbourne. FL 23901<br />

239O1<br />

305·724·7314<br />

305-724-7314<br />

Computer Systems & SoUw0I9<br />

Software<br />

8Iond Bland Olliee Office Slog Bldg<br />

Q28 928 N. N York Vork · ■ $vile Suite 19<br />

Muskogee. Oklo Okla 74401<br />

744O1<br />

918·687·3101<br />

918-687-3161<br />

<strong>Computers</strong>l'"oP shop 10I"l0l<br />

janal<br />

#12 III coursHerbouv~le<br />

rile<br />

lyon. Lyon. France 69004<br />

69OO4<br />

Conti Electronics<br />

5656 Frmer<br />

Fraser<br />

Vancouver. Blitish British Columbia<br />

CanadO Canada V5W 2Z4<br />

Dota Data EQUipment Equipment Supply<br />

8315 6315 Firestone Blvd.<br />

Downey. CA 90241<br />

9O241<br />

213·923·Q361<br />

213-923-9361<br />

()clog Dialog Computer<br />

5003 5OO3 Rick Dr<br />

Sonta Santa Rosa. Rosa, CAA Q5405<br />

954O5<br />

707·538·06L3<br />

7O7-538-OW3<br />

Future DistriOOtion Distribution. Inc.<br />

Trimei Trime~ Bldg. Bldg, RI. Rt. 11 1!<br />

Mooers. NY 12Q58<br />

12958<br />

The HI· HI-FI ShOP Shcp<br />

4680 468C Holladay Holiaday Blvd<br />

Soli Salt lake Lake Cily. City. Utah 84117<br />

801·277·262Q<br />

BO1-277-2629<br />

Home <strong>Computers</strong><br />

inS 1775 E. Tropicana Unit Un.! 2<br />

lm Los Vegas, Vegas. Nevada Nevado 8QI09<br />

B91O9<br />

702·J36·636,)<br />

702-736 6363<br />

K·Smith K-Smith<br />

Associates<br />

11 Most Mast COUI! Courl<br />

Socromento. Sacramento, CA Q5831<br />

9583!<br />

MBC M8C Systems<br />

28 MarlbOro Marlboro St, St.<br />

PQ(tland. Portland. Cl 06480<br />

O648O<br />

Malad Melad Associates<br />

1 Perry Rd.<br />

E Blvnswick. Brunswick. NJ 08810<br />

O8816<br />

201·828·3682<br />

2O1-B26-3682<br />

MiCro Micro MII"I Mini Computer WOIIa<br />

World<br />

74 Robinwood Ave.<br />

Columbus. OH 43213<br />

MiniComp Systems ltd Ltd<br />

5666 Stanley St<br />

Halifax,<br />

Ho :.'fo~ . Novo Nova Scotia<br />

Canada anadO B3K 2G1<br />

Mr ColculotOl<br />

Calculator<br />

160 E EI ElCamino Camr'lO Real<br />

Mt '.flew. View. CA Q40 94O4O 40<br />

NCE/Compumalt<br />

NCE/Compumart<br />

270 27O Third SI. St.<br />

CambrlOge. Cambridge. MA 02142<br />

O2142<br />

New Enoland England Electronics Coo.<br />

67Q 679 Highland Ave<br />

Needham. MA<br />

Orlando londo ElectronIC Electronic Co<br />

2356 W. W Oak Ridge Rc1 Rd.<br />

OrlandO. Orlando. Fl FL 32809<br />

328O9<br />

PC <strong>Computers</strong><br />

10166 1O166 Son San Pablo Ave.<br />

EI El Cerrito. Cernto. Co Ca Q4530<br />

9453O<br />

41S·527·6657<br />

415-527-6657<br />

Programmable EIeClronic Electronic CalcuiaiorC a lC uIol or~<br />

LId Ltd<br />

1746·48 1746-48 W. Chapman<br />

Orange. CA 92668<br />

na.Q78·65a7<br />

714-978-6587<br />

TeleviSion Television elect Elect Disl Dist<br />

PO. P Bo. Bo* 10525<br />

1O525<br />

Johannesburg 2000 2OOO South Souih Alrica AltiCo<br />

TySON Tysons Computer Emoonum<br />

Emporium<br />

1984 Cham hain Blidge Bridge Rd<br />

Mclean McLean.<br />

VA 2210 221O11<br />

703·82HU33<br />

7O3-8218333<br />

While it looks as if <strong>Commodore</strong>'s Word Pro III ROM<br />

may move to $AOOO $A000 (thus avoiding the conflict<br />

with the current version of the Toolkit), three U.S.<br />

software vendors (that we know of) are currently<br />

working on ROM based software packages. Look<br />

out conflicts! cts!<br />

Start with Spacemaker as your ROM swi tching<br />

Start with Spacemaker as your ROM switching<br />

device, Vice, and it can grow as your problems do.<br />

Spacemaker and its family of optional devices<br />

allow you to:<br />

allow you to:<br />

Select one of two ROMs at the same address<br />

space... ...<br />

Use two Spacemakers to select one of each of two<br />

pairs of ROMs at adjoining address spaces...<br />

(Spacemaker is designed vertically, so you can<br />

plug them into empty sockets, side by side!)<br />

Add our software control option and you can<br />

Daisy·chain Daisy-chain Spacemakers together (with simple<br />

little jumpers- jumpers· the pins you plug into are already<br />

built into every Spacemaker) and you can switch<br />

select between one of four ROMs at the same<br />

address space.<br />

Daisy-chain more and keep selecting...<br />

Don't get left behind in the ROMM Race. Space·<br />

Space-<br />

maker can grow as your switching problems do.<br />

Visit your local dealer to get the full story.<br />

MICROTECH,<br />

MICROTECH,<br />

the PEDISK Company.<br />

P.O. Box 102<br />

Langhorne, PA 19047<br />

215-757-0284<br />

PET is a trademark of <strong>Commodore</strong> Business Machines<br />

Spacemaker (formerly a product of Small System<br />

Services. Services, Inc.) is a trademark of CGRS Microtech.<br />

The BASIC Programmer·s Programmer's Toolkit is a trademark of<br />

Palo Alto ICs.


MAY/JUNE. <strong>1980</strong> 198O ISSUE 4. 4 COMPUTE. 23<br />

dissipation ipat ion (250 mW typical for the 6502 versus 600 _ 11 ~Il I Il(llOO (OO tlOtKC ' 1OO -<br />

mW typical for the 6800), and good noise immunity.<br />

mW typical fo r the 6800), and good noise immunity.<br />

The 6502 device is one of 10 software-compatible<br />

microprocessors that MOS Technology intro troduced<br />

in 1975 as the 6500 Series. Through second­<br />

duced in 1975 as the 6500 Series. Through secondsource<br />

agreements, thee 6500 Series is also produced<br />

by Rockwell International and Synertek. All 10<br />

microprocessors have thee same instruction set and the<br />

same basic architecture, varying only in size and<br />

hardware options. The 6500 Series has been very<br />

popular since its introduction, n, and by the end of<br />

1978, more 6500-Series 6500-Serics microprocessors were<br />

being shipped than all other 8-bit microprocessors,<br />

be ing shipped than all other 8-bit microprocessors,<br />

including the 8080 and 6800.<br />

Today, the best-selling selling 8-bit microprocessors are<br />

di vided into two distinct families'-the 8080/ Z80<br />

divided into two distinct families-1—the 8080/Z80<br />

family, with itss register-oriented architecture, and the<br />

6500/6800 family, with itss memory-mapped architec­<br />

ture. . Which architecturere will be the more favored<br />

in the <strong>1980</strong>s? It is impossible to know which at<br />

in th e <strong>1980</strong>s? It is impossibl e to know which at<br />

thiss time, but the manufacturers of the 6800<br />

and 6500 dev ices arc banking solidl y on their opinion<br />

and 6500 devices are banking solidly on their opinion<br />

that the more minicomputer-like architecture holds the<br />

greatest potential for advanced circuits. Intel<br />

Corporation has not t yet shown signs off sharing<br />

this opinion, n, but it may be significant to note notc<br />

that thc the latest 16-bit microprocessor r from Zilog,<br />

Inc., the Z8000, represents a solid break with the<br />

In c., the Z8000 , represents a solid break with the<br />

8080/Z80 design concept by including memorymapped<br />

memory-<br />

I/O.<br />

THE 6502 MICROPROCESSOR<br />

THE 65O2 MICROPROCESSOR<br />

The 6502 microprocessor can be combined with<br />

memory and input/output integrated circuits to<br />

form a microcomputer. As the e "heart"" " of the e microm icro­<br />

computer, the 6502 regulates all operations of the<br />

microcomputer, based on the e sequence ofo f instructions<br />

(the program) that it is executing. The 6502<br />

can execute e 56 different types of instructions.<br />

ions.<br />

TheT various combinations ofo f addressing g that are<br />

available for use by individual instruction n types<br />

give the microprocessor a total of 151 executable<br />

instructions. The 6502 instruction set is described<br />

in detail in subsequent chapters of this book;<br />

for now, let us focus our attention on the internal<br />

organization (the architecture) of the e 6502 and find<br />

out alit how w it operates.<br />

Fig. 1-1 is a block diagramd of the internal<br />

architecture of the 6502. It shows the elements of the<br />

microprocessor m and the buses by which they communi­<br />

cate with w each other o and with external circuits. its. The<br />

6502 contains s most of o f the e control and decision-<br />

n­<br />

making g logic, so only y a few additional circuits are<br />

required to configure a small microcomputer system.<br />

One of the e functions of this is additional control logic<br />

is to provide the 6502 microprocessor with a clock<br />

signal that the internal clock generator will use<br />

to generate its two-phase system clock. The 6502<br />

also requires a single + 5 -volt dc power supply.<br />

•<br />

..<br />

"<br />

.. ..<br />

..<br />

.,<br />

• "SI' yer<br />

CICO~(<br />

"<br />

'lSI<br />

.,<br />

.,<br />

..<br />

.. 0<br />

." ."<br />

'"<br />

'"<br />

".<br />

'"<br />

11"',<br />

11". I I ' 1·' 1<br />

.1 III \ ' I<br />

I<br />

Fig. 1·1. 1-1. Block dilgtlm diagram of th. the 6502 microptoCUlot.<br />

microprorcisoi.<br />

Courtesy Rockwell International<br />

All of the other inputs and outputs of the 6502<br />

All of the other inputs and outputs of the 6502<br />

integrated circuit are compatible with standard<br />

transistor-transistor-logic (TTL).<br />

transistor-transistor-logic<br />

(TTL).<br />

MACHINE CODE AND ASSEMBLY<br />

~ l ...' ·<br />

MACHINE CODE AND ASSEMBLY<br />

LANGUAGE<br />

For the 6502 microprocessor to perform a specific<br />

c<br />

task, it must be programmed to do so. A program<br />

is nothing more than a sequence of instructions<br />

stored in sequential memory locations. The 6502<br />

executes es the e program, , one instruction at a lime. time.<br />

It fetches an instruction from memory, decodes it, il ,<br />

performs rms the e decoded command, and then fetches<br />

the e next instruction. This cycle is repeated until<br />

all instructions in the program have been executed.<br />

.<br />

What do these instructions look like? Since the<br />

6502 microprocessor is simply a collection of electronic<br />

circuits s (albeit in microscopic form), the<br />

instructions are composed of binary numbers (l's<br />

and 0's) O's) that cause some internal crnal electrical signals<br />

to be turned on, , others to be turned off. The 6502<br />

is an 8-bit microprocessor, so these binary instructions<br />

are arc comprised of o f multiples of 8 binary bits. bilS.<br />

In early y computers, computcrs, all programming was done in<br />

the binary form, , normally y with switches controlling<br />

g<br />

the individual ividu bits—to s-to set a bit to "1," " I, " turn the<br />

switch on; o n; to reset a bit to "0," " turn the e switch<br />

off. o fT. Hut But a string of l's 1 's and a 0's O's presents such a<br />

confusing mess that the computer industry soon<br />

realized the e need for decimal loaders, which allowed


24 COMPUTE. MAY/JUNE, I JUNE. 198O. <strong>1980</strong>. ISSUE 4.<br />

the instructions to be written in decimal form. Decimal<br />

loaders were eventuallyy replaced by hexadecmal<br />

loaders, which allowed the instructions to be written<br />

in hexadecimal form. Example I-I 1-1 shows both binary<br />

and hexadecimal forms of typical program instructions.<br />

Example I-I. 1-1. A Typical 6502 Program,<br />

in Binary and Hexadecimal Notation<br />

in Binary and Hexadecimal Notation<br />

Binary<br />

10100101 01<br />

00100001<br />

11000101 01<br />

00100000<br />

10110000<br />

00101011<br />

101001100<br />

00101100<br />

Hexadecimal<br />

A5<br />

21<br />

C5<br />

20<br />

BO B0<br />

2B<br />

A6<br />

2C<br />

Hexadecimal representation is some help to the programmer<br />

because it frees him from using all those<br />

error-prone 8-bit binary numbers. Further, hex<br />

instructions do not contain quite so many digits in<br />

them, , making them somewhat easier to memorize.<br />

Unfortunately, though, , a hexadecimal number gives<br />

no hint as to the function of an instruction. Does<br />

a "es" "C5" instruction perform an addition, , a subtraction, ,<br />

store a value in memory, or none of these? Even<br />

when using hexadecimal numbers, it is still difficult<br />

to program the 6502 microprocessor. Before you enter<br />

a hexadecimal al number into the microcomputer, you<br />

would first have to find the instructions, that you<br />

want to store in the memory of the 6502, on a list<br />

provided by the microcomputer manufacturer. The<br />

appropriate hexadecimal number (op code) can then<br />

be found next to the instruction. The time spent<br />

in looking up the instructions and op codes could<br />

be very costly in developing a program, , not to mention<br />

the possibilities of errors. rs.<br />

The next higher level of programming permits<br />

the programmer to write instructions in an abbreviated<br />

form, something closer to a human language, using<br />

abbreviations called mnemonics that can be correlated<br />

directly to the function of the instruction. A computer<br />

program can then be executed so that these<br />

mnemonics are actually converted to the sequence<br />

of 1*8 's and O's 0's that the 6502 can execute. The program<br />

that converts these abbreviations into machinem ~c e<br />

code (1 (l's and O's) 0's) is called an assembler, so this thIS<br />

form of programming is called assembly language<br />

programming. An instruction n that increments the X<br />

register by one has a hexadecimal form of E8 and<br />

an assembly language mnemonic of INX. Which do<br />

you think is easier to remember? Table I-I 1-1 lists<br />

the assembly language mnemonics for several 6502<br />

instructions.<br />

ions .<br />

How does the assembler translate instruction<br />

mnemonics to binary codes that the 6502 can<br />

execute? The assembler contains a large table<br />

(the permanent symbol table) thatt contains all the<br />

mnemonics (represented by strings of ASCII charac racters)<br />

and their binary equivalents. The assembler<br />

compares the mnemonic in your program (a string<br />

of ASC II characters) to each ASC II character string<br />

of ASCII characters) to each ASCII character string<br />

in the permanent symbol table. When a "match"<br />

occurs, the assembler fetches the binary code<br />

associated with the mnemonic, and uses this value<br />

during the assembly process. Therefore, , the assembler<br />

translates the mnemonic INX (Increment X by I) 1) to<br />

E8, and the mnemonic CLC (Clear Carry flag) (lag) to<br />

18. In this book, all example programs will be written<br />

using the standard mnemonics;<br />

using the standard mnemonics;<br />

Table 1·1. Some 6502 Mnemonics<br />

Table 1-1. Some 6502 Mnemonics<br />

Mnemonic<br />

Instructionn<br />

ADC<br />

Add memory to accumulator with Carry<br />

CLC Clear Carry flag<br />

INX Increment index X by 1I<br />

LDA<br />

Load accumulator with memory<br />

TTAX Transfer accumulator to index X<br />

these are the mnemonics that are defined ed in the literature<br />

off the manufacturers. urers.<br />

rf5<br />

PET' MACHINE LANGUAGE GUIDE<br />

PET MACHINE LANGUAGE GUIDE<br />

MACHINE<br />

LANGUAGE<br />

Contents include sections on:<br />

GUIDE -Input •input and outputt routlnos.<br />

routines.<br />

-• Fixed point, , floating point,<br />

oint.<br />

and AsciiA number conversion.<br />

-Clocks •Clocks and timers.<br />

-BuIlt-in • Built-in arithmetic functions.<br />

-ProgrammIng •Programming hints and sugges-<br />

Hons.<br />

tions.<br />

-Many •Many sa sample programs. s_<br />

If you are interested in or are already into machine language<br />

programming on the PET, then this invaluable guide is for<br />

you. More than 30 of the PET's built-in routines al"e are fully<br />

detailed detai~d so that the readEw reader can immediately put them to good<br />

u use. ...<br />

Available for $6.95 +.75 + postage. Michigan residents please<br />

include 4% state sales tax. VISA and Mastercharge cards<br />

accepted - give card numbet' number and exprration expiration date. Quantity<br />

discounts are available.<br />

liUUHrnI ABACUS SOFTWARE<br />

wmwmn ABACUS SOFTWARE<br />

P. 0. Box 7211<br />

IUUilUUI Grand cira~d B~:P Rapids, i~~ ,1 ~i Michigan Ch i gan 49510


THANKS FOR<br />

THANKS FOR<br />

THE MEMORIES.<br />

- ,,,. PET<br />

------ - .<br />

Thanks to these inexpensive Pet and TRS-80 memories and disk drives you can instantly<br />

increase your personal computer's capacity, capability and versatility.<br />

Expand your Pet.<br />

Disk Drives: Choose either double density 400k or dual head<br />

double density 800k on-line disk drive. Both with DOS operating<br />

system including 17 additional BASIC commands and random<br />

or indexed sequential access.<br />

Exceptionally fast 5.000 5,000 bytes per second (including verify)<br />

transfer speed lets you load 20k program in just 3 seconds.<br />

Model 8k must have ExpandamemTM to operate disk drives.<br />

All other models are plug compatible.<br />

400k only 51295. $1295. 800k only 51695<br />

S1695.<br />

Expandamem: E~ndamem "" : Lets you expand the size and scope of your<br />

programs. 16k, 24k. 24k, and 32k internal memory boards give you 8k<br />

of assembly language subroutines accessed via the USR command.<br />

16k only 5425. $425. 24k only 5525. $525. 32k only 5615. $615.<br />

Software: Complete library available Write for details.<br />

Expand your TRS-SO.<br />

TRS-80.<br />

Disk Drive: Single density dual head 400k on-line disk drive is<br />

completely compatible with TRS-80 DOS and uses own controller<br />

completely compatible with TRS-80 DOS and uses own controller<br />

Only 51295.<br />

$1295.<br />

IMMEDIATE DELIVERY! ORDER TODAY!<br />

COMPUTHINK<br />

965 W Maude. Sunnyvale. CA 94086<br />

(408)245-4033<br />

(408) 245-4033<br />

Please send me the following.<br />

following:<br />

□ Pet DiSk Disk Dnve Drive 0 □ 400k 0 D BOOk 800k<br />

o □ Pet Pel Expandamem'" Expandamem'1' 0 D 16k 0 □ 24k 0 Q 32k<br />

□ Pet Software Sottware (InJo (Into only)<br />

Q TRS-80 -SO 400k Disk Dnve<br />

Drive<br />

o □ Name 0ol1 my nearest Computhmk Computhink dealer<br />

Total Total enclosed enclosed S __________ .<br />

_<br />

Check or Money Order only Colli Calil Res add 6% lax tax<br />

Freight pre-pOid pre-paid In in continental US U.S.<br />

Dealer InqUiries Inquiries InVited<br />

Invited<br />

Name _______________<br />

Name<br />

. ,<br />

Adwe~ _______________<br />

Address<br />

City State Zip_


_<br />

-<br />

-<br />

■<br />

—;-d<br />

_± ,. , , ,~ i<br />

• ■<br />

•<br />

• 0<br />

1 ' ■ 1 1<br />

■<br />

1<br />

FOUR PART HARMO NY<br />

•<br />

. —t—^^ — %<br />

FOR THE PET<br />

FOUR PART HARMONY FOR THE PET<br />

A-8 A-S <strong>Computers</strong> announces a combination cornbmallOn system consisting ol of the Ihe<br />

KL-4M DAC OAC Board and the Visible V,sible Music MusIc Monitor tor lor <strong>Commodore</strong> PET- PET·<br />

CBfVT CBM computers The package enables PET users to easily create and<br />

play musical mUSical compositions compoSitions ol of up to 10 4 parts<br />

The KL-4M Kl Board includes Includes an 8-bit a·bIt Digital DrgltalloAnalog to Convener, Cdnvcrter, a low<br />

pass filter to eliminate high frequency computer generated hiss, hiSS. and an<br />

on-board audio audiO amplifier. An RCA-lype RCA-type jack Jack is IS also included mcfuded for quick qUick<br />

attachment ol of your speaker Amplification of the Ihe 6522 CB2 generated<br />

single Single note nole sound is incorporated Incorporated as well, weU, so that no additional hardware<br />

(other than a speaker) is IS required. (eQulred Connection ConnechOn is IS made via the parallel<br />

and cassette casselle ports. Both Bolh ports porlS are alc extended with duplicate connectors<br />

conf"ICCtors<br />

(with ('.'11th keyways) so I/O 10 capabilities capabllilles are arc not 001 reduced in In any way Board<br />

orientation is IS parallel to the back of 01 the PET so additional addlllOnal table space is IS<br />

not oot required The KL-4M Kl-4M is IS compatible with any of 01 the 4 part music muSIC<br />

monitors, rroMors. for lor which ... lhlch a number oomber of 01 precoded songs are available.<br />

The visible VISible Music MUSIC Monitor is IS intended Intended to support 4-part harmony<br />

systems such as the KL-4M Kl-4M Visible VISible Music MusIC Monitor MonitOf is Is written wnttenentuely entirely in In<br />

6502 machine language VMM provides an easy way to enter 4-part<br />

pall<br />

music muSIC. The user can see the no!es notes on the screen as they are entered, entered. and<br />

can make changes both ooth with the insert Insert and delete keys, keys. and by using USing<br />

cursor up and down to 10 "move" notes on the screen. sCleen. Other features lealures<br />

include "record changer" mode to 10 load successive successIVe songs soogs without withoot<br />

intervention, intervenltOn. user definable delinable keyboard, keytxJald. and a~ entry of whole notes through<br />

64ths including Including dotted dOlled and triplet notes noles. Additionally, Additionally. you can specify specllyor<br />

change tempo, tempo. set key signature, Slgnatlle. and transpose at al anytime time. Wave form lorm<br />

modilicatioo modification makes it 1\ possible poSSible to 10 create creale newmstrument Instrument sounds Voices VOICes<br />

can switch SWitch from one instrument Instrument to another or 01 gang upoo on one instrument Instrument<br />

during dUling the course of the song MUSIC Music can be played either CIlher with note<br />

display (useful for lor debugging debuggmg songs), songS). or with no display<br />

KL-4M Kl-4M Music Board & Visible Music Monitor Momtor Program . 559.90 $59.90<br />

PAPER-MATE<br />

60 COMMAND<br />

WORD<br />

PROCESSOR<br />

60 COMMAND<br />

WORD<br />

AS aIIB<br />

by Michael Rlley~----'i:::::=r~~~:J 1<br />

by Michael Rtley j<br />

Paper-Mate is IS a full-featured word processor<br />

for lor S29.00 by Michael Riley Paper-Mate incor Incor'<br />

porates pofates 60 commands commallds to give gIVe you full ll screen<br />

editing cdltlllg with graphics graphiCS for lor all 16k t6k or 32K PETs, PETs. all<br />

printers, prllllers. and disk or tape drives. doves It also includes mcludes<br />

most featuresol of the lheCBM WordPro III. plus many<br />

additional features<br />

For writing wlltll19 text. Paper-Mate Paper-Male has a definable<br />

keyboard so you can use either Business Busmess or<br />

Graphics GraphiCS machines Shift ShIft lock on letters only, onty. or<br />

use keyboard shift shllt lock. All AU keys repeal<br />

Paper-Mate Male text editing ediling incudes Includes floating cursor.<br />

scroll SCIoli up or down, down. page toward forward or back, and<br />

sor,<br />

repealing repeatll1g insert II1Ser! and delete keys. Text Block<br />

handling includes Includes transfer, transfer. delete, delete. append, append. save, save.<br />

load, load. and insert. II1sert.<br />

Allformalling formatting commands are imbedded Imbedded in In text<br />

for complete complele control. Commands Commall1s include loclude margin margll1<br />

control contlOl and release, release. column adjust, adlUSt. 9 tab settings, settmgs.<br />

variable vanable line spacing, spaCIng. justify lustily text, texl center cenler text, text. and<br />

auto print form fOffillener letter (variable (vauable block) Files can be<br />

linked so that one command prints prmts an entire entlle<br />

manuscript. maooscnpl Auto page, page. page headers, headers. page<br />

numbers, oombers. pause at end of page, page. and hyphenation hyphenallon<br />

pauses are included Included<br />

Unlike most rrost word WOld prxessors. Pfocessors. PET graphics graphICS as<br />

well as text can be used Paper-Mate can send<br />

any ASC11<br />

I 1 code over any secondary sec.oroary address to<br />

any printer pllnter<br />

Paper-Mate Paper· works on 16K or 32K PETs with With<br />

any ROM. ROM, cassette or disk, dISk. and CBM or non- non­<br />

CBM printers prlllters. An 8K version verSion is IS in the planning plannllYJ<br />

To order Paper-Mate, Paper-Mate. specify machine machme and<br />

ROM type.<br />

On Tape (with manual):<br />

$29.95<br />

On Disk (with manual):<br />

S32.95<br />

$32.95<br />

Manual Separate:<br />

S 1.00<br />

BET YOU CAN'T BEAT IT!<br />

MICROTHELLO<br />

by Mike Riley<br />

There are five levels of play in In this thiS PET<br />

machine language program Level four foor is IS for<br />

experts only and is IS designed deSigned for tournament Ioornament<br />

level play. So far lar no one has been able to 10 beat<br />

level four lour Level l five takes several minutes to<br />

move and is IS used for exhaustive analysis analysIs of<br />

specific speCifiC moves.<br />

There are several features to help in In the<br />

analysis analysIs of a game. Any position ~sltlon on the board<br />

can be recalled and replayed. Both BOlh trie the level of<br />

difficulty and the position posllion of the pieces can be<br />

changed at any time. You can play against the<br />

machine, machine. against another person, person. or watch<br />

the machine play itself Itself You and the machine machme<br />

can switch sWi sides Sides during durmg the game. Moves are<br />

selected with the cursor rather than by<br />

coordinates. For all PETS: S9.95<br />

TUNNEL VIS ION &<br />

TUNNEL VISION &<br />

KATAND<br />

AND MOUSE<br />

NOW IN MACHINE E LANGUAGE<br />

By Riley and Levinson<br />

This program was so popular that thaI several<br />

other versions verSions have appeared on the market.<br />

In order to 10 keep ahead of ol the lhe competition, competition. the<br />

program has been re-written re-wlltten in machine<br />

language for fast last graphics.<br />

The program includes Includes two 1'110 excellent maze male<br />

games. In Tunnel Vision, Vision. you view the maze<br />

from inside InSIde in In perspective perspecllve If you get lost, the<br />

program provides proVides a map ShoWing showing your trail. Irail. In<br />

Kat and Mouse, you must find lind your way<br />

through the maze before the hungry Kat fmds<br />

finds<br />

you. Each maze has only one solution, solution. and<br />

each is unique<br />

For all PETS ::S7.95<br />

$7.95<br />

FREE!<br />

Up 10 S170 in merchandise with purchase<br />

of one of following PET-COM ilems ! ! !<br />

Up to $170 in merchandise with purchase<br />

of one of following PET-CBM items! ! !<br />

BETSI PET 10 to S'I00 S-100 Interface Interlace . S 11900 ,,900<br />

PET Conne


MAY/JUNE. I 1960. 198O. ISSUE 4.<br />

COMPUTE.<br />

27<br />

COMPUTERS<br />

Boring, Boring,<br />

Boring<br />

Boring, Boring,<br />

Boring<br />

Ron Kushnier<br />

Ron Kushnier<br />

25 Wendy Way<br />

Richboro, PA 18954<br />

Richboro, PA 18954<br />

Sure, everyone knows how exciting it is (Q to play Space<br />

Invaders or some similar game oonn their home computer!<br />

But perhaps the real utility in our machines is<br />

derived fromm uses thal that arc are less dramatic. After all, ,<br />

one of the primary uses forr any machine is to frec free<br />

us from thc the drudgery and mundane routine thatI<br />

burden us in our daily lives; so that we can go off<br />

and think lofty thoughts and delve into the esoteric.<br />

Such an application resulted from a problem '",ith with<br />

the e hca heating system of our new home last winter, winter. I<br />

knew that the heating contractor and the builder were<br />

less than cooperative and thatt if I were to (Q gCt get aany­<br />

where with them I[ would have to produce cold, hard<br />

.lacts. facts. I also knew that according to Murphy, on the<br />

day they would come comc to inspect the thc systcm system, , it would<br />

be sunny and warm and the e heater would exhibit<br />

absolutely no sign of improper design or malfunction.<br />

I[ needed data- lots of data to substantiate te mym y claim.<br />

I[ turned to mym y Pet. Fortunately ata t work, I[ had<br />

alla the peripherals I needed to turn mym y computer<br />

into a digital recording thermometer. I[ had previously<br />

ordered a DAM system (now called micro<br />

Mac) from Conn. . Microcomputer MicroComputer Corp. This set of<br />

devices is designed to LO provide proyjdc an analog-to-digital<br />

analog-LO-digi tal<br />

conversion system which interfaces to the e Pet. Pel. It<br />

came with a TempsensT empscns which has two temperature<br />

lUre<br />

probes good to within a degree Fahrenheit. As an<br />

output device, I used ana n HP model 5150A5 Thermal<br />

Printer.<br />

r.<br />

The program shown gave me a readout of the<br />

time every eyery 15 minutes, the temperature ata t the<br />

floor, 11001', and the temperature at the five foot level.<br />

I left the e Pet on 24 hours a day over the next<br />

several days, annotating a g the e data tapes by hand as<br />

required with such things as the e date, average outdoor<br />

temperature, etc. The time e period provided<br />

enough diverse weather conditions to (Q manifest a<br />

fairly comprehensive comprehensivc variety varielY of heating system<br />

problems.<br />

My M y long rolls s of o r data tapes convinced ced the builder<br />

and heating healing contractor contracLO r that I was serious. And my<br />

impressive collection n of or equipment could not be<br />

challenged.<br />

'T'he The computer's function was boring-sit t there hour<br />

aftcr after hour and print O'ut out numbers. This certainlyy<br />

could nott compare with shooting down a Klingon.<br />

Yct, it provided m y famil y and I wi th a needed<br />

Yet, it provided my family and I with a needed<br />

and useful utility for r which there was no substitute.<br />

.<br />

Program Listing<br />

5 PRINT"fi<br />

PRINT"n<br />

10 OPEN4,4<br />

15 INPUT"HR,MN,SC";HR$,MN$,SC$<br />

;HR$,t1N$,SC$<br />

17 PRINT"fi<br />

20 TI$=HR$+MN$+SC$<br />

30 M$=MID$(TI$,3,2)<br />

31 PRINT"h<br />

32 PRINT"TIME";" " 5 FEET";" " ~ -i<br />

..,FLOOR"<br />

-iFLOOR"<br />

33 GOSUB500<br />

35 PRINT"hH" PRINT".trWI;TI$,HIGH,LOW<br />

; TI$,HIGH,LOIv<br />

36 IFF$=M$THENGOT030<br />

IFF$=M$THENGOTO30<br />

40 IFM$="00"ORM$="15"ORM$="30"ORM$="45" I1 0RM$="lS"ORM$="30"ORM$="45" .., -.<br />

~THENF$=M$:GOT090<br />

-.THENF$=M$:GOTO90<br />

50 GOT030<br />

GOTO30<br />

90 GOSUB500<br />

130 PRINT#4,TI$;HIGH;L0W<br />

, TI$;HIGH;LOW<br />

135 GOT030<br />

GOTO30<br />

500 POKE59426,0: , POKE59426,255 , 255: : ~ -.<br />

^HIGH=PEEK(59471)-20<br />

~HIGH=PEEK(59471)-20<br />

510 POKE59426,1: : POKE59426,255 : ~ -.<br />

-.LOW=PEEK(59471)-20<br />

~LO\'l=PEEK 520 RETURN<br />

59468 ,12


28 28 COMPUTE. MAY/JUNE, M I JUNE. 198O <strong>1980</strong> ISSUE 4<br />

PETMOD<br />

15 8<br />

~<br />

PET<br />

~<br />

[ffi<br />

RS-8D<br />

APPLE<br />

MICROCOMPUTER MICROCOMP(JTER MEASUREMENT MEAS(JREMENT and<br />

PETMOO<br />

NTERFACE<br />

INTERFACE<br />

The world we live in is full of variables we<br />

want to measure. These include weight,<br />

temperature, temperature. pressure, humidity, speed and<br />

fluid id level. These variables are continuous<br />

and their values may be represented by a<br />

voltage. This voltage is the analog of the<br />

physicall variable. A device which converts<br />

a physical, mechanical or chemical quanti·<br />

ty to a voltage is called a sensor.<br />

<strong>Computers</strong> do not understand volt·<br />

ages: They understand bits. Bits are digital<br />

signals. A device which converts voltages<br />

to bits is an analog·to·digital analog-to-digital converter.<br />

Connectors<br />

.JToil (li~ RS · 23 2<br />

~ PR INTER<br />

RS· 232 INTERfACE<br />

INTERfA:I~MOO Lj..-z.-.j-C_AB_LIEGA<br />

AIM I6 MO:E<br />

amm 0<br />

POWER<br />

KIM INTERfACE ANAlOG INP UT MANlfOLO<br />

~ MOOU LE<br />

MOO ULE<br />

~ TRS-80 TQoo MOD<br />

TR S· SO<br />

INTERfACE<br />

~<br />

nL:J<br />

~ lPMOD<br />

APPLE INTERfA CE<br />

Connectors<br />

BpANORI<br />

EXPANDER<br />

MOOULE<br />

rlx:l<br />

~<br />

REMOTE<br />

CONTROLLER<br />

CONTROllER<br />

SENSORS<br />

SORS<br />

• TEMPERATURE<br />

• LIGHT<br />

T LEVEL LEVU<br />

• PRESSURE<br />

• pH<br />

HUMIDITY<br />

• HUMIDI TY<br />

• ACCELERATION<br />

ACCElERA TlDN<br />

• SOUND<br />

• ETC...<br />

...<br />

REMOTES<br />

~<br />

• APPLIANCES<br />

S<br />

• LIGHTS<br />

S<br />

• MOTORS<br />

• PUMPS<br />

S<br />

• ALARMS Al AR MS<br />

• HI-FIS<br />

S<br />

• TELEVISIONS<br />

S<br />

• HEATERS<br />

S<br />

• FANS<br />

S<br />

ETC...<br />

• ETC ..<br />

Our AIM 16 (Analog Input Module) is a 16<br />

input analog-to-digital analog·to·digital converter.<br />

The goal ofo f Connecticut microcompu<br />

microCompu·<br />

ter in designing the uMAC SYSTEMS is<br />

to produce easy to use, low cost data<br />

acquisition and control modules for r small<br />

computers. These acquisition and control<br />

modules will include digital input sensing<br />

(e.g. switches), analog input sensing (e.g.<br />

temperature, humidity), digital output con·<br />

trol (e.g. lamps, motors, alarms), and<br />

analog output control (e.g. X·Y X-Y plotters, piotters, or<br />

oscilloscopes).<br />

The AIM 16 requires connections to its<br />

input port (analog inputs) and its output<br />

port (computer interface). The ICON (Input<br />

CONnector) is a 20 pin, solder eyelet, edge<br />

connector for connecting inputs to each of<br />

the AIM16's 16 channels. The OCON<br />

(Output CONnector) is a 20 pin, solder<br />

eyelet edge connector for connecting the<br />

computer's input and output ports to the<br />

AIM16.<br />

The MANMOD1 (MANifold MODule)<br />

replaces the ICON. It has screw terminals<br />

and barrier strips for all 16 inputs for<br />

connecting pots, joysticks, voltage<br />

sources, etc.<br />

CABLE A24 (24 {24 inch interconnect cable)<br />

has an interface connector on one end<br />

and an OCON equivalent on the other. This<br />

cable provides connections between the<br />

uMACSYSTEMS computer interfaces and<br />

the AIM 16 or XPANDA1 XPANDR1 and between the<br />

XPANDAl XPANDR1 and up to eight AIM 16s.<br />

XPANDRI<br />

XPANDR1<br />

The XPANDR1 XPANDB1 allows lows up to eight Input!<br />

Input/<br />

Output modules to be connected to a computer<br />

at one time. The XPANOR1 XPANDR1 is<br />

connected to the computer in place of the<br />

AIM16. Up to eight AIM16 modules are<br />

then connected to each of the eight<br />

pOrlS ports provided using a CABLE A24 for<br />

each module. Power lor for the XPANDR1<br />

is derived from the AIM16 connected<br />

to the first port.<br />

Analog Input Module<br />

Analog Input Module<br />

The AIM 16 is a 16 channel analog to digital<br />

converter designed deSi to work with th most<br />

microcomputers. . The AIM16 is connected<br />

to the host computer through the compu·<br />

ter's 8 bit input port and 8 bit output<br />

port, or through one of the uMAC SYS·<br />

TEMS special interfaces.<br />

The input voltage range is 0 to 5.12<br />

volts. The input voltage is converted to a<br />

count between 0 and 255 (00 and FF hex).<br />

Resolution is 20 millivolts per count. Ac·<br />

curacy is 0.5% ± ~<br />

1 bit. Conversion time<br />

is less than 100 microseconds per channel.<br />

All 16 channels can be scanned in less than<br />

1.5 milliseconds.<br />

Power requirements are 12 volts DC at<br />

60 ma.<br />

The P0W1 POWl is the power module for the<br />

AIM16. One POWl P0W1 supplies enough power<br />

for one AIM16, one MANMOD1, , sixteen sen­<br />

sors, , one XPANDR1 XPANDRl and one computer in·<br />

terlace. terface. The POWl P0W1 comes in an American<br />

version (POWl (POW1a) for 110 VAC and in a<br />

European version (POW (P0W1e) l for lor 230 VAC.<br />

TEMPSENS<br />

This module provides two temperature<br />

probes for use by the AIM16. This<br />

module should be used with the MANMODl<br />

MANMOD1<br />

for ease of hookup. The MANMOD1 MANM0D1 will<br />

support up to 16 probes (eight TEMP· TEMP-<br />

SENS modules).<br />

ResolutirJn Resolution for each probe is 1°F.


MAY/JUNE. . 198O. <strong>1980</strong>. ISSUE 4.<br />

COMPUTE.<br />

29<br />

CONTROL for PET,Apple, KIM, and AIM<br />

Computer Interfaces<br />

and Sets<br />

INTRODUCING<br />

ING<br />

SUPER X-10 X-IO MODULE<br />

Open d a door or window dud and turn on a<br />

light, r. (ape tape recorder, alarm!<br />

Control lab equipment. CLOSE THE<br />

LOOP on the real world. .<br />

AN INEXPENSIVE IV E CONTROL<br />

SOLUTION FOR<br />

HOME SECURITY<br />

ENERGY CONSERVATION<br />

GREENHOUSES<br />

ENVIRONMENTAL CONTROLL<br />

INDUSTRIAL CONTROL<br />

LABORATORIES<br />

""""*•<br />

PLUS: CLOCK, CALENDAR,<br />

REMOTE SEQUENCE TRIGGERS<br />

PLUS: CLOCK, CALENDAR,<br />

For your convenience the AIM16 comes as<br />

part of a number of sets. The minimum<br />

configuration for a usable system is the<br />

AIM16, one POW1 P0W1, , one ICON and one<br />

OCON. . The AIM16 Starter Set 2 includes<br />

a MANMOD1 MANM0D1 in place of the ICON. Both<br />

off these sets require that you have a<br />

hardware knowledge of your computer<br />

and of computer interfacing.<br />

For simple plug compatible systems<br />

we also olter offer computer interfaces and sets<br />

for several home computers. .<br />

SUPER X·l0 X-10 MOD SPECS<br />

1. Remote controller<br />

Controls up to 256 different remote<br />

devices by sending signals over the<br />

house wiring to remote modules. Uses<br />

BSR remote modules available all over<br />

the USA (Sears, Radio Shack, etc.).<br />

Does not require BSR control module.<br />

Does nott use sonic link.<br />

2. Clock/calendar<br />

Time 0of1 day· - hours, minutes. minutes, seconds<br />

Date· Dale ■ month, monih. day· - automatically cor·<br />

rects for 28,29,30 and 31 day months.<br />

Dayy of the week.<br />

3. Digital inputs/outputs<br />

a 8 inputs· - TTL levels or switch closures.<br />

Can be used as triggers for stored<br />

sequences.<br />

8 outputs ·- TTL levels<br />

4. Computer interfaces<br />

S-100: 5·100: Requires one a·bit 8-bit input port and<br />

one 8·bit 8-bit output port.<br />

Requires cable assembly.<br />

PET, APPLE, TRS·80, TRS-80, KIM. , SYM, , AIM65:<br />

Plug-in g·in sets available· - no cable assembly<br />

required.<br />

Other: same as S· S-100<br />

5. 5- Self·contai Self-contained ned module in metal case with<br />

its own power supply. Physical size<br />

approximately<br />

5X6X2.<br />

Price (until April 30, <strong>1980</strong>): $199.00 (S· (S-100),<br />

5249.00 S249.00 (other)<br />

All prices and specifications cations sUDject suDject to<br />

change without notice. Our 30·day 30-day money<br />

back guarantee applies.<br />

AIM16 IB (16 channel·8 channel-8 bit Analog<br />

Input Module)<br />

179.00<br />

POWla POW1a (POWer {POWer module·ll0 module-110 VAC)<br />

14.95<br />

POWl P0W1e e (POWer module·230 modu!e-230 VAC) 24.95<br />

ICON (Input CONnector)<br />

9.95<br />

OCON (Oulput (Output CONnector)<br />

9.95<br />

MANMOD1(MANilold (MANifold MODule)<br />

59.95<br />

CABLE A24 (24 inch interconnect<br />

cable)<br />

19.95<br />

XPANDR1 (allows up to 8 Input or<br />

Output modules to be connected to a<br />

computer at one time) 59.95<br />

TEMPSENS2P1 (two temperature probes,<br />

·10 -10DFto160°F) o F 160°F) 49.95<br />

LlGHTSENS1Pl(light LIGHTSENS1P1 level probe) 59.95<br />

The following sets include one AIM16,<br />

one POW1, P0W1, one OCON and one ICON.<br />

AIM16 Starter Set 1a a (110 VAC) 189.00<br />

AIM16 Starter Set le 1e (230 VAC) 199.00<br />

Thee following sets include one AIM16,<br />

one POW1 P0W1, , one OCON and one MANMOD1. .<br />

AIM16 Starter Set 2a (110 VAC) 239.00<br />

AIM16 Starter Set 2e (230 VAC) 249.00<br />

The following modules plug into their<br />

respective computers and, when used<br />

with a CABLE A24, , eliminate the need for<br />

custom wiring of the computer interface.<br />

PETMOD (<strong>Commodore</strong> PET) 49.95<br />

KIMMOD MOD (KIM, SYM, AIM65) 39.95<br />

APMOD (APPLE II) 59.95<br />

TRS·80 TRS-80 MOD (Radio Shack TRS·80) TRS-80) 59.95<br />

IjDl<br />

~(g](S'<br />

,U [(SYSTEMS<br />

Order Form<br />

CONNECTICUT<br />

microCOMPUTER, Inc.<br />

150 1S0POCONO ROAD<br />

BROOKFIELD, CONNECTICUT 06804<br />

TEL: : (20J) (203! 775·9659 775-9659 TWX : 710·456·0052<br />

710-456-0O52<br />

The following sets include one AIM16.<br />

10,<br />

one POW1, , one MANMOD1, , one CABLE<br />

A24 and one computer interface module<br />

PETSET1 PETSETIa a (<strong>Commodore</strong> PET·<br />

■<br />

110VAC) 295.00<br />

PETSET1e PETSETIe (<strong>Commodore</strong> PET·<br />

■<br />

230 VAC) 305.00<br />

KIMSETla KIMSETIa (KIM, SYM, AIM65 ·-<br />

110VAC) 285.00<br />

KIMSETle KIMSET1e(KIM, SYM, SYM. AIM65 . ■<br />

230 VAC) 295.00<br />

APSETIa APSETla(APPLEII ·1 • 110 10VAC) 295.00<br />

APSETle APSETIe (APPLE II · ■ 230 VAC) 305.00<br />

TRS·80 TRS-80 SETla SET1a (Radio Shack TRS·80 TRS-80 -.<br />

110 VAC) 295.00<br />

TRS·80 TRS-80 SETle SET1e (Radio Shack TRS·80 TRS-80 -.<br />

230 VAC) 305.00<br />

QUANTITY DESCRIPTION PAICE PRICE TOTAL<br />

SUBTOTAL TAL<br />

Handlmg Handling and shipping -— add per W order $300<br />

Foreign orders add 10"4 10% tor for AIR AlA POs1age<br />

postage<br />

TOTAL ENCLOSED<br />

add 7"4 7% sales lax tax<br />

NAME ____________________________ ___<br />

COMPANY' ____________________ __<br />

ADDRESS __________________________ ___<br />

CITY ______________________________<br />

CITY<br />

STATE<br />

.<br />

ViSA O M/C O Expiration aale dale ____________<br />

Card number _________________________<br />

VISA 0 M IC 0<br />

Card number<br />

ZIP _______


ewfrom new from.. ...<br />

I-FRDSI IHPRDSI 6 SOUTH ST., MILFORD, NH 03055<br />

ATARI' ~<br />

A Warnp Warnerr Communlcallo Communications n s Company 0<br />

I<br />

TO ORDER TOLL-FREE<br />

TOLL·FR 1·800·258·1790<br />

1-800-258-1790<br />

(In N.H. call 673.5144) 613·S1"4j<br />

ATARI800 (list 1080.00) .... 875.00<br />

ATARI 400 (list ist 630.00) .00) . .... 515.00<br />

810 DISK DRIVE (699.95). ... .. .565.00 . 820 40-COLUMN 40·COLUMN PRINTER<br />

(list ist 599.95). . . . .. . ... . .. . 470.00<br />

410 PROGRAM RECORDER<br />

R<br />

(list 89.95) . . .......... .... . 65.00<br />

JOYSTICK CONTROLLERS .. .18.95 . PADDLE CONTROLLERS ...18.95<br />

ATARI850 INTERFACE .toba . 'ob"Mo,,'"<br />

announced<br />

ATARI830MODEM .... . |Oba 'ob"Mo,","<br />

announced<br />

ATARI825 PRINTER ... .,obs 'ob"Mo",,'<br />

announced


MAY/JUNE, . <strong>1980</strong>. ISSUE 4. 4 COMPUTE. 31<br />

INSIDE ATARI<br />

BASIC<br />

INSIDE ATARI<br />

Larry<br />

BASIC<br />

COMPUTE,<br />

Larry Isaacs,<br />

COMPUTE. staff<br />

This article will present information onn how the<br />

ATARI BASIC stores programs s in memory. If you<br />

are new to the field of microcomputer programming,<br />

this information n should help increase your awareness<br />

of what your ATARI is doing, making its s behavior a<br />

little lillie more understandable.<br />

e .<br />

The following owing information is based solely on what<br />

I have been ablee to observe while working with an<br />

ATARI 800. I believe the information to be accurate.<br />

However, , it is hard to know how complete thee infor<br />

r­<br />

mation<br />

n is. IS.<br />

Also for those new to microcomputer programming,<br />

the e next section gives some preliminary informa­<br />

tionn which should help p make the rest of thee article<br />

mort: more understandable.<br />

underswndable.<br />

PRELIMINARY INFORMATION<br />

One very important term in the field of microcomputing<br />

is the term "byte". For purposes of this<br />

article, it can be considered a number which can have<br />

a value e ranging g fromm 0 to 255. The memory in your<br />

ATARI consists of groups of bytes, each byte of which<br />

can be referenced by a unique address. . The part of<br />

memory which is changeable, called RAM, , starts<br />

with a byte at address 0 and continues with bytes<br />

at increasing sequential addresses until the top of<br />

RAM is reached. The top of RRAM is determined<br />

by the e type and number of memory modules you<br />

have in your ATARL<br />

ATARI.<br />

Bytes, or combinations of bytes, can be used to<br />

represent aanything you u want. Some common uses for<br />

r<br />

bytes include representing memory addresses, characters,<br />

numbers, and instructions for the e CPU in<br />

your ATARJ. ATARI. You will wilt be exposed to several different<br />

uses for bytes in this article. Some of these uses lI will make reference to ""two byte binary numbers."<br />

This is where two bytes are used to represent a<br />

number whose value ranges from 0 to 65535. The<br />

decimal value of a two byte binary number can be<br />

computed using the e formula: FIRST BYTE +<br />

(SECOND BYTE*256).<br />

'256),<br />

Also in this article, , reference will be made to<br />

"page zero". Page zero simply refers to the first<br />

256 bytes of memory, i.e. addresses 0 through 255.<br />

This part of memory differs from thee rest of memory<br />

by the fact that these bytes can be referenced using<br />

a single byte address. . The rest of memory requires<br />

two byte addresses.<br />

THE CONVERSION<br />

After typing in a BASIC line, hilling hitting RETURN<br />

causes the line to be passed to the programs found in<br />

the ATARI BASIC cartridge. Here the line will undergo<br />

a certain amount of conversion before it is<br />

stored in memory. One part of this conversion n involves<br />

converting all of" the BASIC reserved words<br />

and symbols to a one byte number called a token. ..<br />

Another part of the e conversion involves ves replaclllg<br />

replacing<br />

each variable name in thee line with an assigned<br />

number which will range fromm 128 to 255. If Ii a<br />

variable name has been previously previuusly lI used, , it will be<br />

replaced by the number previously assigned. II If it<br />

hasn't t been used before, , it will be assigned the<br />

lowest unused number, , starting with 128 for the<br />

first variable name. . Also, numbers in the BASIC<br />

line must be conven converteded into the form which the<br />

ATARI BASIC uses before they can be stored in<br />

memory.<br />

After thee conversion is finished, , the line is<br />

stored in memory. If thee BASIC line e docs not have<br />

a line number, , it will be stored after the e last<br />

statement ent of your BASIC program, , and executed<br />

immediately. If it does contain a line number, the<br />

convened converted line will be inserted in the e proper place<br />

in your program. m . After the line has been executed<br />

Ul e ~<br />

or stored, , your ATARI will wait forr you to type II1 in<br />

another line. Even though the line undergoes this<br />

conversion, , the order in which the [he reserved words,<br />

variables, and symbols occur in the line isn't<br />

' t<br />

changed when it is stored in memory.<br />

THE MEMORY FORMAT FOR A BASIC LINE<br />

Let's begin with the general format of how a BASIC<br />

line is stored. Once a BASIC line has been con­<br />

verted ed and stored, , the line number is found in the<br />

first two bytes of thee memory containing the BASIC<br />

line. . These bytes form a two byte binary number<br />

which has the value of the line number. The value<br />

of this number can range from 0 to 32767.<br />

The third byte contains the total number of<br />

bytes in this BASIC line. e . This means you can find<br />

thee first byte of the next line using the following<br />

formula: ADDRESS OF FIRST BYTE OF NEXT<br />

LINE = ADDRESS OF FIRST BYTE OF<br />

CURRENT LINE + NUMBER IN THIRD BYTE<br />

CURRENT LINE + NUMBER IN THIRD BYTE<br />

OF CURRENT LINE,<br />

LINE.<br />

The fourth byte contains the number of bytes<br />

in the first statement in the line, including the<br />

e<br />

first fourr bytes. If the BASIC linee contained only<br />

y<br />

one statement, the e third aand fourth bytes will conta<br />

in th e same value. If the line had more th an o ne<br />

tain the same value. If the line had more than one<br />

statement, these bytes will be different.<br />

Next come the bytes which represent the first<br />

statement tement in the line. . If there is more than one<br />

statement, the next byte following owing the first statement<br />

contains the number of bytes in the first two<br />

statements. Naturally, if there is another statement<br />

after the second one, the first byte after the end of<br />

the second statement contains the number of bytes<br />

in the first three statements, ents, etc.<br />

This completes the format of a BASIC line as it<br />

is found in memory. Before going on, let's put this<br />

information to use in a short program which lists<br />

out its own line numbers along with the beginning


32 COMPUTE. MAY/JUNE. M 198O. <strong>1980</strong>. ISSUE 4.<br />

address of each line . T o do lhis we m USl firsl f;nd<br />

address of each line. To do this we must first find<br />

out OUl where the first firsl byte bYle of the first firsl line is found.<br />

.<br />

It h turns out there is a two byte binary number found in<br />

page zero which co nlains the beginning address of lhe<br />

page zero which contains the beginning address of the<br />

first line. This number is contained in bytes 136 and<br />

137. Also, A , we will know when we've reached the e end<br />

of the program when we fi nd a line number of 32768,<br />

of the program when we find a line number of 32768,<br />

which is oneo more morc than the e maximum allowed by<br />

ATARI BASIC. T he program LO prinl the line num­<br />

ATARI BASIC. The program to print the line num<br />

bers and their beginning addresses is shown in 111<br />

Listing g 1.<br />

TOKENS<br />

TOKENS<br />

In order to lO conserve memory, all of the BASIC<br />

reserved words, operators, o and various punctuation<br />

punclUa tion<br />

symbols area converted conven ed into inlo a one byte bYle number called<br />

a token. lo n . ThisT s conversion also makes execution simpler<br />

and faster. TheT tokens can be divided into two groups.<br />

One groupg contains s the tokens which occur only at<br />

the lhe beginning of a BASIC statement, Sla lement , and a the other Ol group contains com s the e tokens which occur elsewhere in a<br />

BASIC statement. Slatement.<br />

Let's Lel's first rsl take ,ake a look k at al the tokens LOkens which occur<br />

at al the beginning of a BASIC statement. Slalement. It turns lUrns out OUl<br />

(hat all statement s will begin wi th one of these LOkens.<br />

chat all statements will begin with one ol these tokens.<br />

After some investigation, , I found that these tokens<br />

will range in value e from 0 to 54.<br />

The procedure for listing Ii Sl in g the tokens ,okens is fairly-<br />

y<br />

simple, , though the e actual al implementation is a bit<br />

t<br />

more involved than the brief explanation n which<br />

follows. lo ows. The idea is to put pUl "1 " I REM" R " as the e first firsl<br />

Slalemenl statement of the program. m . Then use POKEs K to<br />

change the line number and token of this lhis REMR statement. By setting the line number and token<br />

n<br />

to the same number, listing the line willw print the<br />

token Loken and corresponding BASIC reserved word. Forluna<br />

lel y the programs in the BASIC cartridge which<br />

tunately<br />

do the e listing lisling LOlerate tolerate the incomplele incomplete BASIC<br />

stalemenlS. statements. The program forr displaying g these lhese tokens ,okens<br />

is shown in Listing g 2. . Notice when you run this<br />

s<br />

program, , no reserved rved word is printed forr token 54. .<br />

This is the invisible LET LOken token which is used for<br />

r<br />

assignment nt Stateme statements s which don't begin with LET.<br />

A similar procedure can be used to La list the<br />

e<br />

olher other tokens as well. The main differences are rc to<br />

make the first sl Slalement statement "1I REM A", , POKEK E 54<br />

(lhe (the invisible LET Loken) token) into LO the first byte bYle of<br />

the statement, and make the changes forr the token<br />

LO to the second byte bYle of the Slatemenl. statement. The values forr<br />

lhe the ,okens tokens which occur after fl the beginning of a Slale­<br />

state<br />

ment range fromm 20 to 84. The program for printing<br />

these tokens is given in Listing 3.<br />

.<br />

After r running this program, , you will nOl notice icc there<br />

is no reserved word or symbol printed primed for LOken token 22.<br />

Token 22 is the terminator tokenn found at the end<br />

of each BASIC line, except ccpl lhose those whose last stalemenl<br />

ment is a REM or DATA stalement. statement. Also, , LOkens<br />

tokens<br />

state<br />

56 and 57 didn't ' t prinl print a reserved word orr symbol.<br />

Both of lhese these LOkens tokens represenl represent the "(" symbol.<br />

Thc The ""("( " doesn'tt print because thcse these two lOkc tokens are<br />

associated with array a names, and the e "(" symbol is<br />

kept kcpt with w h the associated variable name, namc I<br />

as will be<br />

seen in the next section.<br />

n .<br />

OfO f course you noticed nOliced that lhal most mosl of the symbols<br />

occur more than once. o ThereT is a differentd token for<br />

r<br />

each of the e differentd uses of the e symbol. For r example,<br />

the lhe word " = ~ " has four different differenl tokens. LOken Token 45<br />

calls for an arithmetic assignment operation as in<br />

A = ~ A + 1. I . Token 46 calls s for r a string slring assignment as<br />

in AS A$ = ~ "ABC"." A B C " . TokenT 34 is used in arithmetica rilhmelic testing lesling<br />

as in IF A -~ 1 THEN STOP. O P . And finally, token Lo 52<br />

is the same as token 34 except that it's for testing<br />

g<br />

strings.<br />

One more token, found after the ones listed in<br />

the previous program: token 14, which Wllld l indicates a con­<br />

stant s/tllll is stored in ill the Ihe following illg 6 bytes.<br />

10 REM REf! PROGRAM PROGRAl1 TO PRINT LINE NE NUMBERS NUr-tB 20 REM REf! AND THEIR ADDRESSES<br />

30 REM<br />

f!<br />

40 REM REf! GET ADDRESS OF FIRST LINE<br />

50 ADDRESS=PEEK{136)+PEEK(137)*2 (136)+PEEK(137 ) *2565 6<br />

60 REM REH GET THE LINE NUMBER NUHBER<br />

70 LNUM=PEEK(ADDRESS)+PEEK(ADDRESS+1)*256<br />

UH=PE EK( ) 5 6<br />

80 REM ~I TEST FOR END OF PROGRAM<br />

90 ge IF I F LNUM=32768L I-I~3 THEN END<br />

1001 REMR E ~I PRINT LINE NUMBER AND ADDRESS<br />

110 ? "LI NE # "; LNUM ;<br />

110 ? "LINE # ";LNUM;<br />

1201 ? " STARTS AT ADDRESS ";ADDRESS<br />

130 REM GET ADDRESS OF NEXT T LINE<br />

140 ADDRESS=ADDRESS+PEEK(ADDRESS+2)<br />

14e ADDRESS=ADDRESS+P EEK( ADD RESS+ 2 )<br />

1505 0 GOTO 707 0<br />

1 REf! REM<br />

100 REM ~I PROGRAM TO PRINT THE TOKENS<br />

110 REM REf! WHICH I BEGIN I N BASIC STATEMENTS<br />

I-I ENTS<br />

1201 REM GET BEGINNING I NG OF PROGRAMRAM<br />

1301 BASE=PEEK(136)+PEEK(137)*256<br />

EK( 1 37)*256<br />

14 0 REM CHANGE STATEMENT TERMINATOR<br />

150 POKE BASE+5,22 , 2 2<br />

160 ? CHRS(125): R$( : REM CLEAR SCREEN<br />

170 REMR E ~I PRINT TOKENS<br />

1 80 FOR 1=0 TO 54<br />

180 FOR 1=0 TO 54<br />

190 REM CHANGE LINE NUMBER R AND TOKEN<br />

200 POKE BASE,I:POKE BASE+4,I ,1<br />

210 LIST I: REM PRINT TOKEN<br />

210 LIST I: REM PRINT TO KEN<br />

22 0 REM UNDO LI NE FEED I F NEEDED<br />

220 REM UNDO LINE FEED IF NEEDED<br />

230 0 IF 1 I>1 THEN EN? ? CHR$(28) CHRS(28); ;<br />

240 REM CHANGE LEFT MARGIN ~I FOR COLUMNS<br />

2500 IF 1=19 THEN POKEE 82,12:POSITION2 : I ON 12,1<br />

260 IF 1=39 THEN POKE 82,24:POSITION 24,1<br />

2 60 I F 1=39 THEN POKE 82 ,24 : POS I TION 24,1<br />

2 7 0 NEXT I<br />

270 NEXT I<br />

280 REM PUT PROGRMI PROGRAM BACK TO NORMAL NORH 290 POKE BASE,1:POKE BASE+4,0<br />

2 9 0 POK E BAS E,l: POKE BASE+ 4, O<br />

300 POKE BASE+5,155 , 310 POKE 82,2:POSITION2 2,2222<br />

1 REf! REM A<br />

100 BASE=PEEK(1 BASE=PEEK{136)+PEEK(137)*256<br />

EK( 1 37)*256<br />

110 REf! REM CHANGE BEGINNING NG TOKEN<br />

1120 POKE BASE+4,54:POKE BASE+6,22 , 1130 REMH PRINT I OPERATOR AND FUNCTION TOKENS<br />

140 ? CHR$( CHR${125)<br />

1500 FOR 1=200 TO 844<br />

160 POKEE BASE,I:POKE BASE+5,I +S 1170 LIST I<br />

11808 0 REM UNDO LINE FEEDS<br />

190 ? CHR$(28);:IF I F 1=222 THEN? ? CHR$(28);<br />

8 ) ;<br />

200 IF 1=399 THEN POKE82,ll: POKE82,11:POSITIONll,1POS I TION1 1, l<br />

210 210 IF 1=599 THEN POKE82,19:POSITION19,1<br />

, : POS I , l<br />

22020 IF 1=79 THEN POKE82,28:POSITION28,1, 28 ,l<br />

230 NEXT I<br />

2404 0 POKE BASE,1:POKE E,l: BASE+4,0 , O<br />

250 POKE BASE+5,65:POKE, : BASE+6,155<br />

260 POKE 82,2:POSITION , 2 : 22,22<br />

,


MAY/JUNE, MAV/JUNE. <strong>1980</strong> , ISSUE 4, A COMPUTE. JJ 33<br />

VARIABLE NAMES AND CONSTANTS<br />

VARIABLE NAMES AND CONSTANTS<br />

As each new variablea blc is encountered, , it is assigned<br />

a number. These numbers begin with 128 and are<br />

a ss igned sequentia ll y u p to 255. Notice these numbers<br />

assigned sequentially up to 255. Notice these numbers<br />

will fit illlo into onc one byte. b Also, , ass each new variable<br />

is encounlered encountered, , the variable name m e is aadded d ded to LO a<br />

variable able name list, , aand 8 bytesb olr memory are reserved<br />

for ror that variable. In the case o[ of undimensioned<br />

ned<br />

variables, these 8 b ytes will co nta in the value o[<br />

variables, these 8 bytes will contain the value of<br />

the e variable. For r strings and arrays, , these 8 bytes<br />

will contain parameters, m e rs, wid1 with the actuall values and<br />

characters rs slOreci stored elsewhere.<br />

.<br />

This method elhod of oi handling n variables has somee<br />

advantages. tages, One advantage is thatt it keeps usage to a<br />

minimum. , The variable name is onlyy stored once, aand<br />

each time that name m e is referenced renced in a BASIC state tc­<br />

ment, , it occupies onlyy onee byte in thc the stored<br />

program. program, Another r advantage is thatt the address<br />

where the value forr a variable e is stored slO can be<br />

computed [rom from the assigned number. u m This isn't true<br />

of the BASIC found in somem e other microcomputersm m where values muSt must be searched [or. for.<br />

There are also some disadvantages as well, well. First,<br />

it limits its you to 128 different variable names. . How­<br />

ever, , the great majority of programsp m s won't ' t need more<br />

a rc<br />

tha n 128 variable na m es. O ne o th e r ci isacivaJ1l agc is<br />

than 128 variable names. One other disadvantage is<br />

that a t should a variablea name m e be no longer needed,<br />

or accidental)' ly entered due to a typo, there is no quick<br />

way to remove that variable from the variable name<br />

list and reuse the 8 bytes reserved forr it.<br />

Apparently, the only wayy lO to gel get rid off unwanted<br />

variablesa is to LIST the program m to cassen cassettee or<br />

disk. For example, LIST ""CC will lisl list the program<br />

to cassette. , Once the program is saved, , use the NEW<br />

command to clear the old program. Then useu the<br />

ENTER ER command to lO reload the ,he program. ra m . For<br />

cassette ll e this lh would be ENTER ""C. Using g the LIST<br />

command saves the program in character form. .<br />

ENTERingE the program m then lhen causes each line lO to be<br />

converted again as was done when n you first typed<br />

it in. . Now onlyy the variables found in the programp m<br />

will be pla ced in the vari a ble name list, a nd spa ce<br />

will be placed in the variable name list, and space<br />

reserved forr lhe their value. Using CSAVE aand CLOAD<br />

won't ' t do this because these save aand load a copy of<br />

the memory o where the program ram is stored. red, UnwantedU variables are rc saved aand loaded with (he the rest off<br />

the program. p .<br />

Constants nts are stored in the BASIC statements<br />

along with the restt or of the line. The constant will<br />

be proceeded precced ed by a ""14"' tokenn as mentionedm previously.<br />

Explaining how ATARI A R I BASIC: rc represents presc nls<br />

the numbers used lI ass constants nt s and as variable<br />

,'a values will require some explanation about BCD<br />

((Binary Coded Decimal) numbers. I will save this lhis<br />

information n for a later r article.<br />

e ,<br />

Too give aann example off using g the information<br />

n<br />

in this section, , let's t take a look at the variable<br />

name list. Ii Sl. Fortunately a lely bytes bYles 130 aand 1311 contain<br />

the address dress of the beginning off the variable e namem e<br />

list. st, The list will consist eonsist off a string off characters,<br />

each ch a racte r occupying o ne byte o r m e mory, T o<br />

each character occupying one byte of memory. To<br />

indicate the (he last character of a name, m ATARI<br />

BASIC addss 128 to lo the value representingg lha thatl<br />

character. Since the values representing ng the characc­<br />

te rs won' t exceed 127 , the new val ue will still<br />

ters won't exceed 127, the new value will still<br />

fit into one byte. b Too indicate ica the eend of the list, ,<br />

a 0 is placed in the byte following g the last<br />

character a off the last name. m e , The program m which<br />

prints the variable a e name list is given in Listing 4.<br />

.<br />

Notice whcn when you u run this program, m , thatt the "C' "("<br />

is saved ass part of a array y name, m e , and the "$"<br />

as pan of a stringg name.<br />

m e ,<br />

MEMORY ORGANIZATION<br />

Finally, let'ss look at how the memory m storage is<br />

organized lo forr a BASIC program. program, The order in which<br />

the various parts off a program m are found in<br />

memory is shown in Figure 1. 'The only part whose<br />

beginning is fixed is the variable namem e list which<br />

begins a t address 2048. T'he begin ning of the mhe r<br />

begins ai address 2048. The beginning of the other<br />

parts pans will move appropriately, pria ass the program m grows.<br />

There are addresses in page zero which can be used<br />

to iind find each off the lhe parts shown in Figure 1. These<br />

addresses, usually y called pointers, are shown in Table<br />

I, I. This table includes the two pointers which were<br />

used in the previousp s programs. p m Figure !:,» ,' End onlf Array Storage IOra,L:t: An:a Area<br />

",'n' Bl'.I.:ill Beginning ll ing off Array StorageS !Ura ,~'c An:a Area<br />

n F,' ' End of oi' Program<br />

ll1<br />

'nn' Bq.{i Beginning nilln g- off Program P rogT


COMPUTE, COMPUTE. MAY/JUNE. I <strong>1980</strong>. ISSUE 4.<br />

APPLICATION<br />

APPLICATION<br />

For r those who are interested in putting pulting this inforr­<br />

mation to use, I will present one example here. . I<br />

wiII will try lO to give more examples in future issues of<br />

COMPUTE.<br />

At some time you may find it useful to be able<br />

to ""undimension" n " some arrays of strings, aand reuse<br />

the memory for some other arrays and strings. It<br />

turns out that the CLR function only clears the<br />

variables found between the BOA (Beginning Of<br />

Variables) pointer and the BOP (Beginning Of Oi<br />

Program) pointer. By temporarily changing thee BOP<br />

pointer, we can keep somee of the variables from<br />

being cleared. The array storage area is cleared by<br />

setting the EOA (End Of Arrays) pointer equal to<br />

the BOA (Beginning Off Arrays) pointer. We e can<br />

save somee of the array sLOrage storage area by temporarily<br />

changing the BOA pointer.<br />

The listingg for this UNDIMENSION routine is<br />

shown in Listing 5. The listing also includes a small<br />

demo program to illustrate its use. Note that all of<br />

the names of variables which are to be cleared<br />

should occur in the program prior to any of the<br />

names of variables whieh which are rc to be saved. This puts<br />

thee sLO storage for lor the variables to be cleared at the<br />

beginning of the e variable storage area. Also notc note<br />

that a dummy string which can be cleared is needed<br />

by the UNDIMENSION routine. In your main program,<br />

this dummy string should be dimensioned<br />

just before dimensioning ning thee strings and arrays<br />

1 REM DIMENSION THE DUMMY STRING<br />

2 DIM DUMMYS(l)<br />

3 REM DHIENSION DIMENSION THE ARRAYS AND STRINGS<br />

4 REII REM WHICH WILL NEED CLEARING<br />

5 DIM Al(1),A2(1)<br />

Al(l),A2(1)<br />

6 CLR: REII CLEAR THESE VARIABLES<br />

6 CLR: REM CLEAR THESE VARIABLES<br />

7 N=3: REM N= # OF VARIABLES JUST DIMENSIONED<br />

8 REII REM INCLUDING DUMIIYS<br />

DUMMY?<br />

9 REM YOUR PROGRAM MAY BEGIN HERE<br />

9 REII YOUR PROGRAM MAY BEGIN HERE<br />

100 REM HERE IS AN EXAMPLE OF HOI, HOW TO<br />

110 REfl REM USE THE UNDHIENSION UNDIMENSION ROUTINE<br />

120 DIM TESTS(20) :TESTS="I'II STILL HERE "<br />

120 DIM TESTS{20):TEST?="I'M STILL HERE"<br />

130 DIll DIM DUMMYS(l) DUMMY${1),A1(50,10) ,Al( ,10)<br />

140 Al(50,10)=l:? Al{50,10),TEST?<br />

140 Al(50 ,10 )=1:? Al(50 ,10 ) ,TESTS<br />

150 REM EXECUTE UNDHIENSION ROUTINE<br />

150 REM EXECUTE UNDIMENSION ROUTINE<br />

160 LINE=170:GOTO 1020<br />

170 DIM DUMMYS(l),A2{500) , A2(500 )<br />

180 A2(500)=2:? A2(500),TESTS<br />

180 A2(500)=2:? A2(500) ,TESTS<br />

190 END<br />

200 REM<br />

1000 REM UNDINENSION UNDIMENSION ROUTINE<br />

1010 REM SAVE CURRENT POINTER VALUES<br />

1010 REM SAVE CURRENT POINTER VALUES<br />

1020 S136=PEEK(136):S137=PEEK S136=PEEK{136):S137=PEEK(137)<br />

)<br />

1030 S140=PEEK(140):S141=PEEK(141 S140=PEEK{140}:S141=PEEK(141) )<br />

1040 REM MOVE END OF VARIABLES<br />

1050 Tl=PEEK(134)+8*N:T2=PEEK(135)<br />

1060 IF Tl>255 THEN T2=T2+1:Tl=Tl-256:GOTO 1060<br />

1070 POKE136,T1:POKE137,T2<br />

1070 POKE136,Tl:POKE137,T2<br />

1080 REN REM MOVE BEGINNING OF ARRAYS<br />

1090 T2=INT(ADR(DUMMY$)/256)<br />

(DUMMYS 1100 Tl=ADR(DUMMYS)-T2*256<br />

Tl=ADR(DUMMY$)-T2*256<br />

1110 POKE140,Tl:POKE141,T2<br />

POKEl40,Tl:POKEl41,T2<br />

1120 CLR: REM CLEAR THE ARRAYS<br />

1120 CLR: REM CLEAR THE ARRAYS<br />

1130 REM RESTORE POINTERS AND RETURN<br />

1140 POKE136,S136:POKE137,S137<br />

1150 POKE140,S140:POKE141,S141<br />

1150 POKE140,S140:POKE141,S141<br />

1160 GOTO LINE<br />

1160 GOTO LINE<br />

that you will latcr later clear, , as was done in statements<br />

Statements<br />

120 and 150. This allows the use usc of the e ADR function<br />

to find the end of the array area to [Q be saved.<br />

The reason the UNDIMENSION routine is not<br />

executed by a GOSUB is th (hata t the return line<br />

number is lost in the clearingg process. Loop parameters<br />

will also be lost, , so the routine shouldn't n be executed while in a FOR..NEXT loop.<br />

CONCLUSION<br />

Hopefully y youu found the information in this article<br />

understandable, aand will find it useful at .some point<br />

in the future. The information n does show lthat h aL ATARI<br />

BASIC is fairlyy efficient in usingg memory to slOre<br />

store<br />

programs. Also, there is very little penalty y in<br />

memory usage when using long variable names. If<br />

you u have aany questions please send them to<br />

COMPUTE. ©


MAY/JUNE. MAV/JUNE. <strong>1980</strong> 198O. . ISSUE 4. A.<br />

COMPUTE.<br />

35<br />

35<br />

JOIN<br />

JOIN<br />

RAYGAMCO<br />

NOW!<br />

NOW!<br />

Become a<br />

Become a<br />

member of<br />

.<br />

RAYGAMCO<br />

-<br />

Computer<br />

Computer<br />

Discount Club.<br />

BIG SAVINGS ON EVERY ITEM! ___<br />

BIG SAVINGS ON EVERY ITEM!<br />

------i<br />

•<br />

By being a RAYGAMCO Member you receive substantial discounts on every item you<br />

purchase. purchase, Including including all hardware. hardware, software. software, accessories, even books and paper! paper1 You<br />

will also receive a monthly newsleller newsletter with all the lalest latest available for your particular<br />

computer system. system, and much. much, much more -— exclusive 10 to RAYGAMCO Members only!<br />

only1<br />

All the famous brand names, including:<br />

APPLE<br />

Alpha Micro Soroc Lear Siegler<br />

ATARI Alpha Pro Hazeltine<br />

Shu'gart<br />

Shugart<br />

EXIDY/Soreerer EXIDY/Sorcerer Cromemeo Cromemco Sektor<br />

Texas Instruments<br />

Kim/<strong>Commodore</strong> Xerox<br />

PET<br />

Here's how to join.<br />

Here's how to join.<br />

Fill out the in/ormation, information, and mail. mad That"s That's all there is to it. Nothing to buy.<br />

I want to be a RAYGAMCO Computer Discount Club Member. Please send my<br />

RAYGAMCO Membership card to ;<br />

Name ___________________________________________________<br />

Name<br />

Address _________________________________________________<br />

Address<br />

City City ___________________ State _______________ Zi p __________<br />

State Zip<br />

Computer (Brand Name) _____________________________________<br />

I would like in/ormation information on (please specify system, part, accessory. accessory, book. book, program. program, etc.)<br />

WE HONOR VISA. VISA, MASTERCHARGE, MASTERCHARGE. BANKAMERICARO<br />

BANKAMERICARD<br />

Store Hours: Sat 10-6, Sun 12·4, 12-4, Tu-Fri 11-8<br />

TOLL FREE. . EXCEPl EXCEPT CA<br />

800-854-6455<br />

RAYGAM, INC.<br />

6791 WESTMINSTER AVENUE WESTMINSTER, CA 92683<br />

TELEX 182274<br />

(714) 891-2587<br />

(714) 891-2587


36 COMPUTE. . MAY/JUNE, I JUNE. 198O <strong>1980</strong> iSSUE ISSUE 411<br />

Something New for your PET<br />

.' ._.<br />

—i PET<br />

m r.l 7 I Personal<br />

~ l..!...J LJ Computer<br />

mm Guide<br />

LLIl°J t.lJ ~ "s c . '~..!.-:;:::<br />

pnrnrn<br />

GJ, [I) GJ WI -<br />

l.ll.lm~<br />

U L..J l..!.J N<br />

- -<br />

0['J§EJ<br />

PET Personal<br />

PET Personal<br />

Computer Guide<br />

by C. Donahue and J. J . Enger<br />

Everything you always a/ways wanted to<br />

know about PET but <strong>Commodore</strong><br />

didn't tell you. A practical guide to<br />

didn't tell you. A practical guide to<br />

PET programming techniques,<br />

techniques.<br />

graphics, operation, operation. and how to cope<br />

with those#&$! those.&$l PET peculiarities.<br />

.---30-6 "30·6 $15 00<br />

NEW this Winter<br />

NEW this Winter<br />

PET and the<br />

IEEE 488<br />

(GPIB)Bus Bus<br />

1 ~,," .... n,"', ·C" "'n" R<br />

PET and the<br />

IEEE 488 (GPIB) Bus<br />

by C. Fisher and C. W. W . Jensen<br />

This is the only complete guide available<br />

on interfacing Interfacing PET to GPIB. . Learn<br />

how to program the PET interface Illterface to<br />

control power supplies, supplies. signal<br />

sources, signal analyzers and othero instruments. It's full fuU ofo f practical<br />

information, as one ofo f its Its authors<br />

assisted in In the original ongillal design ofo f the<br />

PET GPIB interface. Interface.<br />

-'••31-4 ::3 1· 4 $15 00<br />

~ \-_ ..•.<br />

PET and the<br />

IEEE 488 (GPIBJ Bus 6502<br />

Assembly Language<br />

Programming<br />

NEW this Winter<br />

by L. Leventhal<br />

6S02<br />

For the advanced programmer:<br />

increase the capabilities and<br />

performance of PET (and d othero 6502-based computers) by learning<br />

to program in assembly language.<br />

"27-6 ,,27·6 $12$ 1250<br />

I ­<br />

r<br />

By L. Poole and M. Borchers<br />

This book was designed for people who can use a variety<br />

of practical BASIC programs -— 76 programs in all thatt<br />

cover a wide variety of personal finance. finance, math, statistics,<br />

and general interest topics. The documentation in the book<br />

is complete so that you can run the programs even if you<br />

aren't an experienced programmer.<br />

= ~06-3 6·3 . $12.50<br />

PET owners can purchase the programs ready-la-run ready-to-run on<br />

cassette or disk. disk, using the book as a manual for program<br />

descriptions. descriptions, operating operatmg instructions and programming<br />

options.<br />

Disk ;: £33-0. . $22.50 Cassette ;; #25-X. $ $15.00<br />

0<br />

Booti/Cassatte/Disk<br />

Quantity<br />

I Book/ Cesset t e/Dilk Price Qu.ntity Amount<br />

I<br />

I<br />

27·6 27-6 6502 Assembly Language Programming<br />

30·6 30-6 PET Personal Computer Gu,de Guide<br />

$ SI15 5 00<br />

31 31-1 . 4 PEl' PET and the me IEEE 488 (GPl8l (GP1BI 8us Bus<br />

$1500<br />

Si 5 I<br />

006-3 6 ·3 Some Common BASIC Programs (boo IbOOkl ~ l<br />

$1250 S125O<br />

I 25. 25-XX Some Common BASIC SASIC Programs PET Cassette<br />

SIS $15 00<br />

Cty _<br />

33-0 Disk<br />

I<br />

33.0 Some Common BASIC Programs PET D ,s ~<br />

$22 50<br />

State .<br />

California resident tax<br />

Phone<br />

I Caioforn'a California reS residenls idents add 6<br />

sales t,-.<br />

CII,lorn,a reSident ta.<br />

lax<br />

S F BART residents . lax<br />

S' BARl' .es,dents add 6' , sales tao<br />

Shipping<br />

I<br />

Tot.1 Total Amount Amoi.<br />

Enclosed<br />

| Shipping IShippmg for large orders arranged)<br />

OSBORNE/McGraw-Hill<br />

I Sl'upp.ng (ShIpp 10 0 ,<br />

'" f • hit e olde's to be arrang&cll<br />

cGraw-Hili<br />

Way, Wj><br />

| o □ All 100e'gn foreign olde's orders $4 S4 00 pel pet book to. lor a"ma,1<br />

630 Bancroft W , Dept. G<br />

airmail<br />

Cauenes Cassettes and Disk<br />

< n SO per 4th class in 3-4 California ~ *A'!~ I<br />

o $0 45 pet book 4 1'1 clau on the U S (allow 3 · 4 weeksl<br />

Berkeley, ia 94710<br />

I 03 $075 pet per book boos UPS on in Ine me U S (allow tallow 10 daysl davsi<br />

C 7 No add' additional tlonal eha.ge chgrge on m the US U S<br />

14 (415) 1 51 548·2805 548-2805 •-TWX X 9910-366-7277 -366·7277 Itnl~<br />

li I<br />

D 50 rush shipment air in S o C S SI 1 SO 50 each torelg foreign n 81,ma airmail<br />

L _<br />

o $1<br />

_<br />

SO<br />

___<br />

per book special<br />

_<br />

tUSh<br />

_<br />

sh,pment<br />

____<br />

by all on the<br />

_<br />

U 5<br />

____ __ _ _ _ _ _ ___ _ ___ __ _ _ __ J<br />

,1<br />

I — — — -<br />

Some Common<br />

BASIC Programs<br />

By L. Poole and M . Borchers<br />

$ $1250<br />

---- - ---- ----l<br />

~ OSBORNE/McGraw-Hill<br />

McGraw· "I<br />

I<br />

I<br />

I<br />

I<br />

I<br />

I<br />

I<br />

I<br />

I<br />

j


MAY/JUNE. WAY/JUNE. <strong>1980</strong>. I960. ISSUE 4. 4 COMPUTE. 37<br />

Review:<br />

PET AND THE IEEE 488 Bus (GPIB),<br />

by Eugene Fisher and C. W. Jensen.<br />

Osborne/McGraw Hill, 233 pp. $15.00<br />

$15.OO<br />

Review by<br />

Review by<br />

Jim Butterfield<br />

The IEEE-488 bus may be a small part of the overall<br />

PET/CBM system, but there's enough in it to fill a<br />

book - and then some. One gels gets the impression<br />

ion<br />

that Fisher and Jensen could have gone on for<br />

another 200 pages or so without exhausting the subject.<br />

It's a very thorough book, and it documents<br />

the IEEE-f88 IEEE-488 bus and PET's role in considerable<br />

detail: line by line, command by command. The book<br />

is primarily y aimed at hardware enthusiasts and engineering<br />

types; but even the casual user r who just plugs<br />

in and hopes it works will find useful information<br />

here. There are general descriptions of what goes on,<br />

with liberal sketches depicting the interactionn in a<br />

somewhat whimsical form. There are extensive lists of<br />

compatible equipment and descriptions of applications.<br />

There'ss even a short diagnostic test which may<br />

help pinpoint t trouble on the e bus.<br />

For those who need to plunge into technical<br />

detail, it's all there: from connector pin designations<br />

to lO signal sequences, everything is spelled ed out in<br />

detail. Chapter 5, "Execution and Timing Sequences",<br />

is the longest chapter in the book. It contains<br />

step-by-step outlines of everything that happens<br />

on the bus for every relevant evant PET Basic command.<br />

There arc are a few things the authors didn't tackle.<br />

Chapter 6 deals with interfacingg non-standard devices.<br />

The interface described is for a receive-only device<br />

which responds to everything the PET sends. A<br />

schematicc is given, , and a subsequent chapter details<br />

a similar interface to the Centronics PI printer.<br />

But the design of a selecting interface, which can be<br />

called in as needed by the PET, is not touched<br />

upon. Even a brief outline here would have been<br />

useful.<br />

Similarly, il the authors stay away from the question<br />

of multiple PETs communicatingg with each other or<br />

with a common device over the CPIB GPIB bus. It's ' s a<br />

tricky subject and laced with pitfalls; users lI would<br />

have been grateful for r any hints they might have<br />

been given.<br />

Even so, the e book has a wealth of detail on<br />

all levels. There's hardly a page without a diagram,<br />

chart, , illustrationn or photograph. . Timing questions<br />

and logic sequences are described meticulously.<br />

The book is remarkably fl·ee free from errors. A few<br />

creep in: table 5-122 seems to have omitted the<br />

""unlisten" " signal; page 72 should show an EOI on<br />

the last E of GENE; page 109 seems to show the<br />

CRR and EOI coming from the PET rather than the<br />

external device. The sequence given on page 83:<br />

OPEN 5,5 "TEST"" doesn't seem to work on myy<br />

PET: it gives a syntax error. The authors might<br />

have mentioned the one-character delay that PET<br />

introduces in the output (so that it can append the<br />

EOI signal at the right time).<br />

I would have liked to see more attention given<br />

to multiple devices. At first glance, it appears that<br />

since PET only works one device at a time, the<br />

single-talker, single-listener listener description is adequate.<br />

But all devices arc are on-line during the selection sequences;<br />

and it seems to be important t to emphasize<br />

that any device can pull a line to true aand all<br />

devices must release ease the line to false. That's the<br />

whole point behind the three-wire handshake; yet I<br />

couldn'tt find the information in the introductory<br />

section. .<br />

But what the book is missingm is minor compared<br />

to what it's gOl. got. It's a gold mine of both con-<br />

ceptual information and hard facts. It covers hardware,<br />

software, mechanical assemblies, and standards.<br />

It lists numerous us devices and gives copious references.<br />

In short, it's virtually everything you wanted to<br />

know about the IEEE-488 l bus .. or are likely to want<br />

lO to knO\·v know in thee future.<br />

©<br />

Money Back Guaranlee<br />

~.-<br />

Dealer Inqulrt •• Welcome<br />

UNDERSTANDING YOUR PET/CBM<br />

Volume I: Basic Programming<br />

New 248-page book Includes all the former TIS workbooks<br />

except "PET Graphics." Provides Information for both ROMs and<br />

a comprehensive Index. Only $14.95.<br />

Also Irom from TIS<br />

W8-3 WB-3 PET Graphics $4.95<br />

Software produclS products 00 on cassette Of or Uoppy floppy disk with wilh complete instruction<br />

manual. Each S24.95 S2-S.95 (cassette). $29.95 (diskette).<br />

SW-l SW-1 MAIL B mailing list system<br />

SW-2 CHECKBOOK record<br />

SW-3 ACCOUNTS keep track 01 of who owes you how much<br />

SW-4 MEOI MEDITT create and maintain date Iiles<br />

files<br />

SW-5 CALENDAR appOintments. appointments, meetings at·a-glance<br />

at-a-glance<br />

TtS TIS<br />

P.O. Box 921, Dept. C<br />

Los Alamos, Alamos. NM 87544<br />

Add S2 $2 (S5


38 38 COMPUTE. MAY/JUNE. I 198O <strong>1980</strong> ISSUE 4<br />

INTRODUCING<br />

B.E.C.FOR<br />

THEC.B.M.<br />

B.E.C.FOR<br />

THE C.B.M<br />

Micro Mini Computer World Inc. is an<br />

Micro Mini Computer World Inc. is an<br />

exclusive distributor for the BUSINESS<br />

SOFTWARE developed by Business En­<br />

hancement Compuservice of Escondido,<br />

hancement Compuservice of Escondido,<br />

California.<br />

If you are selling or using the<br />

If you are selling or using the<br />

COMMODORE BUSINESS<br />

MACHINES (CBM) computer systems,<br />

then you should provide yourself or<br />

your customers with the BEST and<br />

MOST COST EFFECTIVE software for<br />

MOST COST EFFECTIVE software for<br />

the CBM business computer system.<br />

CURRENT B.E.C. SOFTWARE:<br />

CURRENT B.E.C. SOFTWARE:<br />

• General Ledger-Master Ledger--Master File 500<br />

accounts<br />

Journal File 3000<br />

entries<br />

• Accounts Receivable--Master Receivable-Master File<br />

800 customers<br />

Invoice File 800<br />

invoices<br />

• Accounts Payable--Master Payable-Master File 800<br />

customers<br />

Invoice File 800<br />

invoices<br />

• Payroll--300 Employees<br />

• Job Cost--800 Cost-800 Items<br />

• Inventory--800 Inventory-800 Items per disk<br />

• Mail List/Customer Info--600<br />

Info-600<br />

customers<br />

B.E.C. SOFTWARE FEATURES:<br />

B.E.C. SOFTWARE FEATURES:<br />

• Complete and Total documentation<br />

(over 150 pages)<br />

• Step by Step walk through on every<br />

program operation, with examples.<br />

• Each package is Menu driven and uses<br />

dynamic load and overlay once Master<br />

Menu is booted.<br />

• Examples are provided for all Reports<br />

and other Printed Forms.<br />

• All Input/Output operations in regard<br />

• All Input/Output operations in regard<br />

to file accesses use the CBM random<br />

access method.<br />

• Sorts are machine language.<br />

• All packages are interactive with<br />

• All packages are interactive with<br />

each other.<br />

B.E.C. VALUE ADDED<br />

BENEFITS<br />

BENEFITS<br />

• Total concentration to the development<br />

of software for the CBM computer<br />

systems.<br />

• Programs can be easily modified by<br />

dealers and/or end users.<br />

• At reasonable rates, B.E.C. will<br />

modify their software to meet customer<br />

requirements. (Complete specifications<br />

must be submitted in writing)<br />

DEALERS and INTERESTED<br />

PARTIES may obtain a copy of the<br />

B.E.C. software documentation for $25.<br />

If after review you are not interested<br />

send the documentation back for a full<br />

refund or you can apply the $25 toward<br />

the first software purchase.<br />

Suggested retail for each software<br />

package is $120. When purchasing all<br />

seven packages, the suggested retail is<br />

$795.<br />

DEALERS send us your letter head and<br />

proof of a ligimate computer business<br />

operation and we will forward wholesales<br />

prices that will give you DECENT<br />

PROFITS.<br />

COMPUTER WORLD<br />

'01\< ",~"<br />

"'4<br />

GC~<br />

COUNTRY SHOPP\'"<br />

74 ROBINWOOD ROB1NWOOD AVE. COLUMBUS, OHIO 43213<br />

(614) 235·5813 235-5813 (614) 235-6058


MAY/JUNE. I lQBO <strong>1980</strong>. ISSUE 44.<br />

COMPUTE.<br />

39<br />

39<br />

TREAT YOUR PET/CBM ICBM TO A<br />

0'<br />

P E T*<br />

r. I. E.<br />

(Parallel Interfac ing Element)<br />

F.I.E.<br />

(Parallel Interfacing Element)<br />

by LemData Products<br />

BY LEMDATA PRODUCTS<br />

-I I-<br />

PRINTER<br />

Now your 80 8O column CBM (or any PET/CBM) / can drive your choice of high quality printers<br />

for word processing. The NEC Spinwriter and<br />

Anderson-Jacobson AJ841 can be driven as well<br />

as any other ASCII Parallel-input printer such as<br />

Centronics. Centronics, Integral Data and Anadex. It's a<br />

major step step in making your PET/CBM / the most<br />

useful office or home appliance you have.<br />

A printer is required for any business system<br />

and is the most desirable peripheral for any<br />

hobbyist. You know what printer you want and<br />

can think of a thousand things to do with it--<br />

The P.I.E. is an interface to connect any<br />

parallel-input printer to your PET using the<br />

IEEE-488 bus. You connect the P.I.E. to the PET<br />

and the printer to the P.I.E. It's as easy as<br />

PIE! The P.I.E. P.l.E. has selectable addressing and provides<br />

extension of the IEEE-488 bus to be compatible<br />

with all the other peripherals peripherols you have or<br />

may acquire.<br />

Because the P.I.E. transfers information 8 bits<br />

at a time, time. it's faster than serial interfaces.<br />

And because many printers only provide serial<br />

interfaces optionally, optionally. you can save money using<br />

the P.I.E. Serial interfaces require +12v+ and<br />

-12v from a power supply while the P.I.E. P.l.E. uses<br />

only +5v+ which can be supplied by most printers<br />

themselves. No tangle of wires to contend with<br />

and you save again. If your printer can't can·t supply<br />

power, power. the P.I.E. P.l.E. can also a be connected to a<br />

power supply using the power cable provided on<br />

the P.I.E.<br />

The P.I.E. PH. uses the IEEE-488 bus of your PET<br />

automatically type invoices and end-of-themonth<br />

statements. statements, print all of your mailing labels<br />

or even the envelopes. envelopes, make advertisements or<br />

write letters. letters, make hard copies of those important<br />

programs for permanent back-up. back-up, print your<br />

favarite favorite recipe for a friend. friend, print personal<br />

telephone listings or Christmas card lists--<br />

but you haven·t haven't found an easy way to connect<br />

it to your PET. Well. Well, your search is over! You've<br />

found THE way to connect your printer to your<br />

PET. Treat your PET to a PIE!<br />

and the 488 Basic commands such as PRINT#.<br />

PRINT#,<br />

end-of-the-<br />

CMD. CMD, etc. You don·t don't need to load software<br />

routines. routines, which also slows the printing down.<br />

down,<br />

because the 488 commands are always available<br />

in Basic.<br />

Because the PET in lower case mode outputs<br />

the wrong ASCII codes, codes. the P.I.E. provides<br />

for the use of an optional, optional. switch h selectable, selectable.<br />

Code Converter ROM to output the correct<br />

ASCII codes to match all the ASCII II characters<br />

displayed on the PET screen.<br />

The P.I.E. P.l.E. provides 8 latched TTL data bits and<br />

2 TTL handshaking lines (both positive and negative<br />

handshaking supported) so any parallel-<br />

parallelinput<br />

device can be driven. This could include<br />

devices other than printers, printers. such as plotters or<br />

even AC relay control devices.<br />

Documentation includes instructions for<br />

using OPEN, OPEN. PRINT*, PRINT#. CMD and CLOSE commands.<br />

how to set the device* device# of the P.I.E.<br />

and the set-up -up and test mands,<br />

procedures.<br />

The P.I.E. P.l.E. is fully assembled and ready to use. Cables are optionally available for most printers (with both<br />

connectors or connector for P.I.E.only). P.l.E.only). For FULL-CABLE please specify printer model, model. type of connector and<br />

pin/signal<br />

designation.<br />

SO STOP SEARCHING AND START ENJOYING.<br />

PLACE YOUR ORDER FOR A P.I.E. P.l.E. TODAY!!<br />

P.I.E. P.1. E. --------------------------------------------------$8 $89.95<br />

CODE CONVERTER -------------------------------$14.95<br />

FULL-CABLE -CABLE--------------------------$39. $39.95 95<br />

SEMI-CABLE M A E -----------------------------------------$19.95<br />

S19.95<br />

LemData Products, P.O. P_O_ Box 1O8O, lOBO,<br />

Prices include shipping and handling for checks<br />

Columbia, MD. 21O44 21044 Phone (3O1) (301) 73O-3257 730-3257<br />

and money orders. COD add $5. Md. res, s. add<br />

'PET -PET is Is a trademark of <strong>Commodore</strong><br />

5% tax. Allow 4 to 6 weeks delivery.<br />

Business Machines


40<br />

4O COMPUTE. MAY/JUNE. MAY/JUNE, 198O. <strong>1980</strong> ISSUE 4. 4.<br />

Review:<br />

Review:<br />

6502 Software<br />

65O2 Software<br />

Design,<br />

Review by<br />

Jim Butterfield<br />

by Leo J . Sca nlon<br />

Howard W. Sams & Co., Inc.,<br />

by Leo J. Scanlon<br />

Howard W. Sams & Co., Inc.,<br />

27O 270 pp. $1O.5O $10.50<br />

This 'T'hi s is is quite quile a pleasant book; it it makes good reading.<br />

.<br />

The title lilie is is misleading: m g: the Ihe book deals with wilh 6502<br />

programming rather than software design. In In fact. ract , 1I<br />

rather r missed m the software design elements: clements: planning<br />

memory, memory. designing data structures, and testing/<br />

debugging g methodology are a rc important impona nt concepts s for lor be·<br />

ginning g programmers. The book expends its s main<br />

efforts on the subjects of o f writing code and handling<br />

interrupts and a nd input/output inpUl/oUlpUl devices.<br />

The book bouk is oriented o enled towards IOwards the Ih e Rockwell AIM A I M<br />

65 microcomputer, m r, but bur not t too lOa heavily. Users of<br />

other Olhcr systems will find it a worthwhile wonhwh ile reference<br />

of text. The book appears a ideal for a programming<br />

course textbook: textbook; it is well organized o and gets into<br />

serious s programming quite quickly. quickly,<br />

ChapterC 1I is partly historical, partly y an a n overview<br />

of popular microprocessors and partly panly a brief plug<br />

for the AIM A I M 65. There's a minor m problem where the<br />

aUlhor describes Ih e 6800/6 502 famil y as cha racler­<br />

author describes the 6800/6502 family as character<br />

ized by b y novel memory-mapped architecture: re: in fact, ,<br />

all microprocessors including Ih thee 8080 and Z-80<br />

can aand do use mcmory memory mapped lIO. 1/0. And I rather<br />

wish that the illlroductio introductionn to the 6502 had mentioned ned<br />

its iis remarkable speed due to pipelining techniques -<br />

a factor r that sc sets it clearly y aahead ooff the earlier<br />

6800.<br />

Chapter 2 gets into the 6502 instruction sel. set.<br />

Similar op codes are grouped aand discussed together,<br />

which helps to develop intuitive ideas of the<br />

machine's capabilities. Numerous us examples of coding<br />

arc are included. The slyle style is generally easy aand<br />

straightforward, rward , but beginners will still find it it slow<br />

going: Ih there's s a 10 lot 1 of malerial material 10 to gel get Ihrough.<br />

through.<br />

SSubroutines utines are covered in chapter I 4, ~,<br />

mostly y in<br />

terms oof f their mechanistic c characteristics. A couple<br />

of time deJay delay subroutines uti aare rc ggiven, aand it it's nice<br />

to to see ti liming m in g qquestions being \\'orked worked through<br />

mel meticulously. iculo usly.<br />

CChapters 4, 4, 5 and 6 get heavily y into coding<br />

questions: list aand lookups, mathematicall routines,<br />

and number-base conversion. Coding is isggiven through ughout<br />

out, , but lhe the emphasis is is oon n algorithms: lhe the aauthor<br />

Ulho r<br />

is is concerned wwith the methods behind d a pa particular<br />

a r<br />

kind oof f computation. A rather unusuall aalgorithm is is<br />

given for for calculating g the square rOOt root of ofan integer;<br />

it it's rather slo slow w compared lO to standard methods, but but<br />

readers may find it it an an interest interesting ing curiosit curiosity.<br />

CChapter i 7 ddiscusses interrupts. In Insixteen pages,<br />

it it's ha hard to tocome to togrips wit with h the whole qucslion question, ,<br />

and a nd coding examples are arc cursory. ry. Chapter C 8 goes g"Oes<br />

into to considerable detail dctail on o n two input/output chips:<br />

the Ihe 6520 and a nd 6522.<br />

There are a re two appendices and a an index. II found<br />

the Iht: index rather sparse: for fur example, "relative " addressing" points you to LO page 40, bill but a more<br />

useful discussion d ion can be found on page 55.<br />

Coding g examples are arc written almost entirely in<br />

assembly b ly language. This T s is is quite q u readable, ble. but b ut II<br />

would vvo have preferred rred to see sec early y coding examples c XCl lllplcs<br />

complete with wilh their machine language nguag-e equivalents.<br />

s .<br />

The Thc overall organization ion of or the t book is good, g"ood t<br />

although a there are a rc inconsistencies within h in chapters: ( rs:<br />

some have summaries, some somc have references, rcfe rl:nccs. and some<br />

have neither. Chapter C r 2 has ait section entitled c ntitkd "How ': Ho\\,<br />

this chapter is arranged"; it appears on 011 the sixth si:..: page of o f the chapter, which seems Seems odd..<br />

..<br />

The coding is good, but there are a rc a few errors.<br />

On page 68. , the author suggests suggesls thai Iha t when n shifting shirting<br />

signed numbers to the left, , the programmer ll llllcr should<br />

arrangea to restore the sign bit in ill case it's shiltecl<br />

ift l'd<br />

out: O llt ; in fact, a change in the lhe sign n bit would be an<br />

overflow ow situation and there would be no repairing<br />

the damaged number. numbcr. Example 5-14 1 ~ ono n page 1391 :$9<br />

should add a value e ofo f two to location Ti 22 rather<br />

than the value e of one shown; shown: most Ill alcrl alert readers<br />

ers<br />

will pick this kind oi of' thing up. u HardwareH re purists<br />

may wince at some of the terminology, such as use usc<br />

ofr the term "grounded'' " instead or of "logic zcro" zero"<br />

or ""low", . bul but everybodyy will understand rstalld wh;u what is<br />

mca meant. n t.<br />

The authorr has a conversational style and


MAY/JUNE, I JUNE. <strong>1980</strong>. I960. ISSUE 4.<br />

COMPUTE.<br />

41<br />

Grand Opening, ...• Systems<br />

Formulate<br />

Corporation.<br />

Your microcomputer<br />

information center.<br />

Miplot, The Intelligent<br />

We welcome you to \'ISII visi! our fLr first consumer commrcial<br />

sales center in the Umted United States_ States. Located in Palo Alto Ln in<br />

the ihe Town and Country Village Shopping Center. System:.<br />

Systems<br />

Formulaw Formulate features a full range of microcomputer systems and<br />

p~TLphe peripherals ral s for home or commercial use. .<br />

Dunng During the past few years since our founding in 1978. 197H. we<br />

hiNe have opI.'Ill.!d opened three retam retain stores in Japan stocking premiere<br />

Atl1I..'TLc


42 COMPUTE. MAY/JUNE. I 198O <strong>1980</strong> ISSUE 4oil<br />

BIG FILES ON A<br />

BIG FILES ON A<br />

SMALL<br />

Elizabeth Deal<br />

337 W. First Ave.<br />

Malvern,<br />

COMPUTER Pa,19355<br />

~a~~§5~<br />

337 W First Ave.<br />

The program described here demonstrates a way of<br />

reducing data storage requirements by a factor of<br />

eight. It is written in Microsoft Basic for a PET<br />

computer.<br />

I have seen several programs that create and<br />

use cross-index files mes for library search, statistical<br />

surveys and similar applications. They usually require<br />

large computers, such as a 48K system with two<br />

disk drives. . A very thorough file e handling system<br />

has been described recently by Dr. Sanger in the<br />

November, 1979, , issue of Microcomputing. In his<br />

article each attribute is coded as two letters and six<br />

attributes are permitted for each record. This T requires<br />

twelve letters and, therefore, twelve bytes.<br />

.<br />

In the method described here, each attribute is<br />

coded as yes or no and the user can have as many<br />

attributes as he desires. . If the application lends itself<br />

to such coding into a list of keys or attributes,<br />

then this system will permit the handling of large<br />

amounts off data in core at one onc time. It also permits<br />

the use of logical AND, OR or NOT operators in<br />

retrieval with any combination of attributes.<br />

By way of illustration, , a library ry search requires<br />

quick access to those entries that contain desired<br />

subject matter. Two, three, or six byte coding of<br />

each key is very core consuming, and limits the<br />

number of records that can be in core at one time.<br />

The solution I propose is twofold; : (1) set up a<br />

smart coding procedure for classification of subjects<br />

described in an article into keys that can be scored<br />

yes or no, and (2) ""pack" the data for storing it<br />

in corc, core, on tape or on disk, and then ""unpack"<br />

it, , one record at a time, during the search for the<br />

applicable attributes. This paper describes an efficient<br />

way to ""pack" and "unpack" the data so that a<br />

larger file e can be searched on a small computer<br />

without the use of accessory memory devices, such as<br />

disks. Of course, if one has a system with a disk<br />

the method described here would permit use of an even<br />

larger file. We are aware that the e first part of the<br />

solution (setting up the coding procedure) is challeng·<br />

ing. It is the real problem and the performance of<br />

the system depends on how logical and meaningful<br />

the selected keys are.<br />

Each logical record consists of the text part and<br />

the data part. The text part must be adequate for<br />

positive identification of the articles being searched,<br />

but the length should be kept to a minimum. . Name,<br />

date, and page might be enough. . The data part is<br />

what we can compress. The yes-no or 1-0 codes<br />

are entered in groups of fi fifteen fteen ones and zeros.<br />

These, in turn, , are packed into the e two byte bylC integer<br />

cgcr<br />

variable S % .<br />

variable S%.<br />

Fifteen attributes require two bytes, thirty attributes<br />

require four bytes, and so on. . A user of the<br />

system need not concern himself with what the<br />

system need not concern himself with what the<br />

program does with binary ry numbers. He only needs to<br />

know that there will be as many S% values per<br />

record as there are groups of fifteen keys. The user<br />

record as there are groups of fifteen keys. The user<br />

then needs to provide a decision for retrieving<br />

the records of interest to him. . The decision is<br />

written as a statement at the e beginning of a program<br />

and is immediately edited for syntax-type errors.<br />

and is immediately edited for syntax-type errors.<br />

Logical operators AND, , OR, NOT, , as well as arithmetic<br />

ones ( ~ , < >, < , > ) are used . The<br />

metic ones ( =, , ) are used. The<br />

decision can be written on one or more lines leading<br />

to a combining variable TR. TR is set to one if true,<br />

to a combining variable TR. TR is set to one if true,<br />

and all records meeting TR condition are then<br />

displayed. Complete instructions for writing TRT R lines<br />

are listed in lines 2970 to 3420.<br />

How is it done? For once those long tables of<br />

powers of two, that are a part of every book on<br />

programming, come in handy. The program is set up<br />

in such a way that the user thinks of the list of<br />

fifteen ftee n keys from left to right, 1 to 15. TheT program<br />

sees them as being numbered from right to left, 0 to 14.<br />

Like this:<br />

-Key numbers B%(k)k = ~ 1 233 4 5676 7 8 9 101112<br />

11 12<br />

13 14 15<br />

-Program sees as m ~ 1413 12 11 10 9 8765 4 3<br />

-Program sees as m = 14 13 12 11 10 9 8 7 6 5 4 3<br />

2 1 0<br />

-Input key values 100011111100000<br />

·Input key values 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0<br />

The program now takes key values and wherever it<br />

finds a ""1" it raises 2 to the m·th m-th power. The sum of<br />

all this is then stored in integer variable S S%(record<br />

number, , sum number)' number)*. . The bytes are used instead<br />

of at least 15. During the process of retrieval the<br />

of at least 15. During the process of retrieval the<br />

opposite procedure takes place - the sum is "un<br />

­<br />

packed" into working storage of 15 values. The same<br />

packed " into working storage of 15 values. T he same<br />

values are, of course, reused by all records. The lines<br />

of the program that drive this system are 1470 to<br />

1510 and 1920 to 1990 the other way. It seems like<br />

1510 and 1920 to 1990 the other way. It seems like<br />

a lot of hassle, but the core saving is tremendous.<br />

The loops that do the packing and unpacking take<br />

The loops that do the packing and unpacking take<br />

from 0.2 second to 0.9 second, the latter representing<br />

all fi ftee n bits on . (These times could be reduced by<br />

all fifteen bits on. (These times could be reduced by<br />

rewriting these two loops as machine code subrou­<br />

tines.) Another way to save time would be to set up<br />

tines.) Another way to save time would be to set up<br />

the most frequently used keys next to one another as<br />

this will leave the loop sooner. In the example pi ~ shown<br />

above, the program will loop ten times. Had a " 1"<br />

above, the program will loop ten times. Had a "1"<br />

been in position 4 or 11 the loop would be executed<br />

five times.<br />

The program now has two sections. One packs<br />

the data, the other unpacks it. In between, , the<br />

values should be stored on tape. And at the beginning,<br />

values should be stored on tape. And at the beginning,<br />

routines for creating and updating fil files should be<br />

provided. As listed , the program works as if it were a<br />

provided. As listed, the program works as if it were a<br />

file e system. . It can be used as a training ground in<br />

writing decision lines. It should be used as a part<br />

writing decision lines. It should be used as a part<br />

of a larger system. .


MAY/JUNE, <strong>1980</strong> ISSUE A COMPUTE. 43<br />

Buy Direct From CompuMart<br />

COMPUMART NOW OFFERS THE<br />

ENTIRE DEC LSI-11 PRODUCT LINE<br />

CALL FOR PRICES & DELIVERY.<br />

Buy Direct from the Largest<br />

<strong>Commodore</strong> Dealer In the Country<br />

-— NCEI NCE/CompuMart.<br />

CompuMart.<br />

8K-Keyboard N .... $795<br />

16K-Keyboard B 8 ....... $995<br />

16K-Keyboard N ....... . $995<br />

32K-Keyboard B $1 Si ,295<br />

32K-Keyboard K-Keyboa,d N $1.295<br />

$1,295<br />

B -— large keyboard igraphlcs (graphics not on keyS) keys)<br />

N -— large keyboard with graphics symbols<br />

large keyboard with graphics symbols<br />

SUPER SAVER. . Thanks to <strong>Commodore</strong><br />

their printer prices have been drastically<br />

reduced:<br />

<strong>Commodore</strong> Printer (tractor feed) feed] ........ .<br />

wasS995 $995 NNOW 5795 $795<br />

<strong>Commodore</strong> Printer<br />

(friction feed)<br />

wasS849 NOWS695<br />

NEW FROM EXIDY<br />

THE SORCERER II /I 48K COMPUTER<br />

z'SO 2-80 Microprocessor. Full-Sized Full-sued keyboard keyboaid .• ROM PAC<br />

Pr09rams Programs • Mlr. Microsoft rosott BASIC .• Powerful tul Graphll:S Graphics •<br />

Sellat Serial and Parallel '10 I/O • Dual Casse1te Casselte 1/0 I/O Memory<br />

Inlernally Internally Eipandable E ~ pandatlle •· S-100 EItPanSlon Expansion Options<br />

4BK Sorcerer II $1.395<br />

S1.395<br />

CENTRONICS<br />

PRINTERS<br />

The 779-2 779·2 is a tractor<br />

feed leed printer designed<br />

lor tor small business<br />

systems. Uses a 5i7 5117<br />

do! dot mairiy matr.l lo to produce<br />

all 64 upper case clISe<br />

ASCII ASCt1 characters.<br />

Centronics Centronlu Is is the biggest<br />

name nlme in In piinlers p,lntefi<br />

and this is Is their moil mOSI<br />

popular model. modet.<br />

List. S1.245 51 .<br />

SALE! E! S1.079 51,019<br />

The New 730-1 73G-l parallel plrallel matrix printer is Is ideally suited lor<br />

all personal p e~onal and , nd microcomputer systems. Standard<br />

Features Include: InClude: 100 cps •- BO char./line char.lllne • 3-way w ay paper<br />

handling system sy.tem •- 7x7 1.1 do! dot matrix •. 96 character ASCII t1 •<br />

List L1.t $995 S995 .. . ... SALEI SALE! SB39 5839<br />

To meet l our Centronics' quotas we are sre ottering ollering these<br />

great specials on their r printers! printerst<br />

753-9 3-9 9919 i 9 Data ta Processing Printer. ter. Lisl: List: 52,995 SALE! SALEt<br />

S2.395 52.395<br />

704-9 104-9 9 i;1 9 180 CPS. List: S1.995 51,995 SALE! 51,750 51.750<br />

701-9 101 -9 9x9 9 I 9 Matrix. Ml trlx. List: S1.595 51.595 SALE! S1.395 51,395<br />

730-3 730·3 Serial 730. 130. List: SB95 5895 SALE! E! S745 5745<br />

Brand New. Centronics s Model Modet137. 737. the tirsl Ur.t printer prlnter In its Its<br />

class clan capable capabte ot 01 offering oUerlng print quality qua1ily suitable lor tent tu t<br />

processing, plus the performance perl & application flexi lIedblllty<br />

required tor l or data dlta processing. p Unbelievable quality<br />

bility<br />

of ollype.<br />

type.<br />

737-3 131-3 Serial Word Processor Printer Prinler $1,045 51 .045<br />

737-1 737-\ Parallel Word Processor Printer 5995<br />

The Perlect Printer for lor Small Business Bu.lnus Systems<br />

s<br />

CompuMart<br />

2 Good reasons for buying<br />

your PET'" PET" from CompuMart:<br />

(1 (1)) $100 S100 IN FREE ACCESSORIES<br />

WITH 16K or32K PET.<br />

When Wnen you buy a 16 16Kor32KPET, K . apply 51 S100 to loward<br />

PET accessories FREE Choose Irom from the accessOries<br />

sories listed below and mdlcate indicate on your order that<br />

you have reduced the cost cosl 01 ot your accessories by<br />

(2) FREE WITH PURCHASE<br />

OF ANY PET(Offer PET{Offerextended<br />

until <strong>May</strong> 15,<strong>1980</strong>) <strong>1980</strong>)<br />

A Texas InstrumenlS' Instruments' Hex/Octal He>/Octal Calculator<br />

(S60 Value). Value), and a set 016 ot 6 PET Vlorltbooks<br />

Workbooks<br />

(Worth 536)<br />

PET Accessories<br />

<strong>Commodore</strong> Dual Floppy Oisk Disk Olive Drive .. ... ..51,295 SI.295.00<br />

Second Cassette- Cassette—from Irom <strong>Commodore</strong> . S95 00<br />

<strong>Commodore</strong> PET Service Kit ...... . S30.OO<br />

S30.00<br />

Beepcr-Tells Beeper—Tells when tape IS is loaded . S2495<br />

Petunia- Petunia—Play Play mUSIC music Irom from PET .... S2995<br />

S29.95<br />

Video Buller- Buffer—Attach AttaCh another CRT .. S2995<br />

95<br />

Comtlo- Combo-Petunia ab


44<br />

COMPUTE.<br />

MAY/JUNE. I JUNE. 193O <strong>1980</strong> ISSUE 4.a<br />

To customize the program for your system (1)<br />

delete lines 2770 on to to reduce core from 10K to to 5.2K,<br />

,<br />

(2) in in line 1020 insert sert the maximum number of records<br />

that will ll fit, (3) modify G if if you wish in in lines 1020<br />

and 1340 (G = ~ 11 or 2 is is now permitted), permilled), and a nd (4) insert<br />

your machine size in line e 2450.<br />

As written, wrillen, the program takes about 5.2K after<br />

removal of all REM lines es that are at the end. A<br />

search type program that would contain a dictionary<br />

of keys should take no more than n 6K. . How many<br />

records can various systems s handle? e? If we assume<br />

that at each record has 26 bytes of text plus 30 yes-no<br />

attributes, an 8K system could search 66 records,<br />

a 16K system could search 330 records, and a 32K<br />

system could search 866 records. A 100K lOOK disk would<br />

add 3,333 records and a half-megabyte lfCmegabyte disk would<br />

add 16,500 records.<br />

- S %(n" g) = ~ + 2 6 + 27 +:!I + 2/0 + 214 = 18, 100<br />

' S%(nr,g) = -P +2 2' + 2 >8 iJO = 18,400<br />

Credits: Cudils: Ken Brossoie Brosso!e<br />

Microcomputing. A4icrocompuling, November, NOl/ember, 1979, page 44, 44.<br />

Neil !Vtil Harris. flaTTis, A-B A·B <strong>Computers</strong>, CompUrtTS, Montgomeryville, Monrgomtryuillt, Pa.<br />

1000 C0=0:C1=1:C2=2:C3=3:C5=5:C6=6:<br />

~ 0 : C 1~1:C 2 ~ 2 : C3 ~3:C 5~5 : C6~6:<br />

^CA=10:CE=14:CF=15:D$=""<br />

,CA.10:CE.14:CF.15:D$.""<br />

1010 REM EL I ZABETH DEAL,MALVERN,PA<br />

1010 REM ELIZABETH DEAL,MALVERN,PA<br />

1020 1 020 R= R. 200:G=2:DIM 200:G. 2 : DIM HD$(R),S%(R,G),<br />

, , G),<br />

-.WA$(15) ,WA$(15) ,V$(G) , ,B%(15*G) , ,QQ%(15) , 1030<br />

FORJ=C1TOCF:READWA$(J):NEXTJ<br />

FORJ~C1 READ\vA$ : 1040<br />

FORK=0TOCE:QQ%(K)=C2"K:NEXT<br />

FORK.0TOCE: ·C2-K : 1050<br />

1060<br />

1060<br />

1070<br />

10 80<br />

1080<br />

11090<br />

1360<br />

REM RENUMBER 1 000 ,10 WHEN NEEDED<br />

REM RENUMBER 1000,10 WHEN NEEDED<br />

REM»» REA D T HIS « «<br />

REM>>>> READ THIS >>> ':' MUST END EACH LINE<br />

1180<br />

1210<br />

REM<br />

TR.ABS«B%(1)ANDNOTB%(2 TR=ABS((B%(1)ANDNOTB%(2)) )) II //<br />

1220<br />

REM<br />

TR.ABS(S%(N TR=ABS(S%(N,2)>512)WILL ,2»512 )WILL DIS­ DIS-<br />

1230<br />

REr.1 REM PLAY RECS ~IEET MEETINGI STMT TR TR. _<br />

1240<br />

1250<br />

REM<br />

» >> TYPE ''RUN', ', VERIFY, , THEN<br />

1255<br />

REM<br />

TYPE ''GOTO1300' GOT01300 ' TO CONT.<br />

1260<br />

RE~I REM (OR -" -~ THIS LINE LINE#)<br />

1270<br />

1280<br />

REM ~.~~~....<br />

========= SECTION 1 •••••••••<br />

=========<br />

1290<br />

1300<br />

A·TI: A=TI:REM REr.1 IICHOS //CHOSEE SEC-1 SEC.1/2 / 2 HERE I /// I I<br />

1310<br />

GOSUB2420:REM : II // SUBR 1 III ///<br />

1320<br />

PRINT"6" PRINT"fi":N=l:LT=0<br />

: N.1:LT.0<br />

1330<br />

PRINT"HOW MANY GROUPS OF 115 5 KEYS ,-<br />

-,?":PRINTTAB(9) "ENTER 1 OR 2"<br />

1340<br />

INPUTG:PRI INPUTGrPRINT:IFG2GOTO1330<br />

NT 10RG >2GOT01330<br />

135 1350 0 PRINT:PRINT:PRINT"ENTER TEXT, ,<br />

,-i OR ' 'XX' ' TO END IINPUT"<br />

1360<br />

PRINTTAB{2)"!";TAB(27)"I"<br />

( "; TAB "<br />

1370<br />

1370 INPUTHD$(N):IFLEFT5(HD$(N),<br />

-.2) = "XX"THEN1550<br />

1380 80 HL=LEN(HD$(N)):E=0<br />

HL·LEN(HD$(N)) : E-0<br />

1390<br />

REM // II INPUT15 BITS,FLAG<br />

ERRORS<br />

1400<br />

:FORJ=C1TOG:PRINT:PRINT"15 : FORJ·C1TOG : 5 KEYS";<br />

";<br />

1410 PRINT" IUUUUII Jill" :PRINTTAB(<br />

-.7) ,7);: ; :INPUTV${J)<br />

(J)<br />

1420 :FORLL=C1TOCF:S$=MID$(V$(J),LL,1)<br />

: FORLL·C1TOCF : S$·MID$(V$(J ) ,LL,l )<br />

14 30 IF(S$O"0"ANDS$O"1")THENE=E+1:<br />

1 430<br />

144 0<br />

1450<br />

1460<br />

1440 :NEXT<br />

1450 :NEXTJ<br />

1460 IFE>0THENPRINT:PRINT"rERROR DO -.<br />

-.AGAIN" :GOTO1350<br />

14701 TX=TI TX·TI :FORJ=C1TOG:S%(N,J)=C0<br />

: FORJ.C1TOG : , J).C0<br />

14 80 :FORL=C0TOCF:PQ=VAL(MID$(V$(J) ,<br />

14 80<br />

-.CF-L,C1) ) :IFPQ=OTHEN15 0 0<br />

1490 S%(N,J)=S%(N,J)+QQ%(L)<br />

S%(N,J)·S%(N,J)+QQ%(L)<br />

1500 :NEXTL:PRINTTAB(14)"SUM="S%(N,J)<br />

1 500<br />

1 510<br />

1510 :NEXTJ:TY=TI<br />

1520 PRINT"(";INT((TY-TX)/C6)/CA;"SEC)";<br />

( "; I ( (TY-TX) I ) ICA ; "SEC ) ";<br />

-.: PRINTTAB ( 25 ) "OK " ; N; "OF " ; R<br />

1 530<br />

1540<br />

1530 N=N+C1:LT=LT+HL:IFN> # OF RECORDS (NR), TEXT<br />

1680 REM<br />

REC (HD$(NR)) AND<br />

G-SUMS<br />

1690<br />

REM<br />

S%(R,G) , ARE USED IN THIS<br />

1700 REM SECTION; BITS ARE COMPUTED<br />

1700<br />

1710<br />

1710 REM AND ASSIGNED TO KEYS ARRAY<br />

1720<br />

REt1 REM B%(G*15)<br />

1730 REM >> B% OR S% ARE CHECKED FOR<br />

1 730<br />

17 40<br />

1 830<br />

1 840<br />

1 850<br />

1 860<br />

1 880<br />

1890<br />

1910<br />

1 920<br />

1740 RE~I REM COMPLIANCE WITH TR STMT.<br />

1830 REM<br />

1840 REM =============================<br />

1850 REM<br />

1860 PRINT"fi":NR=N-l<br />

1880 :FORN=C1TONR:K=C0:JA=TI<br />

1890 IFKS>C0THEN2000<br />

1910 FORK·CITOG FORK=C1TOG*CF:B%(K)=0:NEXT<br />

*CF:B%(K)-0:NEXT<br />

1920 JS=TI:FORJ=C1TOG:TP=S%(N,J):<br />

-.JJ= J-Cl<br />

1930 IFTP·C0THEN1990<br />

IFTP=C0THEN1990<br />

1940 Q·INT(LOG(TP) Q=INT(LOG(TP)/LOG(C2)):U=CF-Q<br />

/ LOG(C2 )) : U.CF- Q<br />

1950 :FORM=C0TOQ:BP=QQ%(Q-M)<br />

193 0<br />

1940<br />

1950<br />

1960<br />

196 0 IF(TP)>=BPTHENB%(CF*JJ+U+M)=C1:<br />

1970<br />

<strong>1980</strong><br />

1990<br />

2000<br />

I NP UTHD $(N) :IFLEFT$(HD$( N),<br />

,2)."XX"THEN1550<br />

PRINT " 1 1!!!!!!1!!!!! !" :PRINTTAB(<br />

IF(S$ "0"ANDS$ "1" )TH ENE·E+1:<br />

-■GOTO1450 ,GOT014 50<br />

: NEXT<br />

:NEXTJ<br />

IFE >0THENPRINT:PRI NT "LERROR DO ,<br />

, AGAIN " : GOT01350<br />

: FORL·C0TOCE ,PQ·VAL(MID$(V$(J) ,<br />

, CF-L, C1)) :IFPQ.OTHEN1 5 00<br />

: NEXTL : PRINTTAB( 14 ) "SUM." S% (N ,J )<br />

: NEXTJ: TY·TI<br />

,:PRINTTAB(25) "OK";N; "OF" ; R<br />

N. N+C1:LT. LT+HL : IFN


MAY/JUNE. J980 I960. . ISSUE 4.<br />

COMPUTE.<br />

45<br />

2005 PRINT : PRINTHD$(N)<br />

2005 PRINT:PRINTHD$(N) 2520<br />

2010 GOSUBI140 GOSUB1140:IFTRO1THENPRINT: ITH :<br />

2530<br />

~ -.PRINT"*** NO MATCH ***""::GOTO2030 GOT02030 2540<br />

2020 PRINT:PRINT"THIS : PRINT"THIS RECORD MATCHES:" " 2550<br />

2030 PRINT:PRINTTR$<br />

2040 :FORJ=CITOG:<br />

:FORJ=C1TOG: 2560<br />

2050 PRINT"GROUP";J;"SUM=";S%(N,J): 2570<br />

2050 PRINT"GROUP" ; J; "SUM=" ; S%(N , J) :<br />

-.DECISIONS; SEE SUBl LISTING ": STOP 2960<br />

24 8 0 :FORJJ=JA+11TOJZ:LL=PEEK(JJ) 297 0<br />

2490 IFLL=58THENJJ=JJ+5:LP$=CHR?(13): 2980<br />

^GOTO2540 ~GOT02540<br />

2990<br />

2500 IFLL255THENPRINT"STRING TOO -.<br />

~L -.LONG-LIMIT<br />

- LII1IT 255":E5=I:GOT02700<br />

= 1:GOTO2700<br />

TR5=TR$+LP$<br />

~NEXTJ:PRINT<br />

-.NEXTJ:PRINT 2580 :FORJJ=J1TOLX+1<br />

2070 IFKS>C0THEN2130 2590<br />

M$ M$=MID$(TR$,JJ,1):KB=KB-(M$="B"):<br />

, JJ,I ) : (M$ =" B") :<br />

2080 K=Cl K=C1:PRINT:FORJ=C1TOG<br />

: : =CI TOG<br />

~KS=KS-(M$="S") -iKS=KS-(M$="S"):P=P-(M$="%")<br />

=" )<br />

2090 PRINT"BIT";(J-Cl)*(K-C1)+C1;: " ; Cl)+Cl ;:<br />

2600<br />

KC KC=KC-(M$=","):L1=L1-(M$="("):<br />

" ) :Ll=Ll- (11$ =" ("):<br />

~ -.PRINTTAB PRINTTAB(7) ;" --> > ";:PRINTTAB(12);<br />

;<br />

~Rl=Rl-(I1$=") ->R1=R1-{M$=") "))<br />

2100 0 ::FORK=C1TOCF:PRINTRIGHT$(STR$(B%(CF FORK=CITOCF : 2610<br />

NEXTJJ<br />

~ -.*(J-C1)+K)) - Cl)+K)) ,1)) ;<br />

2620<br />

PRINT" II B II ";" S ";" % 1/;" ";" , II;" ";" ( "";<br />

2110 ::NEXTK:PRINT" : " 0)AND(KB E1=(KB>0)AND(KBOP) : E2=(KS (KS>0) >0)AND(KS<br />

2150 0 :FORM=I :FORM=1TOCA:PRINT"====";:NEXT<br />

:NEXT<br />

~ -.OP) ::E3=(KS>0)AND(KSOKC) E3=(KS>0)AND(KSOKC): :<br />

2160 PRINT:PRINTTAB(II) PRINTTAB (11) "HIT ANY KEY FOR ~ -i<br />

~E4= -iE4=(LK>Rl) (LI 0 -,HORE"<br />

-.MORE" 2670<br />

0 IFEI IFE1ORE2THENPRINT"* 0RE2THENPRINT "* USE % --(B% OR ~ i<br />

2170 PRINTTAB(6) ) "'Q'" ' Q • TO QUIT AND RERUN -. ~<br />

-.S%) ~S !!": !!":PRINT" USE NOOTHERB OTHER B, , S,<br />

~OPTIONS"<br />

-.OPTIONS"<br />

-, -i %"% "<br />

2180 GET A$ A5:IFA$=""GOTO2180 : IFA$=""GOT02180<br />

2680<br />

IFE3THENPRINT"* "* USE S%(N S%(N,#)FOR , I -i ~<br />

2190 IFA$="Q"GOT02210<br />

IFA$="Q"GOTO2210<br />

■^2-DIM<br />

~2 - ARRAY"<br />

2200 ::NEXTN :REM // II END REC LOOP / I 2690<br />

IFE4THENPRINT IFE4THENPRIMT"* "* ( ) DON'T ' T MATCH:<br />

2210 PRINT"W'TAB(16) "fi++ "TAB(16) "OPTIONS"" :PRINT: -," V';L1;"LEFT,<br />

; Ll ;" LEFT, ANO AND";Rl;"RIGHT"<br />

"; "RIGHT "<br />

2220 PRINT"1. "I. SAME SAI~E TR, , NEW NEI'I DATA -. ~<br />

2700 IFEI IFE1ORE2ORE3ORE4ORE5THENPRINT:<br />

0RE20RE30RE40RE5THENPRINT :<br />

-.STARTING ~STARTING<br />

AT REC";NR+C1<br />

NR+Cl<br />

-.PRINT"TYPE ~PRINT " TYPE 'RUN' ' ' TO FIX":STOP<br />

2230 PRINT"2. . RERUN: : SAME TR AND DATA"<br />

2710<br />

PRINTTAB(5) "HIT ANY KEY TO -i ~<br />

2240 PRINT"3.QUIT"<br />

. -.CONTINUE"<br />

~CONTINUE"<br />

2250 GETD$:IFD$ GETDS:IFD$"3"GOTO2250 "3"GOT02250<br />

2720<br />

PRINTTAB(3)"OR 'STOP'' TO CORREC'l'I CORRECT/CH CH<br />

2260 ONVAL(D$)GOTO2270,1880,2280<br />

ONVAL(D$)GOT02270,1880,2280<br />

-.ANGE" -,ANGE"<br />

2270 N=NR+C1:GOTO1350 N=NR+Cl : GOTOI350<br />

2730 PRINT:PRINTTAB(5) "THEN TYPE 'RUN' ' -i ~<br />

2280 PRINT"W*SURE PRINT"+++SURE ?"<br />

-. TO FIX" PIX "<br />

2290 GETAS:IFA$="N"GOTO2210 GETA$ "N"GOT022 2740 PRINTtPRINT"{EDITING :PRINT " (EDITING AND RE-RUN - RUN i~<br />

2300 IFA$="Y"THEN END: : REM /PROG IPROG END/ ENDI<br />

-.WIPE ~ I'I OUT DATA)" "<br />

2310 GOTO2290 GOT02290<br />

2750 GETA$:IFA$=""THEN2750<br />

: ""THEN2750<br />

2320 REM === --- DATA=FOR SUBR.l . l =======<br />

2760<br />

RETURN<br />

2330<br />

: 2770<br />

REM ============================<br />

== ====== == 23404 0 DATA" OATA"NOT", "","+", "+ ", tI-n, "_", "*n "*",, n/nr "/ ","11, nn , 2780<br />

REM EXAMPLE OF INPUT FOR ONE<br />

V'AND" -, " ANO II<br />

2790<br />

REM LOGICAL RECORD WITH .IITH TEXT<br />

2350 DATA"OR",">","=","END OF DATA<br />

2460 IFPEEK(J)=142THENJZ=J:PRINT"FOUND -. ~<br />

j<br />

2920<br />

REM<br />

-.'RETURN1 ~' '<br />

AT *** "";; JZ:GOT02475<br />

: GOTO2475 2930 REM RE~l xxxx XXXX<br />

2470 :NEXTJ<br />

2940<br />

REM<br />

2475 IFJA=0ORJZ = 0THENPRINT"CAN'T FIND -. 2950 REM<br />

2475 IFJA=00RJZ=0THENPRINT "CAN ' T FIND ~<br />

~DECISIONS; SEE SUB I LISTI NG " :STOP<br />

2480 :FORJJ=JA+IITOJZ : LL=PEEK(JJ)<br />

2490 IFLL=58THENJ J=JJ+5 : LP$=CHR$(13):<br />

2500 IFLL


-.-i :<br />

U-,<br />

-■<br />

i.<br />

■<br />

46 COMPUTE.<br />

WAY/JUNE. MAY I 198O. \980. ISSUE 4. 4.<br />

3010<br />

3020<br />

3030<br />

3040<br />

3050<br />

3060<br />

3070<br />

3080<br />

3085<br />

3090<br />

3100<br />

3105<br />

3110<br />

3120 31 20<br />

3125 31 25<br />

3130<br />

31 40<br />

3140<br />

3150 31 50<br />

3160 31 60<br />

3170<br />

3180 31 80<br />

3190<br />

3200<br />

321 0<br />

3210<br />

3240<br />

3250<br />

3260<br />

3280<br />

3290<br />

3300<br />

3310<br />

3320<br />

3330<br />

3330<br />

REM<br />

REM<br />

REM<br />

REM<br />

REM<br />

REM<br />

2.QUICK LISTING OF RECORDS<br />

WHICH MIGHT ~lIGHT<br />

HAVE ANY KEYS<br />

REM ON WITHIN SOME GROUP —<br />

REM RE~l TR=ABS(S%(N,#)>=512<br />

, #»=512 AND<br />

REM<br />

S%(N,#)<br />

oto<br />

: '.'■'<br />

:.": 1/71<br />

000<br />

:<br />

ooo 1/?1<br />

ooo l/?B<br />

300 l/M<br />

000 1/78<br />

JJ.KKt<br />

B.mc"<br />

■■ v-<br />

b)6.F7<br />

V^I. W<br />

no. cik*<br />

1 .'■-:-<br />

9JJ-3!"<br />

f.-.H<br />

loo.ooa<br />

J)<br />

«<br />

a<br />

!J<br />

E<br />

)!<br />

•n<br />

w<br />

• 330<br />

r[ci t«j<br />

ro. r*j<br />

14 «t<br />

J»<br />

■ SC DD<br />

: •><br />

.-<br />

C.T. HB<br />

00<br />

■tT Mil<br />

51<br />

nu p«ii ?j»-»:<br />

^T-rT3 1 tO tui 11.J.J9<br />

ED. TRJ i V-?.~*-<br />

st»-m s 'itlTUi<br />

33.fi?<br />

'*: on nft-36<br />

2170. OS<br />

lk)J<br />

)*?.)«<br />

3).«<br />

195U.1S<br />

■in1 560.4)<br />

9M.7J<br />

1W.N<br />

1293O.J0<br />

m<br />

1...,..))<br />

",'.p<br />

. .n<br />

1)00.'1<br />

1 •• )9<br />

JUl. ",<br />

..•<br />

119)9. )11


MAY/JUNE. I <strong>1980</strong>. 198O. ISSUE 4.<br />

COMPUTE.<br />

47<br />

47<br />

Computer Supplies for<br />

Small Computer Systems<br />

Computer Supplies for<br />

Small Computer Systems<br />

Ribbons<br />

commodore printer<br />

IN STOCK<br />

Our full line<br />

of supplies includes:<br />

Diskettes (3M, BASF)<br />

Diskette retrieval devices<br />

Tractor printer paper<br />

Tractor printer labels<br />

Computer ribbons<br />

Dust covers<br />

Adapters<br />

Uncrashers<br />

Computer desks<br />

NEC Spinwriters<br />

Xymec intelligent printers<br />

New dealer kits<br />

Zeigler ZEIGLER Electronic ELECTRONIC Products<br />

PRODUCTS<br />

DEALERS:<br />

DEALERS:<br />

We no longer market COMMODORE<br />

Equipment, (Jerry Zeigler is with<br />

<strong>Commodore</strong>) but Connie and I have the<br />

computer supplies you need to support<br />

<strong>Commodore</strong> System Sales.<br />

Give us a call:<br />

Give us a call:<br />

Trudie Zeigler<br />

or<br />

Connie Rittenberry<br />

(404) 289-1596 or 289-2265<br />

3661 CALUMET RD.<br />

DECATUR, GEORGIA, 33034<br />

3661 CALUMET RD.<br />

DECATUR, GEORGIA, 33034


48 COMPUTE. MAY/JUNE. 198O <strong>1980</strong> ISSUE 4a<br />

Using The PET's Second CasseHe<br />

Using The PET's Second Cassette<br />

Buffer To Increase Available<br />

Memory Space<br />

Chuck Stuart, President<br />

CMS Software Systems, Inc.<br />

5115 Menefee Drive, Dallas, TX 75227<br />

If you have tried all the known memory savingg<br />

tricks to reduce the size of your new super program to<br />

save mankind and it still won't t fit into your PET's<br />

available able memory, you might be able to save the day<br />

by storing part pan of the program in the PET's second<br />

cassette buffer.<br />

The second cassette buffer begins at address 826<br />

and extends through address 1023. If your program<br />

does not use the second casselte cassette then you call can use<br />

thiss 197 bytes for r program storage. Granted, 197<br />

bytes may not see m like a lot of extra space, but<br />

bytes may not seem like a lot of extra space, but<br />

used correctlyy it can save you several limes times that<br />

much space in the PET's regular memory.<br />

.<br />

Suppose, forr instance, your program requires res a<br />

deck of 52 cards to be stored in memory. . Such a deck<br />

wou ld normally contain the va lues 1 through 52 a nd<br />

would normally contain the values 1 through 52 and<br />

be stored in an integer array referenced by a name<br />

like D % . Si nce each clement in an integer array re­<br />

like D%. Since each element in an integer array re<br />

quires two bytes of memory and there are 52 elements<br />

in QU ourI' array, we can sec see that, al, s[O stored rc ci as a normal<br />

integer r array, our cleck deck of cards would require 104<br />

bytes of storage space plus atl least another 7 bytes<br />

and probably more to properly di mension the array.<br />

and probably more to properly dimension the array.<br />

Since no array clement element value exceeds 255, this<br />

array could easily be stored in the second cassette<br />

buffer with each element requiring only one byte fo r<br />

buffer with each element requiring only one byte for<br />

slOrage storage. . By moving g our deck of cards inlO into the<br />

second cassette buffer we have saved a minimum<br />

of 111 bytes of main memory while e using only 52<br />

bytes of the 197 available able to us in the second cassette<br />

buffer. T hi s same method works equally well for single<br />

buffer. This same method works equally well for single<br />

clement integer variables and strings.<br />

If you simply usc use this extra space for temporary<br />

storage of information during program operation then<br />

no special problems are crea ted. If yo u make full<br />

no special problems are created. If you make full<br />

usc use off the second cassette buffer for permanent<br />

storage of program data such as operator prompts,<br />

suit symbols for your card deck, orr other values<br />

normally stored in DATA Slalements, statements, etc., then the<br />

second cassette bu ffer must be stored along with the<br />

second cassette buffer must be stored along with the<br />

main program. Since the SAVE command begins<br />

s<br />

savingg att locationn 1024, any data stored below that<br />

address in the second cassette buffer would not be<br />

saved by using the standard SAVE command.<br />

Fortunately by us ing the PET's built-in ROM<br />

Fortunately by using the PET's built-in ROM<br />

Monitor o r wee can specify the exact beginning and ending<br />

addresses we want to save. If you still have the<br />

old ROM set without a Monitor don'tt panic. I I'll ' show you how to save the buffe r a li ttle later.<br />

show you how to save the buffer a little later.<br />

The first thing you have to do is determine thee<br />

address range you want to save in hexidedmal. idecimal. As<br />

we pointed Out out bcfore, before, the second cassette buffer<br />

begins al location 826 decimal or 033A in hex so we<br />

begins at location 826 decimal or 033A in hex so we<br />

know that we want to start saving at location<br />

033 A hex . To determine the ending address yo u must<br />

033A hex. To determine the ending address you must<br />

first save your program onto tape using g the normal<br />

SAVE command, and then load it back into memory<br />

with the LOAD command. . Data stored in the second<br />

cassette buffer will not be affected by this operation.<br />

Now type PRI NT PE EK( 43)'256 + PEEK(42). The<br />

Now type PRINT PEEK(43)*256 + PEEK(42). The<br />

answer you get willw be thc the address in decimal where<br />

your program ends and which you must now convert<br />

to hex. (If you've never taken the e time to LO learn how<br />

to 1O convert decimal to hex and vice versa because<br />

you figured you wouldd never need to know then you<br />

were wrong.)<br />

Now that you know the memory range you want<br />

to save, enter the Monitor by typing SYS1024 aand<br />

pressin g RETURN. To save your program including<br />

pressing RETURN. To save your program including<br />

the data slO stored in the second cassette buffer, type<br />

the following g line exactly, substitutingg the eending<br />

address for XXXX and filling ing in your own program<br />

name, and press RETURN:<br />

S ""PROGRAM NAME",01,033A,XXXX<br />

NAME",OI ,033A,XXXX<br />

PET will di splay the slandard PRESS PLA Y AND<br />

PET will display the standard PRESS PLAY AND<br />

RECORD message aand then save your program onn<br />

tape in the normal manner except it will begin<br />

saving at location n 826 instead of the usual<br />

location 1024 where you r BASIC program begin s.<br />

location 1024 where your BASIC program begins.<br />

You can LOAD aand use usc thee program ra m in the normal<br />

manner except that you must always use the Monitor<br />

to save the program or else you will lose any data<br />

slOred stored in the second cassette buffer. This means that<br />

no one else will be able to copy you r program un less<br />

no one else will be able to copy your program unless<br />

they know the secret. There is one other thing to<br />

remember. If you make any changes to your program ,<br />

remember. If you make any changes to your program,<br />

don't forget 1O to redetermine the new ending address<br />

before using the Monitor to resave the e program.<br />

If you have the old ROM set wilhoul a Monitor<br />

If you have the old ROM set without a Monitor<br />

then you can accomplish the same result resuh in the<br />

followingg manner:<br />

A) Save the program with the SAVE command<br />

and then reload it with the LOAD command.<br />

B) Type POKE247,58:POKE248,3 POKE248,3 and press<br />

RETURN.<br />

C) Type SYS63153 and press RETURN.<br />

PET will display the standard PRESS PLAY AND<br />

RECORD message and save the progra m beginn in g<br />

RECORD message and save the program beginning


MAY/JUNE. , <strong>1980</strong> 1960. ISSUE 4. A. COMPUTE.<br />

49<br />

Skyles Skylcs Electric Works<br />

PAL-80<br />

TM<br />

• 80 characters per line<br />

_ 8Y, inch wide thermal paper<br />

872 inch wide thermal paper<br />

• Full graphics at 60 dots/inch<br />

• Interfaced to PET<br />

• Works with all PET peripherals<br />

• 40 character per second rate<br />

• Microprocessor controlled<br />

• Bidirectional look-ahead printing<br />

• Quiet operation<br />

• No external power supplies<br />

• Only two driven parts<br />

• High reliability<br />

• Clear 55x7 x 7 characters<br />

• Attractive metal and plastic case<br />

The Skyles PAL·80 PAL-80 is a high speed thermal printer<br />

offering the combination of text printing at 80 characters<br />

per line and continuous graphics at 60 dots per<br />

inch. In the text mode, upper and lower case data are<br />

printed at 40 characters per second. The 55x7 x 7 charac·<br />

ters provide clear readable copy on white paper; no hard<br />

to find, hard to read aluminized paper.<br />

In the graphics mode, seven bits of each byte correspond<br />

to the seven dots in each of the 480 print positions per<br />

line. Since the computer driving the printer has full con·<br />

trol over every print position, it can print graphs, bar<br />

charts, line drawings, even special and foreign lanquage<br />

n~uage<br />

symbols. Despite its low cost, the Skyles PAL·SO PAL-80 is a<br />

true intelligent printer with full line buffering and bi·<br />

directional look·ahead look-ahead printing.<br />

High reliability is designed in: The thick film thermal<br />

print head has a life expectancy of 100,000,000 charac­<br />

ters. . Two DC stepping motors provide positive control<br />

of the print head and the paper drive.<br />

The Skyles PAL·80 PAL-80 operates directly from a 115V 60 Hz<br />

line (230V 50 Hz available). No external power supplies<br />

are required.<br />

It comes complete with an interface for the PET: : a two<br />

and a halff foot cable plugs into the IEEE interface at<br />

the back of your PET. Works \"'orks with all PET models and<br />

PET or Skyles peripherals.<br />

Please send me<br />

Skyles PAL·SO PAL-80 printer(s)<br />

complete with 2% foot interface cable to attach to my<br />

PET at 5675.00 S675.00 each' each* (Plus 510.00 S10.00 shipping ing and Il hand·<br />

ling). I also will receive a test and graphics demonstration<br />

tape at no additional charge and over 150 feet of<br />

8V2 Y; inch wide black on white thermal paper $ S _ ___ _<br />

I wouldw also like to order<br />

rolls of 8% 8Y2 inch widew by 85 ft. long thermal paper (black ink) at 55.00 S5.00 each<br />

S ____ _<br />

S<br />

____ 10 roll ll cartons at 545.00 S45.00 5 S _ _____<br />

VISA, Mastercllarge Mastercharge orders call (800) 538-3083<br />

California orders call (408) 257-9140<br />

-'California residents addd 6 to 6'/;% Y1% sales tax<br />

where applicable.<br />

Skyles Electric Works<br />

TTMM PAL-80 L·80 Printer onn A Leash, a trademilrk trademark off Skyles Electric tr;c Works r Inc.<br />

PAL-80 SPECIFICATIONS<br />

TEXT<br />

Format<br />

80 characters per eight inch line<br />

6 lines per inch nominal<br />

Print speed<br />

40 characters per second<br />

Line Feed<br />

50 milliseconds nominal<br />

Character Set<br />

96 Characters, including upper and<br />

lower case, numerals, and symbols<br />

GRAPHICS<br />

Format<br />

480 print positions per line<br />

Print Speed<br />

240 print positions per second<br />

COMMON<br />

Paper<br />

8% 8Vs inch wide thermal paper, available<br />

in 85 foot falls, foils, black image on white<br />

Dimensions<br />

12"Wxx 10"D x 2%"HH<br />

Weight<br />

8 Ibs lbs (3.6 kg)<br />

231 E South Whisman Road<br />

231E SouthWhisman Road<br />

MountainView,CA 94041<br />

(408) 735-7891


5O so COMPUTE. MAY/JUN=. I JUNE. <strong>1980</strong> lQ80 ISSUE 4.


MAY/JUNE. <strong>1980</strong>. 198O. ISSUE d. 4. COMPUTE.<br />

51<br />

Computer House Div.<br />

Announces<br />

Programing Tools<br />

For the <strong>Commodore</strong>/Disk<br />

IISOF-BKUpll<br />

"SOF-BKUP"<br />

Faster & Error Free Disk Copy<br />

or Disks may be Merged<br />

IIFET /RECOVER 11<br />

"FET/RECOVER"<br />

File Editing Tool; Examine Data Files, Fix Destroyed<br />

Pointers, Sectors may be Read, Modified, Displayed or<br />

Written -<br />

Also Files may be Re-chained<br />

Written — Also Files may be Re-chained<br />

"SUPER RAM"<br />

Diagnostic Routine Checks Every Possible RAM<br />

Address on 8K, 16K & 32K <strong>Commodore</strong> <strong>Computers</strong><br />

Address on 8K, 16K & 32K <strong>Commodore</strong> <strong>Computers</strong><br />

AvailableA on Diskette right now.....<br />

All for only $105.00 retail<br />

SOF-BKUP . ......... $40.00<br />

FET/Recover / .. . ..... $65.00<br />

Super RAM ......... $20.00<br />

1407 Clinton Rd. Jackson, Mich. 49202<br />

Telephone: (517) 782-2132


52<br />

52 COMPUTE.<br />

MAY MAY/JUNE. I <strong>1980</strong> SSUE IS5UE .14<br />

WORDPRO<br />

BY<br />

commodore<br />

Typewriters have come a long<br />

way since they were first introduced<br />

into offices. They've evolved from<br />

heavy-handed apparatus Into into the<br />

time saving electrlcs electrics first used in the<br />

Fifties. Now the typewriter is the [he center<br />

of sophisticated. sophisticated, and often costly.<br />

costly,<br />

office information systems.<br />

Today. Today, <strong>Commodore</strong> Business<br />

Machines. Machines, Inc ., a leader In in personal<br />

business systems. systems, provides you With with<br />

a cost-effective alternative to complex.<br />

plex, cumbersome and expensive inforrna<br />

formation systems. The <strong>Commodore</strong><br />

WordPro system -— convenient. convenient, Simple<br />

word processing -— meets the<br />

needs of the business office of<br />

sim<br />

the<br />

needs of the business office of the<br />

Eighties.<br />

With <strong>Commodore</strong>'s <strong>Commodore</strong>s versatile<br />

WordPro system, the time and effort<br />

WordPro system. the time and effort<br />

saving benefits of word processing<br />

are a proven reality. The affordable<br />

<strong>Commodore</strong> WordPro system "lCorporates<br />

many user-suggested features<br />

to make operation as slmple­<br />

simple—<br />

incor<br />

and enloyable-<br />

enjoyable—as as possible.<br />

And. And, WordPro grows With with your<br />

changing bUSiness business and paperwork<br />

demands. allowing you to add other<br />

demands, allowing you to add other<br />

functions as your business expands.<br />

All Without without extensive hardware In­<br />

in<br />

vestments<br />

vestments.<br />

WordPro by <strong>Commodore</strong> offers<br />

the same features as large word processing<br />

systems. ... Instant instant editing, .<br />

global search and replace. replace, full document<br />

retention up to 170 pages online<br />

and much more' more!<br />

WORDPRO<br />

WORKS FOR YOU<br />

(:<br />

commodore<br />

See Your Authorized <strong>Commodore</strong> Dealer today for a WORDPRO Demonstration.


MAY/JUNE. <strong>1980</strong> ISSUE 4 COMPUTE. 53<br />

ENHANCING<br />

ENHANCING<br />

COMMODORE'S<br />

WORD PRO III<br />

Lorry Isaacs, COMPUTE Stoff<br />

Staff<br />

This articlee will deal with enhancingg WordPro II[, III, as<br />

was done for WordPro II in the previous issue of<br />

COMPUTE. The enhancement is designed for those<br />

who are arc usingg WordPro [II III on a CBM, and arc using<br />

the NEC Spinwriter for output. Most Spinwriter<br />

print thimbles have nine characters which normallyy<br />

can't be printed by Word Pro Ill. The enhancement<br />

can't be printed by WordPro III. The enhancement<br />

will allow you to lO embed special characters in your<br />

text that will print as one of the Spinwriter characters<br />

not accessibl e by WordPro III alone.<br />

not accessible by WordPro III alone.<br />

The special characters are entered in your textt<br />

by hitting in g the ESC key followed by a number from 1 to<br />

9. If some other key is struck following the ESC<br />

key, the normal character is entered. Also, , the ESC<br />

key must be struck for each special character you<br />

wish to enter. er. The section on ASCII output shows<br />

the ASCII data which is output for each of the nine<br />

special characters. This s section also shows the<br />

characters printed for two of the available able print<br />

thimbles. .<br />

This article also has a section which discusses<br />

how to make modifications. ions. This section will cover<br />

both the enhancement presented in this article as<br />

well as the enhancement presented in the previous<br />

COMPUTE, E. for WordPro [I. II. One of the areas discussed<br />

is the modification necessary lO to use the<br />

enhancements s on PETs with graphics keyboards.<br />

These PETs don't 't have an ESC key (or the REPEAT<br />

key used by the WordPro II enchance ments).<br />

key used by the WordPro II enchancements).<br />

The Upgrade Procedure<br />

The two machine code patches presented here are for<br />

WP3 (FEB 5), the current production version of<br />

WordPro Ill . These patches will be entered using<br />

WordPro III. These patches will be entered using<br />

the machinee language monitor in the PET. Commands<br />

in thiss section for the machine language monilOr<br />

monitor<br />

begin with a pe riod. This period is a prompt character<br />

begin with a period. This period is a prompt character<br />

printed by the monitor. To execute one of these<br />

commands, just j type the rest of the command and<br />

hit RETURN.<br />

Before entering erin g the patches, first place the work<br />

copy of your WordPro diskette in drive 0 and initialize<br />

the diskette. Now type SYS1024 plus carriage return<br />

to get into the e machine language monitor. Execute<br />

Command I, 1. and enter the e first patch using the<br />

PET's screen editor to change the displayed memory<br />

to what is shown beneath the command. Be sure to<br />

hit t a carriage return when you reach the end of each<br />

line. The carriage return causes the changes to be<br />

placed in memory. Once you have finished thee first<br />

patch, , enter the second patch using the e same procedure<br />

for Command #2. Now execute Commands #3<br />

and #4 to save the e patches on disk.<br />

COlllma Command #1. M 05CO 05C0 064C<br />

05C0 00 00 00 00 00 00 20 CC<br />

05C8 05 4C 02 06 BA BD 06 011<br />

05D0 8D C2 05 09 04 9D 06 011<br />

05D8 BD 07 011 8D C0 05 BD 08<br />

05E0 011 8D Cl 05 1188 68 69 0011<br />

05E8 9D 07 011 68 69 00 9D 08<br />

05F0 011 4C 55 E4 AD C2 05 48<br />

05F8 AD C3 05 AE C4 05 28 6C<br />

0600 C0 05 8D C3 05 8E C4 05<br />

0608 A6 9E F0 E8 BD 6E 02 C9<br />

0610 1 0 IB I B F0 1144 4E C5 05 90 DC<br />

06188 C9 3A B0 D8 C9 311 90 D4<br />

0620 09 80 9D 6E 02 D0 CD CA<br />

0628 A9 01 8D C5 05 86 9E D0<br />

0630 C3 78 A9 C6 85 90 A9 05<br />

0638 85 91 A9 4C 8D E3 36 A9<br />

·. 0640 E0 8D E4 36 A9 43 8D E5<br />

0648 36 58 4C D7 14 AA AA AA<br />

· .<br />

Command #2 .M 43EO 43E0 442F<br />

10<br />

43E0 C9 5B 1 0 03 4C E7 36 C9<br />

43E8 71 90 37 C9 7A B0 33 A6<br />

43F0 27 F0 0C 48 A9 5F 20 3D<br />

43F8 2E A9 08 20 3D 2E 68 29<br />

4400 0F AA E0 08 10 09 BD 25<br />

4408 44 20 3D 22EE 4C 35 37 A9<br />

4410 1 0 0E 20 3D 2E BD 25 44 20<br />

4418 3D 2E A9 0FF 20 33DD 2E 4C<br />

4420 35 37 4C F3 36 00 5E 5C<br />

·. 4428 60 7B 77DD 7C 7E 58 5A 00<br />

Command #3 .S "O:PATCH "0:PATCH 1",08,05CO,064D<br />

l",08,05C0,064D<br />

Command #4 .S ""0:PATCH O:PATCH 2",08,43EO,4430<br />

2",08,43E0,4430<br />

This completes the upgrade procedure. If you want<br />

to return rn to BASIC, type "x" plus carriage return.<br />

Too run an upgraded WordPro Ill, III, place the diskette<br />

comaini containingng the patches in drive 0, , and execute<br />

Commands #5 through #9 in sequence. If you<br />

find that your enhanced WordPro won't come up or<br />

operates improperly, rly, it'ss likely you've made an<br />

error in thee first patch (the one with Command #1).<br />

If it runs s and you are able to enter the special characters,<br />

but foulss up when you try to print something,<br />

you've ' likely made an error in the second patch.<br />

Command #5 OPEN1 OPENl,8,15,"I0"<br />

," 10"<br />

Command #6 LOAD ""WP3(FEB 5)",8<br />

Command #7 LOAD ""PATCH 1",8<br />

Command #8 LOAD "PATCH 2",8<br />

Command #8 LOAD "PATCH 2",8<br />

Command #9 SYS1585


54 SA COMPUTE. MAY/JUNE. MAYIJUNE.<strong>1980</strong> 198O ISSUE 4. .4<br />

The ASCII Output<br />

Table 1 shows the ASCII data that is output for<br />

The ASCII Output<br />

Table 1 shows the ASCII data that is output for<br />

each of the special characters. Notice alice the Spinwriter<br />

requires a three code sequence ence for two of the characters<br />

on the print thimble. Also given in in the table are the<br />

characters printed for two of the thimbles. One is is<br />

the Courier 10, which has a standard ASCII character<br />

set. The other is the Courier Legal lOB, which<br />

has some legal symbols substituted for some of the<br />

standard ASCII characters.<br />

the Courier 10, which has a standard ASCII charac<br />

ter set. The other is the Courier Legal 10B, which<br />

has some legal symbols substituted for some of the<br />

standard ASCII characters.<br />

Modifying The Patches<br />

Though T the machine code patches are different, , the<br />

enhancements for WordPro II and III operate almost<br />

identically. y. To cover modification of both enhancements,<br />

I will reference WordPro III modifications<br />

directly and put the corresponding reference for<br />

WordPro II in brackets.<br />

WordPro II in brackets.<br />

First let's 's look at what needs to be changed to<br />

use the enhancement with a graphics keyboard. At<br />

one point in the patch code the last keystroke in<br />

the keyboard input buffer is checked to see if it<br />

is SIB $IB [S7F for WP2), which is the code for the<br />

ESC [REPEAT] [REPEAT) key. To T o change the key just change<br />

the byte used in the comparison. This byte is the<br />

first byte in the line e that begins at address<br />

$0610 [third byte of the line that begins at address<br />

S028A) $028A]. . Changing this byte to $DE SOE will allow you to<br />

use a shifted uparrow instead.<br />

use a shifted uparrow instead.<br />

Next, let's look at changingg the ASCII data output<br />

for the special characters. This will allow you to use<br />

a different printer and possibl y change the fun ct ion<br />

a different printer and possibly change the function<br />

of the enhancement. The patch code that handles the<br />

output checks each character to be printed if it is in<br />

the range $71 to $79. Only the special characters<br />

used by the enhancement wi ll be in this ra nge. If a<br />

used by the enhancement will be in this range. If a<br />

special character is found, the most significant four<br />

bits are discarded, and the least significant four bits<br />

used as an index to a table. The table begins with<br />

used as an index to a table. The table begins with<br />

the sixth byte of thee line with address $4420 [first byte<br />

of the line with address S3FOD). The first byte<br />

of the line with address $3FDD]. The first byte<br />

would be output for a special character with the value<br />

$70. Currently thiss value isn't used so the byte is<br />

SOO . The next byte would be output for a character<br />

$00. The next byte would be output for a character<br />

with the value $71, and so forth up to S79. $79. The<br />

data in this table may be changed to whatever you<br />

data in this table may be changed to whatever you<br />

require.<br />

It may be necessary to also change which special<br />

characters output the three code sequence. Once a<br />

special character has been n detected and its index<br />

obtained, that index is co compared with the th third byte<br />

of the line with address i43F8 $43F8 [second byte of the<br />

line with address S3FBO) $3FBD]. . If the index is equal to<br />

or greater than this s byte, the three code sequence<br />

is used. Changing this byte to SOA $0A would cause all<br />

the special characters to output only the data byte<br />

in in the table. To cha change the first and third characters<br />

used in in the sequence, set the first byte of the liline<br />

with address $4410 0 [seventh byte of line with address<br />

S3FC5] S3FC5J to to the First first character of your sequence, and a nd<br />

the fourth byte of the line with address $4418<br />

[second character of line with address $3FD5] S3FD5)to the<br />

e<br />

third character of your sequence.<br />

One other modification is to add a special character<br />

for the e 0 key. To do this, change the sixth<br />

byte of the line with address $0618 [last byte of<br />

the line e with address $0292] S0292) to $30, and the first<br />

byte of the line with address $43e8 [seventh byte of<br />

the line e with address $3fad] S3fadJ to $70. S70. Then put the<br />

byte you want to be output in the first byte of the<br />

table.<br />

The above extension was prompted by feedback<br />

from readers wanting to adapt the WordPro II<br />

enhancement ancemcnl for use with a different printer.<br />

Hopefully y the discussion will be sufficient for most<br />

situations. . If you do make mods for another printer,<br />

please send them to COMPUTE, COMPUTE. so we can pass<br />

along to other readers.<br />

TABLE 1<br />

ASCIIA ·C ll<br />

ThimbleT CharacterC Printed<br />

Characters<br />

Courier<br />

Special (Hex)( Legal<br />

Character Output Courier 10 10B lOB<br />

1I 5E oc<br />

2 5C<br />

0®<br />

\<br />

3 60 O0<br />

4 7C<br />

1 11<br />

5 7D '1<br />

{ §<br />

6 713 7B<br />

} t<br />

7 7E '"<br />

8 OE 0E,58,0F ,58,OF<br />

9 OE 0E,5A,0F<br />

A,OF<br />

•<br />

£ T<br />

Reproduce and Attach Above Numeric Pad<br />

7= - 8=. 9=£<br />

4=1 5={ 6= }<br />

1=' 2= \ 3='<br />

7= '" 8= 9=[<br />

4= '1 5=§ 6=t<br />

1= c 2= 3=0<br />

©


MAY/JUNE. , <strong>1980</strong> 198O. ISSUE 4.<br />

COMPUTE.<br />

55<br />

55<br />

CBM CERTIFIED<br />

In-House Maintenance<br />

29 years<br />

Serving Computer Centers<br />

DOWNEY, CA.<br />

(213) 923-9361<br />

FAMILY OWNED & OPERATED<br />

(even "no-relation" associates are family)<br />

(c £c commodore<br />

$OLID SOLID GOLD $OFTWARE®<br />

SOFTWARE®<br />

DES's own-2 own—2 years preparation! Writing,<br />

testing and updating to be sure our software<br />

deserves this lable,<br />

lable.<br />

• FULL ACC'T. ACCT. PACKAGE ........... SI $1600.00<br />

ACC/SYS GA 104 (32K) 9 DISKS<br />

For accounlanls accountants &: & small businesses<br />

(Sold locally on(\' only for nOk'-IO now—to gil'l! give cUSlomer customer full supporl)<br />

support)<br />

• LAWYERS Package" #1 I (32K) (32KJ Disk .... SI200.00<br />

63 Attorneys, A ftomers, 5200 clients (200 maIlers matters ea)<br />

Prelim &: cfi Final Fir/Q I Statements, Statements. Aging, Mgmt Rats Rpts<br />

• CHEMISTRY PROFILE (16K) .... . .. S350.00<br />

$350.00<br />

A blood anahrsis analysis program thaf that yields a diagnosis<br />

based on 29 blood tests (high-normal-loll')<br />

(high-normal-low)<br />

• MLS(32K K min.) Disk ..... . .... . . .... $1200.00<br />

(Property aL'a avail, sold, by city &: & zone, mg'mt<br />

analyst rpts, rpts. buyer & seller rpts, etc,)<br />

etc.)<br />

"GOLD PLA TED $OFTWARE®"<br />

"GOLD PLATED SOFTWARE®"<br />

SPORTS<br />

• HOCKEY #1 ((Disk) . ............... $29.95 S2 Compiler for hockey statistics—excellent statislics-excellenljor for leam team and<br />

league managers. (When ( tested tesTed on a 17 J7 team league<br />

SA \'ED VED 20 hours a week hwk of record keeping)<br />

• BASEBALL #1# I (see Hockey) (Disk) ) , .. $29.95 S29.95<br />

BUSINESS<br />

BUSINESS<br />

• MAILING LIST 1.0(1 ( 16KK min.) min.l . . S29.95<br />

Maintains Maimains file and printout prinlout<br />

• MAILING LIST lIST2.0 (16K min.) ......... S49.95<br />

More Afl)re powerful pOII'erjul plus file fife merging<br />

• SUPER LIST(8K lIST (S K min.) . . .. SI9.95S (Advanced (Adl'anced listing features)<br />

• CALENDAR (8K (SK min.) .l............... $19.95 SI9.95<br />

(Perpetual ( calendar with I\'ith printout/ printout)<br />

• PHONE MAIL SYSTEM (16K 6 K min.). .....$49.95<br />

S49.95<br />

CBMC Printer Printcr (Word ( processing plus pillS phone book)<br />

EDUCATIONAL<br />

• FLASH CARDS (I6K ( 16K min.) . . .... $24.95 S24 Multi Mulli "user input" inpul" quiz qui= - great study aid<br />

• MATHEMATICS M (8K (SK min.) .......... S7.95 ea co<br />

A) Add B) Sub! Subl C) Multi ,\ lulll' D) Div Oil'<br />

• "BRANDPS " BRANDrS SPELLING SPElLING BEE"(8K BEE"(S K min) m,n l ... .59.95 S9.95<br />

(SVPERB UPERB Aid Pre-School ■- 2nd)<br />

• VISUAL PERCEPTION (8K (SK mm) min) .. ..... S7.95<br />

Shapes & Sizes<br />

• CONSONANT BLENDS (8K (S K min) . $7.95 57 2 letter fe rrer sound lid combinations<br />

• COUNTING 1I to9(8K 9 (S K min)... . ..... S7.95<br />

Visual —-<br />

tutorial IlIlOr;af<br />

GAMES<br />

• MAY 1941 1 (8K min.) , ..... S24.95 S24.Y5<br />

Simulated tracking & sinking of the Ihe Bismarck<br />

• SIMON(8K 18 K min.).. ..................... ..$7.95 S7.95<br />

Duplicates Duplicales the Ihe numbers & sounds uI/ds selected selecled<br />

• GUESS??|8K 18 K min.|.. mm,) ..... , ............ .$7.95 S7.95<br />

Full ll graphic sound, guessing gUl'H lng game<br />

me<br />

■jf * "The e Finest Fill('st Software Soji"'are Crew Cre,,' in ill the Ih e World"-ft World"*<br />

Mike M Ike Ridiier Rlchtcr Norm Na nn & Brad Hanscom Sy Elsayess Eisaycss<br />

David D;l\id Schwartz Sch"artziDonna D Schhcper Sch!lepcr Boh Johnson<br />

Da\e Da\c Lundherg. Mural M K:ilm\;ipr;)k Ka ll nY


Skyles Electric Works<br />

Skylcs Electric Works<br />

Presenting the Skyles MacroTeA<br />

The Software Development System<br />

For the Professional Programmer and<br />

The Serious Amateur Software Hobbyist<br />

...and for anyone who needs to automate dedicated industrial measurement<br />

and control applications.<br />

The Macro TeA, designed for use with the <strong>Commodore</strong> PET to create a<br />

remarkable synergism: : a complete, integrated<br />

software development<br />

system for the 6502...the only 6502 system not requiring a separate disk<br />

drive. With over 60 commands for your complete machine language<br />

programming.<br />

.<br />

.t.SSEUBLE LIST<br />

...a a lightning fast...fast...fast<br />

fast. ..•••...<br />

MOVE TSl 1 TO TOL2<br />

..... machine language assembler with<br />

'''' 11110<br />

SA S4ti1<br />

0.0;)- AC CB 0'2'0 lOOP lOV IIX<br />

true macro capabilities. Assemble<br />

00102- 89 08 0.1 013(1<br />

LOA lBLI.Y<br />

OC~- $9 OB IY.> 11"0<br />

ST .. TBl2.Y<br />

00108- CII el!1O<br />

16K source text in less than ten<br />

00109 00 n 016(1<br />

0110<br />

seconds! ! A single name indentifies a<br />

""<br />

'"' lOO~<br />

Oleo TIlt 1<br />

whole body of lines. Macro and '''" MO"<br />

"'9:/ TaU '"<br />

."., " '" conditional assembly support. Automatic<br />

line numbering. Labels up to<br />

ten characters long; 1016 16<br />

SU.Rf • 0.180 LOOP 0 O~02 TOll :00106<br />

''"'<br />

LABEL FILE , • EJ(f(R,.. .. t<br />

'"<br />

'6l2 , ~8<br />

different<br />

, leclCe,06II8.06GB<br />

labels.<br />

Install permanently without tools and in less time than it takes to load an<br />

equivalent sized assembler/text / editor program from tape. No tape loading<br />

ever. And no occupying of RAM memory space: the MacroTeA puts 10K of<br />

executable machine language code in ROM(9800 (98¢~ toBFFF)and2K in RAM<br />

(9¢¢¢ (9000 to 97FF). .<br />

...aa super powerful text editor. 26 commands with string search and replace<br />

capability. Manuscript feature. Test loading and storage on tape or disks.<br />

Supports tape drives, disks, CRT, printers and keyboard. .<br />

...an . enhanced monitor with 11 powerful commands for program debugging<br />

and final polishing. .<br />

...with a warm-start button, on a 12 inch cable. Reset the PET but not the<br />

1792 bytes of object code in the Macro TeARAM memory. .<br />

... a completely solid state firmware system ...all in ROM and RAM. No<br />

tapes to load. The system is available from the time you turn on your PET to<br />

the time you shut it off.<br />

15 chips on a single high quality printed circuit board; ; interfaces with PET'ss<br />

parallel address and data bus or with Skyles Memory Adapter. A<br />

comprehensive 170 page manual is included<br />

Truly, there is simply no other system of this magnitude at anywhere near<br />

this price.<br />

$395.00'<br />

$395.00*<br />

(With {With any Skyles Memory Expansion System,$375.00<br />

'California resIdents residents pplease add 6°z °Q or 6 5°0 5:o sale!. sales rat x as reOU required lr ed<br />

:&<br />

VISA. VISA, MASTERCHARGE OROERS ORDERS CALL (800) 538·3083 538-3083 (except California a reSidents)<br />

residents)<br />

;~:;;;;:~:;~:'<br />

CALIFORNIA ORDERS PLEASE CALL<br />

i~~;i~~~~~~r;:~r'd<br />

(408) 257-9140<br />

231E SouthWhisman Road<br />

Skyles<br />

MountainView.CA 94041<br />

Electric Works (408)735-7891


MAY/JUNE. <strong>1980</strong>. 198O. ISSUE 4. 4 COMPUTE. 57<br />

Machine Language<br />

Tools<br />

TOOlS Jim m Butterfield<br />

The newcomer to machine language programming<br />

will need to LO provide himself with certain toolss before<br />

he gets started.<br />

It's important to ro have the right computer. The<br />

original ROM which came with early PETs can be<br />

used with machine e language, but it's clumsy for this<br />

kind of use. If you haven't done so already, make the<br />

switch to upgrade ROM: you'll u ' get a built-in<br />

Machine Language MoniLOr Monitor and the capability to dig<br />

your way out of a program crash.<br />

Get the official reference: 6502 Programming<br />

Manual. It may be obtained from <strong>Commodore</strong><br />

(MOS Technology), Synertek or Rockwell, who are<br />

the three manufacturers urers of 6502 microprocessors. It's<br />

not a teaching leaching book, but a reference - although<br />

many of the earlyy chapters are sett out in tutorial<br />

style.<br />

If you see other books that seem to suit your<br />

needs, you may buy them, of course. Avoid books that<br />

deal with "somebody else's" machine - you won't<br />

learn much about the PET from books on KIM, , SYM, ,<br />

Apple, OSI, AIM or Atari. At a later stage, you<br />

might like to buy y such books in order to try your<br />

hand att converting the programs LO to PET - or just<br />

to get an idea as to what's in other machines.<br />

General books on the 6502 arc are good. Remember<br />

that you'll have to fit what these books say intoo<br />

the framework of thee PET architecture. Leventhal's<br />

6502 Assembly Language Programming (Osbornel<br />

(Osborne/<br />

McGraw Hill, , Inc.) is full of programming examples;<br />

but they will all need to be trimmed up LO to fit the<br />

PET. Don't let that worry youu - it's not hard, , and<br />

it's good practice.<br />

You have very little need for hardware unless<br />

you have a special project in mind. If your machine<br />

has upgrade ROM, , try building or buying g an uncrashing<br />

connector (see COMPUTE, P issue 1, page 89).<br />

Your early y programs will certainly "crash" and<br />

you'll save a lot of reloading or retyping if you<br />

un-<br />

can re-awaken your machine. Most non-PET<br />

machines have a Reset button butron that will do the same<br />

job, which is very convenient except when you hit<br />

it accidentally.<br />

The Machine Language Monitor is very vcry useful.<br />

It's built into upgrade ROMs. Original ROM<br />

machines cann load a MLM [\1 from tape, but t thiss is<br />

much less convenient especially y since it uses up<br />

memory space that you u might want for your own<br />

purposes. You may enhance the e usefulness of your<br />

MLM by obtainingg more elaborate versions. Many<br />

of these are availablee from the PET Programs Onn<br />

Tape Exchange (P.O. Box 516, , Montgomeryv Montgomcryville, PA<br />

18936). (Edilor (Editor's Note: Nole: Sec See Table of COl/leI/Is. Contents. RCL) R If you're stayingg with original ROM, , you<br />

might like Bill Seiler's Seller's NEWMON which has many<br />

extra functions including a tinyy assembler. Another<br />

useful package is Jim Russo's high monitor with<br />

machine language single-step; this is sometimes<br />

called MT6671 and sometimes DISS/STEP. STEP.<br />

The upgrade ROM monitor is built in, , but<br />

there are a couple of enhancement packages that add<br />

extra functions: SUPERMON and EXTRAMON.<br />

Both of these contain powerful l extras: disassembler,<br />

tiny y assembler, memory hunt, , and single-stepping.<br />

If you get deeply into machine language programming,<br />

you'll ' want to obtain a full assembler. These<br />

are available able from commercial sources. Don't get<br />

an assembler right away, especially if you're<br />

thinking of adding memory or a disk system. . Your<br />

beginning programs will be quite small, , and easy to<br />

hand assemble; what's more, you'll get a better<br />

feel for how the machine works by doing it all<br />

yourself. Later, as your programs stan start to exceed<br />

thirty lines of code or so, you'll find that an<br />

assembler will be a big help. . This is especially<br />

true when youu want to make changes to [Q a previously<br />

written program. Since few of us write<br />

perfect programs every time, the capability of oi making<br />

changes easilyy is a major advantage that assemblers<br />

give you.<br />

.<br />

The most important tool you need for machine-<br />

language programming ming is one you've already got: your<br />

brain. Remember that each machine language instruction<br />

is simple and logical; a program gets complex<br />

onlyy when youu put many instructions together. Be<br />

prepared to change your style when you go to<br />

machinee language; a lot t off thinking and planning<br />

should take place before you write your first line of<br />

code.<br />

If bits and logical operations are not familiar to<br />

you. u, you'll need to do some advance brushing g up.<br />

Learn why you u can n store values lucs only y from 0 to 255<br />

in a memory location; how w a negative number is<br />

represented reprcsen in binary; how to relate binary, hexadecilTla<br />

mall and decimal numbers; and how the logical functions<br />

(AND,, OR, R , and EOR) work. There are rc plenty y of<br />

introductory texts ts around to help. 0©


58 COMPUTE. MAY/jUNE M I JUNE I960. <strong>1980</strong> ISSUE 4.<br />

Algebraic Input for the PET<br />

HONey Davis<br />

Harvey Dovis<br />

Department Deportment of Mathematics<br />

Michigan State University<br />

One of the e first experiments ent s that at I made when I started stan using g the PET was to (Q input the lhe character '"Tr" ' ''Tl' " as a<br />

numeric c value. Of course it Jailed. fail Bui But the possibility y of<br />

inputing general expressions such as 2*~!*A '!T* A and a SQR<br />

(2 + A' B) has always been a dream of mine. The fol­<br />

(2 + A*B) has always been a dream of mine. The fol<br />

lowing g program allows one to do just that. thal.<br />

The heart hean of the e program is the e subroutine beginning<br />

at line 20. After er an algebraic expression has been<br />

inputed as XS , line 30 clears the screen a nd prims a<br />

inputed as XS, line 30 clears the screen and prints a<br />

line such as<br />

X = ~ SIN(A*B+1O<br />

SIN(A' B +7l')<br />

at the top of the display. Lines 35 and 36 print the<br />

e<br />

command CONT CaNT ata t the e beginning of the 4th h and 5th<br />

h<br />

lines on the lhe screen. If after this was done the e user<br />

would STOP the program from the keyboard and then<br />

type the e sequence [HOME], [RETURN],<br />

[RETURN] R the computer would evaluate the e expression<br />

and then continue the program m where it had left<br />

off. (The second CONT CaNT is there in case the expression<br />

overnowed overflowed onto the e second line.)<br />

Many users have noticed that al stopping slOpping a program<br />

causes the PET to lO print prill( the e contents of' the e key stroke<br />

bufTe bufferr onto n the screen. . See, for r example the e article<br />

""Dynamic Keyboard" by Mike Louder dated July 7,<br />

1978 aand appearing on page 7 of the Pet User's Group<br />

Newslc Newsletter c r volume 0, number 4.<br />

Mr. Louder writes: ""The decimal addresses for<br />

the keyboard buffer are 527 through 536. The buffer<br />

counterr address is 525.<br />

""If a BASIC program is internlpted interrupted with a STOP<br />

or END D the keyboard monitor searches thee keyboard<br />

bufferr and executes es aany ny' 'ASCII' I I' instruction n that may<br />

have been typed in while thee program ram was running." "<br />

Ntr. Mr. Louder goes oonn to explain how this characteristic<br />

of the PET may be used to modify programs and<br />

add a computed GOTO to the user's aarsenal of techniques.<br />

The following g technique is ssimilar to his com ­<br />

puted GOTO except that it causes an expression to be<br />

evaluated and a cOlHinue continue to be executed.<br />

Line e 40 sets the buffer counter e r index at 3 which<br />

tells ls the computer that there aare three characters rs in the e<br />

buffer. Line 45 loads thee ASCII values of the com­<br />

mands IH [HOME] ( ~ = 119) 9 aand [RETURN]] ( ~ = 13) into<br />

the keyboard buffer. \-Vh When thee program is stopped at<br />

line e 50 these commandsm a are executed, ed , forcing g an<br />

evaluationat n ooff the expression n att the e top p ooff the display<br />

and thenn the e execution of the e CONT command. The<br />

computerr then continues running g aand all variables,<br />

including the new valuee for X aare intact. A simple program<br />

is provided pro\"ided at line 100 calling this subroutine so<br />

that the e reader readcr may experiment with w it.<br />

Finally a word of o f caution. If the expression has a<br />

syntax error in it, , the program must be run from m (he the<br />

beginning anda alla variables will be lost.<br />

As a postcript I wou ld li ke to post th e following<br />

As a postcript I would like to post the following<br />

questions:<br />

s:<br />

1. Can the above process be done without the<br />

disconcerting writing to the e screen, , possibly<br />

by momentarilym o m a y convincing ing the PET<br />

that the screen is somewhere somcwhe else?<br />

2. As mentionedm e ned above, programs can be<br />

dynamicall y updated. Can they be up­<br />

dynamically updated. Can they be up<br />

dated in such a way as to leave the vari-<br />

­<br />

blcs bles undisturbed? ? This would be quite e useful<br />

in programs ra m s that work ono n functions<br />

runct i o n ~<br />

such as plotters o e anda integrators.<br />

integralc rs.<br />

PROGRAM LISTING<br />

10 Q$;CHR$(34):GOT0100<br />

Q$=CHR$(34):GOTO1OO<br />

20 PRINT"[CLR][DN][DN][DN]M;<br />

" [ J[ ON J[ ON J[ ON] " ;<br />

21<br />

25<br />

30<br />

35<br />

36<br />

PRINT"X "X MAY BE ANY EXPRESSION"<br />

"<br />

INPUT"[HM]X=";X$<br />

I [ ] X;" ; X$<br />

PRINT"[CLR]X=";X$<br />

[ ] X;" ; X$<br />

PRINT"[HM][DN][DN][DN]CONT"<br />

[ ] [ [ ] [ ] PRINT"CONT"<br />

40<br />

POKE525,3<br />

3<br />

45<br />

POKE527,19:POKE528,1 19-.POKE528, 13:POKE529, 3 133<br />

50<br />

STOP STOP:RETURN : RETURN<br />

60<br />

611<br />

PRINT"[CLR][DN][DN][DN]";<br />

[ ] [ ON J[ ON] [ ON ] ";<br />

PRINT"AjB "A,B ANO AND C MUST BE NUMBERS"<br />

"<br />

65<br />

IINPUT"[HM] [ ] A, B,C="; C;" ; A, B, C: RETURN<br />

100 1OO REM SAMPLE MAIN PROGRAM<br />

110<br />

GOSUB60 GOSUB6O:GOSUB2O : SUB2 0<br />

1120<br />

PRINT"[CLR]" " [ ] "<br />

125<br />

PRINT"IF IF X ; =";X*:PRINT<br />

X$ 130<br />

PRINT<br />

II AND A = =";A" 131<br />

PRINT"<br />

B =lIiB = ";B<br />

132<br />

PRINT"<br />

C ;" =";C:PRINT<br />

133<br />

PRINT " THEN X ;"; =";X:PRINT<br />

135<br />

PRINT"TYPE TYPE II ";Q$;"N";Q$;<br />

i ; "N" ; i<br />

136<br />

PRINT"FOF PRINT'TOF NEW VALUES OF A, &,B,C"<br />

137<br />

PRINT" ""',Q$; i Q~ ; "X" nX";Q?;<br />

i Q~ i<br />

138<br />

PRINT"FOR PRINT'TOR A NEW EXPRESSION"<br />

139<br />

PRINT" " lIi ";Q$;"B";Q£;<br />

; "B";Q~;<br />

1140<br />

PRINT'TOR "FOR BOTH" "<br />

1141<br />

4 1<br />

PRINT" II; ";Q


MAY/JUNE, MAY/JUNE. <strong>1980</strong> 198O ISSUE 114<br />

COMPUTE. 59<br />

59<br />

PET DATA UA I #% Ron Straley<br />

stra e<br />

COPIER<br />

1868 ]868 Grode Grade Ave.<br />

Ft. Myers, Fla33901<br />

Fla339Ol<br />

Having written and used many programs that use data<br />

files, I know the value of having backup tapes in<br />

case of an accident.<br />

Here is a program I wrote to solve my problem,<br />

and maybe it will help others in their line of program<br />

running nin g save time and trouble.<br />

It is a data tape copier for [he' the 'PET' computer purer<br />

that will copy any ''PET" PET' data file or data tape so you<br />

will have a backup data copy.<br />

BY<br />

20 REf! REM BY<br />

30 REfl REM RON STRALEY<br />

40 REfl REM 1868 GRACE AVE. .<br />

50 REr-t REM FT.MYERS,FLA.33901<br />

. 606 0 REf! REM<br />

100 PRINT"fiTHIE " fiTHIS IS A DATA TAPE COpy COPY ,-i<br />

-.PROGRAH -.PROGRAM.. "<br />

110 PRINT:PRINT"IT , PRINT"IT HILL WILL COPY UP TO 450 ,-.<br />

-.STRINGS.."":PRINT<br />

: 120 PRINT "TO CHANGE, , REDIHINSION REDIMINSION'D?'IN' DS ' IN ,-.<br />

-.LINE 170":PRINT:PRINT"AND'MIIN : PRINT"AND ' M' -.<br />

,LINE190 .<br />

130 PRINT:PRINT:PRINT"****INSERT<br />

, , PRINT"****INSERT DATA,<br />

-.TAPE TO BE COPIED****"<br />

"<br />

:<br />

140<br />

150 REM**READ D IN DATA TAPE***<br />

*<br />

160<br />

:<br />

1700 CLR<br />

180<br />

80DHID DIMD$(450) S(450)<br />

190 T=l28 T=128:F=64 , 200 M=450<br />

210 PRINT:PRINT:PRINT"DOES , I ,PRI DATA TAPE,<br />

-.HAVE ,HAVE FILE LE NAME?(Y NAt·IE? ( Y OR N)" "<br />

220 GETA2$:IFA2$=""GOTO220<br />

GETA2S , IFA2S=" "GOT0220<br />

230 IFA2$="Y"GOTO260<br />

IFA2S= "Y"GOT0260<br />

240 IFA2$="N"GOTO280<br />

IFA2S= "N"GOT0280<br />

250 GOTO210 GOT02 260<br />

0 PRINT:INPUT"DATA PRINT,INPUT" TAPE FILE NAME?"; NN-IE? ,AlS<br />

270 OPENl,l,0,Al$<br />

, l , O, AlS<br />

280 OPEN1,1,0<br />

OPENl , l , O<br />

290 A=0:PRINT"R"<br />

A=O,PRINT " fi "<br />

300 INPUT#1,D$(A)<br />

INPUTll , DS(A )<br />

310<br />

0 IF(ST=T)ORST=FTHEN370<br />

320 A=A+1 A=A+l<br />

330 D$(A)=A$<br />

OS =AS<br />

340 PRINT"fi " fi WORKING"<br />

350 IFA120THENGOSUB940<br />

920 RETURN<br />

930 :<br />

940 REM**CASSETTE REH**CASSETTE ADVANCE**<br />

950 :<br />

960 POKE59411,53:T1=TI<br />

, 53,Tl=TI<br />

970 IFTI-TK6THEN970<br />

IFTI-Tl


LOOK at all the MICRO-ED<br />

programs for the<br />

PET!®<br />

LOOK at all the MICRO-ED<br />

programs for the<br />

A Major Drill and Practice<br />

A Major Drill and Practice<br />

SPELLING SERIES<br />

To Supplement Regular Classroom<br />

Instruction<br />

Five levels—A, ls-A. B, B. C, C. D, D. E—cover E-cover<br />

grades 2 through 6. 6 . Complete set<br />

consists of 35 tapes with a total of<br />

180 lessons. Each level has seven<br />

tapes containing<br />

thirty-six lessons.<br />

LEVEL A<br />

LEVEL A<br />

7 tapes, 36 lessons, grade 2. ._ $49.95 S49.95<br />

LEVEL B<br />

LEVEL B<br />

7 tapes, 36 lessons, grade 3. 3 . . $49.95 S49.95<br />

LEVEL C<br />

LEVEL C<br />

7 tapes, 36 lessons, grade 4. 4 __. 549_95<br />

$49.95<br />

LEVEL 0<br />

LEVEL D<br />

7 tapes, 36 lessons, grade 5.. 5 . . $49.95<br />

LEVEL E<br />

LEVEL E<br />

7 tapes, 36 lessons, grade 6.. $49.95<br />

ENTIRE SPELLING SERIES<br />

5225.00<br />

$225.00<br />

A SAVINGS OF $24.00.<br />

WORD DEMONS<br />

WORD DEMONS<br />

2 tapes-$14.95<br />

Tope Tape one: There-Their-They're. Tope Tape<br />

two: To-Tao-Two<br />

To-Too-Two<br />

USAGE BONERS<br />

15 tapes-$99.00<br />

tapes-$99.OO<br />

This drill and practice series focuses<br />

on common mistakes in usage. usage, such<br />

as<br />

agreement between subject<br />

aand verb. verb, double negatives. negatives, etc. etc,<br />

ANY INDIVIDUAL TAPE CAN BE<br />

PURCHASED FOR 57.95.<br />

$7.95.<br />

MICRO-ED's<br />

MICRO-EO' s<br />

main author is<br />

Thorwald Esbensen<br />

named in <strong>1980</strong> as<br />

one of North<br />

America's top school<br />

executives by<br />

Executive Educator<br />

Magazine.<br />

"I have seen<br />

programs by Mr.<br />

Esbensen, and he<br />

does a wonderful<br />

job of making them<br />

both instructional and<br />

interesting for children." "<br />

--Len<br />

Lindsay,<br />

Microcomputer<br />

Author<br />

SEND FOR FREE BROCHURES FROM<br />

MICRO-ED<br />

INC.<br />

MICRO-ED<br />

INC.<br />

PET IS is me Ihe registered traoemar-< trademark of <strong>Commodore</strong> Bus· BuS'<br />

P.O. Box 24156<br />

ness Machines Santa Clara Calol California ornla<br />

Minneapolis, MN 55424<br />

MICRO-DOZEN ON E<br />

MICRO-DOZEN ONE<br />

• COUNT 'EM ' (Kindergarten and 1st1 grade) The learner counts from one to<br />

ten steam locomotives on the computer<br />

screen.<br />

• Story Problems in Addition and<br />

Subtraction (Elementary) An assortment<br />

of story problems in addition and<br />

subtraction, subtraction. many of which involve<br />

lords and knights and a great castle.<br />

• What Number is Missing? (Kin ­<br />

dergarten, dergarten. 1st1 grade) Digits from Irom one<br />

to nine appear in sequence. But one<br />

digit is always missing. Which one?<br />

• Tachistoscope (Elementary) entary) Groups<br />

of words are flashed on the screen.<br />

.<br />

The student must reproduce them<br />

correctly ctly at the computer keyboard. .<br />

• Identifying Complete Sentences<br />

(Elementary) Groups of words are<br />

presented on the screen. Which ones<br />

are complete sentences?<br />

• Lines and Spaces of the Treble<br />

Clef (Elementary and up) Using whole<br />

notes with sound. sound, the computer teaches<br />

the student the names of the lines<br />

and spaces that make up the treble<br />

clef .<br />

o • Matching Capital Letters (Pre·<br />

school and kindergarten) Large capital<br />

leiters letters appea, appear on the screen. What<br />

leiters letters on the computer keyboard<br />

match them?<br />

o • Which Letter Comes Next? (Primary)<br />

A large capital leiter letter appears on<br />

the screen. What leiter letter comes next in<br />

alphabetical order?<br />

• Haiku (Elementary and up) The computer<br />

writes poetry which it revises.<br />

revises,<br />

line by line. line, upon request. request, This program<br />

can be used to help students<br />

write creatively.<br />

o • Trail West (Elementary) A I'ourney<br />

journey<br />

to the goldfields of the Old Olc West. .<br />

o • Direction and Distance (Elementary)<br />

A game to teach the directions of<br />

North. North, Northeast. Southwest. Southwest, etc.<br />

• Math Bid (Elementary) An achievement<br />

motivation game. game, involving practice<br />

in addition. addition, subtraction. subtraction, multiplication.<br />

cation, and division.<br />

12 TAPES-S84.00<br />

TAPES—S84.00


,<br />

A<br />

rt\\>sALL<br />

~\uS'ALL NEW from MICRO-ED!<br />

x<br />

MICRO-DOZEN TWO<br />

• AGREEMENT OF SUBJECT AND VERB<br />

AGREEMENT OF SUBJECT AND VERB<br />

(Elementary and up)<br />

Problems consist of sentences with missing<br />

verbs. Two verb choices (singular and plural)<br />

are provided for each problem. The e learner types<br />

the correct form of the verb.<br />

• RUN-ON SE NTENCES (Elementary)<br />

RUN-ON SENTENCES (Elementary)<br />

Each problem consists of a group of words that<br />

should be divided into two sentences. Using the<br />

space bar, bar. the learner moves an arrow across the<br />

screen and places it after the word that should<br />

end the first sentence.<br />

• MAKE A SENTENCE (First Grade)<br />

MAKE A SENTENCE (First Grade)<br />

Some scrambled scrambted words appear on the screen.<br />

The learner teamer must use some of these words (but<br />

only onty these words) to type a complete sentence.<br />

• MORE WORD DEMONS: ITS-IT'S-YOUR­<br />

MORE WORD DEMONS: ITS-IT'S-YOUR-<br />

YOU'RE (Elementary and up)<br />

Each lesson consists of twenty problems. There<br />

are sentences with blanks to be filled by the ap·<br />

propriate homonyms. At the end of the lesson.<br />

lesson,<br />

the learner'S learner's performance is summarized. Among<br />

other things, this summary lists the specific homo·<br />

nyms that may have given the learner trouble<br />

during the lesson.<br />

• HIGHER, SAME, LOWER (Elementary Music)<br />

HIGHER, SAME, LOWER (Elementary Music)<br />

Each lesson consists of ten problems in which<br />

two notes are played. Is !s the second not'e note higher<br />

than, , lower than, , or the same as the first note?<br />

Each pair of notes is randomly selected from a<br />

bank of sixty·seven sixty-seven pairs.<br />

• MATCHING RHYTHMS (Elementary Music)<br />

MATCHING RHYTHMS (Elementary Music)<br />

The computer randomly selects one of ten rhy·<br />

thmic patterns and plays this as it displays match·<br />

ing quarter notes and eighth notes on the screen.<br />

The learner attempts to match the rhythm by<br />

pressing the space bar.<br />

• TARGET MATH (Elementary)<br />

TARGET MATH (Elementary)<br />

The learner er selects problems in addition, addition. sub·<br />

traction, traction. multiplication, plication. or division at a difficulty<br />

level of his. / her choice. A target area appears at<br />

the bottom of the screen, screen. along with a math prob·<br />

lem. . When the learner types an answer, answer. a plane<br />

flies over and a parachute jumper floats down over<br />

the landing strip. If the jumper hits the target<br />

area, area. the next problem is presented<br />

• WORKING WITH BASIC MULTIPLICATION<br />

FACTS (Elementary)<br />

Each lesson consists of fifteen problems. If the<br />

learner wishes, wishes. he/ she may practice multiplying<br />

by a certain number. Problems are posed at ran·<br />

dom and are not repeated unless they are missed.<br />

• WORKING WITH BASIC ADDITION<br />

WORKING WITH BASIC ADDITION<br />

FACTS (Primary Grades)<br />

Each lesson consists of fifteen problems. If the<br />

learner wishes, wishes. he/ 'she may practice adding only<br />

a certain number. Problems are posed at random<br />

and are not repeated unless they are missed.<br />

• ADDING OR SUBTRACTING TWO-AND­<br />

ADDING OR SUBTRACTING TWO-AND-<br />

THREE-PLACE NUMBERS IN COLUMNS<br />

(Elementary)<br />

This program presents addition or subtraction<br />

problems using two·and·three·place two-and-three-place numbers in<br />

columns. The learner works with each problem<br />

beginning with with the units column on the right. right, (as<br />

would be done with paper and pencil) pencil} and moving<br />

left as guided by an arrow displayed under the<br />

appropriate column.<br />

• SUBTRACTING WITH OBJECTS<br />

SUBTRACTING WITH OBJECTS<br />

(Primary Grades)<br />

Each lesson presents ten randomly generated<br />

subtraction problems with numbers from one to<br />

ten being subtracted from each other. Small<br />

arrows and diamond shapes represent this opera·<br />

tion.<br />

• ADDING WITH OBJECTS (Primary Grades)<br />

Each lesson presents ten randomly generated<br />

addition problems with sums up to twenty. Small<br />

diamond shapes representing the numbers to be<br />

added appear on the screen.<br />

• Punctuation Series<br />

AII12 All Tapes for $84,00<br />

$84.00<br />

AVAILABLE this SUMMER<br />

• Synonym Series<br />

• Punctuation Series<br />

• Reading Racer Series<br />

• Vocabulary Series<br />

Details concerning these new series available upon request<br />

Details concerning these new series available upon request.<br />

We welcome suggestions for educational programs.


62 COMPUTE. MAY/JUNE. MAYIJUNE. 198O. <strong>1980</strong>. iSSUE ISSUE d. .a<br />

PET TWO·WAY RS·232<br />

and PARALLEL<br />

OUTPUT INTERFACE<br />

PET TWO-WAY RS-232<br />

and PARALLEL<br />

SADI - The microprocessor based serial and parallel<br />

interface for the <strong>Commodore</strong> PET. SADI allows you to<br />

connect your PET to parallel and serial printers,<br />

CRT's, modems, modems. acoustic couplers, hard copy terminals<br />

and other computers. The e serial and parallel<br />

ports are independent allowing the PET to communicate<br />

with both peripheral devices simultaneously or<br />

one at a time. In addition, the RS-232 device can communicate<br />

with the parallel device.<br />

Special Features for the PET interface include:<br />

Conversion to true ASCII both in and out<br />

Cursor controls and function characters<br />

specially printed<br />

Selectable reversal of upper and lower case<br />

PET IEEE connector for lor daisy chaining<br />

Addressable ■· works with other devices<br />

Special Features for lor the serial interface include:<br />

Baud rate selectable from 75 to 9600<br />

Half or full ll duplex<br />

32 character buffer<br />

X-ON, X-OFF X·OFF automatically sent<br />

Selectable carriage return relurn delay<br />

Special Features for the parallel interface include:<br />

Data strobe· ■ either polarity<br />

Device ready· - either polarity<br />

Centronics compatible<br />

Complete with power supply, PET IEEE E cable, RS-232 RS·232<br />

connector, parallel port connector and case. Assembled<br />

and tested.<br />

SADIa(110VAC) SADI. (11OVAC) $295<br />

SADle SADie (230VAC) $325 5325<br />

0. __ , ......... , .... " ..... __ ......<br />

CONNECTICUT<br />

microCOMPUTER, Inc.<br />

150 POCONO ROAD<br />

BHOOKFIELD, 8ROOK.FIElD. CONNECTICUT 08804 08104<br />

TEL 1203) (203) 775-9659 -Q659 7WX. TWX ; 710-456-0052<br />

~ -0052<br />

VIU I01Il 0 II/ t . cc.V'T[E) · SOlO l-:c:jt ~ NUMKJt, "'IJIIIILII . [XP1MT10N UI'IlU.t lOOl MTE :loATi UD I01Il0 I "»«", O ~otII .<br />

1000 n 1'(. 01100 .011 S>t l _ " , "'IICIU" - .011 11 .. O. OVI. lotIO 10% . 011 . , . "OHAIK.<br />

OHIO SCIENTIFIC EXPANSION INFORMATION<br />

tNfORMATlO N<br />

Conversion<br />

Com' CI~lon of )IC1P C I P (Cassette) d ~M' lle ) to 10 52x26 .. 26 display dl~ptoly Detailed DNoilled slep-bvons<br />

lor for doubling ihe the CIP C!P speed ~ 1)t ..... "(1 ilnd and displayd l ~j>l a y SI1C'<br />

step ·bystep<br />

siep ins!rue<br />

1fI~ \.u C hom<br />

Ordl" Order 8uIlctlfl Bully n ] 11105 SIl.OO<br />

$12.00<br />

Conversion Com'erSloo of CC1P IP (\llnlflopp)) (Minifloppy) '0 io 52 52x26 .. "!bdl~pla) display 5.ame Same as a~ above . 0011'<br />

but bul include<br />

Includc~ display d'\I,loIy d.wcr driver fo lorr disk Isk 0operating p,cld''"K system.<br />

~y~lem<br />

Order Bullelln Bullr in 1105.'H 1105MF S20.00 510.00<br />

Convelslon Conversion off C2· CjMP 4P or C2·8P O-BPlo to B 8 In in. or 5·1/4 5-1M In in floppy. ppy. Instruc<br />

In~!fU C­<br />

" tions OOS . and scht'lIlallCs schematics for (onverllng converting cassette-based ca,~ellc · lJd St.-d units umls InIO mlo<br />

floppy flopp> systems<br />

sV~lem~<br />

Order Ordei Hullelln Bulletin 11061 11O6F S20.00<br />

$20.00<br />

OOHIO O SCtENTlfIC SCIENTIFIC EXPANSION ACCESSORIES<br />

We have Ohio S< renlifK boards, cables, schema!ics, and docu<br />

menloil mentation lOn H.,d Hard-io-find ·IO·flnd lIems<br />

items<br />

Most Ba Bare rt! BOolrds<br />

Boards Sl9.00<br />

$39.00<br />

430 -130 SUpef Super flO IO BOol,d Board (Hd'C)<br />

(Bare) S69.00<br />

$69.00<br />

0.11.1 Data SeI,a Separalor rd lO' for (or MPI ,\hnlftopp)<br />

Minifloppy S25.00<br />

S25.OO<br />

4iO 470 UnlycrSillD,sk Universal Disk dnd and Rc.I- Real-Time llme<br />

Clock 80 Board il.d lle (TeSled) ~ )<br />

51%.00<br />

$295.00<br />

DUdt Dual Mlm-flOI)y Mini-Flopy II Breakoul rcoikoul ( Cable ilble<br />

S34.50<br />

$34.50<br />

CPI CP1 '0 Io S·44[ S--1-IE 8u Bus~<br />

Com


MAY/JUNE, I 193O <strong>1980</strong>. ISSUE 4. COMPUTE. COMPUTE, 63 6J<br />

Cross-Reference<br />

Cross-Reference<br />

for the PET Jim Butterfield<br />

One of the handy things about the 2040 disk system<br />

is that it allows you to read programs - oro r write<br />

e<br />

them, , for that matter - as if they were data files.<br />

es,<br />

The possibilities are endless: you can analyze or<br />

cross-reference programs; renumber them; ; repack<br />

them into the e minimum number of lines, deleting deleling<br />

spaces, comments, etc.; elC,; or even create a programwriting<br />

g program that is tailor-made for a particu panicular<br />

job.<br />

This program does docs cross-referencing g of a Basic<br />

program. , It's Il written wriuen in Basic: that means that it<br />

won't run too 100 fast (all those GET statements) but<br />

program­<br />

you can read what it's doing fa irl y easil y.<br />

you can read what it's doing fairly easily.<br />

There are two types of cross-references normally<br />

y<br />

needed for a Basic program. program, One is the variable<br />

cross-reference: where do I[ use B$? BS ? The other is<br />

a line e number cross-reference: when do I go to line<br />

360? This program m does either. An example of both<br />

types is shown - the e program in this s case did the<br />

cross- references of itself.<br />

cross-references of itself.<br />

Reading a Basic Program as a File.<br />

To read a Basic program, , you must openo it as a<br />

file, lile, using g type P for program. Line 170 of the e cross-<br />

crossreference<br />

program does docs this.<br />

IfI f you read a zero character from m the program<br />

(that's CHR$(0), CHR$(O), not ASCII zero which has a binary<br />

value of 4S), 48), the GET command gives you a small<br />

problem: it will give you a null string g instead of<br />

the CHR$(0) HR$(O) you might normallyy expect. You need<br />

to watch for this s condition and correct it where<br />

necessary: necessar}': you'll see sec this type of coding in lines<br />

260, 270 and 300.<br />

The first thing 10 to do when you open the file e is<br />

to get the first two bytes. . These represent the pro­<br />

gramm start address, and should be CHRS(l) H R$( I) and<br />

CHR$(4) for (or a normal Basic program starting at<br />

hcxadecimal hexadecimal 0401. (See line 180)'. ISO) .<br />

Now oW you're ready to stan start work on a line e off<br />

Basic. The first t\VO two bytes are the forward fonvard chain. .<br />

If they arc are both zero (null string) siring) we have reached<br />

the end of the Basic program; otherwise, we don't<br />

need them for this job. (See line 240).<br />

Continuing onn thee Basic line: thee next pair of<br />

bytes represent thee line number, coded in binary,<br />

binary.<br />

We're likely to need this, so we calculate it as L<br />

(lines 260 to 2S0) 280) and also create its spring equiva­<br />

lent. LE L$. , vVe We lake take an extra moment to right-justify<br />

the stringg by pUlling putting spaces at thee front so that it<br />

will son sort intoo proper numeric order.<br />

From thiss point on, we are lookingg at the text of<br />

the Basic sie linee until we reach a zero which fla Hags<br />

end-of-line. cnd-of-linc. At that time, we go back aand grab thee<br />

next line.<br />

next<br />

line.<br />

Detailed syntax analysis. analYSis.<br />

When ""h digging outo variables or line numbers, we<br />

have several jobs to do. As we look through Basic<br />

text, , we must find out where the e variable or line<br />

e<br />

number starts. starts, For a variable, that's an alphabetic<br />

character; for a line number, it's the preceding key·<br />

word GOTO, GOSUB, THEN or RUN followed by<br />

an ASCII numeric.<br />

Once we've "acquired" the e variable or line<br />

e<br />

number, we must pick up its following g characters<br />

and tack lack them on. on, For line e numbers, it's strictly<br />

numeric digits. digits, For variables, ables, things are more complex.<br />

Both alphabetic and numeric digits are allowed,<br />

but we should throwaway all after the first two, , since<br />

GRUMP and GROAN are arc the same variable (GR)<br />

in PET Bas ic. We must al so pick up a type identi­<br />

in PET Basic. We must also pick up a type identi<br />

fier - % for integer variables ables or S for r strings -<br />

if present. Finally, we have to spot Spot the left Jeft bracket<br />

that tells us we have an array variable.<br />

T o help us do this rather complex job, we con­<br />

To help us do this rather complex job, we con<br />

struct a character type table. Each entry in the<br />

table represents an ASCII character, and classifies<br />

it according to its type. type, Numeric characters are arc type<br />

6. If [f we're looking for variables, alphabetic characters<br />

area type 5, identifiers (% and $) are arc type 7,<br />

and the left bracket is type 8. S.<br />

To help p us in scanning the Basic line, we define<br />

the end-of-line character as type 0; the quotation<br />

mark as type 2; the REM token as type 3; and the<br />

DATA token as type 4.<br />

Every time we get a new character from Basic,<br />

we get it s type from table C as va riable C9. If<br />

we get its type from table C as variable C9. If<br />

we're looking for a new variable able orr line number, we<br />

see if it matches C - alphabetic fo r variables,<br />

see if it matches C - alphabetic for variables,<br />

numeric for r line numbers, numbers. Once we find the new item,<br />

we kick C out of range and start searching based<br />

on the value of Cl. C 1, This mechanism means that we<br />

can search for a variablee startingg with an alphabetic,<br />

abetic,<br />

and then allow the variable to continue with alpha·<br />

alphabetics,<br />

numerics or whatever.<br />

To ~ro summarize variables in thiss area: A is the<br />

identityy of thee character we have obtained fromm the<br />

Basic program, , and C9 is its s type, type. If we're searching,<br />

C is the type we are lookingg for; ; otherwise it's<br />

belies, kicked out of range, 10 - l or 9. C I tell s us we' re<br />

kicked out of range, to -1 or 9. Cl tells us we're<br />

collecting characters and what types we're allowed<br />

to collect. C2 is our variables/line e numbers flag;<br />

it tells us what we're looking for. . MS is the string<br />

we've assemblcd.<br />

assembled.<br />

The routinee from 4S0 480 10 to 520 scans ahead 10 to skip<br />

over strings in quotcs quotes and DATA A and REM Slat state­<br />

ments,<br />

ments.<br />

Collecting the results.<br />

For each linee of th (hee Basic program we are<br />

analyzing, we collect and sort any items we find, ,<br />

eliminating duplicates. They are staged in array AS A$<br />

in lines 320 to 370. If they are line numbers, they<br />

will be left justified so that the sort will be a little<br />

odd - line 100 will come before line 20 since we


64 COMPUTE. MAY/JUNE. I JUNE, <strong>1980</strong>. 198O. ISSUE 4.<br />

use li a string siring comparison.<br />

When we're readyy to start a new nev\' line, we add this<br />

table to (o our main results table, array X$, in lines<br />

200 to 220. To save sorting time, we merge these<br />

pre-sorted values into the main a table. . At this<br />

point, , our data has thee line number stuck on the<br />

end; ; this way, we're handling two values within a<br />

single array.<br />

Because thee merging g of the two tables mU must St<br />

start at the lOp top so that we can make roomm for<br />

the new items, thee items are handled in reverse<br />

alphabetic order. We print this to the screen so that<br />

youu can watch things working. AI At Basic speed, , this<br />

program can take quite a while to run; it's nice LO to<br />

confirm that thee compuler computer is doing something duringg<br />

this period.<br />

Final Output.<br />

We finish the job stanin startingg al at line 530. It's<br />

mostly a question n of breaking the stuck-together<br />

stuck-togethcr<br />

strings apart again and then checking to see sec if' ii we \..,IC<br />

need to stan start a new line.<br />

.<br />

Do your own thing.<br />

The size of array X$ delermines determines how large a<br />

program m you can handle. The given value of 500<br />

is aboutt right for 16K machines; on 32KK youu can<br />

raise it LO to 1500 or so.<br />

lf If you're u ' squeezed for space, change array C<br />

to an intergcr interger array C C%. % . As you can see from the<br />

cross-reference listing, you'll need to change lines<br />

100,140,150,160, 140, 150, 160, aand 310 - sec see how handy the 'he program<br />

is?<br />

.'*<br />

As mentioned memioned before, , run lime is slow. . A machine<br />

language program - or cven even a Basic program with<br />

h<br />

machine language inserts - would speed things up<br />

dramatically.<br />

100 DIM A$(15) A${15),B$(3)<br />

, X$(500),C(255) , 110 PRINT"CROSS-REF JJIM<br />

BUTTERFIELD" "<br />

120 Q$ =CHR$(34) :S$= " ": B$(l) =Q$:<br />

120 Q$=CHR$(34):S$="<br />

":B$(1)=Q$:<br />

-,B$(3)=CHR$(58)<br />

130 INPUT"VARIABLES OR LINES";Z$:C2=5:<br />

:<br />

,IFASC(Z$)=76THENC2=6<br />

-.IFASC{Z$)=76THENC2=6<br />

140 FORJ=1TO255:C(J)=4:NEXTJ:FORJ=48TO57:<br />

140 FORJ=l T0255:C(J)=4:NEXTJ:FORJ=48T057:<br />

,C(J)=6:NEXTJ<br />

-.C(J)=6:NEXTJ<br />

150 IFC2=5THENFORJ=65T090 IFC2=5THENFORJ=65TO90:C(J)=5:NEXTJ:<br />

,FORJ=36T038:C(J)=7 -.FORJ=36TO38:C(J)=7:NEXTJ:C{40)=8<br />

: NEXTJ:C(40)=8<br />

160 C(34)=1:C( 143)=2 : C(131)=3<br />

160 C(34)=1:C(143)=2:C(131)=3<br />

170 INPUT"PROGRAM" PROGRA~' NAME";P$:OPENl,8,3,"0:<br />

NABE : OPEN1, 8 , 3 ,"0:<br />

-." + P$+",P,R"<br />

...," +p$+ 11 ,F,R"<br />

180 GET#l,A$,B$:IFASC(B$)O4THENCL0SEl:<br />

#1, , 4THENCLOSE1:<br />

,STOP<br />

-.STOP<br />

1901 IFB=0GOT0240<br />

IFB=0GOTO240<br />

200 PRINTL$; PRINTL5;:K=X:FORJ=BTO1STEP-1:PRINT" : : =BT01STEP-1:PRINT" "<br />

;<br />

,A$(J) ^A$(J);:X$=A$(J)+L$<br />

; $=A $(J)+L$<br />

210 IFX$(K)>=X$THENX$(K+J)=X$(K):K=K-1:<br />

21 0 IFX$(K» =X$THENX$(K+J)=X$(K) :K=K-1:<br />

,GOT0210<br />

--GOTO210<br />

220 X$(K+J)=X$:NEXTJ:X=X+B:PRINT:B=0<br />

) : : 230 REM: GET NEXT LINE, TEST END<br />

2400 GET#1,A$,B$:IFLEN(A$)+LEN(B$)=0GOTO5 , , : A$)+LEN(B$)=0GOT0530<br />

250 REB GET LINE NUMBER<br />

250 REM GET LINE NUMBER<br />

260 GET#l,A$ GET#1,A$:L=LEN(A$):IFL=1THENL=ASC(A$)<br />

: :IFL=lTHENL=ASC(A$)<br />

270 GET#l, GET#1,A$:A=LEN(A$):IFA=lTHENA=ASC(A$)<br />

:IFA=lTHENA=ASC(A$)<br />

280 C=C2:C1=-1:L=A*256+L:L$=STR$(L):<br />

$ :<br />

,IFLEN( L$) C1GOTO380<br />

:IFC9>C1GOT0380<br />

320 K=0:IFB=0GOTO360<br />

:IFB=0GOT0360<br />

330 FORJ=lTOB:IFA$(J)=M$GOTO370<br />

=M $GOT03 340 IFA$(J) IFAS(J)6THENC1=C9:GOTO4 ANDC9>6THENC1=C9:GOT0460 6 0<br />

450 IFC2=5THENIFLEN(M$»20RC>0GOT0470<br />

= 5THENIFLEN(M$) >2ORO0GOTO47 0<br />

460 M$=t1$+A$<br />

M$=M$+A$<br />

470 ONC9+1GOT0190 ONC9+1GOTO190,4 , 480,480,480:GOT0300<br />

80:GOTO30 0<br />

480 B$=B$(C9):C$=""<br />

''''<br />

490 GET#1,A$:IFA$=""GOTO190<br />

""GOT0190<br />

500 IFA$=B$GOTO300 $GOT0300<br />

510 IFA$=OQ$GOTO490<br />

Q$GOT0490<br />

520 A$=B$:B$=C$:C5=A$:GOTO490<br />

: B$=C$ :C$=A$ : GOT0490<br />

530 CLOSE1 CLOSEl:INPUT"PRINTER";Z$<br />

: 540 C=3:Z=6:IFASC(Z?)=89THENC=4:Z=12<br />

: Z=6:IFASC(ZS) =89THENC=4:Z=1 2<br />

550 OPEN2,C:PRINT#2:PRINT#2,"CROSS , : PRINT#2 ,"CROSS '-i<br />

,REFERENCE -■REFERENCE - PROGRAM ";P$<br />

560 X$="":FORJ=1TOX:A$=X$(J)<br />

FORJ=lTOX : =X$(J)<br />

570 FORK=l FORK=1TOLEN(A$) :IFBID$(A$,K,l) :IFMID$(A$,K,1) 0 " " -. ,<br />

,"THENNEXTK -."THENNEXTK:STOP : 580 B$=LEFT$(A$,K-1 B$=LEFT${A$,K-1):C$=MID$(A$,K+1):<br />

) ,K+1):<br />

-.IFX$=B$GOTO600<br />

,IFX$=B$GOT0600<br />

590 PRINT#2:Y=0:X5=B$:PRINT#2,X$;LEFT$(S$/<br />

: X$=B$ : , X$;LEFT$(S$,<br />

,-.5-LEN(X$) 5-LEN(X$)) ) ;<br />

600 Y=Y+1:IFY


MAY/JUNE. MAY/JUNE . 198O <strong>1980</strong> ISSUE ISSUE 44<br />

COMPUTE.<br />

65<br />

65<br />

softside<br />

software<br />

sOftside<br />

SO tware<br />

softside<br />

software<br />

Repeat The<br />

<strong>Computers</strong><br />

Tune as it<br />

Grows<br />

Solo or<br />

MuKi-Player<br />

^j<br />

W<br />

a. Great Graphics^<br />

d<br />

A<br />

\ 7 txcrting Actton<br />

A<br />

-DRIVING ~DRIVING ACE-<br />

~<br />

it * *&2 *<br />

^ANIA<br />

2 ACTION PACKED PACMD VIDEO GAMES^ GAMES-n *<br />

C»*79 ""'9<br />

~ < ATTENTION! A'I=tENTION! ALLA 1,1, PET OWNERS ~<br />

*<br />

I Softside Software.<br />

£ Softside Software'Nc~<br />

£ presents ~<br />

*<br />

ASSEMBLY SYSTEM II ~<br />

iC *<br />

~ Assembly System II is the most af1or- affor<br />

bled directly mto into memory lor tor easy lest- test<br />

iC dable and most comprehensive mne- ing and access via the built-in TIM "'-<br />

iC monic assembler package available monitor. Code can be executed via :::<br />

iC for your PET personal computer or CBM both the SYS and USR calls. Operands are accepted in both decimal and hex<br />

professional computer. This package<br />

: ~~~~:t~~7~oc~r~~~~~ consists of two programs. ~~ The ~~g~~ Assembler<br />

~~e~:\~~~~O~s~~~%~t~~hI~~ adecimal format. Assembly System II is<br />

is the most sophisticcrted sophisticated assembler compcrtible compatible with all 6502 programming iC available in Basic One program allows manuals and books. The Disassembler<br />

iC the input. input, editing. editing, saving. saving, recalling. recalling, and can unload from memory and directly<br />

iC listing of standard MOS machine lan- from tape or disk. A program does not<br />

iC guage programs. A user proof entry sys- have to be in memory for a complete<br />

iC tem makes mistakes almost impossible. disassembly to screen or printer. Now iC Relative branches are automcrtically automatically you can take a look at those machine iC computed by the program: program; minimizing language routines that have been hid- ~ user error. Fast and efficient. efficient, this one ing from view. Assembly System II is<br />

't program does it it all. You do not have to available for disk or cassette (spec-<br />

'?' go PET/CBM through a 3 program process to to<br />

ify) based <strong>Commodore</strong> comiC<br />

*<br />

compile your code. All coding is assem- puters for an introductory price of $<br />

iC AS;E .... LER>OO1 ?ooi FOR for 8K PETSSTIU..V PETsStill avail/cue .......... roR k>r $15.95 $t5.95<br />

$25.95. (NEEDS t ·<br />

( AT LEAST 16K) • AUTOMATICALLY ANOTHER PET • MOS mos MNEMONICS mnemonics ~ J<br />

iC • COMPUTES BRANCHES PROGRAMMING • FULL full DISASSEMBLY disassembly *<br />

~ • FASTEST ASSEMBLER BREAKTHROUGH. • HEX/DECIMAL hex/decimalOPERANOt<br />

operand!<br />

iC ~<br />

305 RIVERSIDE DRIVE, NEW YORK, NEW YORK 10025 *<br />

iC 305 RIVERSIDE DRIVE, NEW YORK, NEW YORK 10025 ~<br />

iC***************************************<br />

*<br />

*<br />

*<br />

*


66 66 COMPUTE. MAY/JUNE. MAV I JUNE. 198O <strong>1980</strong> ISSUE 4II<br />

Review<br />

Review<br />

M-100 Microprinter ($39O) ($390)<br />

Digiclocks<br />

M-1OO Microprinter<br />

Digiclocks<br />

3O16 3016 Oceanview Avenue<br />

Orange, California 92665<br />

David L. L Bosfeel Bosteel<br />

Professor of Architecture<br />

University of Washington<br />

Seattle, WA 981O5 98105<br />

Chuck A London<br />

Systems Engineer<br />

Boeing Computer Services Company<br />

Seattle, WA. 08124 98124<br />

The M-100 M-lOO Microprinter is designed for connection<br />

to the IEEE-488 port of the <strong>Commodore</strong> PET, uses<br />

4.75 inch aluminized paper (40 characters/line),<br />

and prints approximately 70-150 lines/minute. The<br />

unit comes fully assembled in a 10 x 7 x 5 inch<br />

high cabinet with built-in interface and power<br />

supply. A 22 inch cable is included, ineluded , and the plugs<br />

are easily y reversible on the e cable so that the printer<br />

can be located either to right or left of the PET<br />

computer. The unit works s with either "old" " or Hnew"<br />

"new"<br />

ROM's. ROM' s.<br />

The M-100 M-IOO Microprinter uses a Sharp DC-4002<br />

electro-sensitive printing mechanism with a 8 by 8<br />

dot matrix to print all the PET characters and<br />

graphic symbols, including cursor control symbols and<br />

reverse field printing, as they would appear on the<br />

PET monitor for program listings ings or programmed output.<br />

See sample below of printed output and commands.<br />

A "Graphics" " switch sets (shifted) characters<br />

to print graphics symbols as shown on the PET<br />

keyboard. A ""Line Feed" switch allows one to<br />

independently advance the paper one or more lines.<br />

The paper is friction-fed and the printer platen is<br />

gear driven so that line e spacing is fi fixed at 5 lines/<br />

in inch with a character height of ..115 5 inches (for<br />

lower case or graphics symbols). Thus drawings or<br />

SOFTWARE SPECIALISTS MICROPHYS PROGRAMS<br />

diagrams do not appear exactly as they would on<br />

the PET monitor as there is some space between each<br />

diagrams do not appear exactly as they would on<br />

the PET monitor as there is some space between each<br />

line.<br />

The M-100 Microprinter very nicely reproduces<br />

the PET keyboard symbols, including descenders for<br />

lower case letters. The output has more nearly the<br />

The M-100 Microprinter very nicel y reproduces<br />

the PET keyboard sy mbols, including descenders for<br />

lower case letters. The output has more nearly the<br />

size and appearance of typed text than is some­<br />

size and appearance of typed text than is some<br />

times the case with th other er printers. The aluminized<br />

paper might be seen as a deterrent t for r record purposes<br />

to some, but, for purposes of reproduction,<br />

,<br />

it it can be mounted (one or two columns/page)<br />

on backing sheets and a xerox copier will provide clean<br />

copy without edges or greyness.<br />

copy without edges or greyness.<br />

The principal uses of a 40 character/line printer<br />

The principal uses of a 40 character/line printer<br />

are probably to provide listings for development or<br />

debugging of programs too long to remember as<br />

debugging of programs too long to remember as<br />

the lines scroll from the PET monitor screen, and to<br />

provide" "hard copy" of program output for later<br />

use. The PET operating system has commands that<br />

use. The PET operating system has commands that<br />

make it very easy and these are summarized below<br />

as they apply to the M-100 IOO Microprinter. En [n most<br />

cases monitor and printer output are identical but<br />

the "TAB" function and use of commas in PRINTS<br />

the " TAB" fun ction and use of commas in PRINT#<br />

statements for printer output give different (and sometimes<br />

unpredicted) results from those seen on the<br />

times unpredicted) results from those seen on the<br />

monitor. The use of the "SPC" Ilspe" function and semicolon<br />

separator for same-line printing may be used<br />

instead. The use of the semi-colon, , when combining a<br />

sequence of operations over several lines of a program<br />

for same-line printing, appears to confuse the operating<br />

system printing firmware, , or primer printer functioning, orr<br />

maybe onlyy this programmer. Anyhow, the results arc are<br />

different for monitor than for r printer. Also, it is<br />

inadvisable 10 to leave "open" files lying around in the<br />

system--appears system—appears to sometimes cause all sorts of<br />

puzzling condilions, conditions, including a Iistuck" "stuck" cursor<br />

(usually recoverable) and unintended programmed in<br />

(usually recoverable) and unintended programmed input/output<br />

formatting.<br />

put/output formatting.<br />

It is useful, , in any case, to organize printer output<br />

separately from that for monitor. The PET<br />

monitor has thee annoying g characteristic of flashing<br />

(goes dark, , then screcn screen image rcturns) returns) as each print<br />

line e is output to printer. Much better practice is to<br />

organize hard copy output in a subroutine that first<br />

SOFTWARE SPECIALISTS MICROPHYS PROGRAMS SCIENCE AND EDUCATION<br />

2048 FORD STREET<br />

BROOKLYN, NEW YORK 11229<br />

(212) 646-0140<br />

64&O140<br />

Mp Mn<br />

Dear Educator :<br />

Mlcrophys Microphys has Hasreteased released two Iwoutility programs which have been deSigned designed to topermit Instructors instructorsIn inevery academiC academicarea 10 toestablish an unlimited number 01 ofsource 'lies In inwhich<br />

quesllons guesnonsused on exams and hOmework homeworkassignmenls assignmentsmay be convenlenlly conveniently stored. These questions may then be accessed by studenlS studentsas a means 01 olreview and may also serve<br />

as as the basis for forindiVidualized individualized exams and hOmework homework assignmellls<br />

assignments.<br />

OUE5LD OUESLOenables the instructor to toreadily create source hies files. The texl textof ofeach queshon questionis ismerely typed IntO intothe computer and stored on Ihe thedisk IIle filedeSignated designatedby t1e neInstructor<br />

instructor<br />

Addit Additional ional questions may be beadded to toa given hie hieat any lime time<br />

OUEGEN can access any source lile fileand generate an IndIVidualized individualizedexam or orassignment tor for each student using a subset or or the entire group of Dfquestions preViously previouslyelllered<br />

entered<br />

OUEGEN QUEGENWill willeither prOVide provide the correct answers so sothat a student may assess his perlormance performance or or OUEGEN Wilt will request requesl the sludent student 10 toenter hIS hisanswers 1110 into the Ir-.ecomputer<br />

OUEGEN QUEGENwlil willlhen thenglade gradeIhe theaSSignment assignment, . dIsplaying displaying the COllect correctanswers to tothose Queslions questionsmIssed missed. A percenl percentscore IS isIIldlcated indicatedand a bllel briefcomment. comment, reltectlng reflectingan overall<br />

evaluation. evaluation, IS isalso alsogiven<br />

OUESLO QUESLOand OUEGEN have been designed lor exclusive lUSi use on onthe <strong>Commodore</strong> 16/32K PET microcompuler microcomputer. , Tile The2040 dual disk drIve drivepellpneral peripheral IS isalso leQulred required. The two<br />

programs are accompanred accompaniedby bycomplete instrUClions instructionsand sell as asa set lor for $40. Source hIes filescontallllllg containingquestions III invlltually virtuallyevery academiC academicdisciplllle disciplineWill will soon De be!Mde<br />

made<br />

available.<br />

The programs are areoblalnable obtainabletram fromyour local compuler computerdealers 01. or. II ifunavailaole. unavailable, they may be be purchased directly from Mlcrophys<br />

Microphys<br />

NOTE: A free. free, edutaiionai educationalsoUware softwarecatalogue IS isavailable upon request trom fromMlcrophys Microphys. ThiS Thiscatalogue descltbes describesover \40 UPprograms currenlly currentlyavailable


MAY/JUNE. MAY/JUNE, 19S0. 198O. ISSUE 4. &. COMPUTE.<br />

67<br />

clears the screen of previous messages, then outputs<br />

new information to printer, r , and subsequently prints<br />

the same messages/information to monitor screen. The<br />

result is a stable image which minimizes the impact<br />

of printer output on monitor screen. .<br />

A brief note on hardware. The unit is attrac­<br />

tively housed, solidly constructed, aand appears to use<br />

good quality components. We say ""appears" as the<br />

manufacturer recommends very careful disassembly<br />

(necessary to expose logic board and electronic<br />

components) so as not to tear the ribbon n cable<br />

linking the printer r base and the printing head. As a<br />

number of PET owners may beb e electronic buffs and<br />

could test!replace test/replace components, it might t be better belter if<br />

the board were more readily accessible. We e decided<br />

a working printer was preferrable to a more complete<br />

inspection and can onlyy note that electronic<br />

components are soldered, , not socketed. The stated<br />

nominal life for the printer primer mechanism (40 million<br />

characters MTBF; 1 million strokes minimum, 3<br />

million usual) is reassuring given present usage of one<br />

roll of paper per month (130 feet = ~ 7500 lines<br />

or approximately 200,000 characters).<br />

The M-100 Microprinter arrived promptly (4<br />

days) via UPS, P was easily connected, and worked<br />

immediately. Some two rollss of paper later<br />

($6/roll,, Radio Shack) it continues to work. That<br />

brief period of six weeks is not a fair test of<br />

longevity, or even the warranty, but it is long<br />

enough to explore potential capabilities and to learn<br />

to use the printer r effectively in programming.<br />

The Digiclocks unit was purchased because it waslis<br />

was/is<br />

the most inexpensive printer available that provides<br />

all the PET characters and graphic symbols. When<br />

the principal uses will be program listings and<br />

programmed hard copy, , the Digiclocks printer would<br />

appear to be aann excellent choice. For extensive<br />

text processing it is a personal view that only IBM<br />

Selectric or Daisywheel type output is satisfactory<br />

and those alternatives are beyond d present means.<br />

While the M-IOO M-100 Microprinterr lacks some of the programmable<br />

features of the "intelligent" " <strong>Commodore</strong><br />

printer, the PET operating system makes it easy to<br />

obtain formatted printer output for most uses.<br />

OPEN6,5:CMD6<br />

listing- 1 istin'~­ LIST<br />

PRINT# -<br />

PRINT#6, INTil6 , 'ANVTHIN6'<br />

. ';' ING '<br />

CLOSE6<br />

CLOSES<br />

prO'3r'am program output- 18 OPEN6 0PEN6,5:CHD6<br />

26 PR!NT#6 PRINTttfi,'ANYTHING'<br />

, ' ANI'THING '<br />

:38 CLOSES<br />

GRAPHICS (OFF)= (0FF)= lotl)er lower case( ease


Software Specialists Science and Education<br />

Microphys<br />

Dear Educator:<br />

tor:<br />

Microphys is pleased to introduce u its series of computer compule r programs p which have been specifically spedfica y designedd for r use ono n the <strong>Commodore</strong><br />

SK PET and .1nd 1632K CUMC Hi,,1 microcomputers. These programsp rogmms have h,w e<br />

readily y enabled e instructors rs to provide d e their t students s n ts with w il h an a n<br />

opportunity to review, rcvi(, h'. in .in il n interesting and a effective e manner, nner. the<br />

important concepts encountered e in introductory courses in<br />

chemistry, . physics, physics. mathematics, thC nl microsystemm m in your YO ll r courses l..'S as<br />

soon as it arrives. . The programs .ire are available on cassette e tapes tn anda arrive complete with h full instructions for their immediate immedi.l te use even<br />

by those who have little, if any, a experience with the use of the<br />

computer<br />

r itself.<br />

There are arc three types t)' of programsp ra in the Microphys series:<br />

es:<br />

I. Computer-Assisted Instruction Programs rams guide the student<br />

nt<br />

through h a series es of quantitativeq t.1ti questions; the student interacts<br />

with the computer comput(' r and receives immediate evaluation of his<br />

s<br />

responses and/orr assistance when needed. . Each time a particular<br />

programp ra m is run, a differentd set sct of numerical data is generated. . In<br />

most instances, nces, ana n entirely new problem is presented. p .<br />

II. Individualized-Instruction Programs generate a unique set of<br />

problems for each student. studt.' nl. The essential al information infomla needed to<br />

solve each problemp is recorded rd ed and, when he is ready y to do so,<br />

the student may obtain the computer's answers ans\,,'e anda compare his<br />

s<br />

results. These answers may y be suppressed by deleting line ti number r 8500 in any program. When n now run, a unique set of ~f<br />

problems is produced for each student who \\'ho records the essential essenllal<br />

information o n along with his code cad I:! number which is generated by<br />

the computer. When \Nhc n his s work is completed, , the sstudent enters<br />

his<br />

s code number r and answersa into the program rnm which h had given<br />

n<br />

him his s assignment. aSSig nt. The computer r will then gradeg e his work,<br />

displaying the answers to those problems whichw were<br />

Chemistry and Physics<br />

Cassettes<br />

Cassettes<br />

1. I. Linear r Kinematics<br />

2. Projectile Motion*<br />

~l l o t i o n ·<br />

3. Momentum and Energy* Energy·<br />

4. Energy and the Inclined Plane<br />

5. Inelastic s c Collisions<br />

6. Centripet,11 Centripetal Force<br />

7. Pulley Syste Svstems -— Machines·<br />

Machines*<br />

8. Specific peCi THeat H t Cil Capacity pncity<br />

9. CalOrimetry<br />

Calorimetry<br />

10.<br />

. Heats of Fusion.Vaporization<br />

FlI nN ilporization<br />

11. n. Specific Gas Laws<br />

12. General Gas Law<br />

13. 13 . Thermodynamics I<br />

14. Thermodynamics<br />

II<br />

15. Transverse rse Standing Wilves<br />

Waves<br />

16. Longitudinal<br />

citudinal S Standing tandmg Waves<br />

17. Lenses and Mirrors*<br />

rs '<br />

18. Refraction of Lightg 19. Series Circuit Analysis<br />

20. Parallel Circuit Analysis I<br />

20A. . Parallel Pilra Circuitt Analysis II<br />

2L 21. Series es'Paril Parallel l1 Circuit An


'VlA MAY/JUNE. Y I <strong>1980</strong> 198O ISSUE 4 A COMPUTE. 69<br />

In lhil thh ISSllr, issue, J/llrlerle Marlmt I'mllo Pmtiu amlillllll continues /itr her/JrtUlIlalioTl presentation of the .I:radi".1!. gradingprogram<br />

lshown llUll-'1l i1l m hIssue SIl,. 3's 3 C/Jlumll. column, 711 '/'his time tape (Illd anddisl.. dish data Jtomge storage 0/)/1011$ upturns are<br />

added. Re RCLL<br />

The Learning Lab<br />

Marlene Protto<br />

Pratfo<br />

This grading program originated on a 32 K PET<br />

This grading program originated on a 32K PET<br />

withoUl without a printer. Its major idea was to mail1lain<br />

maintain<br />

the information in thee machine in arrays for easy<br />

reviewing and recording of thee results by hand. Op·<br />

lions tions are now provided for storingg and retrieving eving the<br />

partial or full term data on tape or disk (tape refers to<br />

partial or full term data on tape or disk (tape refers to<br />

cassette tape 110 I/O and disk refers to the CBM 2040 disk<br />

drive 110 , whil e 110 refers to input/output opera­<br />

drive I/O. while I/O refers to input/output opera<br />

ti0l1S).<br />

tions).<br />

The user is asked how the data will be entered<br />

The user is asked how the data will be entered<br />

(statements 2905-2907) and there is a new item in thee<br />

menu (s tatements 27620-27640) allowing th e data to be<br />

menu (statements 27620-27640) allowing the data to be<br />

saved. Of the numeric data, only thee raw student<br />

grades are stored. When thee data is read from tape or<br />

disk thee user r may choose to add grades if the total<br />

number of grades will not exceed thee maximum in<br />

2150. The averages, z scores, and frequencies encies are then<br />

recalculated and the menu presented.<br />

.<br />

As thee average are calculated, thee user is asked<br />

is the average is "okay". If a change is needed and<br />

the inpUl input came from tape orr disk, all off the current<br />

scores are printed to refresh the user's memory<br />

(statements 13200-13560). 3560). If the user wants to review<br />

the grades, he/she may ask to change one grade and<br />

merelyy input the same mc value. Note that a change of<br />

input method was made here in order to speed up<br />

the program (13250). If you prefer using the return<br />

key, do not make this s change.<br />

The instructions concerning g grade changes have<br />

been modified. For r each student the user may Illay<br />

change all grades or one grade at a time (13600-<br />

change all grades or one grade at a time ( 13600-<br />

14000).<br />

14000).<br />

Since the scores may come from more than one<br />

input source, two twO variables are needed to keep track<br />

of the number of grades from frolll each. A new variable<br />

NN is used for the number of grades entered<br />

NN is used for th e number of grades entered<br />

initially and NP is th e number of grades added on a<br />

initially and NP is the number of grades added on a<br />

subsequent run. . In the first case N =NN= N<br />

and in<br />

the second case N = N N + N P.<br />

the second case N ~ I N + NP.<br />

Writing the Data File<br />

Observe statements 36010-36097. RV Rv is a variable<br />

which points to where the program should continue cO lllinue<br />

if there is an I/O 110 problem and IT refers to disk<br />

or o r tape. The filename and an indicator for r tape or o r<br />

the disk drive number are requested.<br />

The form of the OPEN statement is OPEN<br />

parml, parmi, parm2, parm3, parm4 pann4 where parml I is the<br />

logical file number, parm 2 is the device number<br />

(DV), (Dv), parm3 is the secondary address (SA), and parm4<br />

is the c filename and/or commands. cO lllmands. The variables, DV<br />

and SA, are arc assigned differently for tape or disk<br />

(36024 & 36028). The disk filename is modified as<br />

shown in 36028. 36028, The fourth parameter consists of the<br />

drive nUllIber number (either 0 ur or I) 1) lo followed by a<br />

: (colon),<br />

the e name provided by the e user and finally indicators<br />

for SEQuential file type aand WRITE mode of operation.<br />

In additiun addition, . forr disk 110. I/O, we OPEN OPKN the com· comerrorr<br />

channel in order to check for disk eerrors.<br />

rs .<br />

We choose to use file number 2 and we must use<br />

Secondary Address 15. Some form of initialization<br />

of the disk drive muSt must occur. It is included in the<br />

OPEN command by using g ""I" I " + HS H$ as the fourth<br />

parameter where H$ is the disk drive number provided<br />

by the user. (We are assuming that the diskette<br />

has been formatted at this pain!.)<br />

point.)<br />

Tape fil filee writing is indicated by a Secondary<br />

Address of I. 1. Disk filee writing is indicated by filee<br />

type (SEQ) and mode (WRITE) which arc are part of the<br />

fourth parameter in the OPEN statement. In either<br />

case, the first parameter is the filee number which<br />

will later appear after the # in the PRINT#<br />

statements. nt s .<br />

IT is checked in 36032. If thee userr has not<br />

responded with Tor T 0 orr 1, thee program relUrn returnss<br />

to 36022 to elicit the proper resonse.<br />

Information is written to the external medium in<br />

the following ow g order: I) 1) filee identifier (32 characters<br />

or less off information), n), 2) number of students, , 3)<br />

number of grades per student, and 4) a character<br />

(0$) (DS) to indicate whether identifiers have been provided<br />

by the user or if sequence numbers will be written<br />

as identifiers.<br />

For r each cach student slUdclll an identifier or sequence ence number<br />

and the e student's grades are written. After the last(Jth)<br />

stUth)<br />

student's data, , DONE E is written. The user is informed<br />

when the file e writing is completed complcted and is returned relUrned<br />

to the menu.<br />

Reading the Data File<br />

e<br />

The 'rhe program asks s how data is to be read<br />

(2905-2907). If the data comes from tape or disk, the<br />

filename is entered ered (2925), and the e DeVice number<br />

and a Secondary Address are arc set (2930-2935).<br />

Tape file reading is indicated by a Secondary<br />

Address of O. For di sk, the founh parameter is<br />

Address of 0. For disk, the fourth parameter is<br />

similar to that for writing, except that the mode is<br />

replaced by READ. The error channel is opened and<br />

the disk drive is initialized (this s may occur twice in<br />

the program since the e read and write portions are<br />

independent of each other and a the user may choose<br />

any y of several combinations of I/O 110 options.) File<br />

1I is opened for either disk d or tape reading. Student<br />

data are arc read in 10250 and 11560.<br />

Data as Character Strings<br />

The data are written as character strings. On input<br />

the data are read as character strings and converted<br />

to numeric data as needed. Microsoft BASIC provides<br />

two functions for converting convening data from numeric<br />

to character characler and character to numeric. . STR$(numeric<br />

variable) will convert a number to a string, slrin while<br />

VAL(string V variable) will convert a string to a number.


7O 70 COMPUTE. . MAY/JUNE, <strong>1980</strong>. 198O. ISSUE 4.<br />

If the stringg variable docs does not consist of numerals,<br />

V AL returns a value of O.<br />

VAL returns a value of 0.<br />

ERROR TESTING<br />

Disk errors are checked in the subroutine at 36610<br />

and tape errors in the subroutine at 36710. It is<br />

and tape errors in the subroutine at 36710. It is<br />

not possible to make the program super smart concerning<br />

error recovery, but an altcmpt attempt is made rather<br />

than simply stopping the program.<br />

Please make the e following correction to the<br />

listing. 36095 CLOSE 1: IF DV = ~ 8 THEN<br />

CLOSE 2<br />

CLOSE 2<br />

REFERENCES<br />

<strong>Commodore</strong> Business Machinc.:s, Machines, CBM Users Manual, 1979<br />

<strong>Commodore</strong> Business Machines, CBM Floppy Disk User<br />

Manual, 1979<br />

Total Oia l Information Inronnatio n Services, Ser\'ices. TIS Workbook 4, 'I, 1978<br />

1450 REM K$ FILE IDENTIF I ER<br />

1450 REM K$ FILE IDENTIFIER<br />

11470 REM E$ ERROR CHANNEL MESSAGES<br />

1500 REM J NUMBER OF STUDENTS<br />

1600 REM NN NUMBER OF GRADES PER<br />

1700 REM STUDENT INITIALLY, , NP GRADES<br />

17100 REM ADDED,N=NN+NP<br />

, N ~ NN+NP<br />

1720 REM MN=MAXIMUM ~lN~~lAXIMUll # OF STUDENTS<br />

1730 REM MG=MAXIMUM ~HAXIMUM # OF GRADES PER -. ~<br />

-.STUDENT<br />

~ 1740 REM RV RETURN TO INPUT OR OUTPUT<br />

1750 REM IT=1 FOR DISK,IT=2 FOR TAPE<br />

2100 DIM N$(50),E$(4},Z(50)<br />

, E$(4),Z(50)<br />

2100<br />

2100 DIM N$(50),E$(4),Z(50)<br />

2150<br />

MN=50 :MG=10 : ~l ::RV=1<br />

2200<br />

PRINT"[CLR]"<br />

" 23000<br />

PRINT"THIS PROGRMI PROGRAM ASSUMES THAT ";<br />

2400<br />

PRINT"YOU DO NOT HAVE MORE ~10RE THAN ";<br />

2500<br />

PRINT"50 STUDENTS AND 10 ";<br />

2600 PRINT"GRADES PER STUDENT. IF " ,.<br />

2600<br />

2700<br />

2800<br />

2900<br />

2905<br />

2700 PRINT"YOU DO, CHANGE THE DIM<br />

2800 PRINT"STATEMENTS AND 2150."<br />

2900 PRINT<br />

2905 PRINT"INDICATE ENTRY OF DATA BY -i<br />

-OlKrEYBOARD, j:TrAPE, DRIVE x.0? "<br />

2907<br />

2907 PRINT" OR DRIVE ilr."<br />

2910<br />

INPUT M$:M$=LEFT$(M$,1) $(M$ , l)<br />

2920<br />

IF M$="K" THEN DV=0:NP=0:G0TO : :G OTO 3000<br />

2925<br />

INPUT"ENTER FILENAHE FILENAME ";F$<br />

2930<br />

IF M$="T" THEN DV=I DV=1:SA=0:IT=2:<br />

: -.GOTO2950<br />

~GOT02950<br />

2935 IF M$="0" OR H$= M$="l" "I " THEN DV=8:SA=5: :<br />

-nIT=l: ~IT=l: F$=M$+": ":""+F$+" ",, SEQ,READ" , REAO "<br />

2937<br />

IF IIT=1 THEN OPEN 2,DV,15,"I"+M$: ,"I" :<br />

-.GOSUB ~GOSUB 36610:GOTO : 2950<br />

2940<br />

PRINT"ENTER K,T,0, OR 1. l.":GOTO 2910<br />

2950<br />

OPEN l,DVfSA,F$:IF I,DV,SA , IT=1 IT~ 1 THEN GOSUB -. ~<br />

-.36610<br />

~36610<br />

2952<br />

INPUT' INPUT#1,K$:ON I, IT GOSUB 36610,36710 , 36710<br />

2954<br />

PRINT"FILE IDENTIFIER IS ";K$<br />

2956<br />

INPUT#1,H$:ON #I, : IT GOSUB 36610,36710<br />

2958 JT=VAL( JT=VAL{H$) :IF: JT=00 THEN PRINT"* " # OF -. ~<br />

2958<br />

DIM N$(50) , E$(4) , Z(50)<br />

PRINT "GRADES PER STUDENT. IF<br />

PRINT"YOU DO , CHANGE THE DIM ";<br />

PR I NT "STATEMENTS AND 2150 ."<br />

PRINT<br />

PRINT " INDICATE ENTRY OF DATA BY ~<br />

~L. K r EYBOARD , L.TrAPE , DRIVE L.0r "<br />

PRINT " OR DRIVE L.lf."<br />

~ STUDENTS IS 0 ": GOTO 2905<br />

-iSTUDENTS IS 0":GOTO 2905<br />

2960<br />

INPUT#1,H$: I, : ON IT GOSUB 36610,36710 , 36710<br />

2962<br />

NN=VAL(H$) ::IF NN=0THEN PRINT"# '" OF -. ~<br />

^GRADES ~GRADES IS 00":GOTO " : 2905<br />

2964<br />

IINPUT#1,D$: NPUT.l, ON IT GOSUB 36610,<br />

--36710:D$ ~3 : D$~LEFT$ = LEFT$(D$,1)<br />

( D$,I)<br />

2975 PRINT"NUMBER OF STUDENTS IS "";JT<br />

2980 PRINT" NUMBER OF GRADES IS " ;NN<br />

2980 PRINT"NUMBER OF GRADES IS " ; NN<br />

2985 IF D$="Y"THEN D$~"Y " PRINT"THERE ARE -. ~<br />

^IDENTIFIERS."<br />

~IDEN ERS . "<br />

2990 IF NMG THEN PRINT"TOO MANY":<br />

-.GOTO ~GOTO 2990<br />

2990 IF N00 THEN PRINT ""ENTER";NP;<br />

"; NP ;<br />

...," ->" GRADES FOR II;<br />

11400 PRINT"STUDENT ";JJ<br />

11500 FOR 1=1 I=1TON<br />

11520 IF DV=0 THEN 11600<br />

11520 IF DV=0 THEN 11600<br />

11540 IF I I>NN )NN THEN 111600<br />

1 11560 INPUT l l, H$ : ON IT GOSUB36610 , 3671 0<br />

11560 INPUT#1,H$:ON IT GOSUB36610,36710<br />

111580 1 STUDENT(J,I)=VAL(H$):GOTO11800<br />

) : GOT011 11600 PRINT "GRADE #";I;<br />

11600 PRINT "GRADE 1 " ;1;<br />

1320 0 PRINT "OKAY? ";<br />

13200 PRINT"OKAY?";<br />

13250 GET C$:IF C$="" THEN 13250<br />

13400 PRINT C$<br />

13400 PRINT C$<br />

13500 IF C$= " Y"THENI 0200<br />

13500 IF C$="Y"TREN10200<br />

13530 IF DV=0 THEN 13600<br />

13540 PRINT"CURRENT GRADES:"<br />

13550 FOR P=1TON:PRINT STUDENT(J,P);<br />

13550 FOR P= I TON : PRINT STUDENT(J , P) ;<br />

13560 NEXT P:PRINT<br />

13600 PRINT "\vHICH GRADE (IF HORE THAN ";<br />

13600 PRINT"WHICH GRADE {IF MORE THAN<br />

13700 PRINT"ONE GRADE NEEDS CHANGING, I , ";<br />

13800 PRINT"YOU "yOU HAY MAY CHANGE ONE AT n;<br />

113900 PRINT"A "A TIHE TIME OR CHANGE ALL BY ";<br />

14000 PRINT"ENTERING<br />

14000 PRINT " ENTERING " ;<br />

16699 REM IF OPEN FILES, , THEN CLOSE<br />

116700 IF DV=1 DV~1 THEN CLOSE 1<br />

116710 IF DV=88 THEN CLOSE I:CLOSE 1:CLOSE 2<br />

16720 PRINT:PRINT"WHEN : YOU AREE READY<br />

"<br />

23200 IF Q


MAY/JUNE. MAY/JUNE, <strong>1980</strong>. 198O. ISSUE 4 a. COMPUTE.<br />

n<br />

36054 INPUT"ENTER AN IDENTIFIER FOR ~<br />

36610 REM ERROR CHECKING ROUT INE FOR ~<br />

36054 INPUT"ENTER AN IDENTIFIER FOR -i 36610 REN ERROR CHECKING ROUTINE FOR -i<br />

-.THIS ~ SET OF STUDENTS ";H$ " ^DISK ~DISK IO 10<br />

36058 PRINT#1,H$:IF l IT=lTHENTHEN GOSUB 366100<br />

36620 INPUTI2,E$(1) INPUT#2,E$(1),E$(2),E$(3),E$(4):<br />

, E$(2) , E$(3) ,E$(4 ) :<br />

36062 H$ =STR$(J) = ::PRINT#1,H$:IF PRINT#l,H$:IF IT=l IT=1 •-.<br />

-.IF ~I F E$(1) 1 ) =" = "00" " THEN RETURN<br />

-.THEN GOSUB 366100<br />

36630 REM ELSE THERE IS AN ERROR<br />

360666 H$ =STR$( = STR$(N) :PRINT#l :PRINT#1,H$:IF , IT=l IT=1 •-i 36640 FOR P=lT0 P=1TO4: PRINT E$(P): NEXT P<br />

-.THEN GOSUB 36610<br />

36650 PRINT"CORRECT THE ERROR, IF -i ~<br />

36070 PRINT#1,D$:IF #l , : IF IT=l IT=1 THEN GOSUB36610<br />

,-.POSSIBLE. . TO CONTINUE THE PROGRAM" "<br />

36080 FOR H=1TOJ l 36660 PRINT"PRESS I " PRESS ANY KEY.":CLOSE 1:<br />

:<br />

36081 IF D$="Y" = " THEN PRINTl1 PRINT#1,N$(H): , N$(H) -.CLOSE ~C L O 2<br />

-. ~ GOTO 36084<br />

36670 GET Y$: : IIFF Y$="" " " THEN 36670<br />

36082 REM ELSE PRINT SEQUENCE I # 36680 ON RV GOTO 2905, , 36020<br />

36083 PRINTl1, PRINT#1,STR5(H) STR$(H )<br />

36690 RETURN<br />

36084 IF IT=l IT=1THENTHEN GOSUB 36610<br />

36700 REM ERROR ROUTINE I FOR TAPE<br />

36086 FOR L=l l TO N<br />

367100 IF ST=0 THEN RETURN<br />

360 88 H$=STR$(STUDENT(H,L)):PRINT#1,H$ STUDENT(H , L» :PRINTU,H$<br />

36720 IF ST


72 COMPUTE. MAY I JUNE. lQ80 ISSUE


MAY/JUNE. <strong>1980</strong> I960 ISSUE 4 COMPUTE. 73<br />

A class consists of about fifteen en students per com<br />

m~<br />

puter (our collaborating schools have only one APPLE<br />

each; ; we hope to try the curriculum in multi<br />

l11ulti~<br />

computer classes later.) Five groups of three students<br />

alternate computer pUler use with planning work using graph<br />

paper and marker pens. The off-linee students are<br />

planning their strategies, doing hand-simulations,<br />

hand~ ations,<br />

and observing the online students; for to graduate-<br />

to the next activity, a group must successfullyy<br />

predict the outcome of an assigned "seed" (geo­<br />

metricc pattern, algorithm, , program, etc.) The<br />

activities develop during eighteen een weeks, from a non­<br />

nonlinguistic<br />

color-pattern process called "quilting"<br />

through immediate-mode i a t e ~m and straight-line-codes a i c~code emry<br />

entry<br />

of TURTLEGRAPHICS (Papert, 1970) commands,<br />

the introduction of PASCAL control structures such<br />

as REPEAT. .... .UNTIL and IF. . . ..THEN, , 10 to the<br />

creation of cartoon characters and their animation<br />

with complex programs using the RASCALR animation<br />

system. The output is always color graphics aand music;<br />

the curriculum um steadilyy increases its ""interactivity"<br />

as students learn how to use joystick input to control<br />

various types of motion. There is always an under~<br />

lying g lesson about how programs work. All code is<br />

in a completely structured language (PASCAL),<br />

and is taught" "from the insidc inside OUl out" J) -~<br />

only at<br />

later stages do "environmental details" such as<br />

declarations become of concern. A PASCAL interi<br />

nl er~<br />

preter r is used which scrolls the source-program being<br />

executcd executed on the bottom of the screen (at a con­<br />

trollable rate) while thee program produces its output<br />

on the e top part of the screen. A working system<br />

will be on exhibit at NECC/80. NECC/SO.<br />

The cognitive style of the HSCS Curriculum<br />

The central common fact that unifies our program/<br />

lessons Quilting, Turtlegraphics Turtlcgraphics and more traditional<br />

interactive games is that they sell themselves. No one<br />

has to compel students to do their assignments.<br />

The point at which our curriculum diverges<br />

from ""closed" games is in the fact that the e only<br />

real oopponent in traditional games is a pseudo pscudorandom<br />

number generator, r , orr perhaps another<br />

human. In a cognitive game the opponent is the thc<br />

rich structure of our own ignorance.<br />

. . The<br />

excitement ent of being able to create pattern and<br />

order is as old as the wall-paintings in the caves<br />

of France. It is an essentially y human activity, onc one<br />

at which all players can win. It is also a ''meta-<br />

game', , in which an infinite number of specific<br />

games and traditional games is analogous to that<br />

between a set of blocks and a preassemblcd lOy. toy.<br />

meta­<br />

A different order of learning becomes possible.<br />

.<br />

The design style of the HSCS Curriculum<br />

The fundamental design principle we have<br />

followed owed is to attempt to make each lesson augment<br />

the student's skillss in three areas: discovery,<br />

control, aand design. We e allow students to "play"<br />

with the system as each new feature is introduced,<br />

but they have ""discovery questions" whose answers<br />

they seek as they ""mess around", in more orr less<br />

structured ways. They need to find thee answers to<br />

be allowed access to thee next level of the system.<br />

Studellls Students develop discovery skills by experimentally<br />

answering questions like "what docs this command<br />

do?"<br />

We e ask students to undertake a specific<br />

"challenge", such as the ""shoot-the-dot" game,<br />

to develop their ability 10 to control the computer<br />

by selectingg the correct command and providing<br />

correct values for its operands. Their understanding<br />

g<br />

of the system is built by simulation exercises,<br />

which allow them to predict the behavior of a<br />

command, thus to choose the right command.<br />

Later in the semester, students will begin<br />

writing g programs; but even at earlyy stages there is<br />

the impetus to design input sequences to produce<br />

thee desired pattern. . Students must be able to produce<br />

a sequence of commands which produces the<br />

predicted output on first submission, n , to graduate<br />

to the next t level of the system. .<br />

AnOther Another principle e we have followed can be<br />

summed up in the phrase' "design 'design from the first<br />

experience". We believe that computer science<br />

(orr anything else) should be taught ""from the inside<br />

out". That is, first t experienccs experiences must incorporate<br />

the heart hean of thee mailer matter at hand, with as little<br />

extraneous matter as possible. For instance,<br />

nce,<br />

quilting teaches the fundamental core of the<br />

computing experience: : in repetition of a controlled<br />

process, there is great power. The Quilting lesson<br />

is taught without introducing a word of jargon, j previous assignments, or complex command<br />

sequences. Quilting, and its fundamental message,<br />

can be taught to illiterates. iterates. The second lesson<br />

similarlyy teaches thee relationship between opcrands,<br />

operands,<br />

operators and results. Only y after students have firm<br />

operational skill with a given tool, , do we introduce<br />

terminology, written reference materials and the<br />

ultimately necessary environmental details such as<br />

data declarations and control statements. We are<br />

excited by the prospect of transforming rming gaming, a<br />

traditional problem area for computing tcachers, teachers, into<br />

one of their primary tools.<br />

The authors acknowledge and appreciate the e assistance of their<br />

collaborators: aboralOrs; R. R . M. Aiken, C. E. Hughes, H C. C:. R R. . Gregory<br />

and J. A. Ross (Universit), (University of Tennessee); I.. L. Demarotta Dcmarotta<br />

((H. I-I. C. Ma)'llard <strong>May</strong>nard High School); E. Miner (Alcoa High School).<br />

References<br />

Aiken, R R. . M.; Hughes, C. E.; and Moshell.J. , .1 . M.,<br />

"Computer Science Curriculum For High School Students",<br />

Sludents",<br />

Proceedings ACM/SIGCSE Conrerence, Conference, Kansas Kallsas City, Montana,<br />

February 25, <strong>1980</strong><br />

Moshell.J. , M M. . and Hughes, C. E. ""'RASCAL: Microcomputer<br />

canaan cartoon animation with PASCAL", Proceedings ACM/ ACMI<br />

SIGGRAPH Conference. Conference, Seattle, Washington, , August <strong>1980</strong><br />

Papen. Papert, S., ""Teaching Children n Thinking", Proceedings<br />

IFIP VYorld World Congress all on Complil <strong>Computers</strong> and Education, , Amslt!I"dam Amsterdam, ,<br />

1970.<br />

Postman, Neil, ""The Firs! First Curriculum: um: Comparing School<br />

and Television", Phi Delta Kappan, , 61:3, November 1979.<br />

This work is partially pania )' suppon supported cd by NSF Grant SED-79-18991 1 ©


74 74 COMPUTE. COMPun. MAY/JUNE. /JUNE, 198O. <strong>1980</strong>. ISSUE 44.<br />

A PET '~NSWER BOX" PROGRAM<br />

A PET "ANSWER BOX" PROGRAM<br />

FOR<br />

Coordinator of<br />

TEACHERS<br />

Lack of o f appropriate software has been a persistent<br />

problem for educators interested in using microcomputers<br />

to (Q assist classroom instruction. . This difficulty<br />

is one that is not t likely to LO go away soon.<br />

A great many companies are currently rushing in<br />

to 10 fill the gap. But it will probably take several<br />

years before supply catches calches up with demand in this<br />

burgeoning new area of educational technology.<br />

teehnolQgy.<br />

Meanwhile, M those ofo f us who are arc promoting the e use of<br />

micros for instruction can help hcljJ teachers integrate<br />

their regular classroom materials m with computer<br />

hardware in ways that will w be immediately y useful to<br />

students and teachers alike. This article e briefly bric ny<br />

describes oneo such approach.<br />

.<br />

The public schools of Edina, Minnesota, Minnesola, make<br />

considerable use of microcomputers microcompUlcrs for instruction,<br />

,<br />

particularly at the elementary level. Indeed, , demand<br />

for these machines has been so great that thaI by the fall<br />

of <strong>1980</strong> more than eighty eighl y computers (most ofo f them thcm<br />

PET micros) will be helping students ls improve their Iheir<br />

skills s in the areas off capitalization, punctuation,<br />

n ,<br />

spelling, language usage, and mathematics.<br />

To assist in the accomplishment of this, the<br />

Edina system regularly offers its teachers opportunities<br />

to become participants in microcomputer workshops<br />

designed to integrate the use of printed primed<br />

instructional nal materials with micros. In particular,<br />

the author, urhor , who serves as an instructor at these<br />

workshops, has written a simple program called<br />

ANSWER BOX which has turned out 10 to be both<br />

popular and effective. .<br />

ANSWER BOX assumes thaI that students will bring<br />

printed instructional materials to the micro<br />

and lype type in their answers to problemss att the computer<br />

keyboard. The compulel' computer Ihen then becomes a sophisticated<br />

response device, providing immediate reinforccmenl<br />

ment, , keeping track of student progress, and summarizing<br />

learning results at thee end of each lesson, ,<br />

reinforce<br />

including time on task.<br />

In oorder to prepare ANSWER BOX programs,<br />

teachers need to have oonly y the ability bililY 10 to Iype type<br />

aanswers on data lines. No questions off copyright<br />

arc are involved. . Nothing in thee original printed material<br />

is copied or allered altered in aany way. The answers to<br />

problemss arc are simply entered ered into LO the computer on<br />

the appropriate data lines. The computer docs does the<br />

rest.<br />

Let's '$ sec see how this works. Look aatt Figures 1 and<br />

2 below.<br />

Figure I 1 is a sample instructional nal exercise. It<br />

consists ooff fifteen fteen problems. Each problem presentss<br />

a group ooff words. Is the e group of words a complete<br />

sentence? If so, the student udenl types YES (and<br />

THORWALD ESBENSEN<br />

Coordinator of Elementary Curriculum<br />

THORWALD ESBENSEN<br />

Elementary Curriculum<br />

and Instruction, Edina Public Schools<br />

Edina, Minnesota 55435<br />

Edina, Minnesota 55435<br />

presses the Ihe RETURN key). If not, the student<br />

types NO (and presses the RETURN key). If<br />

the e student's answer is right, a smiling g ANSWER<br />

BOX face appears while e the e student's ' s name Hashes fl on and off ofT underneath it. If the student's slUdent's answer<br />

is wrong, a frowning ANSWER BOX face appearsa with the word WRONG. Meanwhile, M underneath the<br />

ANSWERA BOX, the e right righl answer Hashes fl ono n anda off.<br />

The student sLUdent must then type the right answera before<br />

the e computer will go to the e next problem. problcm .<br />

If the student does not t know the answer to a<br />

problem, , he/she helshe may type I)'pe the question mark (and<br />

press the RETURN" R key). The computer will then<br />

prim print the right answer. However, H the student studcnt must<br />

also type lype the right answera before the e computer computcr will<br />

go to the next problem.<br />

IDENTIFYING COMPLETE SENTENCES<br />

Lesson 23<br />

For each group of words, answer answe.: r YES if [lit- th c group farms forms<br />

a ;i complele complete sentence. Answer NO if the.: group u p dot.:s docs not 1101 form<br />

a complete st.: sentence. ntentt.:.<br />

1. I . Beyond Ikyond the highe.: highest mountain rnOllllwin thai that we.: could sn· see<br />

2. If there tlwre is the slightest doubt in your mind when "hen yuu you<br />

thinkk about it<br />

3. I will wilt sec him tomorrow tolllorruw<br />

4. Last night under a yellow l1l moon<br />

5. j. She lias 1


MAY/JUNE. <strong>1980</strong>. 198O. ISSUE A. COMPUTE. 75<br />

entered ered onn the appropriate priate data lines.<br />

II If' several lessons are to be entered ered on the data<br />

lines, you can occasionally check to see how many<br />

free bytes of memory your PET still has for you u to<br />

use. Typing thee direct command '?FRE(0) fRE(O) will give<br />

you u this s information. If you have an 88KK PET, ,<br />

ANSWER BOX will allow you to enter about 3000<br />

bytes of data before running out of memory. . However,<br />

don't push your luck down to the last few<br />

bytes. Some bytes are consumed when a program runs.<br />

Allow for this.<br />

Lines 100-104 are used to lo print thee name off a<br />

particular ANSWER BOX program. In the present<br />

instance, nce , we are calling it IDENTIFYING IDENTIfYI NG COM­<br />

PLETE SSENTENCES.<br />

ES.<br />

Look at Line Linc 7000. The first data entry is 23,<br />

which is thee number of the lesson (sec (see Figure 1).<br />

The next fifteen entries are the right ans\vers answers for<br />

r<br />

this s lesson. Finally, thee arrow pointing up tellss<br />

the PET that the lesson is over and that thee resultss<br />

should be summarized. Lines 9000·9999 9000-9999 summarize<br />

the e results s of the lesson.<br />

Readers may fee fcc free to copy the listing of<br />

ANSWER BOX and to use it as they think best. bcst .<br />

Readers ers who would rather just buyy a copy off thee<br />

tape itself may do so for S7.95 37.95 from MICRO-ED,<br />

INC., P.O. Box 24156, J56, Minneapolis, M Minnesota, Minnesola, 55424.<br />

The author would be gLad glad to fo resjJond respond Lo to questions and<br />

comments from interested readers.<br />

5 REM BY T. ESBENSEN FOR tUCRO-ED,<br />

MICROED,<br />

-. , INC.P.O. BOX 24156, , MINNEAPOLIS,<br />

-. , MN. . 55424<br />

10 REM USE LINES 7000-7998 FOR DATA.<br />

20 REM PAGE OR LESSON NUMBER SHOULD BE ,<br />

,FIRST -.FIRST DATA ENTRY. .<br />

30 REH REM THEN ENTER ANSWERS. ALL ENTRIES,<br />

, SHOULD BE SEPARATED BY COHHAS .<br />

-. SHOULD BE SEPARATED BY COMMAS.<br />

40 REH REM END EACH LESSON WITH •"<br />

50 REM EXAMPLES: 7000 DATA 1,A,B,C,D,'<br />

1,A,B,C,D,"<br />

60 REMM 7010 DATA 2,WAS,IS,~ 2,WAS,IS,'<br />

70 DINWR$ DIMWR$(100)<br />

95 TI$=" TlS="000000"<br />

"<br />

99 PRINT"fltHv"<br />

PRINT"fiWW<br />

100 PRINT"L~~***************************<br />

-,** *****<br />

101 PRINT".l»>*<br />

".!:.;';'*<br />

102 PRINT"j:>>* IDENTIFYING COMPLETE -.<br />

103 PRINT"x»*<br />

*<br />

104 PRINT"r^>***************************<br />

PRINT"L~~***************************<br />

-,*******<br />

115 PRINT"^":INPUT"STUDENTIS FIRST -.<br />

,NAHE;';'2~~~";NA$<br />

-.LE$<br />

140 PRINT"6":RESTORE<br />

PRINT"fi":RESTORE<br />

150 READD5<br />

155 PRIN<br />

-,HING"<br />

-.HING"<br />

*<br />

102 PRINT".!:.;';'* IDENTIFYING COMPLETE ,<br />

,SENTENCES -■SENTENCES *<br />

103 PRINT".!:.;';'*<br />

115 PRINT"v":INPUT"STUDENT'S FIRST,<br />

120 IFNA$="2"THEN90<br />

"1"THEN90<br />

130 PRINT"^":INPUT"LESSON<br />

"v":INP NUMBER;';'2~~~" ;<br />

,LE$<br />

150 READD$<br />

155 PRINT"hvvvHvHHHHHHHH;'.!:.SEARC<br />

160 IFD$="""THENPRINT"vSORRY. IFD?=""~"THENPRINT"^SORRY. LESSON,<br />

-i<br />

-^NUMBER ,NUMBER NOT FOUND.":PRINT:PRINT"TRY<br />

PRINT"TRY<br />

,-i AGAIN.":GOT0130<br />

":GOTO130<br />

170 IFD$=LE$THEN190<br />

180 GOT0150<br />

180 GOTO150<br />

190 PRINT"6"<br />

PRINT"fi"<br />

200 READA$<br />

210 IFA$="""THEN9000<br />

210 IFA$="'''THEN9000<br />

220 P=P+l<br />

P=P+1<br />

225 IFP9THENSP=1<br />

227 IFP>9THENSP=1<br />

300 PRINT"6"<br />

PRINT"fi"<br />

301 PRINT" 99999999999999999999<br />

302 PRINT" 5. .6. £<br />

303 PRINT" 5. 5_ ANSWER ANS\'IER BOX £ .6.<br />

304 PRINT" 59999999999999999996<br />

305 PRINT" 999995 .6. £<br />

306 PRINT" 5. 5_ 5. 5_ .6. £<br />

307 PRINT" 5. 5_ 5.<br />

308 PRINT" 5. 5. 5 .6. £<br />

309 PRINT" 888885 £ .6.<br />

310 PRINT" 5. 5_ .6. £<br />

311 PRINT" 5. 5 .2. £<br />

312 PRINT" 5. 5_ .6. £<br />

313 PRINT" 88888888888888888888<br />

320 PRINT" O###I#P<br />

O#####P<br />

321 PRINT" ERRORS .%. £ _L ~<br />

322 PRINT" LSSSSS L$$$$$: ;<br />

326 PRINT" O##PO##P<br />

327 PRINT" TH1E TIME SPENT.%. &_!_&_!_ ~ ,<br />

328 PRINT" LSS; LS$:L$$: LSS;<br />

329 PRINT" MIN. SEC.<br />

360 PRINT"MvvvHHvvvHHHHHHHHH<br />

PRINT"!<br />

370<br />

-,~~";E<br />

370 PRINT"hvvvvvvvvvvvvvvvvvv;.;.;.;.;.t;.;.;.;.;.<br />

-,~~~~";<br />

375 PRINTMID$(TI$,3,2) ;";';''';MID$(TI$,5,<br />

375 PRINTMID$(TI$,3,2) ; "»" ;MID$ (TI$ , 5<br />

,2) i2)<br />

380 PRINT"hvvvvvvv;';''';SPC(SP) ^W^tt^W^" ; ;P;<br />

382 INPUT";';';'l~~~";R$<br />

"> »2


76 76 COMPUTE. MAY/JUNE.1QBO <strong>1980</strong> ISSUE A. 4,<br />

765 PRINT"-*";<br />

PRINT"~";<br />

770 NEXTZ<br />

770 NEXTZ<br />

780 PRINT"r";NA$;<br />

PRINT"f";NA$ ;<br />

782 FORZ=1TOLEN(NA?) FORZ-ITOLEN( NA$ ) ::PRINT"4 PRINTS "; :NEXTZ<br />

783 FORZ=lTO200:NEXTZ<br />

FORZ-IT0200 : NEXTZ<br />

784 IFKK=5THENKK=0:GOTO190<br />

- 5THENKK-0:GOT0190<br />

786 GOTO750 GOT0750<br />

800 PRINT"fi":E=E+l:IFR$="?"THENE=E-l<br />

->A=A+1:GOTO820<br />

~A-A+l:GOT0820<br />

800 PRINT"6":E-E+l:IFR$-"?"THENE-E-l:<br />

801 PRINT" 99999999999999999999<br />

99999999999999999999<br />

801 PRINT"<br />

802 PRINT"<br />

" 5. ~ £ i<br />

803 PRINT"<br />

" 5NNNNNNNNNNMMMMMMMM6<br />

804 PRINT"<br />

" 59999999999999999996<br />

805 PRINT"<br />

" .2..5. NNNNN .6..9.<br />

806 PRINT" .5..5. NM NM ii<br />

807 PRINT" .5..5. M@ l± 3± @N ii<br />

808 PRINT" .5..5. 11 II ii<br />

809 PRINT"<br />

INT" Bl ~ WRONG IVRONG I! i.B.<br />

810 PRINT"<br />

" ~ N $$$$$S 5 5 5555 M i<br />

811 PRINT"<br />

" ~ ~ N??????M ' i<br />

812 PRINT"<br />

" 5. ~ ########<br />

# ~ 6<br />

813 81 3 PRINT" 88888888888888888888<br />

820 PRINT"MttvttvtvtvtvtvHHHHHHH<br />

820 PRINT"<br />

..,~~~ " ;<br />

830 F0RZ=lT0LEN(A$)/2<br />

830 FORZ- I TOLEN(A$ )/2<br />

840 PRINT"-*"; PRINT"4";<br />

845 NEX TZ<br />

845 NEXTZ<br />

850 PRINT"ji";A$;<br />

PRINT"I"; 852 KK=KK+1 KK-KK+l<br />

855 FORZ=1TO200:NEXTZ<br />

FORZ-IT0200:NEXTZ<br />

860 FORZ=1TOLEN{A$)<br />

FORZ-ITOLEN(A$)<br />

865 PRINT"-*";<br />

PRINT"4 ";<br />

870 NEXTZ<br />

870 NEXTZ<br />

880 PRINT"r";A$;<br />

PRINT"f "; ;<br />

882 FORZ-ITOLEN( FORZ=lTOLEN(A$) ) : PRINT"4 PRINT"-*"; "; :NEXTZ: 883 FORZ-IT0 FORZ=lTO200:NEXTZ<br />

200:NEXTZ<br />

884 GOSUB900<br />

885 IFKK-5THENKK-0:GOT0300<br />

IFKK=5THENKK=0:GOTO300<br />

886 GOT0850<br />

886 GOTO850<br />

900 WR$(P WR$(P)=STR$(P)<br />

) -STR$(P)<br />

910 RETURN<br />

7000 DATA 23 , NO , NO , YES , NO,YES , NO ,NO, YES ,<br />

7000 DATA 23,NO,NO,YES,NO,YES,NO,NO,YES,<br />

~YES,YES,NO,NO,NO,YES,YES,'<br />

-.YES, A<br />

79997 9 DATA"<br />

DATA~~<br />

9000 PRINT"6tsUMMARY PRINT"fi^SUMMARY OF RESULTS FOR ~ i<br />

~LESSON<br />

-.LESSON "";LE$<br />

9010 PRTNT"88888888888888888888888888888<br />

901 0 PRINT"88888888888888888888888888888<br />

.,..8....8....8. II<br />

9015<br />

PRINT"tSTUDENT PRINT'^STUDENT'S ' S FIRST NAME: : ";NA$<br />

9020<br />

PRINT'^NUMBER "tNUMBER OF PROBLEr1S: PROBLEMS:";P<br />

9030<br />

PRINT"^NUMBER NT"tNUMBER OF ERRORS:";E<br />

E<br />

9040<br />

PRINT'^COMPUTER NT"tCOMPUTER GAVE ANSI'IER ANSWER:";A<br />

A<br />

9050<br />

PRINT"tTI PRINT'^TIME USED: ";MID$(TI$,3,2);<br />

3 , ;<br />

~" V MINUTE(S) AND ";MID$(TI$,5,2);<br />

~lID$(T I$, 5 ,2);<br />

~" -i" SECOND( (S) S ) "<br />

9060<br />

PRINT"tSPECIFIC PRINT'^SPECIFIC PROBLEMS HI MISSED OR"<br />

9062<br />

PRINT pbtnt"IIIIH##II##I#III###I# ■'*«**«**###**##***#****##**#" ###### "<br />

906 90655<br />

PRINT"ANSWERED RED BY THE COHPUTER"<br />

COMPUTER"<br />

9070<br />

PRINT PPTMT»#****##**####*####*###*#"<br />

"II . #I ###I.IIII I I##II #' ## "<br />

9090<br />

FORZ-ITOP<br />

FORZ=1TOP<br />

91 9100 00 PRINT"L,"i PRINT"x";WR$(Z);">";<br />

i" ~ ";<br />

9105<br />

IFWR$(Z)=""THENPRINT"-*"; ) -""THENPRINT "4 " ;::C=C-1<br />

C-C-l<br />

9110<br />

C-C+l:IFC-10THENC-0 C=C+1:IFC=10THENC=0:PRINT"^"<br />

: PRINT"t "<br />

9120<br />

NEXTZZ<br />

9125<br />

PR PRINT I NT<br />

9130 PR PRTNT"99999999999999999999999999999<br />

I 9130<br />

9999<br />

9999<br />

~ -.99999999" IF> q<br />

END ~ ^<br />

E<br />

D<br />

E<br />

D<br />

U<br />

U<br />

C<br />

C<br />

A<br />

T<br />

O<br />

R<br />

S<br />

T<br />

o<br />

BECOME EDUCATED<br />

BECOME EDUCATED<br />

<strong>Commodore</strong> Business Machines and the<br />

ETC Corp. are offering a FREE computer<br />

to any educational institution when they<br />

purchase 2 CBM personal computers ... . ..<br />

..... . and ETC will train your staff at NO<br />

EXTRA CHARGE.<br />

INTERESTED?<br />

CONTACT<br />

T<br />

R ..<br />

A Division of<br />

, J •• I!<br />

" - :-o?~. 111111 111111<br />

S<br />

~G[fi]IP[I!L-LSC:::<br />

fe<br />

1""1111111 P.O. Box G<br />

Imi II mil p ° 8ox G<br />

[5,]208=~ mIII III APex Apex, NN.C. c 27502<br />

~_ III! 1111 II Illll 1111 1-919-362-4200<br />

Special Educational Software Packages<br />

Special Educational Software Packages<br />

Also Available<br />

Located 1/2 mile East of intersection of<br />

US 1 South & Old N.C. 42 in Apex<br />

AlARI And SRA<br />

ATARI And SRA<br />

Announce Educational<br />

Agreement<br />

Agreement<br />

Science Research Associales, Associates, Inc. (SRA) aand<br />

Atari lari Inc. have announced lhe the signing of a l11u multi-<br />

lli ~<br />

faceted agreement concerning the developmcnl development of<br />

educational computer courseware and sale of Ara Atari<br />

Personal Computer Systems to thee educational<br />

community. Under the agreemcllI agreement, , SSRA R A ... will vill developp<br />

educational computer courscware courseware programs in the<br />

areas off reading, language arts, mathematics, lh cm mics, scic science<br />

and social studies forr use in thc the home oonn Atari<br />

pcrsona persona] l computers. Atari will havc have the right to<br />

markct market SRA·developcd SRA-developed courseware programs intended nded<br />

lo forr home use. .<br />

SRAA will also produce aand market rkel lO to schools<br />

a broad rangc range ooff educational computer pUler programs<br />

designed for use in the e classroom with pcrsonal<br />

personal<br />

computers.<br />

Atari has appointed inled SSRA R A as the e organization<br />

lion<br />

with primary rcsponsibi responsibility y forr the sales of" Atari's<br />

personal computer r products and services to the educa ­<br />

tional community, m which includes udcs all types oolf educa­<br />

tionall institutions, ns, public and private e from prc·school<br />

pie-school<br />

through university y level.<br />

For more information, , contact Atari® Consumer<br />

division, 1265 Borregas Borrcgas Avenue, Sunnyvale, CCA A 94086(g<br />

94086©


MAY/JUNE. I 198O. <strong>1980</strong>. ISSUE 4. COMPUTE. 77 n<br />

PETGETWITH<br />

FLASHING<br />

CURSOR<br />

Gary Greenberg<br />

35-63 SOth St.<br />

Jackson Hts., , NY 11372<br />

There are many reasons why some programmers<br />

prefer to use the GET statement for keyboard input<br />

rather than the INPUT statement. ent. One reason of<br />

interest to many beginners is that the ,he GET statement<br />

can help prevent falling out of the program<br />

when the wrong response is made. For example,<br />

pressing RETURN as a response to INPUT causes<br />

you to fall out of the program. Similarly if you<br />

call for a numeric variable and type an alphabetic<br />

character, again you are in trouble.<br />

The GET statementt works by checking the keyboard<br />

input buffer for the next character. However, H without the benefit of appropriate software routines,<br />

the GET statement collects only one character, does<br />

not provide a cursor for a prompt, does not print<br />

the character on the screen and does not permit you<br />

to erase the result before entering 'he the data.<br />

Additionally, the statement is executed so rapidly<br />

you will probably not be able to enter it in time to<br />

get it accepted. You do not use a carriage return<br />

to signal the end of the entry.<br />

A number of magazines have provided software<br />

pieces to enable you to use the GET but they do<br />

not permit you to delete and correct the entry before<br />

entering it into the program. The following program<br />

permits you to use the GET statement instead of the<br />

INPUT statement. It will permit you to have a<br />

flashing cursor and it will permit you to delete<br />

and correct entries before committing them to the<br />

computer. You use the carriage return to signal the<br />

end of your entry. You will not fall out of your<br />

program if you respond with a carriage return.<br />

program if you respond with a carriage return.<br />

Program Listing<br />

Program Listing<br />

100 PRINT'WHAT " IS ANSWER?";:GOSUB A 1000<br />

110 PRINTZ1$:Z1 PRINTZIS,ZI = ~ VAL(ZI$),PRINTZI<br />

VAL{Z1S):PRINTZ1<br />

1000 REM GET WITH FLASHING CURSOR<br />

1010 ZS . ····,ZIS = ....<br />

1010 ZS -"":Z1| =""<br />

1020 IU2U PRINT"R ' R rd" rcl";:FORI :: FOIU 0: = I TTOO 35:NEXTI<br />

Gary Greenberg<br />

35-63 80th St.<br />

1030 PRINT"cl";:FORI I'RI Nr 'd " "FORI = - I 1 ·f TOO 35,NEXT 35:NEXTII<br />

1040 [040GETZ$:IFZS=""THEN1020<br />

GETZS, = .... TH EN 1020<br />

1050 REM ERASE ENTRY CHECK<br />

1060 IFZS IFZ$ < > CHR$(20)THEN HRS(20)THEN 1110<br />

10<br />

1070 IF2I-""THEN I FZS •.. " EN 1020<br />

1080 ZZ . =LEN(Z1$):IF LEN(ZIS), IF ZZ < I 1 THEN 1020<br />

1090 ZIS-LEFTS(Zl$,ZZ-l|:PRINT"d";<br />

= I S.ZZ- I ), I' ·· d ··:<br />

1100 GOTO 1020<br />

1110 IFZS =CHRS(13) OR ZS Z$ =CHRS(141) THEN 1150<br />

1120 PRINT ZS Z$; ,<br />

1130ZIS Z1$=Z1$+Z$ · ZIS + ZS<br />

1140 GOTO 1020<br />

1150 GETZ8:IF ZS, ZS Z$ ~ -- ····THEN ""THEN 1150<br />

50<br />

1160 RETURN<br />

The program is a subroutine that can be called in<br />

place of any INPUT statements. Here's how it works_<br />

works.<br />

LINE 100: The print message is used as a prompt.<br />

GET does not provide a question mark and you will<br />

have to put it into the PRINT statement if you<br />

want it. After the prompt is printed the program<br />

jumps to the subroutine,<br />

subroutine.<br />

LINE 110: This line is the line after the subroutine<br />

is executed. You can use any program statements you<br />

wanl. want. The one here is just an illustration. The PRINT<br />

Z Zl$ 1 $ is redundant since it is printed out in the subroutine.<br />

The VAL statement is used to convert the<br />

STRING to a NUMERIC. You should note that the<br />

subroutine leaves the cursor immediately after the<br />

entry. If you want a linefeed you will have to<br />

insert a I"PRINT:" I I' in line 110.<br />

LINE 1000: The subroutine starts here.<br />

LINE 1010: 10: Z$ will be used to collect the data<br />

typed in. ZI$ Zl$ will be used to build a string out of<br />

the data entered. This line initializes both strings<br />

as Nulls s (empty).<br />

LINES 1020-10.30: 1020-1030: These lines simulate the cursor.<br />

The two FOR-NEXT routines are time delays. . To<br />

speed up the flashing cursor, , shorten the loops.<br />

To slow down the cursor, , increase the number of<br />

loops. . The PRINT statements produce a REVERSE<br />

FIELD, SPACE (becomes a solid block in Reverse<br />

field), REVERSE OFF, CURSOR LEFT. This is<br />

followed by the delay and then PRINT SPACE<br />

and CURSOR LEFT again followed owed by a delay. By<br />

using different characters instead of the space character<br />

you can create some interesting cursors. This<br />

produces an interesting wig-wag effect.<br />

LINE 1040: The GET checks the keyboard buffer.<br />

If it is empty (null s'ring) string) it starts the cursor<br />

flashing again while it waits for data. Once a<br />

character has been entered the program moves on to<br />

the next line where it begins s to examine the nature<br />

of the character entered.<br />

LINE 1050-1060: These lines check for a ""delete".<br />

LINE 1070: If ""delete" is entered and there is no<br />

data entered the program returns to the flashing<br />

cursor.<br />

LINE 1080: If data has been entered this line<br />

checks to see how long the data is. This check is<br />

to make sure that the I' "delete" does not go past<br />

the beginning entry point on the screen_<br />

screen.<br />

LINE 1090: The last character in the string is<br />

deleted. You can continue to delete characters until<br />

you have erased the whole string, and the program<br />

keeps checking for the delete every time you make an<br />

entry.<br />

LINE 1100: You return to the flashing cursor<br />

waiting for the next entry.<br />

LINES 1110-1140: These lines first check to see if<br />

you have hit "carriage return" or shifted "carriage<br />

return". rn " . If not, then the program adds Z$ to Zl$ Z 1 $ to


78 COMPUTE. MAY/JUNE. <strong>1980</strong>. ISSUE 4.<br />

keep building 'he ihe string en'ry. entry. Af,er After each character<br />

is added to Z Zl$ 1 $ the program returns to the flashing<br />

cursor. When the carriage return is pressed it is the<br />

e<br />

signal that the entry is complete and you branch<br />

to 1150.<br />

LINE 1150: This line is used to empty 'he the buffer.<br />

Sometimes, when you enter data rapidly, there is<br />

information retained in the buffer that you haven't ' t<br />

accessed. If you don't ' t clear it out then the next<br />

time you call the routine, ,he the old unused data will<br />

be entered in response '0 to 'he the GET command before<br />

you have a chance to use your own input.<br />

LINE 1160: This re,urns returns control to the main body<br />

of the e program at line 110. 2 may enter a single leller. letter, a word, word. or the complete text to be decoded. The Tne compuler<br />

computer<br />

will respond by displaying the corresponding deciphered leller. letter, word, . or lex!.<br />

text.<br />

The program will permit user '-I f\ to create an encoded message which he may mail or transmit to user 112, §2, assuming both userss have access to the cryptogram program. The code<br />

number should also be included with the message in order to permit user n #2 to have his computer decode the message it if he encounters difficulty.<br />

The cryptogram program is designed tor for use with either BK 8K or 16/32KK PET compulers. computers. 11 It rs is provided on casselle cassette tape: : comes with complete Instructions: instructions: and sells tor lor S20. $20. It may<br />

be obtained from your local computer dealer or, or. if unavaifable, unavailable, it may rray be purchased directly trom from Microphys. .<br />

Note: A free, . educational software catalogue is available upon request from Microphys. . This catalog describes over 140 programs currently available. .


MAY/JUNE. <strong>1980</strong>. 198O. IS$UE ISSUE 4. COMPUTE. 79<br />

PUT YOUR PET<br />

PUT YOUR PET<br />

ABOVE THE CROWD!<br />

Link it with GPA ELECTRONICS'<br />

Programmable, Intelligent 110. I/O.<br />

Not just a<br />

telecommunications<br />

I/O. Not just an<br />

intelligent hard copy<br />

interface. GPA's<br />

Intelligent I/O O is a<br />

COMPLETE<br />

S MICROCOMPUTER<br />

on a a41/2"x7 4Y2 ""card!<br />

Programmable via Resident Monitor in PROM,<br />

the Intelligent I/O puts your PET<br />

in communication with the real world,<br />

or with other computers, large or small.<br />

Programmable via Resident Monitor in PROM,<br />

the Intelligent I/O puts your PET<br />

FEATURES:<br />

FEATURES:<br />

• 6502 Microprocessor.<br />

• 2K E-PROM; I IKK RAM as buffer.<br />

• Fully IEEE488 IEEE-488 compatible and addressable.<br />

*• Serial and parallel 110 I/O through four ports. Device can<br />

communicate with two peripherals simultaneously;<br />

RS·232 RS-232 devices can communicate with parallel<br />

devices.<br />

*• Hard copy interfacing with either RS·232 RS-232 or 20mA<br />

devices (Please specify.)<br />

)<br />

• Accommodates all baud rates to 9600.<br />

*• Selectable line feed, , carriage return delay and characters<br />

per line.<br />

• Supports standard EIA modem-\9M<br />

MonvMk-. CA ^5454<br />

(707)984-6:70<br />

• PET k I ~Itl\'d II'3M ml ri> of Commodono RusiIW!S§ MMChine.<br />

* I'll Is a registered [rude marl of <strong>Commodore</strong> ill- ■ Machines.<br />

Two "Mini" Reviews:<br />

Robert Lock, Editor<br />

AlARI BASIC CARDS 24 pages, $4.95<br />

ATARI BASIC CARDS 24 pages, $4.95<br />

Micronotions<br />

Micronofions<br />

1929 Northport Drive #6<br />

Madison, Wisconsin 537O4<br />

Madison, Wisconsin 53704<br />

Len Lindsay's Atari Basic Cardss are simply that. . .a<br />

comprehensive heavy-paper pe r booklet covering the<br />

commands and syntax off Atari BASIC. . The preliminary<br />

copy I read was a handy size, 414" J;4. " by II 11" " with<br />

four commands per page. The back of each page is left<br />

blank a so the useru may jot j in his or her own helpful<br />

hints. The command sections are identical in size<br />

a nd a re arranged so you can cul them OU1 , if you pre­<br />

and are arranged so you can cut them out, if you pre<br />

fer, , and use a small a card filee forr reference.<br />

Each comma nd is presented with syntax, an<br />

Each command is presented with syntax, an<br />

example of useu and brief definition. Best of all for<br />

beginners— beginners- and aren't we all at this point— point- is the<br />

"see also" cross reference presented with most of<br />

the commands.<br />

the commands.<br />

Although the booklet isn't ' t typeset, the reproduced<br />

printer output is extremely clear and easy to<br />

rcad. At $4.95 (approxima tely) Ata ri Basic Cards is a<br />

read. At $4.95 (approximately) Atari Basic Cards is a<br />

recommended addition to the small (but growing)<br />

amount of Atari information available.<br />

A Pre-review Review. . ....<br />

Mailing List $99.95<br />

Mailing List $99.95<br />

Dr. Daley's Software<br />

425 Grove Ave.,<br />

Berrien Springs, MI Ml 49103<br />

491O3<br />

I haven't time this issue to give a real review of Mailing<br />

List, but felt it was important enough to comment on. .<br />

Richard a Daley is adopting a style of programming thai a t<br />

I think is impon important. His mailing ing list program is designed<br />

so we, the users, have a great deal to say in<br />

structuring our files aand defining ng how we want our<br />

data base to look. You can definee your own sort keys,<br />

pull out subsets, etc. We e are currently using g it, , with<br />

some in-house output modifications, to maintain our<br />

whole dealer data baseb on a 32K CCBM with attached<br />

disk drives and NEC Spinwriter.<br />

I asked Joretta j Klepfer r to look over mym y comments<br />

and here are hers:<br />

You might add thatt it is easy to do editing,<br />

updating, u maintenance a nce aand back-up of data files.<br />

You can store an output format file on disk.<br />

Even more, you can create your own format of<br />

Even more, you can create your own format of<br />

the data for printing.<br />

Okay. Thanks, Jo. } We'll 'lIlookJorward look forward 10 to your review ©<br />

next time. .


80 COMPUTE.<br />

MAY/JUNE, 198O <strong>1980</strong> ISSUE ISSuE 4~<br />

Get a load of this • • •<br />

Instant SoftwareM<br />

Ask for Instant Software at a computer store near you.<br />

Ask for Instant Software at a computer store near you.<br />

u o<br />

PET UTILITY I<br />

You're working under a<br />

serious handicap if il you can't write programs in<br />

machine language. The PET Utility 1I package<br />

gives you the tools you need:<br />

• eMonitr Monitr-The - Monitr program lets you write,<br />

edit, save, and verify ly any machine language<br />

and/or BASIC program. Just load and run the<br />

Monitr program and then load the program you<br />

want to edit.<br />

~. PET _<br />

•Programmer's .Programmer's Calculator-This - Thisprogram will ~<br />

convert numbers into the binary, octal, dec<br />

imal, Imal, and hexadecimal systems and function funclion ·,.-;· .... ' ;.· ;; · , ,\~ N _'"<br />

conver as a floating 1I031ing<br />

t numbers point<br />

into calculator.<br />

the binary.<br />

It II<br />

octal. will also<br />

dec- ~=~~~~~~~~:!<br />

,...<br />

~" ~' !~'<br />

_<br />

~" ~' ~ '.~_7'~"'~!J~"'~;~~<br />

display all four lour numbering systems simultaneously<br />

and allow you to handle large num·<br />

bers limited only by the size Size of your screen.<br />

For the 8K PET. Order No. 0105P. 010SP. S9.95.<br />

MORTGAGE WITH PREPAYMENT OPTION/ OPTIONI<br />

FINANCIER These two programs will more<br />

than pay tor for themselves if you mortgage a<br />

home or make investments:<br />

•Mortgage -Mortgage with Prepayment Option - Calcu·<br />

late mortgage payment schedules and save<br />

money with prepayments.<br />

•Financier -Financier —Calculate - which investment will Will<br />

pay you the most, figure annual depreciation,<br />

and compute the cost of borrowing, borrowing. easily<br />

and quickly. qUickly.<br />

All you need to become a financial wizard<br />

with a 16K Apple and Integer BASIC. BASIC, Order<br />

No. 0094AS7.95.<br />

SPACE WARS You must sl protect your planet<br />

against a wide variety of ahen alien attacks. In·<br />

cluded are:<br />

-•Space War —One -One or two players can pilot<br />

their saucers and duel with laser beams or<br />

shoal shoot stars.<br />

-•Star Ship Attack-Your - mission is to pro·<br />

tect the food station satellites from destruc·<br />

tion by the enemy star ship. You must cap· caplure,<br />

destroy. destroy, or drive off the attacking ship.<br />

-Battlefield • Battlefield-Guess - the location of the four (our<br />

ture.<br />

enemy divisions and destroy them before<br />

your lorces forces are wiped out.<br />

Engaging in battle requires s the Apple BK 8K and<br />

Integer BASIC. Order No. 0096A $7.95.<br />

S7.95.<br />

ACCOUNTING ASSISTANT This ThiS package<br />

will help any businessman solve many of<br />

those day-to-day day·to·day financial problems. Includ·<br />

ed aie: are:<br />

•Loan -Loan Amortization Schedule -— ThiS This<br />

program<br />

will give you a complete breakdown of any<br />

loan or investment.<br />

•Depreciation - Schedule-You - can get a depreciation<br />

schedule using anyone ol of the<br />

following follOWing methods: straight line, sum of<br />

years-digits, years·digits, declining balance, units of pro·<br />

duction, ductlon, or machine hours.<br />

This package is available for both the PET<br />

and Apple. II It requires the Apple 16K and Applesoft<br />

II BASIC, BASIC. Order No. 0088A $7.95 S7,95 or the PET<br />

BK. 8K. Order no. 0048P S7.95.<br />

$7.95.<br />

MIMIC Test your memory and rellexes reflexes with<br />

Ihe the five differenl different versions of this game, game. You<br />

must match the sequence and location of<br />

signals displayed by your Apple. Apple, You'll need<br />

an Apple with 24K and Integer BASIC. Order<br />

No. 0025A S7.95.<br />

$7.95.<br />

HAM PACKAGE I This versatile package lets<br />

you solve many of the problems commonly<br />

encountered in electronics design. With your<br />

8K PET, you have a choice of:<br />

-Basic •Basic Electronics with Voltage Divider- ­<br />

Solve problems involving Ohm's Law. voltage<br />

dividers. dividers, and RC time constants.<br />

-Dipole •Dipole and Yagi Antennas-Design - Oesign anten tennas<br />

easily, without tedious calCU calculations. lations,<br />

This is the periect perfect package for any ham or<br />

technician. Order No. 0054P S7.9S.<br />

S7.95.<br />

SAHARA WARRIORS Enjoy all the gritty<br />

realism 01 of desert warfare:<br />

-Commando •Commando—- You must send your commandoes<br />

to trapp a German general and cut him off<br />

f<br />

from hiS his troops,<br />

troops.<br />

-•French Foreign Legion-The - battalions of<br />

the Foreign Legion are in a race with<br />

the Arabs. Which side will get its ballalions<br />

battalions<br />

into the oasIS oasis in the shortest time? You and a<br />

friend can find oul. out.<br />

Both programs in this paCkage package require an<br />

Apple 8K and Integer<br />

BASIC. Order No. 0080A<br />

S7.95.<br />

$7.95.<br />

CODE NAME:CIPHER Enjoy that same feel·<br />

ing of intrigue and discovery with the Code<br />

Name: Cipher package. Included are:<br />

•Memory -Memory Game-Would - you like to match<br />

your memory against the computer's? You<br />

can with the Memory Game.<br />

•Codemaster-One -Codemasler - player types in In a word,<br />

phrase, or sentence, tence. and the PET translates<br />

that Ihat message into a cryptogram. cryptogram, The other<br />

player must break bleak the code and solve the<br />

cryptogram ram in the shortestt lime time possible.<br />

•Deceittul -Oeceitful Mindmaster Mindmasler-— Thiss Isn't isn't your ordinary<br />

Mastermind-type game. You must<br />

guess the five letters in the hidden code<br />

word.<br />

-•Code Breaker —Cracking - this iS code won't be<br />

as easy as crackmg cracking walnuts. You'll need to<br />

flex your mental muscles tes to win this game.<br />

t! If you wantt a menial mental challenge. challenge, then Code<br />

Name: Cipher IS is for you. . For the BK 8K PET.<br />

Order No. 0112P. S7.95.<br />

$7.95.<br />

r---TO ORDER: --~<br />

— TO ORDER: —<br />

Look lor for these Ihese programs at the dealer<br />

nearest you (See the list on the next<br />

page), page). If your store does not stocklnstant<br />

Software send your order with<br />

payment 10: to:<br />

Insl<br />

Instant Software Inc. .<br />

Order Dept.<br />

Depl.<br />

Peterborough. Peterborough, N.H. 03458<br />

(Add $1.00 lor for handling)<br />

or cali call loll·lree toll-free 1·800·258·5473 1-800-258-5473 (VISA.<br />

Master Charge and American Express<br />

accepted).<br />

Ask your locall dealer for the latest Instant<br />

Software catalog or write: Instant Software<br />

Catalog Dept., Peterborough, N N.H.<br />

.<br />

03458<br />

Copyllght Copyright <strong>1980</strong><br />

by tn Instant Sl am SOtlw81C Software Inc<br />

PeterbOrough Peterborough. New HarnpslllfC Hampshire 03


MAY/JUNE. <strong>1980</strong> 198O ISSUE 4 A. COMPUTE.<br />

81<br />

Ask for Instant Software at a computer store near you.<br />

Ask for Instant Software at a computer store near you.<br />

Alabema<br />

Alabama<br />

Compute,llnd Computorland01 olJlck..anvili'<br />

Jacksonville<br />

2777-6 University Blvd. Anderaoo Anderson<br />

Computars ...<br />

2111-6 Unlv.,slly BlvCl. W.<br />

Jacksonville<br />

lIse 3156Unlvers University tty Or Dr.. Huntsvttte<br />

Huntsvllle Jicksonvili.<br />

Computer Shack<br />

Computertl Computerland 01 olHuntsvltte<br />

Huntsvllle Compuler Sh" k<br />

Unlvsrslty Dr.. Huntsvllle 33J6 333EBe.ch BoactiBlvCl Blvd.. Jicklonvllle<br />

Jacksonville<br />

3020 Unl'ier,lty Or Hunl'vltte<br />

Olensky Bras<br />

CurU, CurtisWl Watsrs te" Enll'IIfISeJ<br />

Enterprises<br />

O1en.ky Bro •.<br />

3763 Alrpoit Blvd , Mobile<br />

23e 236hlbot TalbotAye. Ave , Mllbou,n.<br />

Melbourne<br />

37&3 AlrpoM BtvCl .• Mobn,<br />

He"h HeathKil KitElect,onlc<br />

Electronic<br />

Arizona<br />

~W 405 W. . 181h ifllhAve . Center. Center, HI.leah<br />

Hlaleah<br />

Hem Shack<br />

Him Shick<br />

HIS HISComputermation<br />

Compulermallon<br />

. 450 SO 6- 6-AN. A 161 letnS!., h St.. Phoenb<br />

Phoenix<br />

1296 1295Cypress A"Tllbol AvTalbotAve_ Ave., M.lbou,ne<br />

Melbourne<br />

MUiet. MilletsTV & SlR.dlo<br />

Radio<br />

Hellh Heath Kit Electronic<br />

62 621 t Ent East BrOldw.y. Broadway, Me" Mesa<br />

. 4705 7CY.j W. 16th Ave. . Cenl.r. Canter, Hialeah<br />

California<br />

HIS Compute. AJ ... Ontario Onterlo<br />

Rt RI 57 51 Allen Rd Ad .•. Hackettslown<br />

H.ckel1110wn<br />

Compute' ComPU ler Workshoppe<br />

England<br />

3848 3846William WolIl,m Penn Hwy, HVI")'. Monroevill Monroevlli.<br />

The Tile Bargain Ba,glln Brothers B,others<br />

Tamays Tilmays & Farr FI" Ltd l id.<br />

Glen Olen Roc Shopping Center Cenle.<br />

Computerland Compouterllnd of 01 Hamsburg H""lourg<br />

4, Morgan Morgan St., 51.. London london<br />

216 21{,S


Have You Been<br />

Have You Been<br />

Bitten By The<br />

Computer Bug?<br />

Computer Bug?<br />

Be A Computer<br />

Literate<br />

Literate<br />

A first introduction to the computer<br />

world for children age 10 to 14. Full color<br />

diagrams, drawings, photos and large<br />

type make this book easy to read and<br />

understand. Written by Marion J . Ball<br />

understand. Written by Marion J. Ball<br />

and Sylvia Charp. This informative 62-<br />

page book is used In in many school<br />

systems. Softbound (6H [6H]$3.95. ) Creative Computing<br />

Magazine<br />

Creative Computing has long been<br />

Number 1 in applications and software for<br />

micros, micros. minis', and time-sharing time·sharing systems<br />

for homes, schools ' and small busi·<br />

nesses.<br />

Loads of applications ions every<br />

issue: text editing, ing , graphics, communi·<br />

cations, artificial intelligence, simula·<br />

tions, data base and file systems, music<br />

synthesis, analog control. Complete pro·<br />

grams with sample runs. Programming<br />

techniques: sort algorithms, file struc·<br />

tures, lures, shuffling, etc. elc. Coverage of o f elec·<br />

tronic Ironic and video games and other related<br />

consumerelectronics electronics products, too.<br />

Just getting started? Then turn to our<br />

technology tutorials, tUlorials, learning activities,<br />

short programs, and problem solving<br />

pages. No-nonsense No·nonsense book reviews, too.<br />

Even some fiction<br />

and foolishness.<br />

Subscriptions: 1 year$15, 3 years $40.<br />

.<br />

Foreign, , add $9/year / surface postage. postage,<br />

$26/year<br />

air.<br />

'<br />

-'<br />

Basic Computer Games<br />

Edited by David Ahl, this book contains<br />

101<br />

imaginative and challenging<br />

games for one, two, or more players —-<br />

Basketball, Craps, Gomoko. Gomoko, Blackjack,<br />

Even Wins, Wins. Super Star Trek. , Bombs<br />

Away, Horserace. Simulate lunar land·<br />

ings. Play the stock market. Write poetry.<br />

Draw pictures.<br />

All Ail programs are complete with listing<br />

in Microsoft Basic, sample run and<br />

description. Basic conversion table included.<br />

125,000 copies in print. 192 pages<br />

softbound. ttbound . (6C)S7 [6C)$7.50.<br />

The Best of<br />

Creative Computing<br />

The first two years of o f Creative Computing<br />

magazine have been edited into inlo<br />

two big blockbuster books. American<br />

Vocational Journal said of Volume 1,<br />

■This " book is the 'Whole Earth Catalog' of<br />

computers." [6A] [GA) Volume 2 continues in ill<br />

the same tradition. ■■Non-technical "Non-technical in<br />

approach, its ils pages are filled with information,<br />

articles, articles. games and activities.<br />

Fun layout." —American -<br />

Libraries. [6B]<br />

Each volume$8.95.<br />

Computer Coin Games<br />

Computer Coin Games by Joe Weisbecker<br />

aids newcomers to the field of<br />

computers by simplifying the concepts 0of1<br />

computer circuitry through games which<br />

Weis-<br />

can be played with a few pennies and full<br />

sized playing boards in the book.<br />

Enhanced by outrageous cartoons,<br />

teachers. teachers, students and self-learners of all<br />

ages will enjoy this 96 page softbound<br />

book.[10R]$3.95.<br />

(10A)$3.95.<br />

r<br />

How To Order<br />

J<br />

Problems for Computer<br />

Solution<br />

Solution<br />

Problems for Computer Solution by<br />

Stephen J . Rogowski Is an excellent<br />

Stephen J. Rogowski is an excellent<br />

source of exercises in research and<br />

problem solving for students and selflearners.<br />

Problems like the Faulty Speedometer<br />

Spotter make learning fun and<br />

easy. 104 pages, , softbound, (9Z)$4 [9Z]$4.95.<br />

self-<br />

More Basic<br />

Computer Games<br />

More Basic<br />

Computer Games<br />

Contains 84 fascinating and entertaining<br />

games lor for solo and group play -—<br />

evade a man-eating rabbit, , crack a safe,<br />

tame a wild horse, become a millionaire,<br />

race your Ferrari, jousl joust with a knight, trek<br />

across the desert on your camel. camel, navigate<br />

in deep space.<br />

All games come complete with pro<br />

gram listing in Microsoft Basic, sample<br />

run and description. 192 pages soft· softbound.<br />

(6C2 [6C2]$7.50. ) Send order and payment to Creative<br />

Computing, P.O. Box 789-M, Morristown,<br />

NJ 07960. Add $1.00 shipping and<br />

handling per order ((foreign, f orei~n, $2.50) N.J. .<br />

Morris-<br />

residents add 55% % sales tax. Visa,<br />

MasterCharge and American Express<br />

orders welcome. Forr faster service, call<br />

in your bank card oorder toll free to:<br />

800-631-8112.(ln NJ, , call (201) 540-0445.)<br />

GPcativD<br />

creative U<br />

All games come comptete with prO- l GOmplI 10<br />

indeepspace. t e 11<br />

J<br />

~--------------~


MAY/JUNE. . <strong>1980</strong>. 198O. ISSUE .SSUE 4. 4<br />

COMPUTE. 83 63<br />

THE CONSUMER COMPUTER<br />

THE CONSUMER COMPUTER<br />

Len Lindsay<br />

Len Lindsay<br />

1929 Northport Drive #6<br />

Madison, Wl 537O4<br />

Madison, WI 53704<br />

Summer is almost upon us. vVatch Watch for a burst of<br />

activity y in the software and computer accessories mar­<br />

kets. Read the new ads & aannouncements with care.<br />

A review will help put a perspective on the<br />

product, but the best thing is to sec see it operating<br />

before you buy il.That's it.That's one good reason to buy rrom from<br />

your local computer store.<br />

IRIDIS #1<br />

IRIDIS #1<br />

The first issue or of IRIDIS has now been shipped by<br />

THE CODE WORKS (Box 550, Goleta, CA 93017).<br />

I have a copy and enjoyed it very much. . IRIDIS<br />

is a set or of rou fourr programs on tape (or disk)<br />

accompanied by a booklet containing the complete<br />

listings lor for the programs as well as a line by linee<br />

explanation of how the programs work. The best way<br />

to learn how to writee your own programs is to look<br />

at other good programs. IRIDIS I is an excellent way<br />

to do this, since the programs are arc well done, and<br />

fully rully explained. . The IRIDIS booklet also features reatures<br />

short articlcs articles explaining various aspects of your<br />

ATARI computer.<br />

The "r 'he first li four programs may not be earth shatter­<br />

ing, but they show some of the things that can be<br />

accomplished with an ATARI computer. The first<br />

program, , CLOCK, illustrates how to use ATARI<br />

I<br />

tinier timcr functions. It makes use usc of sound and fine<br />

c<br />

graphics Gra to create a chiming chill'l ing clock. The time lime is not<br />

shown with digital letters, but with the old fashioned rashioned<br />

hour, minute, and second hands.<br />

LOGO illustrates how to use ATARI graphic<br />

commands to plot, draw and fill. It shows you u how<br />

fast the e color of anya area can change due to<br />

ATARI'S 's method of using Registers to store Store color<br />

information.<br />

POLYGONS draws some very beautiful beautirul and<br />

intricate im patterns on your screen. scrcen . You watch it as<br />

it draws the pattern, panern , then a few seconds after it is<br />

complete, it is erased anda a new and different<br />

t<br />

pattern patlern is drawn. This is a good demonstration tion of<br />

high resolution graphics.<br />

ZAP is the only y program that allows partici­<br />

pation. . You use a joystick in this game to control<br />

a worm which constantly keeps moving g arounda the<br />

screen. . Target squares appear randomly. You try to<br />

manuveur r your worm to hit the targets before they<br />

disappear. You get points for each target you<br />

"eat", "cat", and your worm grows longer as well. . If<br />

your worm ever bumps into inLO itself in its s travels,<br />

s,<br />

the round is ended. The game is over after 5 rounds.<br />

That's IRIDIS #1. It is available ror for $9.95<br />

on caSSCIlC cassette or $12.95 on diskette. skelle. It is a good way to<br />

learn about your computer, aand add 4 good programs<br />

to your program library.<br />

ATARI BASIC CARDS<br />

Another aid to ATARI users who arc are hoping to<br />

learn how to program in BASIC is ATARI BASIC<br />

CARDS. Since I was thee author or of this booklet,<br />

I can't ' t give you an unbiased review, but COMPUTE<br />

was given a copy for review. It is available from<br />

MicroNotions, ((1929 Northport Drive, Room 6,<br />

Madison. n, WI 53704) ror for $5.<br />

PROGRAMMA Emerges<br />

PROGRAMMA RAMMA INTERNATIONAL (3400 Wilshire<br />

Blvd, , Los Angeles, CA 90010) is one or of the largest<br />

personal computerm pUler software houses. They strive for<br />

qualityy programs aand customer satisfaction. sfaction . They now<br />

arc supposed to have ATARI programs ready ror for<br />

release. Plus some very exciting programs for [he the<br />

PET/CBM. C . This includes ""TALKING CCALCULA<br />

ALCULA­<br />

TOR" lor for thee PET. PET users may be in ror for some<br />

1110re more eXCllement excitement very soon. .<br />

AUTOMATED SIMULATIONS<br />

Automated Simulations ((1902 Old Middle-field Middlclield Way,<br />

Suite 15, Mountain View, CAA 94043) has some new<br />

additions to itss excellent le line-up of programs for the<br />

PET and APPLE. COMPUTE #1# I provided a full<br />

page review of their DUNJONQUEST program<br />

Temple of or Apshai. Now they are offering ofrering LOWER<br />

REACHES lOS OF APSHAI, a data tape (disk) for ror<br />

use usc with h the TempleT of Apshai program. Computer<br />

Role Playing g addicts will rejoice with this extension<br />

of a great simulation.<br />

.<br />

If you aren'ta 't familiar with Role Playing, and a want to case into it (instead (instcad of taking g on the full<br />

blown TTemple cmple of Apshai) i) I have reviewed their two<br />

MICROQUEST games, Datestones ofRyn or R anda Morlocs Morloes Tower. They now are a rc almost finished with<br />

a science fiction ion adventure, Rescue at Rigel. I will<br />

keep you posted about these cse sophisticated simulation<br />

games.<br />

The Word Is Out<br />

Dymax is coordinating a series of more than 10<br />

books for ror PET, ATARI, I, APPLE and RADIO<br />

SHACK. S K. The books arc user orientedo and should<br />

be a good source of information. Each book is written<br />

by a TEAM of authors, a usually y 3 or 4. This<br />

provides pruv feedback for each co-author as well ll as several<br />

perspectives on the books content. I am familiar<br />

f~lmil i a r<br />

with this because I am a co-author for the<br />

e<br />

ATARI GAMES AND RECREATIONS book and a lead author lor the e PET GAMES AND RECREA­<br />

TIONS T book. Both h books should be available able this<br />

winter, along with some of o f' the other hcr Dymax books.<br />

(Editors Note: Watch Walch COMPUTE /or for preliminary Im/imillary<br />

reviews. RCL) R


84 COMPUTE. MAY/JUNE. I <strong>1980</strong>. ISSUE d. 4.<br />

ATARI CHESS<br />

ATARI CHESS<br />

The ATARI A CHESS C H cartridge for r the Ihe ATARI 400 or<br />

800 computers is now available, and I1 have used one<br />

in my rn y system at home. The chess board is a green and<br />

gold checkerboard with a maroon border. The pieces<br />

are black and white, and make use li of o r ATARI'S<br />

l 's<br />

high resolution graphics cs for easily y identifiable pieces.<br />

A blue e box or "cursor" is used to show where on o n the lhe<br />

board you u arc. are . That makes 6 different colors displayed<br />

at once on o n the screen - quite quile amazing, con<br />

n­<br />

sidering g that there are only 5 color registers. registcrs. (NOTE:<br />

exact colors vary ry from TV T V to TV). T You u use a joystick to move your pieces. This may<br />

sound weird, , but it is very easy, and reliable. (Just Uust<br />

sit back in a comfortable n chair with \" the e joystick,<br />

and challenge the Ihe ATARI.) ) I have played the Ih e other olher<br />

chess games, and communicating g grid locations to the<br />

computer compuler is a chore. The ATARI method mel is so simple,<br />

even a young child can play. And there Ihere are 8 levels<br />

s<br />

of difficulty, difficull Y, to 10 satisfy li sfy all ranges of players, even those Ihose<br />

just learning to 10 play. As the Ih e level goes up, , the Ih e ATARI<br />

thinks longer about its move. According g to the documentalion,<br />

the Ihe lowest level (level 0) averages about aboul<br />

15 seconds per move. TheT next I level (level 1) I) averages<br />

30 seconds per move. Level two averages 45 '~ 5 seconds,<br />

level 3-214 3 - 2 Y2<br />

minutes, level 4 - 3 minutes, and level<br />

5 about 10 minutes. The two remaining levels take<br />

mentation,<br />

quite quile a bit bil of thinking Ihinking time, lime, and would be only for the<br />

e<br />

very serious player. Level 6 takes about 9 hours per<br />

move, and level 7 about aboul 10 hours per move. The<br />

skill level can be changed at al any time lime during Ihe the<br />

game if desired. In my games al at level 1I it il took look aboul<br />

about<br />

10 seconds per move - at level 2 about 15 seconds -<br />

about 3 times faster than stated in the documentation.<br />

Moving a piece is a very simple matter. You<br />

simplyy move the "cursor" to the top off thee piece you<br />

wish to move. The cursor moves box by box, con­<br />

trolled by a joystick. When the cursor is on lOp top of<br />

aany piece it blinks, alternatingg box aand piece 10 to allow<br />

you to see both the cursor and the piece oonn the<br />

square. . The cursor will continue moving fromm square<br />

to square until you hit the red controller button.<br />

If the cursor is over one of your pieces, the piece<br />

will go into blink mode. You now move the piece by<br />

joystick control while e the cursor remainss in the original<br />

location for reference. When the piece is where you<br />

want it, , simply hit the red controller button again<br />

and the move is made, unless it is an illegal move.<br />

The A ATARI will not aallow you to make aann illegal<br />

move, bUI but beeps 10 to tell you to try again. .<br />

ATARI CHESSH includes many polishing lOuches<br />

touches<br />

that make playing enjoyable, and less frustrating. slrating. If<br />

you are put into lO check, your king beginss fl flipping<br />

aaround, inside its square, softlyy beeping (you will<br />

nott be able e to miss it). Anytimee you move a piece<br />

th that would leave your king in check the word CCHECK<br />

appears in the top corner advising you ooff this s<br />

situation.<br />

Perhaps the nicest feature fealu re of ATARI CHESSC H is<br />

that at you can n leave to get gCl a sandwich while le the<br />

ATARI A is thinking g about its move, and when you<br />

come rne back you will know just what piece it moved.<br />

.<br />

It puts s the "cursor" r" in the piece's original location<br />

and blinks the piece in its s new location. The cursor<br />

and blinking g remain ono n until you move the joystick<br />

(then the piece picce remains s in its new location and the<br />

cursor follows yo ur conlrol).<br />

cursor follows your control).<br />

You can play the white oro r black pieces, with<br />

white e going first. If you wish to set up a particular<br />

chess chcss situation, , simply hit the "S"" key on the e key­<br />

board, , and place or delete delele pieces anywhere on the Ihe<br />

board, , again under joystick control. Hit H il anya other key<br />

when the set-up is as you like it. This is nice, , if you<br />

would like to redo a move (after you saw how ATARI<br />

I<br />

clobbered you) - simply put pUI ATARIs ATARls piece back, and<br />

replace yours. Castling g and En Passant l capturing are<br />

allowed and explained in the documentation.<br />

ATARI CHESSC H plays a fairly y good game in its<br />

lower levels. I leave testing the e top levels to someone<br />

with more time, since it takes so long g to make its<br />

moves. At the easiest levels it would be a good way<br />

to 10 learn how to play chess, for it il will not nOl let you<br />

make an illegal move, and it doesn't think too long<br />

about its s own moves.<br />

ATARI ARI CHESS vs SARGON 2<br />

I took lOok my ATARI computer (and ATARI I CHESS) C H over 10 a fr iends a nd cha ll enged his TRS-80 SARGON<br />

over to a friends and challenged his TRS-80 SARGON<br />

2. We played two gamcs. games. The first game was<br />

SARGON 2 al at level 0 and ATARI CHESSC H at al level 1. I.<br />

This seemed to be an even match - both took about<br />

6 seconds per move, unlil Ihe end wh en ATARI<br />

6 seconds per move, until the end when ATARI<br />

tookk about 20 seconds each for a few w moves. . After 17<br />

moves, each side had 13 pieces left. Move 18 was<br />

very bad for ATARI - il it missed laking taking SARGON's<br />

queen with a pawn (and no threat afterwards either).<br />

After 68 moves Ihe the winner was ATARI CHESS.<br />

That called for a rematch. SARGON 2 was set<br />

to level 1I and ATARI CHESS H att level 2. This lime time<br />

thee difference in thinking g times was noticable. The<br />

first 20 moves ATARI ARI CHESS lOok took only aboul about 7<br />

seconds per move, while SARGON took about 26<br />

seconds. The rest of Ihe the game, SARGON generallyy<br />

took a bit longer thinking time. The extra thinking<br />

time must have paid ofT, off, since SARGON 2 wonn aft alter<br />

60 moves . They Iraded queens on Ih e eighth move.<br />

60 moves. They traded queens on the eighth move.<br />

This match pointed out some of the cosmetic<br />

advanl advantages ages of ATARI CHESS. H Itss graphics were far<br />

superior, r, and easy to follow. My friend would usc use<br />

my ATARI CHESS moves as input for his move<br />

my ATARI C H ESS moves as inpul for hi s move<br />

againsl against SARGON 2. I in turn would lake take SARGON's<br />

move as inpul input 10 to ATARI CHESS. The case ease of entering<br />

moves with a joystick for r ATARI CCHESSH was<br />

quite evident - I was relaxing g oonn the noor floor 6 fecl feet<br />

from thee 25 inch color TV wilh with my joyslick, joystick, while<br />

e<br />

my fri end sal next 10 Ih e TRS-80 continually calculat­<br />

my friend sat next to the TRS-80 continually calculat<br />

ingg Ihe the pieces starting and ending grid positions. © (§


MAY MAY/JUNE. I lQ8o. 198O. ISSUE 4. 4.<br />

COMPUTE.<br />

B5<br />

. .....<br />

.4iW#iii<br />

Did you read about the Dungeonmaster who became so<br />

Did you read about the Dungeonmaster who became so<br />

enchanted playing a real life version of Dungeons and<br />

Dragons that he disappeared for a month?<br />

You'll be able to hold on to reality just a little better when you play<br />

the Dunjonquest n l computer version, the greatest of all the role-playing<br />

fantasies.<br />

But don't bet on it.<br />

Sit at your computer. You're the hero. Enter the<br />

Dunjonqucst Dunjonquest ""Temple of Apshai" and into the<br />

greatest fantasy adventure you've ever experienced. .<br />

The Temple has over 200 rooms and catacombs in<br />

which lurk more than 30 kinds of monsters and<br />

beasts ready to do you in—in - real time -—before you<br />

can reach any of the 70 or so treasures waiting for the<br />

hero. You may spend days, , weeks, months.. . ...the rest<br />

of your life... striking at the forces of evil, , or running<br />

from them, , or calling on powers you can never completely<br />

understand. underst.and. Always, always demonstrating demonsu


MAY/JUNE, 198O. 4.<br />

66 COMPUTE. I JUNE. <strong>1980</strong>, ISSUE 4.<br />

D Be R CASSETTE SYSTEM<br />

D & R CASSETTE SYSTEM<br />

Here's something that should be of interest to anyone<br />

Here's something that should be of interest to anyone<br />

considering adding another cassette drive to to their PET<br />

system. D&R Creative Systems, PO Box 402B, St. St. Clair<br />

Shores, MI 48080 is is now producing a cassette drive<br />

with a built in in counter and several other features at at a<br />

selling price that is is less than the <strong>Commodore</strong> C2N<br />

cassette drive. The D&R S2545 Cassette System consists<br />

of a self contained, epoxy potted interface module<br />

and a Sanyo M2545A recorder. The recorder is is<br />

specially modified to sense when the recorder buttons<br />

arc pressed and operates identically to the {he PET cassette cassetle<br />

drive with full program control. The cassette recorder<br />

is is still fully warranted by Sanyo, even with the slight<br />

modification.<br />

The T he interface module plugs directly into the cassette<br />

port at the rear of any model PET and fits flat<br />

against st the back panel. Because of the physical size of<br />

the interface module, it cannot be used with the<br />

cassette interface that is located inside the PET. There<br />

are four separate cables from the interface module<br />

which connect to the recorder REM, EAR, MIC,<br />

and added sense connectors. The sense connector is<br />

located inside the unused battery compartment which<br />

requires removing the battery compartment cover in<br />

order to make the connection.<br />

.<br />

Besides the digital counter for normal program<br />

indexing, the D&R Cassette system can locate locale pro prOM<br />

grams audibly using the Fast Forward Cueing feature<br />

of the Sanyo recorder. While the recorder is in the<br />

Play mode, the Fast Forward button can be depressed<br />

and you can hear the programs pass by the recording<br />

head at the Fast Forward Cueing speed. It is very<br />

head at the Fast Forward Cueing speed. It is very<br />

Dr. Daley's software is proud to announce<br />

the release of a package of our best se selling<br />

$400, have been assembled into a single<br />

Robert W. Baker,<br />

15 Windsor Drive,<br />

Atco, NJ O8OO4<br />

easy to hear the 10 second leader at the start of<br />

each program and simply count the programs as they<br />

pass by to get to the desired program.<br />

I recently tested a sample D&R Cassette system<br />

on an older 8K PET and a new 32K PET. I<br />

found no compatibility y problems with tapes switched<br />

between the D&R Cassette system and three different<br />

<strong>Commodore</strong> C2N drives. D&R Creative systems does,<br />

however, warn ol of possible incompatibilities due to<br />

head alignments of the <strong>Commodore</strong> drives since<br />

<strong>Commodore</strong> has changed their cassette cassetle unit several<br />

times since the PET was introduced. . Another thcr point<br />

of interest is that the D&R Cassette Casselle system operates<br />

with w the volume volumc and tone tonc controls of the thc Sanyo re rccorder<br />

all the way up and does not require any<br />

intermediate, intcrmediatc, special spccial settings. scttings.<br />

The only disadvantage of the lhe D&R Cassette Casselle<br />

system is that lhat the MICM anda EAR cables cannot both<br />

be connected to the recorder at the e same time. You<br />

must switch the cables to the Sanyo recorder when<br />

must sw itch the cables to the Sanyo recorder whenever<br />

you switch between reading or writing a tape.<br />

This slight inconvenience seems a small price to pay<br />

when one considering g the digital ita l counter r and Fast<br />

Forward CueingC g features provided. Also, the Sanyo<br />

recorder can still be used as a standard recorder<br />

withw a built in microphone and automatic level control<br />

for recording. rding. Thus, lh thee recorder could be used to<br />

takc take notcs notes while workingg on a ncw new program. . All in<br />

all, , the unit is very reliable and should be quite<br />

attractive considering the features providcd provided at the<br />

current price of $83 plus $3 shipping.


MAY/JUNE, I JUNE. <strong>1980</strong> ISSUE 4, 4 COMPUTE. 87<br />

Personal Computer Breakthrough<br />

„ .. 1O ... _. , _ ..„_.<br />

T. r\u-~ o • 4.-c- ~u u « i Challenger 1 IPP with Disk Capabilities<br />

The Ohio Scientific Challenger 1 is a<br />

r ... L . L<br />

r^,^ ,.- rvrt . .. c n , _ If you are familiar enough enouqh with computers to<br />

Dramatic Demonstration of Price and Performance<br />

tormance in a Single Package<br />

Challenger IP Mini Floppy is a prime<br />

Per- realize rea,izeythe importance of disk storage, then the<br />

consideration.<br />

Challenger 1 P Mini Floppy is a prime consideration.<br />

Announcing the microcomputer that scored a<br />

At $995, it is thee first microcomputer system to<br />

dramatic breakthrough in price and performance<br />

offer disk storage capacility under $1000, another<br />

at a terrific system price!<br />

breakthrough. The Cl C1PP MF offers the advantage of<br />

_ , ,_ - usinq using either Basic·in·Rom Basic-in-Rom or Pico·Dos, Pico-Dos, a compact<br />

Price/ Pnce/Performance Performance Leader<br />

DOS. D0S The unit unU comes standard with 12K of RAM. RAAV<br />

The development of the Ohio Scientific Challenger Additional memory cann be added anytime by<br />

1 IP P marked a price revolution for microcomputers.<br />

simply plugging p|ugging in additional RAM into the socketed<br />

Consider the following features:<br />

memory board. Upon adding BK 8K additional RAM to get<br />

(I) (1) Microsoft BK 8K Basic·in·ROM<br />

Basic-in-ROM to 20K, you may run OS65DV3.1, a full·fledged full-fledged DOS<br />

(2) 4K RAM··Expandable RAM-Expandable to BK 8K on board<br />

allowing named program and data files as well as<br />

(3) Full 53 Key keyboard with upper and lower case<br />

random and sequentialaccesscapabilities access ca lities to these files.<br />

(4) Elaborate graphic display capability Why System Packages?<br />

(5) Uses a standard cassette for input<br />

Microcomputers are sophisticated devices that re- reo<br />

(6) Uses a standard television telev.s.on with an RF modulator<br />

quire<br />

qujre<br />

more<br />

mQre<br />

than the initial<br />

jnitja|<br />

purchase.<br />

purchase_<br />

Once the pur·<br />

pur.<br />

tor for video output<br />

chase fg made^ qujck second| thjrd c hase is made, a quick second, third, and even<br />

All A of these features makes the Challenger IP 1 P a best<br />

fourth trip is necessary to secure the accessories<br />

buy for a beginner or hobbyist on a limited budget<br />

necessary to operate properly. . To save you the addi·<br />

addi-<br />

wishing to get involved with microcomputer, such as<br />

tional trips, we have made two system packages<br />

students


Software for the PET<br />

lID<br />

(QJ<br />

OTHELLO S 9.95<br />

DOMINOES S 6.95 LETTER LETIER SQUARES<br />

S 6.95<br />

2m<br />

@J<br />

DIR/REF<br />

S RPN MATHPACK S19.95 $19.95 SUPER NIM S 6.95 CIR/ REF $ 6.95<br />

~<br />

SPACE WARS S 9.95 GRAND PRIX S 6.95 E.S.P. S 9.959 FORECAST S 9.95 S 6.95 BLOCKADE S 9.95<br />

0<br />

,<br />

DEPTH CHARGE S 9.95 BASKETBALL S 9.95 SLOT MACHINE S 6.95 lJ<br />

HOME ACCOUNTING S 9.95<br />

,<br />

All orden orders include 3% postage and hllndling handling with ivilh a minimum 01 of<br />

5SI.00. 1.00. Califo.nia California . residents include 6'" 6% Sales T.~ Tax. .<br />

VISA<br />

MASTERCHARCE<br />

MASTERCHARGE<br />

,<br />

COM MODORE BUSINESS MACHINES. INC . BATTLE SH IP S 9.95 lJ<br />

PET IS A TRADEMARK OF<br />

COMMODORE BUSINESS MACHINES, INC. BATTLE SHIP S 9.95<br />

0<br />

PROGRAMMA RAMMA<br />

INTERNATIONAL. INTERNATIONAL, Inc. a.<br />

3400 Wilshire Blvd.<br />

Los Angeles, CA 90010<br />

I:<br />

384-1117<br />

2m<br />

~<br />

~<br />

~<br />

UJ<br />

"tI<br />

ct<br />

~<br />

III<br />

,<br />

(1)<br />

0<br />

CO<br />

(213) 384·0579 384-0579<br />

n<br />

384·1 384-1116<br />

6 ct<br />

384·1117<br />

SHOOTING GALLERY S 9.95 Oeal2f Dealsr InqUiries Inquiries InVited Invited ZAP S 6.96 6.95<br />

III<br />

3<br />

II


MAY/JUNE.<strong>1980</strong> MAV/JUNE. 198O ISSUE.a 4<br />

COMPUTE. 89<br />

FOT For)'OIiT your cOl/lienie1lU: convenience i,l in making flU usr f!.f of the following fol/owillg (lTlide. article, I I'm '/'r lrprilltrd reprinted (I a<br />

/JlJrtioll portion oj of C~/lck Chuck.I0/I/ Johnson HOIl 's rxu:lIrnl excellent article ankle ill in Jjesl lies! of the PET<br />

Ga:etlr, Gazette, p. pA2. -I2, RCL<br />

PET ting WITH<br />

PET ting WITH<br />

AJOYSTICK<br />

HONey B. Herm on<br />

Harvey B. Herman<br />

Chemistry Deportment<br />

Department<br />

University of North Carolina<br />

at Greensboro<br />

Greensboro, N.C, 27412<br />

Greensboro, N.C 27412<br />

My y older style PET keyboard gets banged around<br />

quite a bit when my kids play games which use the<br />

number pad. , A recent PET-Pourri column in Kilobaud<br />

((1) I) prompted me to install a joystick on my<br />

PET in order to save my keylOps keytops from further wear.<br />

This article is intended to share my experiences<br />

with this project and lO to encourage other fumblethumbs<br />

like myself to try it. .<br />

fumble-<br />

I purchased the Atari-joysticks from Sears as<br />

suggested in the above column (catalog #6C99835)<br />

for r $9.95 each. Since I could not find a mating<br />

connector, eClOr, I cut off ff' each end and attached ached them to a<br />

User Pon Port connector as per the e instructions (see also<br />

refs 2 and 3). The latter connector can be purchased<br />

from any number of companies (e.g.,, AB All <strong>Computers</strong>).<br />

Four signal d iodes ( I N662), whose speci fi ca­<br />

puters). Four signal diodes (1N662), whose specifica<br />

tions I believe are not t critical, ical, are also used in this<br />

s<br />

super simple interface circuit it which can be constructed<br />

in about 112 1/2 hour. Check to make sure thatt the<br />

diode cathodes are connected as shown in the e circuit<br />

diagram (1) I) and the color coded wires of the joystick<br />

are connected to the proper pins s ofo f the e User Port<br />

conneclOr. connector. OtherwiseO no special precautions are arc<br />

necessary. I did it right the first time e (yes brag!) brag')<br />

This neat hardware would, , of course, be useless<br />

withoutw software to work it. CursorC magazine e (4)<br />

has supplied several programs which have a joystick<br />

option. I tried these first (Demon, Canyon, Pickup<br />

and Nab) with happy success. . These programs area rc<br />

written to work withw various model joysticks wired \"ired and<br />

oriented in differentd llt ways. SinceS my configuration<br />

io n<br />

was fixed I modified the joystick subroutine uti in each<br />

Cursor program to lO skip the test step. That procedure<br />

can be tedious if a program is run repeatedly. TheT following g changes in the CursorC joystick subroutine<br />

should work for alla Atari-type type joysticks wired according<br />

to the circuit diagram in reference 1: I:<br />

610306 PRINT: FOR R I = ~ 0 to 5: READ T, T , P:<br />

GOSUB 61120: 6 T(I) T = ~ T: T : J(T) J ) = ~ P: NEXT I<br />

611206 T = ~ INT (T/16) I16) ANDA NDT: RETURNR U R N<br />

612506 DATA 255, 5, 223,4,239,6 239, 6 127,8, 191,2,<br />

1,2,<br />

63, 0.7, 0 1, I , 9, 3<br />

I ran the original program once to find the<br />

values in the T array and used data statements tement s in the<br />

modified program in order to skip the test step. This<br />

considerably speeds up thee beginning of a game. I<br />

have deliberately ignored thee rationall behind the bitt<br />

manipulations ns in statement 61120. 20, It is not necessary<br />

to understand that in order to use joysticks. I emphasize<br />

this point because I hope it will encourage<br />

PET users who may strain aatl bitss to attempt projects<br />

such as described here. I Inn a future an article e I<br />

may try my hand at a tutorialo forr those who wish<br />

to delve imo into thiss mystery further. er,<br />

If a program was nott writlen written with a joystick<br />

in mind another modification n procedure must be used<br />

to convert it a\",ay away from number pad usc. use. As an<br />

example I modified the programm Obsracl Obstacle e (5) which<br />

utilizes utlitzes the full keyboard as two pseudo-joysticks.<br />

Each player manipulates hiss piece (screen character)<br />

with the now standard keyboard patterns, ""W, , X X, , A<br />

and D" and "8, 2, 4, 6". The object is to keep from<br />

running into the screen traill left by the other<br />

player - the first to do so loses. As withh many games it<br />

is easier to use than to describe. The following<br />

statements in the original program are used lO to sense a<br />

keypress by a player and change direction if necessary:<br />

260 GET R$<br />

265 IF RS R$ = ~ ""W" W " THEN AD = ~ 1I<br />

•<br />

300 IF RS ~ "8" THEN E 11D llD = 1<br />

•<br />

It If W is pressed the direction of the player on the<br />

leit's left's piece is changed to up. If 8 is pressed<br />

the direction of the player on the right's piece picce is<br />

also changed to up. . Player and direction are detc deterr­<br />

mined by the above keyboard pattern which can be<br />

learned quickly by new pl ayers.<br />

learned quickly by new players.<br />

Converting a program like this s to joystick use is<br />

very easy. The following owing statements s will do this:<br />

260 M = ~ PEEK (59471)<br />

1)<br />

265 IF (M ORO R 240) = ~ 247 THEN AD = ~ 1I<br />

•<br />

300 IF (M OR 15)<br />

127 THEN E BD =<br />

•<br />

The elipsis is can be fleshed out with the help of<br />

the table below. . A peek ata t the User Port Pon gives a<br />

unique value e for each position on of o f the e joystick as long<br />

as only y one is being used. . It is necessary to "mask"" with 15 IS or 240 if the possibility ilit y exists of both<br />

being g used at the e same time. If only one joystick<br />

is used and it doesn't matter which, a further opera-


MAY/JUNE. 198O. 4.<br />

9O 90 COMPUTE. I JUNE, <strong>1980</strong>. ISSUE 4.<br />

tion lion with w ith the peeked value generates simpler numbers<br />

(shown in in the last column of the table). This<br />

"trick" " was used in in statement 61120 6 20 in in the (he cursor<br />

subroutine and the resulting values used in in the main<br />

body of of the th e program.<br />

In summary, II feel this s is is an excellent project<br />

for a beginner. The interface is is quickly y and easily<br />

y<br />

put together. It It is is not difficult to 10 modify existing<br />

programs for joystick use. "Old" " PET owners with<br />

disappearing keytops keylOps will appreciate a the saving on<br />

wear and tear. To T o be fair I should say that every<br />

program ram is is not nor suitable e for conversion. When fine<br />

control comrol of movement is is required joysticks may be<br />

difficult to 10 use. Some players with poor hand-eye<br />

coordination may still prefer the keyboard. As for me<br />

It it seems quite e natural to chase and catch some seemingly<br />

elusive demon with my movements under<br />

reflex control by a joystick.<br />

Chuck Johnson<br />

JOYSTICK ATTACHMENT STANDARD<br />

The Atari Joystick J terminates with a DB-9 connec<br />

nnec­<br />

tor; ; six of the nine circuits it s are used as follows:<br />

:<br />

DB-9PIN<br />

FUNCTION<br />

1 Up Switch<br />

2<br />

Down Switch<br />

5435 4 3 2<br />

1 3<br />

Left Switch<br />

4<br />

Right Switch<br />

5<br />

Not Used<br />

6<br />

Push-Button Switch<br />

98769 8 7 6 7<br />

Not Used<br />

8<br />

Ground (common)<br />

9<br />

Not Used<br />

Pin numbers for the DB-25P are marked on the e<br />

connector. User Port pins are on the e bolto bottom m row of<br />

a 12 position edge connector. Properr polarization of<br />

th e edge connector is stro ngly recomme nded.<br />

the edge connector is strongly recommended.<br />

A DB-25P P connector will accept two joystick connee­<br />

connec<br />

IOrs tors; ; the DB-25 may then be wired 10 to a User Port<br />

edge conneClOr connector, , according to the following table:<br />

REFERENCES<br />

JOYSTICK<br />

I. 1. UUPP DOWL DOWN<br />

LEfT LEFT<br />

RIGHT BUTTON<br />

GGROUND<br />

DB-9S<br />

J 1<br />

2 3 4 6 8 PIN DB-25P PIN<br />

9 10 I 11 I<br />

12 22 24 USER PORT PIN<br />

f F<br />

E<br />

D<br />

C<br />

Diodes to E aand f F<br />

A<br />

REFERENCES<br />

1. 1. Kilobaud Microcomputing, Micl"Oco Robert W. Baker, Bakcr, January <strong>1980</strong>.<br />

p. t'l<br />

p. 14<br />

2. 2 . PET User's Group Newsletter, Vol. 0. 0, No.3. p.6, 1978<br />

3. Best of PET Gazette, Gazelle, Chuck Johnston, , p.42, 1979<br />

4. Cursor Magazine, P.O. Box 550, Golcta, Goicla. CA C A 93017<br />

17<br />

5. Dilithium Press, P.O. Box 92. 92, Forest Grove, Grove. OR O R 97116<br />

TABLE<br />

T = PEEK (59471)<br />

- K (59'f71)<br />

POSITION Joystick J 11 Joystick ick 2 T = INT(T/16)<br />

- AND DT T<br />

center<br />

left h!ft right 255 223 239 255 253 254 15<br />

13<br />

14<br />

up 127 247 217 7<br />

down<br />

wn<br />

button buuon<br />

It'll left lip up<br />

righi<br />

ght up left tiown do right down<br />

:(ii 191 63 95<br />

111 III 159<br />

175 t75<br />

251<br />

1 243 245 246 249 250<br />

11 II<br />

3<br />

5<br />

6<br />

9<br />

10<br />

mask T ORO R 15 T ORO R 240 ©<br />

From: PET AND THE DUAL JOYSTICKS<br />

Chuck Johnson<br />

Note that rhat the rhe buttons are wired through diodes<br />

to 10 both the e UPU P anda DOWN W N functions of their joysticks<br />

(pins s E and Ff and pins K & L). When a<br />

button n is pressed, presscd, the e PET data dara lines react as though<br />

the e joysticks were pushed up and down n simultaneously<br />

(an impossible conditionn for r the position switches to<br />

generate). The decoding standard will, w , as we shall see,<br />

interpret crpret this s condition n as a bUlIon button movement. movcme The<br />

diodes act as "one-wayn c~way stn.;c streets" ts"<br />

forr current fl How and<br />

prevent the real UPU P and DOVvN DOWN switches fromm closing<br />

both circuits.<br />

Orientation of thee diodes is very important. t. We \lVe<br />

want current ( to 0 now flow from Ih thee data lines to ground.<br />

Whc Whenn soldering the diodes in placc, place, orient them with<br />

their cathodes ("banded" ends) connecLed connected to the jjoy­<br />

stick suttons to (pins 14 and 22 on the DB-25P).<br />

If thee user is not interested in using g the bU buttons, ltons,<br />

the butlOn button lines f'na mayy be Jc left rt unconnected and the<br />

diodes<br />

oomitted.<br />

miucd.<br />

JOYSTICK DB-9S PIN DB-25P PIN USER PORT PIN USER PORT FUNCTION<br />

USER PORT FUNCTION<br />

PA3<br />

PA2<br />

PA1<br />

PAl<br />

PAD PA0<br />

PA2 and PA3<br />

GROUND<br />

2. UP 1 1 L<br />

2. UP<br />

DOWN 1<br />

2 1<br />

2 L<br />

K<br />

LEfT LEFT<br />

3 3 J<br />

RIG RIGHT HT 4 4 H<br />

BUTTON GROUND 6 8 14 16 Diodes to K and L<br />

N<br />

PA7<br />

PA6<br />

PA5<br />

PA4<br />

PA6 and PA7<br />

GROUND<br />

PA6 and PA7


MAY/JUNE. I <strong>1980</strong>. ISSUE a. 4. COMPUTE. 91<br />

APPLETIVITES AT THE<br />

APPLETIVITES AT THE<br />

WEST COAST COMPUTER FAIRE<br />

Joe Budge<br />

Joe Budge<br />

2507 25O7 Elderwood Lone Lane<br />

Burlington, N.C 27215<br />

The West Coast Computer Faire, held March 14-166<br />

advertising treatmem treatment in lAC IAC publications. Dues for<br />

this year, was the focal point for many Apple Compu­<br />

members and sponsors will be $50 and $200, respecter<br />

dvelopments. Several companies introduced signifi ificant<br />

new software and hardware. These new intro­<br />

Associate members pay no dues.<br />

ductions should greatlyy enhance nce the Apple's capa­<br />

The "Apple Orchard" " will be bc thee lAC's IAC's official<br />

bilities. UScI' User groups from all over thee worldd convened<br />

magazine. It will be published quarterly, starting<br />

at the Faire to start an international user's group.<br />

September First. The ""Apple Orchard" will replace<br />

The group then sponsored a full day of seminars<br />

future editions of "Contact." "Contact" had been<br />

on the Apple, with subjects rangingg from the Apple's<br />

sent by Apple Computer to all registered users.<br />

invention to itss application in music and foreign<br />

Unlike "Contact," the ""Orchard" will be available<br />

language instruction.<br />

either by subscription or by sale through clubs or<br />

On March 13 representatives of 60 member clubs<br />

stores. Apple Computer Company intends to purchase<br />

tively. . They will be collected every January First.<br />

met in San Francisco to formally y initiate the International<br />

Apple Corc. Core. Directors were eJected, elected, lengthy<br />

sent to each newly - registered Apple owner to tell<br />

some ""Orchards" from the e lAC. IAC. One copy will be<br />

discussions were held, , and policies were worked out.<br />

them about usc userI' groups.<br />

Directors and officers met for the following two days<br />

A number of committees mitlces and special interest<br />

arranging quite a few important details.<br />

groups were established to deal with specific subjects.<br />

The International Apple Core (lAC) (IAC) will be a<br />

The IAC lAC will try to establishsh a hot-line for technical<br />

non-profit organization dedicated to thee exchange off<br />

and software problems. Until permancnt permanent arrangements<br />

information ion among Apple Computer users. This will<br />

can be made, Apple owners will have to continue<br />

be broadly interpreted to include technical informa­<br />

using current lines provided by various clubs and<br />

tion, software, programming information, and any­<br />

Apple Computer, , Inc. Neil Lipson's software<br />

thing else which can benefit t Apple users throughout<br />

committee will be collecting, documenting, and dis­<br />

the world. In addition thee IAC lAC will provide for<br />

tributingg a diskette a month to the member clubs. .<br />

communications ions between members and the.; various<br />

These will contain public domain software and will be<br />

product manufacturers. The International Apple Core<br />

distributed free of charge. The IAC lAC will also distribute<br />

will not be affiliated a with Apple Computer or any<br />

to members application notes from m Apple Computer<br />

other manufacturer. Specific c areas of lIAC activity<br />

and other suppliers. pliers. Special interest support includes<br />

will include publication of the "Orchard", O mainte­<br />

educational and legal application ion groups, a handi­<br />

nance nce of a public-domain software library, support of<br />

capped usage group, and a ham radio nel. net. Anyone<br />

special interest groups, suppon support of software and hard­<br />

wishing to cOlllact contact the International Apple Core may<br />

ware standards, technical support, , promulgation of<br />

write them at P.O. Box 976, Daly City, Ca. 94017.<br />

ethics, and organization off annual Apple - faires.<br />

The International Apple Core sponsorcd sponsored a series<br />

The IAC lAC does not intend to have individual<br />

of Apple seminars during the second day of thee Faire.<br />

memberships. . Only non-profit Apple user groups may The subjects covered a variety of fronts, from the<br />

bc be members. Educational institutions tutions and othcr<br />

other<br />

workings of graphics andd the e disk operatingg system<br />

interested non-profit organizations may become<br />

to applications ions of different languages such as Forthh<br />

associate members. They will be entitled cd to all the and Pascal. The most interest was shown in a pair<br />

free primed printed information ion the IAC lAC providcs provides its members,<br />

of lectures by Steve Jobs aand Steve Wozniak, the<br />

but can not vote for directors. . Commcrcial Commercial enterprises crpri inventors of the Apple. They told how the Apple<br />

may become sponsors, entitled ed to information and par~<br />

started as a video terminal used to [Q play games on<br />

ticipation in standards establishment. They, toO, too,<br />

telecommunications networks. Beingg members of the<br />

would be non-voting, g , but would receive preferential<br />

Homebrew Computer Club, they thcy became interested


92 Q2 COMPUTE. MAY/JUNE. I 198O. <strong>1980</strong> ISSUE 44.<br />

in microprocessors. m With that,,Jobs thaI , J and Wozniak W started slanccl to add processing and memory to the video<br />

terminal, added a hand - assembled Basic Basi


MAY/JUNE. I <strong>1980</strong>. 198O. ISSUE A. 4. COMPUTE. 93<br />

The APPLE PI Trading Library<br />

148 disc sides in our Apple PI library. Copies of our<br />

November catalogue (showing 2780 programs) are still<br />

We have well over 3500 public domain programs on<br />

148 di sc sides in our Apple PI library. Copies of our<br />

November catalogue (show ing 2780 programs) are still<br />

available for $1 plus 50 cents postage from our news­<br />

available for SI plus 50 cents postage from our news<br />

leuer letter editor:<br />

Rodney Nelsen<br />

9711 JJosephine St.<br />

Thornton, CO 80229 Ph. (303) 451-7577<br />

Later arrivals are shown in oour monthly news­<br />

letters, available at $1.00 each.<br />

letters, available at $1.00 each.<br />

While most of the approximately 800 plus programs<br />

on our our Apple PI slices #1 to 20 and 178 to 200<br />

are either original effon effortss by our members (both<br />

local and out-of-state) or have been modified for the<br />

local and out-of-state) or have been modified for the<br />

Apple II from a magazine listing, there are probably<br />

a few donations that originally came from other<br />

a few donations that origin all y came from other<br />

sources. Copyrighted programs are not supposed to be<br />

in our trading library out of respect to the commercial<br />

copyright holders. So if a copyrighted version of a<br />

program appears in error, please let us know so that it<br />

program appears in error, please let us know so that it<br />

can be removed. Also, , since many of our members<br />

belong to several Apple user groups, if they have<br />

belong to several Apple user groups, if they have<br />

accidentally donated someone else's program that they<br />

accidentally donated someone else's program that they<br />

did not have permission to LO donate LO to our group;<br />

and we listed it unknowingly, we are sorry again. .<br />

Please inform us. The approximately 2400 programs<br />

Please inform us. The approximately 2400 programs<br />

that we have received in trade from 21 other Apple<br />

user groups are arc listed on our Apple PI slices #21<br />

1<br />

to 126.<br />

Our programs were originally cataloged on a 32K<br />

Apple without the Applesoft ROM card. All of the<br />

programs on our disc slices (i.e. from 1 to 20<br />

and 179 to 200) should have been converted to the<br />

A.S. ROM card and should now work on a 48K Apple.<br />

(In fact, some programs require 48K to operate.)<br />

To convert an Applesoft program for r non-ROM<br />

use ; load the program, call 33 14. Then either save<br />

use; load the program, call 3314. Then either save<br />

it or run it. To convert a program from a non-<br />

ROM card source to ROM, call 54514. This is not<br />

ROM card source to ROM , call 545 14. This is not<br />

needed if you have either DOS 3. 2. or 3.2.1.<br />

The Hello programs on our disc sides (i.e., Apple<br />

PI slice XXX (YYYYYYYY) ) identify the type of<br />

programs on the disc (i. e. the word ' Games',<br />

programs on the disc (i.e. the word 'Games',<br />

'Finance', , 'Utilities', etc. will appear where the<br />

Y's are shown in brackets). The HelloH program<br />

on the disk slices that at we have received from other<br />

clubs is formatted the same way, except the club<br />

name or location is shown in place of the Y's<br />

when the Hello program is booted. Their name is also<br />

shown on the screen so that the donating groups<br />

receive credit for their programs.<br />

If you have a bombout , or sec possible improve­<br />

If you have a bombout, or see possible improve<br />

ments, please either note the circumstances (including<br />

the configuration of your computer) of the bombout<br />

the configuration of your computer) of the bombout<br />

on a card to us so that we can fix the program if<br />

Terry N. Taylor<br />

Terry N. Taylor<br />

Club Librarian<br />

neecled--or needed--or improve it yourself and resubmit it as<br />

your donation. Either way, someone else will then<br />

not have to wrestle with the same bugs you did.<br />

The reason we need your configuration is that not all<br />

programs will run on every Apple (you might not<br />

have a needed accessory). As a side note, if the<br />

have a needed accessory). As a side note, if the<br />

hires page from a previous program is still on, then<br />

((1) press CTRL-C to stop the program, (2) Poke<br />

-16298,0 to turn off the hires page, and (3)<br />

type run to start the program again. That should<br />

fi x that problem. All lores Graphic programs should<br />

fix that problem. All lores Graphic programs should<br />

aULOmat automatically y LUrn turn off thee hires page as one of their<br />

first statements. But some don't.<br />

TO TRADE (FINALLY!!!)<br />

FOR NON-LOCAL MEMBERS Other Apple user<br />

FOR NON-LOCAL MEMBERS. Other Apple user<br />

groups, or individuals who just want LO to trade.<br />

Please either send your discs or casseucs cassettes of programs<br />

to me:<br />

Terry N. Taylor<br />

12319 E. Bates Circle<br />

Aurora, Colo 80014 Ph. . (303) 750-5813<br />

I wi ll co py you r programs and return your choice of<br />

I will copy your programs and return your choice of<br />

our slices on your discs and mail them right back to<br />

you. If you are a brand-new Apple user group, we<br />

will trade you two sides for one to help you get<br />

started, or even advance some programs on the understanding<br />

that you u will later send some of your own<br />

programs back to us. Fair enough?<br />

When you donate programs, please take a minute<br />

to j ot down on a 3 by 5 card the following:<br />

to jot down on a 3 by 5 card the following:<br />

1) Name Namc of the thc program (exactly (cxactl y as it will be on the disk).<br />

2) What language the thc program is in.<br />

3) What type t),pc of program il it IS is (i.e., , Music, Finance,<br />

Game, Hires, Hircs, Etc.)<br />

4) Author's name and, , if different, diITcren t, who actually ), listed<br />

stcd<br />

the thc program into die the.: Apple. Applc .<br />

5) Source of program (i.e., , original g ina l program, , or the.:<br />

Title, Title. Page, , and Issue Issuc # oi" of the thc magazine magazinc copied copicd<br />

from)<br />

6) Length of program (if known) Also the smiling staning<br />

address addrcss if it is a Binary program.<br />

.<br />

7) Whether Vv'hc thcr the program calls s up any y other mhel' programs, and,<br />

,<br />

if so, their names namcs<br />

8) What accessories, es, if any, are arc needed, nceded. (i.e., c ., programmers<br />

aid, , 48K, type typc of printer, tcr, disc or cassette<br />

c<br />

based, etc.) ctc. )<br />

9) Finally, y, a short description (say 25 words or so) of<br />

what the program does. docs.<br />

If you don't t know one onc of the areas, just leave it blank.<br />

.<br />

Unfortunately, with over ovcr 3000 programs, not too many<br />

people peoplc can remember exactly y what each cach program does docs just<br />

by looking at the thc title; tlc; so any y help here hel'c is deeply dccply<br />

appreciated. . Still, , don't let leI it it stop you from donating<br />

g<br />

your ur program if you u feel feci Uit is a hindrance. hindrancc. It won't be<br />

the e only one thai that needs nceds some documentation.<br />

documcntat Thanks for reading this s far and happy programming. ( ©


94 COMPUTE. MAY/JUNE. \980. ISSUE 4<br />

94 COMPUTE. MAY/JUNE. 198O. ISSUE 4<br />

Introducing AppleSeed, our<br />

newest publication to whet<br />

your Apple* appetite!<br />

We invite you to subscribe to AppleSeed - the<br />

magazine that Is to the Apple II* what SoftSlde Is to<br />

the TRS-80**. It offers the newest in software pro<br />

gramming hints and Ideas tailored especially for<br />

your computer. AppleSeed features challenging pro<br />

grams for both the do-it-yourselfer and the in<br />

dividual Interested in pre-packaged programs and<br />

games... your own preview of the best available on<br />

the market today. A typical slice of AppleSeed con<br />

sists of one major (new 16K) commercial level pro<br />

gram (completely listed for your keying pleasure),<br />

accompanied by two or three applications for prac<br />

tical use or fun, supplemented by informative ar<br />

ticles to polish your Apple*. Get right to the core of<br />

your Apple* needs and order AppleSeed today! 12<br />

Issues, 1 year, $15.00. AppleSeed Is the newest<br />

member of...<br />

_5oft5i3e:<br />

PUBLICATIONS<br />

6 South Streat, Mllford, NH 03055<br />

(603) 673-5144<br />

*A registered iradamark of Apple <strong>Computers</strong>. "A registered trademark of Radio Shack and Tandy Corp.<br />

i


MAY/JUNE. <strong>1980</strong>. 198O. ISSUE 4. COMPUTE. 95 ■5<br />

Edilor Editor's 'j Nole: Note: / In 11 flllllre future ismts, issues, llle'II/Jrtsrnl we'll present inlerviews interviews wilh with<br />

J\ Marketing ' arJ.:t:li".t: /Jrrsmlnel personnelfrom Alari Atari (Iud and <strong>Commodore</strong>.<br />

An Interview<br />

With<br />

Taylor Pohlman<br />

Taylor Pohlman<br />

Apple's Ap~le's Product<br />

Marketing<br />

Michael<br />

Manager g S Tomczyk<br />

Manager<br />

Recently, I had an opportunity to talk with Taylor<br />

Pohlman, Apple Computer's Product Marketing<br />

Manager. Taylor is 33 years old aand came to Apple<br />

less than a year ago from Hewlett Packard, where he<br />

was educational marketing manager. During our interview,<br />

he discussed two important areas -- computer<br />

dealers and consumers.<br />

HeH e described two basic types of dealers, noting<br />

that dealers are first of all businessmen and secondly,<br />

tend lend to operate in those markets they are most<br />

comfortable or experienced in.<br />

The first type of dealer is the hobbyist who becomes<br />

a businessman. For these dealers, technology is<br />

the e key. Since the first-round hobbyist market is<br />

pretty y much saturated, Pohlman n feels these dealers<br />

have to start moving g from hardware re —-- their original<br />

orientation -- to software, and the application io n problems<br />

ol of non-hobbyist users.<br />

The second type of dealer is the retail businessman.<br />

ToT o them, , selling computers is much like selling hi-fi<br />

stereo systems. A fair amount of retail audio-visual<br />

anda electronics outlets are personal computer dealers,<br />

he said, anda many have already y developed the exper­<br />

tise needed to reach the computer market. A-V<br />

stores Stores may already be dealing with schools, for<br />

r<br />

example, and the educational market is a natural<br />

for them. . Small stores also relate well to small businessmcn<br />

because the dealers, as businessmen, , have them<br />

emselves<br />

encountered problems in general ledger keeping,<br />

manufacturing, accounting, etc.<br />

men<br />

"The " personal computer market is emphasiz­<br />

ing g solution-oriented merchandizing as opposed to<br />

hardware-oriented merchandizing," Pohlman n said,<br />

and this poses important t challenges for r all types of<br />

computer dealers. He said Apple has 600 to 700<br />

computer dealers, all with different interests, sales<br />

and facilities. Some sell a single line and others a<br />

complete line, from m small games to LO minicomputers.<br />

m "The " question n they all have to ask is, who are an:<br />

those hungry people outside outsidc the store sLOre who have<br />

problems to be solved by a personal computer? m pUler? At<br />

Apple, we try to 10 turn the dealers on to those markets --<br />

and solutions -- whatever the dealer's ''focus'. By<br />

''focus' I mcan mean hobbyist, businessman, educator, , home<br />

entertainment user. .... . .but whatever it its s focus, a<br />

good Apple store doesn't n )t confuse the e custOmer.<br />

customer.<br />

""For example, the businessman doesn't ' t want to<br />

know this microprocessor runs 20 percent faster than<br />

that one. He wants to know will it solve hiss<br />

problem? On the other hand, the store that just has<br />

a bunch of hardware silting sitting aaround may respond well<br />

to the hobbyist by making the hardware available on<br />

the floor aand letting himm look inside." " (Incidentally,<br />

Taylor Pohlman's n definition of a computer hobbyist is,<br />

""the e individual who's interested ted in thee manmachine<br />

interface.")<br />

Hee kept emphasizing that the key to the overall<br />

personal computer market is problem-solving. In this<br />

regard, rd , Apple's magazines aand other literature ture are<br />

rc<br />

designed to trigger people's problem-solving<br />

approaches and stimulate their imagination. ation . He also<br />

called attention to the company's seminarr program,<br />

which encourages dealers to get out and give seminars<br />

where thee people are arc -- at Rotary Clubs orr real<br />

estate groups, forr example. Apple provides instruc­<br />

tional and advertising materials to dealers for this<br />

purpose.<br />

""For the dealer to survive in the new marketplace,<br />

he's also goingg to havc have to provide service aand<br />

suppOrt support -- not just j sales," he said. Consequently,<br />

Apple has a modular design and can be field-repaired<br />

at over 500 dealer-based repair centers, in 24 hours.<br />

If the e dealer can't ' t repair it, , he can simply replace the<br />

failed part aand send it to Apple for repair. This is<br />

especially {"spcciall y important to the businessman, who can't<br />

allord afford to have his general ledger or other system<br />

go down for a week.<br />

Turning his s attention attcn tion to consumers, he guessed<br />

that there therc are "tens " of 0(" thousands" of Apples in<br />

homes, mcs, schools, and companies. "We're " the oneo personal l computer vendor that has achieved a truly<br />

disk-basedd population n -- as opposedo to those who are<br />

still outo there hyping g cassettes. es. Disk-based software<br />

is more ma rc sophisticated and makes the e Apple more useful<br />

and powerful as a problem-solving tool. LOol.<br />

"What " I, as a consumer, , want t is a computer<br />

that allows me to define e a problem and allows the<br />

machine to solve it in language and terms that t I<br />

can n understand. nd. If the problem is solved I could care<br />

less what the e machine is doing." He added that lhal the<br />

e<br />

level of computer pUler awareness is very high but the<br />

level of computer literacy is not nearly high enough to<br />

create the e "home " computer revolution," mostly y because<br />

right now using g a computer means you u have to:<br />

- define a problem<br />

- create an algorhylhm ythm lo to solve the problem<br />

- write e programs to express the algorhythm<br />

hm<br />

- put the e program in the e computer<br />

- run n and debug (he th e program<br />

"A lot of time lime is wasted trying tryill g to translate LranslaLe information,<br />

,<br />

and a this is wasted time is directly y related to the reluclance<br />

—-- or lack of reluctance -- of customers lo to tance get


MAY/JUNE. 198O 4<br />

96 96 COMPUTE.<br />

MAV I JUNE. <strong>1980</strong> ISSUE 4<br />

involved with a personal nal computer/1 r," he he said. He went wenl<br />

on to to say that the home computer revolution rcvolUlio n will not<br />

t<br />

truly y arrive until you can more morc effectively vely separate<br />

the user from the intricacies of hardware and a nd software,<br />

so he doesn't ' t have to understand the inside of<br />

the m achine or the inside or the soft wa re in Drei e r<br />

the machine or the inside of the software in order<br />

to to use li se it. 1( .<br />

He also spoke of ora a "vast " dumping ground1' ground" where<br />

a lot of people who buy computers encounter encounlcr so<br />

many m a ny stumbling blocks b to using them (language,<br />

interface, hardware) that they wind wincl up juking j them, lilCITl ,<br />

and said Apple is is working hard to solve this and<br />

other problems p s not only through product p develop­<br />

ment and dealer d support, suppon, but also by encouraging<br />

such vocal forums as the International ti Apple Core.<br />

He H e concluded by saying that he doesn't ' t think<br />

Apple II is a mature lUre product after two years and a indicated that future Apples will maintain compati<br />

tibility,<br />

as opposed to some companies n which have come<br />

out with w new machines which weren't ' t compatible<br />

with earlier versions. He H e said, "If " I f people think<br />

Apple is going to somehow change it's product or o r it's<br />

way of o f doing business, they're wrong."<br />

-^<br />

6502<br />

MACRO ASSEMBLER<br />

AND TEXT EDITOR<br />

• Versions for PET, APPLE II, SYM, KIM<br />

Versions for PET, APPLE II, SYM, KIM<br />

and ATAR I (1st quarter <strong>1980</strong>)<br />

Written entirely in machine language<br />

Occupies 8K of memory starting at $2000 —<br />

Apple version with disk occupies just over<br />

• Written entirely in machine language<br />

• Occupies 8K of memory starting at $2000 -<br />

9K<br />

• Macro and conditional assembly<br />

• 36 error codes, 26 commands, 22 pseudo ops<br />

• Labels up to 10 characters<br />

• Auto line numbering and renumber command<br />

• String search and string search and replace<br />

• Copy, move, delete, load, save, and append<br />

commands<br />

commands<br />

Cassette and Manual $49,95<br />

Cassette and Manual $49.95<br />

(including U. S. postl1ge)<br />

postige)<br />

Eastern House Software<br />

3239 Lind. Dr. Win, ton-Salem, N. C. 27106<br />

3239 Linda Dr. Winston-Salem, N. C. 27106<br />

GIVE YOUR APPLE<br />

A BYTE OF THIS...<br />

.<br />

GPA ELECTRONICS'<br />

Programmable,<br />

Intelligent I/O. 110.<br />

More than a<br />

Completely programmable via Resident Monitor in<br />

PROM, the Intelligent I/O 110 lets you YOIl<br />

select the operation you YOII desire,<br />

then helps you complete the task.<br />

FEATURES:<br />

• 6502 Microprocessor.<br />

• 2K E-PROM; IK I K RAM as buffer.<br />

•* Serial and parallel raliel I/O 110 through four ports. Device can<br />

communicate with two peripherals simultaneously;<br />

RS-232 dcvices devices can communicate with parallel<br />

devices.<br />

•* Hard copy interfacing with h either RS-232 or 20mA<br />

devices (Please specify.)<br />

• Accommodates all li baud rates to 9600.<br />

■* * Selectable line feed. feed, carriage return delay and characters<br />

per linc.<br />

line.<br />

• Supports standard ElA EIA modem-control signals.<br />

• Handshaking, of course.<br />

*• Functions as Data Channel, , SPOOLER or Program ­<br />

mable Filter.<br />

• Remote access to Basic.<br />

• Fuliy Fully disk compatible.<br />

*• Will provide secure, encrypted telecommunications<br />

with optional programming.<br />

• Completee dial-up and time sharing fUllctions.<br />

functions.<br />

*• Allows ganging of microcomputers for multii­<br />

processing.<br />

*• Accesses and comrols controls servos, sensors, articulated<br />

devices or transducers (with appropriate firmware.<br />

firmware,<br />

available from GPA.)<br />

*• Functions as disk controller, resident assembler,<br />

E-PROM burner (with optional firmware.)<br />

*• Integral power supply (5VDC @ 350mA.) Completely<br />

portable, stand-alonc stand-alone computer.<br />

*• Fully y documcntcd, documented, tested and guaranteed. .<br />

See your dealer today, oor r order direct from m CGPA.<br />

Just $299.95 (110VAC ) or S320.95 (250VAC)<br />

I'.O.BoxWI<br />

b~ ].;iiii>imlk-.CA l lI", illr.CA II~~ 1545-1<br />

j 707. (707lt»H4-6270<br />

11~ ·6270<br />

A|>|ilr fa .i rrgMrn-d Irailc murt, nf Appli' CompQltr. lac.<br />

GPA ELECTRONICS'<br />

Programmable,<br />

More than a<br />

telecommunications<br />

I/O. 1/ 0. More than an<br />

intelligent hard copy<br />

interface. GPA's<br />

Intelligent I/O 1/ 0 is a<br />

COMPLETE<br />

MICROCOMPUTER<br />

on a4W'x7"card!<br />

a 4V2 "x7 " Completely programmable via Resident Monitor in<br />

FEATURES:<br />

then helps YOII complete the task.<br />

Just $299.95 (I IOVAC ) or $320.95 (250VAC)<br />

.~<br />

€~~<br />

~n.@9~lr<br />

".D. no\ 11,\ 1


MAY/JUNE. . 19So. 198O. ISSUE 4. COMPUTE. 97<br />

MADE IN THE SHADE:<br />

MADE IN THE SHADE:<br />

AN INTRODUCTION TO "THREE­<br />

"THREE-<br />

DIMENSIONAL" GRAPHICS ON<br />

THE ATARI COMPUTERS DovidD ° D · i~~~~~~~<br />

Innovision „„«*s<br />

If you know anything at all about thee Atari 400<br />

and 800, , you probably know that these machines give<br />

you access to 256 colors. What you may lIot not realize is<br />

that these colors are specified with two independent<br />

parameters which allow you to create "three-<br />

threedimensional"<br />

objects on the display.<br />

The (WO two parameters off interest are hue and<br />

luminosity. Atari gives you access to sixteen colors<br />

(the hues), each of which can be darkened or lightened<br />

by setting the luminance to one of eight levels.<br />

Traditionally, computers that offer limited colors<br />

(sixteen total, for example) prc-selcct pre-select different hues and<br />

luminosities for each color so that inter-color r contrast<br />

is always apparent, even when the picture is shown<br />

on a black and white display. If two colors have the<br />

same luminosity, you will not see any difference<br />

between the colors when they are shown on a black<br />

anda white display - a phenomenon you should demonstrate<br />

to yourself sometime.<br />

The beauty of the Atari scheme is that the wide<br />

range of available colors leads to the ability to create<br />

some pretty y pictures, even though only four colors can<br />

be displayed at one time. TheT program presented here<br />

illustrates a common graphics task - the representation<br />

of a solid three-dimensional object through shading.<br />

Since we can display three colors plus the background<br />

in a moderate resolution graphics mode, this<br />

lets us represent a shaded cube. After all, , you can<br />

only see sec a maximum of three faces of a cube at any<br />

given time. The function of the program, then, , is to<br />

create a two-dimensional representation of a cube in<br />

which the e "realism"" results from the control of o f the<br />

shading on each visible face.<br />

In case you are not familiar with Atari graphics,<br />

a short shan digression is in order. Displayed colors are<br />

established by the SETCOLOR O R command which takes<br />

the form SETCOLOR A, B, C in which A is the<br />

color register (0-4), B is the hue (0-15) and C<br />

is the luminosity (an even number from 0 to 14). (I<br />

don't 't know why luminosity isn't set with numbers<br />

p.o P.O. Box 1317. 1317, Los Altos. Altos, CA 94022 94O22<br />

between 0 and 7, but the use of even numbers doesn't<br />

present too much of a problem, as you will see.) The<br />

hues (see Table I) are the various basic colors you can<br />

use to draw your pictures, and the luminosities control<br />

the brightness from 0 (very dark) to 14 (almost<br />

white). Once you have set the color registers, you<br />

need to indicate which register should be used for the<br />

various plotting commands. This function is performed<br />

with the COLOR statement. This statement has the<br />

form COLOR D in which D refers to the color<br />

register in which the desired color is located. Now for<br />

reasons that I don't understand, the value of Dis<br />

generally larger than the color register number by<br />

one. In other words, D = A + 1.<br />

PROGRAM LISTINGL 10 REM •• SHADING DEMO<br />

20 GRAPHICS 23<br />

30 OPEN #l,4,0,"K:"<br />

#I ,4,O, " 40 FOR I 1 =0= 0 TO 4: SETCOLOR 1,9,4 : NEXT I<br />

50 X0=48 XO = : Y0 YO = 36<br />

60 COLOR 1<br />

70 FOR I =0= 0 TO T O 40<br />

80 PLOT X0,Y0 XO ,YO + I : DRAWTO X0 XO + +40,YO 40,Y0 + I<br />

90 NEXT I<br />

100 COLOR 2<br />

110 FOR I 1 = 1 TO 24<br />

120 PLOT X0 XO + I,Y0-I I,YO-I<br />

DRAWTO X0 XO + +1 I<br />

+ 40,Y0-I 40,YO-I<br />

130 NEXT I1<br />

140 COLOR 3<br />

150 FOR I 1 = 1 TO 24<br />

160 PLOT X0+40 XO + I,YO-I<br />

I<br />

DRAWTO X0+40 XO + I,<br />

170 NEXT I<br />

YO+40-1<br />

+ 40-1<br />

180FOR I =0 =OT02 TO 2<br />

190 GET #1,A #I,A<br />

200 IF A


98<br />

98<br />

COMPUTE. MAY/JUNE. MAV / JUNE. <strong>1980</strong>. ISSUE &..:1,<br />

Now that t these tips lips on on Atari color are under your<br />

belt, it it is is time to to try tryout the the program.<br />

The listing starts out OUl by by setting tting a moderately high<br />

resolution full-frame m e graphics mode in in statement 20.<br />

This mode allows the display of of four colors and contains<br />

160 x 96 96 picture elements -- plenty for our need.<br />

The OPEN statement lets us us use a GET statement to to<br />

receive data from the keyboard without having to to press<br />

RETURN. Note that the Atari version of GET is is<br />

very different from the version you may be accustomed<br />

to from Microsoft BASIC. Next, the color registers<br />

are all set at the same color value so that when the<br />

cube is is first drawn you cannot see it. The front face of<br />

the cube is is drawn in COLOR 1 (from SETCOLOR<br />

register 0) in lines 70-90, a nd the other two<br />

register 0) in lines 70-90, and the other two<br />

faces are drawn in COLOR 2 and COLOR 3 in<br />

lines 110-130 and 150-170 respectively. At this<br />

point the computer waits s in line 190 until a key is<br />

typed. (Note that in Microsoft BASIC the program<br />

would not stay at a GET command, but would<br />

look once and be on its way.) y.) Since I expect<br />

to be GET-ting a keystroke from keys 0 through 7<br />

(which have the Atari-ASCII values 48 through 55),<br />

lines 200 and 210 convert the keystroke to an even<br />

number between 0 and 14 for use in the SETCOLOR<br />

command. This program looks for three keystrokes -<br />

one for each face of the cube. As each key is<br />

typed (try 5, 6 and 7, for example) a cube face will<br />

become visible. The result is that a ""three-dimen<br />

three-dimen­<br />

sional" " representation of a cube is now nicelyy<br />

displayed on your TV screen. .<br />

If you want to change the shadings, type three<br />

more numbers between 0 and 7 and see what happens.<br />

Next, for some more excitement, type J, K and L.<br />

Once again you will see the shaded cube, but the<br />

color will have changed from gold to more of a<br />

magenta. As you can see, luminance values greater<br />

th than an 14 cause the hue to change.<br />

Now that you u know about shading, you should be able e<br />

to make some truly beautiful pictures on th the e Atari<br />

computers!<br />

Table 1. Hue Values For The Atari <strong>Computers</strong><br />

COLOR<br />

HUE VALUE<br />

CRAY GRAY 0<br />

LIG LIGHTORANGE O R 1<br />

ORANGE 2<br />

RED·ORANGE RED-ORANGE<br />

3<br />

PI PINK NK +<br />

PU PURPLE 5<br />

PURPLE-BLUE 6<br />

BLUE 7<br />

ANOTI-I ANOTHER lOR BLU BLUE E<br />

B »<br />

LIGHT BLUE E 9<br />

TTURQUOISE U 10 10<br />

GREEN-BLUE<br />

II M<br />

GREEN 12 12<br />

YELLOW-GREEN W 13 13<br />

ORANGE·G ORANGE-GREEN REE, 14 14<br />

LIG LIGHTORANGE O E 15 15 ©<br />

INTRODOCING<br />

INTRODUCING<br />

FOR THE ATARI TM<br />

FOR THE AT ARr M<br />

GUESSWORD -<br />

GUESSWORD — Based<br />

on tm tn ~ TV shov. she ,"" Password, lJ~ l.\.'ord . the<br />

computer C0m ~ r<br />

gives clues ('lues to :0 the<br />

secret ' !: e~re l word. wo;d. Tr.c Tnc faster last!;:r vou<br />

guess gut's!:. the word the I t>e hiahei higher<br />

your you: score. s..:-ore. For Fe·, one C'ne or two<br />

players (grades 19rades 6-M 6+1 cass. ss. S15.00 S WA,"ITED -<br />

WANTED — Be a detective df>IC'(1h:tana<br />

track t ra~'k aowr. OOWI. the e wc;d; wc;e! that<br />

have escaped esci:ptd your vocabulary. '.c:nDulal).<br />

Clues appear app.::~r<br />

on the me screen in Ir:<br />

the tht' form of 01 a 'Wanted' 'Wantec" poster puster<br />

(grades (9 r "d e ~ 4-8)... 4·8). cass 515.00 $15.00<br />

WORD-SCRAMBLE -<br />

Unscramble UnSCff of Fish M!.'h with the computer. (OmpUlei,<br />

Tl Tius lls time tiine esk ~sk tor lor the homonyms homenrm!'<br />

to to the Ul~ word-cards word·cards that appear ap~ar in In<br />

your hr.nd. h2.nd. (grade; \grades. 3-6) 3·6) .<br />

cass<br />

SI5.00<br />

S15.00<br />

WORD-MATE -<br />

WORD-MATE — Bjiid R"ild<br />

compound CC'n1jX>U;):i words with v.'lth the words word"<br />

tha1. tha: have ha'ie been l ~ dealt deal! to you. yOl '<br />

Try TT)' to make ;na..:e mote m Ol€, compound<br />

COr1roun d<br />

words w() ~ than the computer cornlJuter Don't<br />

\<br />

get gel stuck with lA~th<br />

the last la!.t card ::ard<br />

(grades 3-6). 3·6 ). . o-ss CC1SS 515.00 S COMING S OON ..<br />

PRESCHOO L FUN<br />

COMING SOON . . .<br />

PRESCHOOL FUIN<br />

MATH FACTS iI<br />

CR1BBAGE<br />

CRIBBAGE<br />

Or Call: (313) 595-4722<br />

DEALER ORDERS<br />

WELCOME<br />

Imagine. Imagine, berng being .lble able 10 to put In in memor) memory aany 3·D 3-D obJcct ob|ect. .md and Vle\\ view II it Tra trom m<br />

any ~' location and dcgfcc degree oof f fOla rotation, llon. undc underneath, rnealh. 1Il51df' inside of! Th.s This I is ~ ,1 a<br />

set of .14 pfOg,illllS programs W/llstings l lr ~tmg \ th.l that l Will will fun run III in 8K' RK! H,t- ifiK mill mm fOI for HI<br />

RlS RfcS I'fogfiHllllled Programmed In in B.Hl Hasit e but c"ecutcs executes VCf\' very f.lSl. fast, ,lnu and I"OgIMl1 program " is<br />

cas\ easy 10 to ('~I).Hld expand Muh.plc Multiple color icilor conlfo control, l. ~oft software \ \


MAY/JUNE. I <strong>1980</strong> I960. . ISSUE 4. 4 COMPUTE. 9Q<br />

Atari Tape Data Files<br />

Atari Tape Data Files<br />

A Consumer Oriented Approach<br />

Introduction<br />

This article is based on a major axiom of consumer<br />

computing:<br />

Easier is Better<br />

The specific coroll ary when writing a program which<br />

The specific corollary when writing a program which<br />

saves data between program runs is:<br />

Use only one tape. Program and data should be on the<br />

same tape. They should, in fact, be the same thing.<br />

A consumer should be able to load his program, run<br />

it 10 to update hiss checkbook and balance hiss budget, and<br />

then save the program on tape when done. The next<br />

day, he can load his program and all data changes<br />

from the previous day should be there.<br />

" Impossible", you say? Well , perhaps. It is cer­<br />

"Impossible", you say? Well, perhaps. It is cer<br />

tainly y impossible on some of the computers on the<br />

market. But it is not impossible on the Alari. Atari. The trick<br />

is to fool Atari Basic into saving all dimensioned<br />

variables when a program is saved to tape. We won't<br />

try 10 save the simple variables. Since I am not a<br />

try to save the simple variables. Since I am not a<br />

revered expert, I won't make the mistake of saying<br />

this is impossible. (But, I think it's impossible.)<br />

this is impossible. (But, I think it's impossible.)<br />

Saving the dimensioned variables with a program is<br />

relatively easy.<br />

Write your program<br />

Listing 1 is a simple program. Nothing tricky. But<br />

Listing 1 is a simple program. Nothing tricky. But<br />

notice that I print the dimensioned variables in Lines<br />

70-130 and then assign values to them in Lines 140-<br />

190. I am assuming the variables have valid contents<br />

before changing them! The only important restriction<br />

here is to type the line containing the DIM<br />

statement firsl. It doesn't have to be the first line<br />

statement first. It doesn't have to be the first line<br />

in the program. Just make sure it is the first line<br />

typed.<br />

The Atari Basic variable sy mbol table is con­<br />

The Atari Basic variable symbol table is con<br />

structed when each line is typed in, , not when the program<br />

is run. Later we will need to find the locations<br />

of the string variables in the table . This is<br />

tions of the string variables in the table. This is<br />

easier if they are the first variables present. For a<br />

more complete discussion of the symbol table, see the<br />

text in the box.<br />

text in the box.<br />

50 DIM A$(10),B(2 , 3)<br />

50 DIM A?(10),B(2,3)<br />

70 ? A$ AS<br />

80 FOR 1=0 TO 2<br />

80 FOR 1=0 TO 2<br />

90 FOR J =0 TO 3<br />

90 FOR J = 0 TO 3<br />

1100 PRINT B{I,J), B( 110 NEXT J<br />

120 PRINT<br />

130 NEXT I<br />

14~ ? "STRING=";:INPUT A$<br />

140 ? "STRING=";:INPUT AS<br />

150 15~ ? "I=";:INPUT I<br />

160 IF 1=9 THEN 200<br />

160 IF 1=9 THEN 200<br />

170 17~ ? "J=";:INPUT "; : I A:B(I,J)=A<br />

, 190 GOTO 150<br />

190 GOTO 150<br />

200 END<br />

50 DIM A$(10),B(2,3)<br />

70 ? A$<br />

110 NEXT J<br />

1120 PRINT<br />

130 NEXT I<br />

140 14~ ? "STRING=";:INPUT ";: INPUT AS A$<br />

1501 5~ ? "I=";:INPUT I<br />

160 IF 1=9 THEN 200<br />

Al Baker<br />

2327 S S. Westminster<br />

Wheaton, IL 6O187<br />

210 A=A+82<br />

220 POKE 141,INT(A/256):POKE , 140,A-PEEK(141)*256141 230 CSAVE<br />

procedure won't work.<br />

AI Baker<br />

Wheaton, IL 60187<br />

Suppose the program is already written and you<br />

didn't type the DIM statement first. Write your<br />

program 10 to tape using the command LIST"C". Type<br />

NEW. Now type the DIM statement from your program<br />

with the string variables first. Finally, reload<br />

the program from tape with the command ENTER<br />

"e". "C". Now the string variables are at the beginning<br />

of the variable tables.<br />

Protect the Dimensioned Variables<br />

The next step is to fool Basic into treating the<br />

dimensioned variables as part of the program. Also,<br />

you have to add the code to let the program save<br />

itself to tape. In an application, saving the program<br />

to tape will be the final program option selected by<br />

the user. In Listing 2 this is added to the program<br />

in lines 200 through 230.<br />

50 Dnt A$( 1 0) ,B (2 ,3)<br />

80 FOR 1=0 TO 2<br />

90 FOR J=0 TO 3<br />

100 l~ ~ PRINT B(I,J),<br />

110 NEXT J<br />

130 NEXT I<br />

1 60 IF 1=9 THEN 200<br />

170 ? "J=" "J=";:INPUT ; :INPUT A: A:B(I,J)=A B(I , J)=A<br />

190 GOTO 150<br />

200 A=PEEK(140)+PEEK(141)*256<br />

)*256<br />

210 A=A+82<br />

230 CSAVE<br />

Locations 140 and 141 contain the address of the<br />

end of the computer program. Program line 200 places<br />

this address in the variable A. In line 210 we add the<br />

size of the dimensioned variables. Each string variable<br />

containss as many bytes as its dimension. Each<br />

numeric array contains 6 times the number of<br />

members of the array. The B array is 6x(2 + l)x(3 + 1)<br />

= ~ 6x3x4 = ~ 72 bytes. Thus we had to add 10 + 72 or<br />

82 to the end of the program in the example.<br />

Now run the program and let the internal CSAVE<br />

create a tape. Turn the computer off and then on.<br />

Now reload the newly created program from tape.<br />

For some reason this step is important. (I don't 't<br />

know why.) If you do not use the new tape, this<br />

procedure won't work.<br />

Finish the program<br />

We now have a program in memory which has an<br />

invalid program - end pointer. See Sec the third listing.<br />

Add lines 10 through 40 to your program. Make sure<br />

that you use the correct number instead of 4' -82"<br />

that you use the correct number instead of "-82"


1OO 100 COMPUTE. MAY/JUNE. I 198O. <strong>1980</strong>. ISSUE 4.<br />

in line 10. Remember that this number is the size<br />

of your dimensioned variables.<br />

Refer R to Table T 1. Locations 140 and 141 form<br />

the program-end address. . Locations 142 and 143 form<br />

the stack address and locations 144 and 145 form the<br />

pointer to the end of memory used by the program.<br />

The RUN command sets all of them equal to the<br />

incorrect end-of-program pointer. . Lines 10 through 40<br />

correct them.<br />

Here H comes the only hard part. You are going<br />

to have to peek around in memory. The RUN R U N<br />

command sets the length of all strings to zero. You<br />

must repair their lengths if you want to save string<br />

data.<br />

Table 1.<br />

Table 1.<br />

These two byte addresses point to (Q important a nt areas used by<br />

Atari Acari Basic.<br />

Use this<br />

To get the location of this<br />

PEEK(130) PEEK( 130) + PEEK(131)*256 PEEK(131)"256 Variable Va,;able name table ,able<br />

PEEK(134) + PEEK(135)'256 PEEK( 135) "256 Variable Va,;able value table ,able<br />

PEEK(136) +PEEK(137)*256+ PEEK(137)"2S6 Beginning Seg;n n; ng of program<br />

Use these only when program running<br />

Use these only when program running<br />

PEEK(HO) PEEK(I40) + PEEK(141)'256<br />

PEEK(141)"256<br />

End of program and d beginning of dimensioned<br />

variables<br />

PEEKO42) PEEK( 142) + PEEK(143)*256<br />

PEEK( 143)"256<br />

End of dimensioned variables and beginning of<br />

stack<br />

PEEK(144) I44) + PEEK(145)*256<br />

PEEK(145)"256<br />

End of memory mory used by program<br />

Look at Table 3. The third entry in the variable<br />

value table is the string ALPHAS. ALPHA$. Its current length<br />

is 5 + +0*256 0'256 or 5. These two bytes must be set to<br />

the correct length of the string. Type the command:<br />

PRINT PEEK(134) + PEEK(135),256. PEEK(135)*256.<br />

Now you<br />

know where the variable value table is. If you have<br />

been writing the program in the listings, you should<br />

get the answer 2056. Assume the string is the first<br />

entry in the table. The locations of the length is<br />

Table 3<br />

Table 3<br />

The variable value table; table: Each entry is eightt bytes.<br />

V ariable<br />

Variable<br />

ABI AB1<br />

Table Entry<br />

Table T 2<br />

The T variable name table: Entry lengths are different. differcllI.<br />

Box symbolizes that 128 is added to ASCII value of last<br />

character to show the name's end. cnd .<br />

Variable<br />

Variable name<br />

Variable Variable name<br />

AB1 ASI<br />

AB [Tj<br />

AR{3,4) AR(3,4)<br />

AR[JJ<br />

CD<br />

CDOG(17)<br />

I CDOGjTJ<br />

IT]<br />

ALPHAS (10) ALPHA[|j ALPHAI1I<br />

E [El [])<br />

FIG<br />

FI [G]<br />

AS ill<br />

Note: Variable names can be up to 120 characters long<br />

and are a completely unique. Variable ABCA i.s is different<br />

from variable ABCD. A Variable names DO NOT appear<br />

in the program in memory. Only a I1 byte pointer to<br />

the variable name in the variable name table appears.<br />

Table Entry<br />

Contents<br />

1234561 2 3 4 5 6 7 8 Meaning<br />

, 01 0/ 0/64/,.0, 0/64/5,0. 0,0, 0 First byte is 0; 0: this is a number. Second byte is 0: this is thee first entry. 64<br />

is the exponent. 5 is the binary coded decimal value.<br />

FI IQ)<br />

3 character number name<br />

2 character array name<br />

e<br />

4 character array a name<br />

6 character string name<br />

1 character number name<br />

3 character number name<br />

Note; Variable names can be up to 120 characters long:<br />

the variable name in the variable name table appears.<br />

2060 anda 2061. Since the length of the string of data<br />

being saved in the example is 10, I set location<br />

2060 to a 10 lOin line 60 of the program.<br />

Try it out<br />

The program is complete. Save it. Now RunR it. You<br />

will probably get garbage in the print out. Put a<br />

10 character string in the string variable. Now put<br />

numbers in various entries in the B array. Typing<br />

a 9 for the I subscript will end the program with a<br />

CSAVE. C Do this CSAVE onto a new tape. TurnT the<br />

computer off and on. Now load this new copy of the<br />

program and run it. Viola! TheT data is still there!<br />

Now load this new copy of the program and run it.<br />

Viola! V ! The data is still there! Now just imagine that<br />

this was your budget information, , address book or<br />

other files. . You have a no-hassle one-tape system.<br />

.<br />

Conclusion<br />

I have provided more information about this internals<br />

of the Atari than is really necessary to solve<br />

thiss problem. If you are interested in this kind of<br />

information, , study it. If not, skip it. If you have<br />

any questions, I would be glad to answer them. . One<br />

warning. Doo not press break while the program p'rogram is<br />

running and then type RUN. Always use the CONT<br />

AR(3,4)<br />

AR(3,4)<br />

doe,n',<br />

doesn't<br />

matter<br />

matter<br />

64 + lillO, 1/1/0, 0/4, 0/5,0<br />

64 makes this an array. + I 1 means thatt it has been dimensioned. 0 ° +0*256 is the<br />

displacement displacement into thee array area. 4 + 00*256 is the size of the first dimension and<br />

5 +0-256 +0*256 is the size of the second dimension. .<br />

CDOG( 17)<br />

CDOG(17)<br />

doe,n',<br />

doesn't<br />

matter<br />

64 + 1/2/120,0/18,0/1, 120.0/ 18,011,00<br />

This array is displaced 120 bytes into the aarray aarea, and it is ddimensioned<br />

18+0*256+ 0 by 1 +0*256.<br />

ALPHAS( IO) " 1234S "<br />

ALPHA$(10)<br />

FIG<br />

"12345'<br />

E .05<br />

.05<br />

FIG -S<br />

128 + 1/31228,Of!), 1/3/228,0/5, OliO, 0/10, 0<br />

01 4/63/5,0, 0,0, 0<br />

0/ 4/63/5,0, 0,0. 0<br />

01 S/64 + 12815. 0.0, 0<br />

0/ 5/64+ 128/5, 0.0, 0<br />

128 makes this a string. + I 1 means that it has been dimensioned. . It starts<br />

228 + +0*256 bytes into the array area. . The current length of the string is<br />

,) 5 +0*256. The maximum imulll size of the string is 10 +0*256.<br />

This is a number. The exponent is now 63 so the number is only 11 1/100100 of its<br />

integer value, or .05.<br />

This is a minus number ( + 128 on exponent) nt)


MAY/JUNE. I <strong>1980</strong>. 198O. ISSUE 4. A.<br />

COMPUTE.<br />

101<br />

command after pressing BREAK. K . Otherwise the statements<br />

in lines 10-40 will destroy thee program data.<br />

This can be prevented if youu know what thee correct<br />

value of A should be in line 10. Replace line 10<br />

with l10A OA = =n, n , where n is this number. Do this for<br />

your finished producl.<br />

product.<br />

10 A=PEEK(140)+PEEK(141)*256- 82<br />

10 A=PEEK(140)+PEEK(141)*256-82<br />

20 POKE 141,INT(A/256):POKE , 140,A-PEEK(141)*256<br />

, ) 30 POKE 143,INT(A/256):POKE , ) , 142,A-PEEK(143)*256<br />

, ) 40 POKE 145,INT{A/256):POKE , (A/256) , 144,A-PEEK(145)*256<br />

) 50 DIM A$(10) AS{10),B(2,3)<br />

, 70 ? A$ A?<br />

80 FOR 1=0 TO 2<br />

90 FOR J=0 TO 3<br />

90 FOR J=0 TO 3<br />

100 PRINT B( I, J) ,<br />

110 NEXT J<br />

120 PRINT<br />

100 PRINT B(I,J),<br />

110 NEXT J<br />

120 PRINT<br />

130 NEXT I<br />

140 ? "STRING=";:INPUT A$<br />

150? ? "I=";:INPUT INPUT I<br />

160 IF 1=9 THEN 200<br />

170 ? "J=";:INPUT "J=M;:INPUT A:B(I,J)=A<br />

190 GOTO 150<br />

200 A=PEEK(140)+PEEK(141)*256<br />

210 A=A+82<br />

220 POKE 141,INT{A/256):POKE (A/256) , 140,A-PEEK(141)*256<br />

140,A-PEEK(141}*256<br />

230 CSAVE<br />

230 CSAVE<br />

The Atari Basic<br />

Symbol Table<br />

Most Basic interpreters assign values to the symbol<br />

table as the program is run. Not true with the<br />

Atari. Alari. New variables are placed in the symbol table<br />

when the program line they Ihey are contained in is<br />

first<br />

rsl typed.<br />

If you later la[cr change variable names, the old<br />

variable names are not removed from rrom the table.<br />

They stay forever! rorever! Even the CLRC command mand docs not<br />

remove them. Ihem. They continue to 10 take up room. . How<br />

much room? 8 bytes plus the Ihe length of the name.<br />

Add another byte if the variable is an array.<br />

Fortunately, it is possible to 10 clean up the Ihe variable<br />

table. Write \"'rile the Ihe program to cassette using g the<br />

command LIST"C", type NEW, , and then reload<br />

the program from tape with the command<br />

ENTER"C'\<br />

"e".<br />

A program can often be made to run faster<br />

by placing selected variable at the beginning of<br />

the variable table. This decreases the time it takes<br />

(o to find variables which are used in time-critical<br />

routines.<br />

To place these variables at the beginning of<br />

the variable a table, write the program to cassette casse(le<br />

using the command LIST"C" and then type NEW.<br />

Now use usc those variables. For example, if the<br />

variable A must be the first variable in the table,<br />

type A =0. = O. If the string BS must be used, , type<br />

DIM D B$(l). BS(I ). You are "ordering" the variable table.<br />

When \'\Ihen you u have finished placing as many variables in<br />

their correct order as you want, lll , load the program<br />

you )'Oll saved to 10 tape rape with the command ENTER"C".<br />

" e" .<br />

This T s does docs not interfere with the contents cO of the<br />

variable<br />

table.<br />

Changing Atari program to save<br />

the dimensioned variables.<br />

Changing Atari program to save<br />

the dimensioned variables.<br />

• Gel Get Ih thee program working.<br />

• Place the string variables at the bcgi:1nin beginningg<br />

of lhe the variable lable.<br />

table.<br />

• Change the program so thai that it internally<br />

poinls points Ihe the program-end address paS! past Ihe the<br />

dimensioned ned variables ables and then saves it itself<br />

to tape.<br />

• Run thee program, m , creating a copy oonn<br />

lape. tape.<br />

• Turn the computer off, on, , aand then<br />

reload Ih thee program. .<br />

• Add lhe the slalemenlS statements 10 to Ihe the beginning of<br />

thee program to correct the program-end<br />

pointer, stack pointer, and cnd-ofmemory<br />

pointer. poimer.<br />

end-of-<br />

• Add the code 10 to restore lOre the aClual actual SIring<br />

string<br />

variable lenglhs lengths 10 to Ihe the variable able value<br />

lable.<br />

table.<br />

• Save your finished program to la tape.<br />

.<br />

Figure 1:<br />

Basic Progra m Memory Layout<br />

Basic Program Memory Layout<br />

System and<br />

Basic overhead<br />

Basic overhead<br />

Variable name<br />

table<br />

Variable<br />

Value table<br />

Value table<br />

Program<br />

Dimensioned<br />

Variables<br />

Variables<br />

Stack<br />

Stack<br />

Unused<br />

Unused<br />

Screen<br />

Screen


102 COMPUTE. MAY/JUNE, 198O ISSUE 4<br />

MAYIJUNE, <strong>1980</strong>. ISSUE 4.<br />

I<br />

TM<br />

H<br />

FOUR EXCELLENT PROGRAMS FOR YOUR ATARI ATARI'· 800<br />

□o CLOCK<br />

o ZAP<br />

□o LOGO<br />

N0_tnis No-this isn't another digital clock! It's an old-<br />

oldfashioned<br />

wall clock, with chimes to charm you.<br />

And it keeps on ticking .. ....<br />

Grab a joystick and try to zap the targets. Has an<br />

"attract" mode when you don't want to play. You'll<br />

also learn how to use the ATARI IstartI ISTARTI button in<br />

your Basic programs.<br />

A flashy demo that shows off the ATARI color registers.<br />

□ POLYGONS Your ATARI constructs beautiful geometric<br />

patterns.<br />

IRIDIS #1 is available now. You get a C-30 cassette or a high-quality diskette with<br />

four excellent programs for your ATARI 800. The programs are ready to "Load"<br />

and ""Run". ". You also receive the 24 page IAIDIS IRIDIS GUIDE which provides clear instructions<br />

for the programs, as well as important information about how to get<br />

more out of your ATARI.<br />

Our programs are written to be studied as well as used. The GUIDE will have complete<br />

source listings of selected IRIDIS programs. Not just li listings, but an explanation<br />

of what's going on. If you are new to programming, IRIDIS is one of the easiest<br />

ways you can learn advanced techniques. If you're an old hand, you'll still find<br />

IRIDIS to be a rich source of ideas and ATARI techniques.<br />

ATARI is a trademark of ATARI, Inc.<br />

Please send me IRIDIS #1 for my ATARI 800 immediately.<br />

o □ $9 $9.95 Cassette<br />

0 D $12.95 Disk<br />

Name<br />

State/ Zip ___________________________________________<br />

Stale/Zip<br />

D MasterCharge Expires<br />

Signature<br />

o POLYGONS<br />

------------------------------------------------<br />

Name __________________________________________ ___<br />

Address ____________________________________________<br />

City _____________________________________________<br />

o VISA Card Number ______________________________<br />

□ VISA Card Number<br />

o MasterCha rge Expi res _____________________________<br />

Signature<br />

Programs for your A TAR""<br />

Programs for your ATART<br />

Published By:<br />

The Code<br />

The Code<br />

Works<br />

Works'"<br />

Box 550<br />

Goleta. Goleta, CA 93017<br />

805-967-0905 -0905<br />

Dealer Inquiries Invited. .


MAY/JUNE, I JUNE. <strong>1980</strong>. 198O. ISSUE 4. 4 COMPUTE. 103 1O3<br />

"ENTER" WITH ATARI<br />

"ENTER" WITH ATARI Len Lindsay<br />

The power to insert or append program segments is<br />

The power to insert or append program segments is<br />

built right into your ATARII computer, even though it<br />

is not mentioned in the ATARI documentation.<br />

Here is an example of how thiss capability can be<br />

utilized. Let's say you just finished ished writing in g a program<br />

called FASTTRAP. You have it saved either on tape<br />

ca lled FASTTRAP. You have it saved either on tape<br />

(CLOAD) or an di sk (SAVE" D:FASTTRAP").<br />

(CLOAD) or an disk (SAVE"D:FASTTRAP").<br />

Now you are developing g another program called<br />

NEWPROG. There are several routines in FAST-<br />

NEWPROG. There are several routines in FAST­<br />

TRAP that you would like to include in NEWPROG.<br />

TRAP that you would like to include in NEWPROG.<br />

The hard way to do this, of CO course, UI'se, is to type [hcm them<br />

in again. The easy way is to entcr enter them from<br />

FASTTRAP, and here is how to do it. .<br />

Any program sections that you wish to merge into<br />

another program should be recorded on tape or disk<br />

another program should be recorded on tape or disk<br />

usi ng th e LI ST command. The format for tape is:<br />

using the LIST command. The format for tape is:<br />

LIST"C:",sssss,eeeee<br />

" ,sssss,ccccc<br />

The format forr disk is:<br />

LIST"D:FILENAME",sssss,eeeee<br />

The sssss should be replaced by the starting line<br />

The sssss should be replaced by the starting line<br />

number of the section, and the eeece eeeee should be re­<br />

placed by the ending line number. If you wish all<br />

placed by the ending line number. If yo u wish all<br />

th e lines reco rded you may leave air th e lin e<br />

the lines recorded you may leave off the line<br />

numbers.<br />

There are two routines in FASTTRAP that you<br />

There are two routines in FASTTRAP that you<br />

would like to use in NEWPROG. Lines 2000 to<br />

20099 are a routine that allows the ATARI to<br />

determine which plug your joystick is attached ached to.<br />

With the program F ASTTRAP in memory save the<br />

With the program FASTTRAP in memory save the<br />

routine to tape like this: [his:<br />

LIST"C:",20000,20099<br />

or to diskd like this:<br />

LIST"D:IDENTIJST. LIST' ' IDENTIJST .SUB" SUB", ,20000,20099<br />

The other routine in F ASTTRAP you would like to<br />

The other routine in FASTTRAP you would like to<br />

reuse is one that allows the user to easily y choose<br />

what color his piece will be. It is in lines 20300 to<br />

what color his piece will be. It is in lines 20300 to<br />

20399. Save this s routine to tape like this:<br />

LIST"C:",20300,20399<br />

LIST' 'C:" or to disk like this:<br />

LIST"D:COLORSET. LlST" D .SUB" SUB", ,20300,20399<br />

You still have your program FASTTRAP saved on<br />

tape or disk. In addition you now have twO other<br />

tape or disk. In addition you now have two other<br />

tapes or two other disk files, as created above. . Now<br />

type NEW and enter your new program, NEWPROG,<br />

as usual. At any time during your programming ming you<br />

may Ill append the routines previously recorded. Here is<br />

how you would insert sen the routine to set the piece<br />

color from tape:<br />

color from tape:<br />

ENTER"C:"<br />

or from disk:<br />

ENTER"D:COLORSET.SUB"<br />

Now you might as well insert rt your ur other o routine like<br />

this (from tape):<br />

ENTER"C:"<br />

or from disk:<br />

ENTER' ENTER"D:IDENTJST.SUB"<br />

' After Alter yo you u have inserted these, do a LIST aand you<br />

will see that your program does indeed now include<br />

the two routines. Lines ENTERed in this manner wi will<br />

automatically y be placed in the appropriate section of<br />

the program (by line number). If an identical line<br />

number is already used in your program, it will be<br />

replaced by the one you a re ENTERing. You can<br />

replaced by the one you are ENTERing. You can<br />

insen insert or append program sections in any y order you<br />

wish. If you accumulate a library of subroutines<br />

wish. If you accumulate a library of subroutines<br />

in this manner, writing new ATARI programs will<br />

be easier, since some ooff the program is all rcady ready<br />

to go , ready to be ENTERed whenever you need it. ©<br />

to go, ready to be ENTERed whenever you need it. ^<br />

Atari Program<br />

Saving · Part II<br />

Atari Program<br />

Saving-Part II<br />

SAVE"D:FILENAME.EXT"<br />

LOAD"D:FILENAME.EXT"<br />

Len<br />

Lindsay<br />

Lindsay<br />

Last issue I listed some methods of SAVING a<br />

program to tape. Here are the updates for disk. sk.<br />

To save a program to disk in the normal way<br />

(tokenized form) enter this:<br />

SAVE" D:FILENAME.EXT" [RETURN]<br />

[RETURN]<br />

If you have more rc than oneo disk, you can save to disk<br />

sk<br />

number two by using g D2 in place of the D0 in all<br />

examples.<br />

A program saved in this normal manner ner can be<br />

loaded back by this command:<br />

LOAD" D:FILENAME.EXT" [RETURN]<br />

[RETURN]<br />

You also can save your program onto disk in its<br />

untokenized form like this:<br />

LIST"D:FILENAME.EXT"<br />

LIST"D:FILENAME_EXT" [RETURN]<br />

It then can be read back using this command:<br />

:<br />

ENTER"D:FILENAME.EXT" [RETURN]<br />

Using LIST, you can save the whole program (as<br />

above) or just a section of it. To save any section, seClIon,<br />

simply specify the starting and ending line numbers<br />

of that section like this:<br />

s:<br />

LIST"D:FILENAME.EXT", ,100-900<br />

[RETURN]<br />

This will save just lines 100 through 900. ©


MAY/JUNE. <strong>1980</strong>. 1CW 104 COMPUTE. I 1960. ISSUE 4.<br />

Block Access Method<br />

Block Access Method<br />

Map for a <strong>Commodore</strong><br />

2O4O 2040 Disk Drive<br />

Map for a<br />

San Jose, Calif. <strong>Commodore</strong>anJOSe, f. 95136<br />

OVERVIEW<br />

OVERVIEW<br />

The Block Access Method (BAM) map program will<br />

allow you to see where your files arc are allocated. You<br />

can save and delete files and observe the allocation<br />

technique.<br />

DESCRIPTION<br />

The purpose of the BAM is to protect allocated<br />

files so they are not written over and therefore<br />

destroyed. The BAM map resides on the directory<br />

track 18. The BAM is in the first half of sector 0. O.<br />

The layout looks like this:<br />

BAM Dump<br />

TRACK 18 SECTO R 0<br />

TRACK 18 SECTOR 0<br />

Track<br />

a<br />

b<br />

NUMBER<br />

00 :/112011012 0011 00|l5FFFFlFl<br />

5 I FI<br />

08 : IS 15FFFF1F<br />

FF I F IS 15FFFF1F<br />

IF<br />

10: 15 15FFFF1F FFFF IF 15FFFF1F<br />

IF<br />

18: 15FFFFIFI5 15FFFF1F 15FFFF1F FFFFIF<br />

20: IS 15FFFF FF FF I IF F IS 15FFFF1F FF FF IF<br />

28 : IS 15FFFF1F FF FF I F IS 15FFFF1F FF FF IF<br />

30 : IS 15FFFF1F FF I F IS 15FFFF1F FF FF IF<br />

38 : IS 15FFFF1F FF FF I F IS 15FFFF1F<br />

IF<br />

40: 15 15FFFF1F FFFF IF IS 15FFFF1F<br />

IF<br />

48 : 12 FC FF OF 14 FF FF OF<br />

48 12FCFF0F 14FFFF0F<br />

50 : 14FFFFOF14FFFF0F<br />

58 : 14 14FFFF0F14FFFFOF<br />

60<br />

60<br />

: 14 FF FF OF .............<br />

12 FF FF 03<br />

12FFFFO3<br />

68: 12 12FFFF03 FF03 12 12FFFF03<br />

FF03<br />

70 70: : 12 12FFFFO3 03 12 12FFFFO3<br />

03<br />

78 78: : 12 12FFFF03 FF FF03 ..........._—<br />

II FFFFOI<br />

2 3<br />

4 5<br />

6 7<br />

8 9<br />

10 II<br />

10 11<br />

12 13<br />

14155<br />

1617<br />

16 17<br />

18 19<br />

18 19<br />

2021<br />

21<br />

2223<br />

23<br />

24<br />

25<br />

26 27<br />

28 29<br />

30<br />

11FFFF01 31<br />

80: : II 11 FFFF01 OIII 11 FFFF01 OI<br />

3233<br />

33<br />

82 82: : I11I FFFF01 0 I II 11FFFF01 0 I<br />

3435<br />

35<br />

a •- Address of the next sector which is where the directory begins.<br />

b .- The start of the BAM map for trackk I. 1.<br />

24<br />

30<br />

25<br />

31<br />

Detail Explanation<br />

a b c d<br />

00: : 1201 1 01 0 1 00ll5|FF|FFllF|<br />

001151 FFI FFII FI<br />

a - Total free sectors for track 1. I. In this case it is hex<br />

15 or decimal 21. 2 Since track 1 has a maximum of 21<br />

sectors, track 1 is totally (Otall y empty.<br />

b - The bit configurations for sectors 0 thru Ihru 7. Bit on<br />

means empty sector scc lO r and bit off orf means allocated sector.<br />

hex FF = bits" "1111 III 1111"<br />

"<br />

I Oth Ath sector<br />

lth 1 sector<br />

2th sector<br />

r<br />

3th sector<br />

lOr<br />

4th sector<br />

5th sector<br />

6th sector<br />

7th sector<br />

hex FF = bits ""1111 1111" "<br />

Detail Explanation<br />

7th sector<br />

Therefore all sectors are empty.<br />

c - bit configurations for sectors 8 thru 15<br />

I ~th<br />

8th sector<br />

9th sector<br />

Oth sector<br />

11 llth<br />

sector<br />

12th sector<br />

13th sector<br />

4th sector<br />

15th sector<br />

d - bit configurations for sectors 16 thru 20.<br />

hex IF = bits ""0001 1)1"<br />

1111"<br />

16th sector<br />

7th sector<br />

18th sector<br />

19th sector<br />

20th sector<br />

71 6T?~aq~~aa~<br />

secto r<br />

15th sector<br />

d - bit configurat ions for sectors 16 thru 20.<br />

16th sector<br />

20th sector<br />

In a ny empty disk, the ' d ' byte changes from 1 F, OF , 03, 01<br />

In any empty disk, the 'd' byte changes from IF, OF, 03, 01<br />

to compensate for varying number of sectors per track.<br />

track,<br />

hex 1 IFF is the pattern where there arc 211 sectors<br />

as in tracks 1 thru 17. .<br />

hex OF is the pattern where there are 20 sectors as<br />

in tracks 18 thru 24.<br />

hex I IFF is the pattern where there are arc 18 sectors as in<br />

tracks 25 thru 30. .<br />

hex 1 IFF is the pattern where there are 17 sectors as in<br />

tracks 3311 thru 35.


MAY/JUNE. I <strong>1980</strong>. 198O ISSUE 4. COMPUTE. 105 1O5<br />

OBSERVATIONS USING THE BAM MAP<br />

PROGRAM<br />

The BAM turns ofT off the bits when it allocates a<br />

sector. The BAM Map Program looks at these bits<br />

and if the bit is on (meaning it is free and has not<br />

been allocated) it will print either a "~~ "&" : " or a white<br />

sqare. By looking at the map you can determine<br />

how full or empty the disk is.<br />

Varying numbers of sectors.<br />

The reason for the varying number of sectors per<br />

track is LO to pack more data on the disk. Using the<br />

worse case which is 17 sectors per track and propagate<br />

throughout the disk would decrease the number<br />

of sectors per track by 95 sectors or 24k.<br />

Sectors not contiguous<br />

The sectors are in 255 byte blocks. A program<br />

file, which is stored in 255 bytes, is not written<br />

on the disk contiguously but wrillen written approximately<br />

one-halftrack apart. . Using thee BAM program, m , you<br />

can see when youu save a program on a empty disk,<br />

that DOS will save the first 255 bytes on track 17<br />

secLOr sector 0, the second 255 bytes on sector 10, the<br />

third 255 bytes on sector 3, and so on. The purpose<br />

of these gaps is to speed up the processing by not<br />

S0<br />

El<br />

C2<br />

T3<br />

0 4<br />

R5<br />

6<br />

~<br />

to<br />

II<br />

TRACKS TRftCKS 11111111112222222222333333<br />

1234567891312345678901234567891312345<br />

123456785012345678581234567B90I3345<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

IS 18<br />

19<br />

2Q 20 wsmmmmmmmmt—free blks= s?e<br />

CKS TRACI(S 111111111112222222222333333<br />

U11111112222222222333333<br />

12343678901234567890123456765012345<br />

12345678901234567890123456789012345<br />

se Sfi<br />

I<br />

El<br />

I<br />

C2<br />

II<br />

I<br />

T3<br />

04<br />

• I<br />

I<br />

R5<br />

6<br />

• I<br />

I<br />

7<br />

8 "<br />

I<br />

I<br />

9<br />

18 10<br />

I<br />

I<br />

11 II<br />

12 •<br />

I<br />

I<br />

13<br />

14 I "<br />

I<br />

I<br />

15 I<br />

It 16 I • I<br />

17 I<br />

18 I<br />

,-- 19 I • .--<br />

I<br />

I I DR*=EMPTV<br />

OR*=EMPT'y'<br />

20 I<br />

l"FREE :REE BLKS= £lLKS= @ £I<br />

References:<br />

Parsons, s, James Jamcs C, C .. "Display y Track and d Sector", Scctor", <strong>Commodore</strong><br />

Newsletter Ncwslclle!' Vol. 1I Number 8, January <strong>1980</strong>.<br />

.<br />

<strong>Commodore</strong> Business ti ll Machines, <strong>Commodore</strong> CBM C Dual Floppy<br />

py<br />

Disk Model 2040 User U SCI' Manual, al , July J y 1979.<br />

waiting for a full rotation of the disk. If the pro­<br />

waiting for a full rotation of the disk. If the pro<br />

gram was written contiguously after each write, , DOS<br />

would have to wait an entire rot rotation of the disk to<br />

write the next sequental sector. Thus, when one is<br />

looking g at the BAM Map, one will see where alternating<br />

sectors are allocated.<br />

ing sectors are allocated.<br />

Allocation of sectors<br />

DOS allocates disk space very efficiently. SecLOrs<br />

Sectors<br />

are allocated around the directory (track 18) . This<br />

are allocated around the directory (track 18). This<br />

reduces the read/write head movement because it reads<br />

the directory first, , then reads the fil file. By having the<br />

file e close to the directory, head movement is reduced. .<br />

Where sectors are allocated<br />

When you delete the first program on a full disk,<br />

the BAM Map will show free sectors near the directory.<br />

When you save a new program, it will start by<br />

allocating those free sectors nearest the directory and<br />

will start filling in where you deleted the old file.<br />

If thee new program is larger than the old program,<br />

it will tJ'>' try to (o allocate sectors further and further<br />

from thee directory. By using this allocation technique,<br />

the need for a disk compress is eliminated.<br />

PROGRAM EXPLANATION<br />

PROGRAM EXPLANATION<br />

100-170 Initialization<br />

180-190 Which drive?<br />

200-430 Prints s the BAM Map outline. .<br />

100 REM* REI·l* BLOCK ACCESS METHOD NETHOD DUMP *<br />

110 REM* WRITTEN BY TOM T011 CONRAD *<br />

120 REM*<br />

130 REM* RE~I*<br />

140 REM* INITIALIZATION<br />

I NITIAL IZATION *<br />

150 DIM A(4)<br />

160 NL$=CHR$(0)<br />

170 T=0: REM REI1 TOTAL FREE BLOCKS<br />

175 REM* REI1* WHICH DRIVE *<br />

180 PRINT"fiVHHDRIVE? "fifttWDRIVE?""<br />

190 GET D$: IF D$="" GOTO 190<br />

195 REM* PRINTS THE BAM MAP ~lAP OUTLINE *<br />

200 PRINT"fi rTRACKSr LTRACKSf 111111111122222<br />

-.22222333333"<br />

, 210 PRINT" 123456789012345678901234567<br />

8 -.89012345"<br />

,89012345"<br />

220 PRINT"! PRINT"} $$$SS$$$SS$S$$$$SSSSSSSSSSS<br />

$$$$$$$$$$$$$$$$$$$$$$$$$$$<br />

-,$$$$$$$S"<br />

,$$$$$$$$"<br />

230 PRINT"rSr0_L<br />

"LSf0.'. '<br />

, 1"<br />

240 PRINT"xEfll<br />

".r.Efl.'.<br />

,<br />

-i<br />

1"<br />

250 PRINT"j:Cr21<br />

".r.Cf2.'.<br />

, 1 "<br />

260 PRINT"rTf31<br />

".r.TD.'.<br />

, 1"<br />

270 PRINT"iOr4J.<br />

"Lof4.'. ,<br />

, 1 "<br />

280 PRINTnrRf51<br />

".r.Rf5.'.<br />

, 1 "<br />

290 PRINT" " 61 6.'.<br />

,<br />

-i ■1 "<br />

300 PRINT" 71 7.'.<br />

, 1"


1O6 106 COMPUTE. MAY/JUNE. I <strong>1980</strong>. ISSUE 4. 4.<br />

440-460 Sets up SS with h 25 cursor downs. Sets up T$ TS with 40<br />

cursor rights.<br />

470 Initializes the requested drive ve & checks for r a disk error.<br />

.<br />

480 Allocates buffer 0 to channel 2 for biock block commands that<br />

at<br />

follow.<br />

ow.<br />

490 User command


Said the Toolkit to the Word<br />

Processor: "You're "YouVe in My Space!"<br />

Said the Word Processor to the<br />

l'oolkit: "Let's Share ... here's<br />

)Toolkit: "Let's Share...here's<br />

Socket 2 Me!,,<br />

Me!"<br />

From the original producer of peripherals exclusively for<br />

PET lovers everywhere ... the device that allows you to<br />

PET lovers everywhere . . . the device that allows you to<br />

select between the BASIC Programmer's Toolkit and the<br />

<strong>Commodore</strong> Word Processor II while they occupy the same<br />

address space.<br />

Complete with the first-rate installation and operating instructions<br />

you've come to expect from all Skyles documentation.<br />

YOU HAVE AN ORIGINAL 2001-8 PET?<br />

YOU HAVE AN ORIGINAL 2001-8 PET?<br />

No problem. The Socket 2 ME interfaces with the BASIC<br />

No problem. The Socket 2 ME interfaces with the BASIC<br />

Programmer's Toolkit model TK 160E or TK 160S can· con<br />

nector board, the Word Processor II interfaces with the<br />

Socket 2 ME, the slide switch is placed on the PET base.<br />

Then, as long as the PET 2001·S -8 has at least SK 8K of memo<br />

Dry ory expansion, the system is up and running.<br />

MHiJ<br />

----<br />

The Socket 2 ME .... . . doubles your memory expansion in<br />

a single socket. It's a 2.5" x 2.75" board that fits neatly<br />

into the ToolkitlWord Toolkit/Word Processor socket on the main logic<br />

board of all new PETs. Then both the Word Processor and<br />

the Toolkit plug into the Socket 2 ME.<br />

A miniature slide switch -— part of the kit -— mounts with<br />

double·stick double-stick tape (supplied) to the front part of the right<br />

side of the PET base, almost hidden by the overhang of<br />

the top of the PET cabinet. The slide switch is connected<br />

to the Socket 2 ME by a special cable (also supplied) .... . .<br />

and you're up and running.<br />

Up and running; installation took only a minute or so. Flip<br />

the switch from Toolkit to Word Processor. And back. No<br />

need to open the PET.<br />

ORDER NOW - with Skyles' 10-day money-back guarantee:<br />

YOU HAVE A COMPUTHINK DISK AND YOU<br />

WANT A BASIC PROGRAMMER'STOOLKIT?<br />

How w would you like to switch between the Computhink<br />

and the Toolkit with a single SYS command?<br />

and the Toolkit with a single SYS command?<br />

Just add two small jumpers to the Computhink system and<br />

a short program to the DOS diskette. Plug in the BASIC<br />

Toolkit TK 80E, enter the SYS command and your system<br />

is up and running.<br />

NO ROOM ON THE PET 2<br />

COMPUTHINK DISK BOARD?<br />

COMPUTHINK DISK BOARD?<br />

All your sockets are booked? Fret not; Skyles comes to the<br />

rescue. Skyles Electric Works now has a modified EPROM<br />

board available with sockets for the Toolkit and Computhink<br />

ROM chips. Plug in the ROMs, add a jumper (sup· {sup<br />

plied) to the PET 2 Computhink disk board, plug the new<br />

EPROM board into the Computhink disk board. Power up<br />

and enter a short switching program into the DOS diskette.<br />

Switch between the Computhink disk and the Toolkit·witkit-with<br />

a single SYS command.<br />

Tool-<br />

Socket 2 ME: : $$22.50'<br />

$$22.50*<br />

BASIC Programmer's Toolkit<br />

<strong>Commodore</strong> Word Processor II: $100.00'<br />

$100.00*<br />

Model TK80ED SOED $S5.00·<br />

$85.00*<br />

<strong>Commodore</strong> Word Processor III: : $200.00'<br />

$200.00*<br />

Model TK 160ED<br />

$95.00't<br />

$95.00"t<br />

•'Add $2.50 to each for shipping and handling.<br />

tNote: If Computhink EPROM board is returned, after purchase of TK 160EO, 160ED, Skyles will refund $20.00.<br />

"Socket 2 ME" is the trademark of Skyles Electric Works.<br />

California residents: please add 6% or 6.5% sales tax as reQuired<br />

reauired<br />

:&<br />

VISA, MASTERCHARGE ORDERS CALL (800) 538·3083 538-3083 (except California residents) reSidents)<br />

CALIFORNIA ORDERS PLEASE CALL (408) 257-9140<br />

231 E South Whisman Road<br />

231 E South Whisman Road<br />

Mountain View, CA 94041<br />

1<br />

(415) 965-1735<br />

Skyles Electric Works Mountain View, CA 94041<br />

(415) 965-1735


108<br />

1O9<br />

COMPUTE. COMPUTI. MAY/JUNE. I 198O. 1960. ISSUE 4.<br />

PEr<br />

PET<br />

SOFTWARE<br />

COFTWAHE<br />

LAS VEGAS CASINO SERIES:<br />

:<br />

These four lour programs were developed Doih both as a tutorial lor those Ihose planning to 10 visit<br />

a Casino and wanting to lean learn to play correctly, correctly. and as a means for lor the Ihe serious<br />

gambler to develop and thoroughly tes! test a gambling 'system1 ' under actual Casino<br />

conditions. All betting belling odds and options available in the Ihe Casino ot of the MGM Grand<br />

Hotel in Las Vegas have been incorporated into inlo these Ihese programs. Full screen<br />

graphics have been used to show trie the cards being dealt, the Roulette Wheel<br />

spinning, , and the Dice being thrown in order to increase realism and heighten<br />

enjoyment. entoyment.<br />

1. CASINO BLACKJACK:<br />

For 1 to 10 5 players plus the lhe dealer. Keeps track ol 01 winnings or losses for lor each<br />

player plus number ot 01 hands won. won, lost, 10sl, and tied lied and the Ihe number of times limes<br />

the Ihe dealer and each player has busted. . Play with 1,2, t.2. or 4 decks. Change<br />

decks or reshuffle at any time. . Split Splil pairs, Double Down, or place an<br />

Insurance bet. Full Casino rules and many other olher options. ............. $ S 7.95<br />

2. CASINO ROULETTE:<br />

Bet on one number, two numbers, , odd, odd. even, black, , etc. . Watch the numbers<br />

come up as the wheel spins SpinS , ...... . . S$ 7.95<br />

3. CASINO BACCARAT:<br />

James Bond's favorite game. Two games in one. . Casino style slyle and Blackjack<br />

style. includes Includes special features to help in developing de'/eloping a winning 'system' system1 .<br />

..... .. S5 7.95<br />

4. CASINO CRAPS:<br />

Bel the Dice to Pass or Fall Otf. Off. Bet the Hardway or Press with Double Odds.<br />

Ten ways to bet . . .............. S5 7.95 7,95<br />

5. CASINO PACKAGE:<br />

All four tour Casino Programs above . ... ....... S24.95<br />

STRATEGIC GAMES:<br />

:<br />

6. BACKGAMMON: :<br />

Play Backgammon against your PEl PET. . Excellent graphics and aoubling doubling option<br />

make for a fast last and exciting game . .5 S 9.95<br />

7. SPACE INVADERS: INVAOERS: (with sound)<br />

Wrinen Written by COMMODORE·JAPAN. COMMODORE-JAPAN. Performs exactly like the popular video<br />

arcade version being played all over Ihe the country. . Machine language<br />

graphics and sound provide hours 01 of entertainment ... .......... . .. $ S 9.95<br />

B. 8. CHECKERS:<br />

Play against the PET. PET plays a good. good, fast game according 10 to Inlernational<br />

International<br />

Checker Rules. . Excellent graphics show the board and all checkCls. checkers. Watch<br />

your PET move his man around the board. . Clock shows elapsed time<br />

foreachmove . .. ......... $ 7,95 7-95<br />

9. aUBIC-4:<br />

QU8IC-4:<br />

This is three dimensional Tic·Tac·Toe Tic-Tac-Toe played on four, tour. 44x4 x 4 boards.<br />

PET plays a fast exciting game choosing one of three strategies for each<br />

game .. .. .. S $ 7.95 7-95<br />

10. . GO MOKU MOKII: :<br />

Ancient Chinese board game playea played on a 9 x 9 board. . Get 5 men in a row<br />

before betore your PET. . A dilierent different strategy for each eaci game .. .............. S $ 7,95 7.95<br />

11. . OTHELLO:<br />

English game known as Revers!. Reversi. Try to capture the PET's men before he<br />

captures yours. Play against the PET or against your friends. Fast and<br />

fun tun , ..... S $ 7.95<br />

12. CRIBBAGE:<br />

An Excenent Excellent version of this favorite tavonte card game. All cards are shown using<br />

PET's excellent graphics. . The PET plays a cool logical game dillicult difficult to<br />

beat even lor for the best players ...... . ... 5 % 7.95<br />

13. GAME PACKAGE:<br />

Any six of the above programs . . .. ..... $34 S34.95<br />

GUARANTEE: All programs are guaranteed to be free tree from Irom errors and to load on any<br />

PET. . Any defective detective fapes tapes will be replaced tree free of ot charge.<br />

Order From: eM CMSS SOFTWARE, SOFTWARE. 51 511515 Menefee Drive, Oallas, Dallas, TX 75277<br />

'" BUSINESS -ii '" EXPERIMENTAL H'" EDUCATIONAL<br />

'" TELECOMPUTING *'" PERSONAL ft '" RENTALS<br />

Biicro ~icro systems s~st~ms by b~<br />

F^ETTETIDi PE"ED<br />

hardware mith a soit touchf<br />

hardware with a soft touch<br />

SPECIALIZING IN<br />

<strong>Commodore</strong> Business Machines<br />

PRODUCTS PROOUCTS BY<br />

CmC. CmC, NOVATION, TNW CORP., BIZCOMP, MICRO, CENTURY<br />

RESEARCH, TAB, POWR PROTECTR, systems, BASE 2,<br />

OSBORN, Eaton, SOURCE, MACTRONICS, MicroNet, Skyles,<br />

KILOBAUD, Dr. Or. DALEVS, OALEYS, INSTANT SOFTWARE, ASCRO. ASCRO, MICRO<br />

SOFTWARE SYSTEMS, COMPUTER FORUM. FORUM, COMPETITIVE<br />

COMPETITATIVE<br />

SOFTWARE. SOFTWARE, HAYDEN, ATARI, NEECO, COMPUTE* COMPUTE!. COMPUTE II,<br />

DYSAN, OYSAN, CREATIVE COMPUTING, LIVERMORE RESEARCH,<br />

,<br />

ROBOTICS AGE, SYBEX, KNIGHT ENTERPRISES.<br />

Another Last Minute Minure News Note: <strong>Commodore</strong> has announced that<br />

Ihe the three for two rwo educational offer oHer is on again.<br />

Send For Our Free Catalog<br />

Mail Orders To:<br />

PETTED<br />

PETTED<br />

P. O. BOX 21851<br />

Milwaukee, Wisconsin 53221<br />

PETTED micro systems<br />

is located across from the SURFIN' TURF skate board park.<br />

Highway 1-894 /·894 & Hwy 36<br />

4265 W. Loomis Rd.<br />

Milwaukee, Wisconsin<br />

VOICE 'JOICE (414) 282-4181 *'t! PBBS (414) 282-81188<br />

VISA'<br />

TCB687<br />

masiei charge<br />

10041,101<br />

IN Michigan Dial PBBS#1 (313) f313) 484-0732<br />

-/;■ -:r Vendors Display Your Products With Us. -tr<br />

I ITS I COVERS ._ __<br />

A BEAUTIFUL<br />

COMPLEMENT<br />

TO ANY DECOR!<br />

• Attractive. Attractive, Durable, , leather-Grained Leather-Grained Vinyl<br />

• Double Stitching lor for htra Extra Strength<br />

• Corded Selms Seams Assure Perfectt Fit<br />

• Colors - Gold. Gold, Chestnut Brown, Olivee Green<br />

or Black<br />

PET/CBM - 518.95<br />

S18.95<br />

Apple II - 512.95<br />

S12.95<br />

Apple Disk - 58.95 $8.95<br />

OTHER COMPUTER<br />

COVERS AVAILABLE.<br />

VAILABLE,<br />

WRITE FOR DETAILS<br />

NEW-CURSOR FOR for PET pet 1001 2001 OLO old ROM rom<br />

INSTANT PUSHBUTTON CURSOR RETRIEVAL<br />

• Reviewed in Issue ~ » I 1 of COMPUTE<br />

• RUlIt1 Restart without touchillg touching power<br />

• Machilll Machine 1'lIgUlgl language programs in second CISsell, cassette bulle, buKei not 10s1. lost.<br />

• Simple, illustratld illustrated illstructions<br />

instructions<br />

• IlIstlll.d Installed ill in minutes - 110 no ssoldering<br />

• Improved moullting mounting -— no sticky tapt tape<br />

LJNCRASHER for PET/CBM 2001 - New ROM — $14.95<br />

VISA'<br />

INTERNATIONAL TECHNICAL SYSTEMS, MS. INC. .<br />

BOll Box 264 Woodbridge, Woodbridge. Virginia 22194<br />

Phone Orders (804) {804) 262·9709<br />

262-9709<br />

SHIPPING AND HANDLING ADD S1 SI 00


MAY/JUNE. I <strong>1980</strong>. 198O. ISSUE 4, 4. COMPUTE.<br />

1O9<br />

r;)~. nm{)<br />

~<br />

nGARO LjuARD @OPY '" U)ITHour ITliOUT II A PRINTER ...<br />

EVfN Evfm IF YOU'RIO:<br />

You're AX>T wot A a PIIO'T"OGoRAPHY<br />

photography<br />

BUFF, Buff, YoU you Ulr-l T. FIRST , h Jt COSTS COST5<br />

ASOUT ABOUT A euc,," BUCK 'fI' TO CoEr GET II A 2+ 24- cit oR :U-E)tPoSIJRE 3£-E*PoSURE RoL.L. Roll<br />

OF NEGATIV~ NEGATIVE* OEVELOptP, DEVGLOPEP, (lOOK. (LOoK Folt FOR Po A PLACE ),JITH U)1TH<br />

NEICf-I)AY W6W-DAY SEeVIC[), SCRVtCt), AIIlD flroD 'fOLl YOU CA~ CAO RfAl) READ 'EM f6M VIA ViA A<br />

SLIDE PIlOJECTOIl(IF PROJECTORfiFYoO 'foil HAvE HAVE OOlE) OM£},OR lOR A /tANO HAwj><br />

"'IEwE~ VIEWER (A~ER ^AOoTHER BUCJC.). 3UCk). Irs It's Ci>NIIENIENT'IlI CONVENIENT 1b /1011111"<br />

rtOOMT<br />

'OlE THE IIlftoI'TIVE!> WEftATIVES 11'1 IfJ loZ. 2»2. SLIDE SUDE MO\.lt-n'S MOUWTS (AVAILII8LE (AVAILH8LE AT ~y A«Y<br />

f't\OTO photo $T'ORE). store^. WHIIT What YOU you SEES sees IS is IoIHIIT' what "/'0\.1 You G£TSj aers-, II a<br />

GREAT SREAT AOIIA~AISE ADVANTAGE O'IfR. OVER Mosr MOST Pltlfl1f'EltS, PRINTERS, WHICH DON'T<br />

HAIolOlE HAf)OL€ 'OlE THE GoItAPI·IIC:S<br />

GRAPHICS i $ CUIl501l CURSOR ~LS coUTROLS hlELL· WELL-<br />

. Clr AT Al.L!).<br />

' SET THE SCREEM BKlfiHTAJCSS COWTROC AS DI/\ AS<br />

POSSI81~(foR MAi(I_ AXI*OW SHftWrtESS), SIIAItPIIlE$S), flwD AI)O USE uSE A SLOvJ SUlIJ SMUTTffc SI!U1T"fR<br />

SPEED Sl'EED ro 1"0 AVOID AvoIO RASTER RAS1'ER SY«CH S",,,CH PftoBUMS. P!ZoSLEMS. If YOUR CftnEW* e"",eltA<br />

HAS AM AIIl INTtRMAL I~RNAl UCHT L\C;HT METER, , IT vJlLL ~IlL OVCREXPoSE, OV(eJ;XPoSE. Si»C£ SINCE<br />

THE METER ME'T'ER TRIES f"RIES FbR foR AM AN flvERA&E AVHA'E DC^Sm, O£~m, oRSoi,/!^<br />

Olt SO"', A/IlD<br />

HOST SCREEN I/HAGES flRE 95+i BLAcK. Usi^ PuOS"X<br />

1'1OST SCltEEIll IAA'fS ARE '1~~ BLAcK. USING. Pws-)\<br />

F1L* FILM (A.S.A. |25), 125), TRY 'T'R'f OME ONE SECOND ftT AT f/,,; || ; USE A<br />

CABLE RELEASE. RELE~. If IF' THE CHARACTERS CIIARACTUS TUftO ~ OUT OVl" DENSE DENse ^~<br />

POZZY, FUZZY, THEY'RE THEy'RE CVERE^PoSEP; Oo'ERf)llIllOlY.1O 1o USE lISE<br />

flW AN If^TERNAL INTERNAL METER, MUER, RUN THIS PRO&RAn(*V PROCOItM(/1'1 FAVORITE F'I\'/ORITt Of OtJE'~lflE~) ;<br />

II POKE PoKE 3Z7feS-HOOo#RND(|}(2S4*RKM»(l):6oT&<br />

3t768.IOOO"'R~D(I), t5'4' RO-» (I) , Go 11> I<br />

1"IIE SCRgEfO SCREEN u»LL wiLL FILL fl II To 'It> 5D%BRI4KTMESS;-ffiKE SOr. 6RIQrnoJESS; 11\1(£ YOUR REAOIWS, ItEADIIIlG.,<br />

1\1011> USt THIS '0115 EXPOSURE E}lf'OSORE foR fOR ALL FUTURE FIiTlJ RE SHOTS- SI\OTS.<br />

SC.~E.E"<br />

M£T~L rum:<br />

~ 11M T1lI (to ..<br />

SCUw tutU:<br />

[;lIPOSIlRf- SET "fHE SCII.£~Ol BRICHTAI(SS COOITIIOl AS 011'\ AS<br />

~MOSI All'( (AHEM. (At.! BE MADE TO<br />

.MOST AUY CAMERA CAW SE MADE TO<br />

\.lORI(, WORK, IWT &LTT A 35«n ...",<br />

5INCOLE· 5|N(5LE - L£NS­ LEWS-<br />

I{E Re FLE,c flex (SI.1l.) (slr) MAM.ES makes T1HN~<br />

thin&s VASTLY<br />

vastly<br />

EASIER. A~ Q too. . 2. CLoseUp CloSEuP l.ENS LENS WILL<br />

GET SET YOU YoU CLoSE CLOSE (f')oUGI4 ENOUGH 'It> TO FILL ~E THE<br />

FILM AREA ARfA WITII UtTH 'f'IoIE THE $CRUll SCREEU II'IA'-E.<br />

Folt FoR. SIMP~E simple CA cameras MUllS ^~ PoLAItoI D,<br />

EICPEItIM(NT EXPERmEJOT WITH II A PIECE of Of 'TAACING<br />

PAP£R PAPER TAPEP 'Tb "R) THE<br />

OPEN CAMEItA<br />

CAMERA<br />

8AC< I5ACJ(. 'Tt> TO IOEf" fitTTHETHE RIGHT "liT DlSTftjoCE DISTlINCE ^~<br />

FOCUS.<br />

®WCE @IIlCE YoyVE YoUV£ GoT OoT you* '(O~<br />

WORKED wot.I(ED OUT, OVT, MAKE A fKAMt ~AHE flj" (~.. pLY- PLY-<br />

WOOO 101000 IS F/WE), I=INE), WHICH IoIIiICH SltPS SLIPS ON $ t<br />

OfF oFF EASILY. EASIL'i'. If IF %" ~f IS fbo 0(00 SLOPPY, SLOPP'(,<br />

GLUE CAROSOARP CARDBoARD i/oR YOf/. FELT ~LT 3HIHS 3HIMS<br />

TO .,.0 THE ilIE ftRMS ARr'IS WH\Crt 1oI1\\C1\


FLOPPV DISK FOR PET. K IM.SVM. AIM<br />

- S100 EXPANSION .. , _\~<br />

~<br />

tm Tho PE*DISK P E 'CIBK SYSTEM Iron hom cgrs CGRS Mi«*i M.ero,"" p.a*i 1>''''' ...... twin oo,n ,~"'" ipicd 'flOOd floppy f~oPP V disk DISK jna _ »r. on sioa 5100<br />

EXPANSION dm(l 0 PEi PET Tlit Tho tiiTenn** • • !On" .. ind """ drve-w d ...... Dto-JucT "'''"'''c, ollfngi Oltll""l' ot 0" the ' ht STOO 5100 boi 1>.1, include Inc' " 110 "" """Y. 110. To"~ I ~ I .. I_ c:..d\ 18 ....<br />

SflfCliic Soloc"", Inuha, In, •.t""". Arnica """'" I/O, 1/0. Voice Yoo« Gfntmori c;.,,..'.,on."" inu e>en ..... Voice ........ Input , Cudi C ..."<br />

«ADD - AOO I/O,VOICE, 1/0, MEMORY<br />

■-LOAO,SAVE LOAD, INSTANTLY<br />

"PLUG-IN -PLUG-IN HOOK UP<br />

-UP TO FOUR O ISK ORIVES<br />

UP TO FOUR OISK ORIVES<br />

rx- Tho PET3ISK P E 'CIBK SYSTEM Dlfntn olt .... ..... ~ 'oM_ l o \t>opo_o t .A _"'II''''''( l I' olt." ............<br />

e«pinnon • • _ C4[i*tiilny .._ ,,,. m... j. vinqlc ""'fJo~. pick*o; The n .. FLOPPY f lOPPY 0 151( v .., _ 18M 3HO '......'.0 ..._ ,. ......""',1>0/.,. ..,Ih .,_ '........<br />

IRjd.o Shjtkl Tht SlOO EXPANSIOM u«s The most idely supported I CII"" ... Sh"" ~ I . ,'" SHlO EXPANSION " ... ".. ...,.. " "'" ~_" ... ""..-""om""',,<br />

computer bui<br />

bU.<br />

in<br />

In<br />

Ihr<br />

""<br />

rnduilry<br />

"""'''fV<br />

Sl.mdird 51~d, Ec [ ......... 1


MAY/JUNE. I <strong>1980</strong>. ISSUE 4. COMPUTE. 111 Ill<br />

CHEEP PRINT Hard Copy For Soft<br />

CHEEP PRINT SOFTWARE<br />

Cheep Print for PET is written mostly in<br />

BASIC; a little bit of machine code is used to<br />

BASIC; a little bit of machine code is used to<br />

insure accuracy in timing the output signals. I have<br />

chosen to put the machine code in the second cassette<br />

buffer, but the code is completely relocatable and may,<br />

for instance, be placed in high memory if you change<br />

the top-of-memory pointer and command CLR before<br />

trying to run the program (neglecting CLR causes<br />

trying to run the program (neglecting CLR causes<br />

strings to overwrite the machine code; you can guess<br />

how I found thiss out.)<br />

The BASIC part of Cheep Print is designed to<br />

live at the beginning of some other program, which<br />

I[ will refer to as the host program, and serves both<br />

to list the host program while it is under development<br />

and as data output software after the program has been<br />

completed. The host program is assumed to have<br />

line numbers of 100 and up. I have tried to structure<br />

Cheep Print so that it contains subroutines that can be<br />

called by the host program. . If you look over the<br />

listing of Cheep Print, which was produced by Cheep<br />

Print itself-- the comments were added afterwards<br />

for documentation -- you will see that most of the<br />

program is taken up with formatting the output for<br />

the printer, and with the details of listing a program.<br />

To use Cheep Print, start by making a master<br />

copy of the program that contains all the options that<br />

you might ever need; this copy should be saved for<br />

future use. Then make a sub-master that has the<br />

various parameters and options for the printer that<br />

you will be using most. You can simply load the<br />

master and delete those options that aren't needed,<br />

incidentally gaining more space for the host program.<br />

You will probably want to use Cheep Print to list<br />

itself a few times, just to make sure that the formatting<br />

is satisfactory, and to gain familiarity with<br />

the sequence of operations required. When you are<br />

about to start developing a new program, enter the<br />

sub-master copy of Cheep Print and then key in the<br />

host program. As you save your host program,<br />

Cheep Print will come along with it. Line 1 of<br />

Cheep print is a GOTO to the entry point of your<br />

host program, so that a simple RUN command will<br />

execute the host program. If you want a listing of<br />

any part of the program, m , simply command RUN 10;<br />

you will be prompted to check that your cassette<br />

recorder is properly set up -- — cables connected and<br />

running in record mode -- ~ and then you will be<br />

asked which lines you want listed. The options are<br />

the same as for the screen listing on PET: hit<br />

RETURNRN only, and gett everything; enter A-B B (a<br />

hyphen must be used as a separator here) and you get<br />

lines A through B inclusive; A- gives everything from<br />

Cost Cos!<br />

C A McCorlhy<br />

McCarthy<br />

1359 W Idaho Ave<br />

SI St Poul. Paul. MN 55108<br />

A onwards, B- gives everything up through B; and A<br />

alone, with no hyphen, lists the single line A. As the<br />

program listing proceeds, the line that is currently<br />

being processed for the Cheep Print output is listed<br />

at the top of the screen. When the message "BREAK<br />

IN 80" appears, the listing is done and you can turn<br />

off the recorder.<br />

One of the Cheep Print listing options is to put<br />

One of the Cheep Print listing options is to put<br />

each statement on its own private print line, thus<br />

leaving much welcome space for comments. I have<br />

used this style for the listing of Cheep Print; I hope<br />

that the comments on this listing suffice to explain<br />

what is going on, , and how to structure the various<br />

options for your specific needs. There is, however,<br />

one point that must be emphasized. The LIST instruction<br />

of line 2 needs to have precisely five characters as<br />

argument. The first time that you enter Cheep Print<br />

from the keyboard, key in something like 2 LIST­<br />

LIST-<br />

LINES or 2 LIST12345. This is important because<br />

eventually line numbers are going to be POKED here<br />

by the commands of line 19; we need to leave<br />

enough room for the longest possible line numbers of<br />

five digits.<br />

The other principal subroutines of Cheep Print,<br />

which the host program may find useful, are:<br />

which the host program may find useful, are:<br />

3-4 contains identification information such as the<br />

name of the program, date, revision, etc.; I have<br />

found this useful also when SAVEing or VERIFYing<br />

a program with PET's internal cassette recorder. The<br />

command LIST 3 puts this data on the screen, then<br />

I type the word ""SAVE" and two spaces over the line<br />

number and S$-; hit RETURN, and the program gets<br />

saved with a title, without the fuss of entering<br />

the title by hand.<br />

7 outputs the string PS, P$, and 8 outputs the single<br />

character which has ASCII code P.<br />

39 effects a carriage return and linefeed, and<br />

updates the variables PX and PY which give the<br />

current print position at the printer.<br />

40-41 checks whether it's time for the printer to<br />

go to the next page, and if so, it executes 42-44.<br />

42 linefeeds to the end of the current page,<br />

43 is an option, useful for continuous roll paper;<br />

if the initial "RETURN" is deleted, a line of hyphens<br />

if the initial "RETURN" is deleted, a line of hyphens<br />

is printed at regular intervals, so your paper can be<br />

cut neatly into single sheets of uniform size. With<br />

fan-fold paper, line 43 may be ignored.<br />

44 linefeeds to the top margin of where you<br />

want to start printing on the paper.<br />

45-49 format the string S$ for output: space from<br />

the left edge of the paper to the left margin, print SS S$<br />

if it fits on the current line; if it doesn't fit, output as<br />

much as does fit, , aand then repeat the process with<br />

the portion of SS S$ that's left over.<br />

70 is a general purpose start-up routine. It calls<br />

70 is a general purpose start-up routine. It calls


112 COMPUU. MAVIJUNE . <strong>1980</strong>. ISSUE 4.<br />

112 COMPUTE. MAY/JUNE. 198O ISSUE &.<br />

50 to start outputting MARKS, pokes the lower case<br />

mode for PET screen output, and then calls 52<br />

50 to start outputting MARKS, pokes the lower case<br />

mode for PET screen output, and then calls 52<br />

for the prompt to to check that your cassette is is running<br />

and 54 to initialize variables and the details of<br />

and 54 to initialize variables and the details of<br />

paper size and format that you wish to to use.<br />

71 simply outputs the current S$, then carriage<br />

returns and, if if required, linefeeds to the next page.<br />

80 cleans up: linefeed to to a blank page so that<br />

garbage created by turning off the audio doesn't<br />

spoil the beautiful page that Cheep Print has just<br />

produced, then ding the bell on the printer to announce<br />

that it's done, followed ed by a wait loop for a little<br />

trailer on the tape. Then the shift register at 59467<br />

is reset so that the PET tape read and write will<br />

operate properly and the graphics mode for screen<br />

operate properly and the graphics mode for screen<br />

output is is restored.<br />

98 converts the hex string Q(uery)$ into the<br />

equivalent number A(nswcr). A(nswer).<br />

99 loads (hex machine) C(ode)$ into memory<br />

locations beginning at MA.<br />

Lines 5 and 6 serve only as an index to the<br />

program lines that structure Cheep Print for the<br />

printer you use. I have included the most common<br />

options in the listing.<br />

Line 23: : with the REM, we list the program<br />

with extra space for comments. Delete the REM, and<br />

the program is listed single spaced, with the print<br />

output strung across the whole page. This is useful<br />

during development; not only does it execute more<br />

quickly, but it is an advantage to have as much as<br />

possible of the program in view at once, provided<br />

that the details of what is supposed to happen are<br />

fresh in your mind.<br />

Lines 50 and 63-66 are involved in setting the<br />

baud rate and whether originate or answer mode. In<br />

line 50, only the mode needs to be determined, and the<br />

two possible choices are snuck in following the REM.<br />

Lines 63-66 contain that portion of the machine code<br />

which depends upon the baud rate and the mode.<br />

The four options given are receive and originate<br />

mode at 110 and 300 baud (10 and 30 characters<br />

per second), and which one you use is determined<br />

by which of the initial REM's isn't there. Table 2<br />

gives the details of getting output at different<br />

frequencies and baud rates. The timing parameters<br />

MF and SF determine the mark frequency and the<br />

space frequency appropriately for you to be in<br />

originate or answer mode; the decimal equivalent of<br />

MF also needs to be reflected in the initialization at<br />

line 50. Usually you will want to be in answer<br />

mode when talking to a terminal and in originate<br />

mode when talking to a mainframe. The baud rate is<br />

determined by the timing loop parameters XR and<br />

YR, and the duration of the stop bits by SB. I did<br />

some experimenting with these parameters and found<br />

that the baud rate could be off by 7 or 8 percent<br />

and the mark and space frequencies off by 4 percent<br />

and still get solid copy; SB only needs to to be<br />

sufficiently long. The output can be structured in in<br />

any way you wish, of course; for instance, you<br />

could generate tapes to Kansas City standards if if you<br />

wish. The most important thing is is that your cassette<br />

recorder should run at the same speed at home as<br />

it it does at your printer, but it it doesn't matter what<br />

the speed is. If you are forced to use battery<br />

operation at your printer, then you should use<br />

battery operation at home or else experiment with<br />

the timing parameters to compensate for the speed<br />

difference that many recorders exhibit between battery<br />

and a nd AC line operation.<br />

.<br />

Lines 85-86 contain the formatting data for the<br />

two styles of listing, and lines 87-88 contain two<br />

types of carriage return- line feed sequences. These<br />

are implemented by LISTing 85-88 on the screen,<br />

deleting the line number and REM from the data<br />

you wish to use, usc, and then hitting RETURN;<br />

the PET screen editor picks up the line number<br />

55 or 56 that remains and inserts these statements<br />

into the program. Lines 85-88 remain unchanged for<br />

future use. The carriage return-line feed sequence<br />

that you need will depend on the printer you use. I've<br />

used a DECwriter and a thermal printer in which<br />

carriage return (Control-M) does not also give a<br />

line feed (Control-J), and a Selectric which includes<br />

the line feed with the carriage return whether you<br />

like it or not. Further, the DECwriter requires no<br />

nulls to waste time while the print head returns to<br />

the left side of the paper, the thermal printer sometimes<br />

requires as many as four nulls, and the Selectric<br />

wants a goodly number of nulls. The Anderson­<br />

Anderson-<br />

Jackson Selectric has an 800 character buffer to<br />

deal with transmission faster than the print mechanism<br />

can keep up with, and the nulls plus the program<br />

execution time seem to be enough to keep the buffer<br />

from overflowing. If you have a Selectric, one solution<br />

is to make every other character a null, , which is<br />

included in the REM of line 8; if you use these<br />

nulls, declarations of P will have to go inside the<br />

FOR-NEXT loops of lines 44, 47, 53, , 22, and 17. . I<br />

doubt that the line 8 nulls are a good solution for<br />

a Selectric, because there is a mechanical clutch<br />

that continually engages and disengages, and probably<br />

wears more than it needs to. . This clutch is also the<br />

reason that the listing output is generated line by<br />

line, rather than simply printing individual characters<br />

when ready; ;<br />

As an example of using Cheep Print to serve a<br />

host program, I wrote a quick 6502 disassembler in<br />

Basic so that Cheep Print could list its own machine<br />

code for commenting. The disassembler isn't included<br />

here because there's nothing particularly exciting or<br />

instructive about it. The disassembly shows that the<br />

machine code is only a simple software timing loop,<br />

performed with interrupts inhibited (this is important!)<br />

so that the timing doesn't get messed up. The<br />

machine code outputs the start bit, and then the<br />

contents of memory location 1023/03FF low order bit<br />

first. All the printers I know ignore the highest


MAY/JUNE. MAY/JUNE, <strong>1980</strong>. ISSUE 4.<br />

COMPUTE.<br />

113<br />

order data bit, so I let programming convenience<br />

override generality, and output the highest order<br />

bit always as a mark, followed by sufficient marks to<br />

act as stop bits and marks until the next data come<br />

along.<br />

along.<br />

Table 2 Output parameters<br />

A. The frequency output by the 6522 shin shift register is given<br />

by the formula<br />

Frequency = System clock frequency,<br />

4 •* (contents ts of T2 low + 2)<br />

assuming that the shift register contains 01010101 or 10101010. 10.<br />

The PET sys tem clock appears to be spot on 1 MHz,<br />

The PET system clock appears to be spot on 1 MHz,<br />

and we calculate<br />

use T2 low<br />

For frequency<br />

use T2 low<br />

2225 Hz<br />

6E hex -= 110 decimal answer mark<br />

2025 Hz<br />

79 hex -= 121 decimal answer space<br />

t270 1270 Hz<br />

C3 hex R = 195 decimal originate mark<br />

1070 Hz<br />

E8 hex '"" = 232 decimal originate space<br />

If desired, frequencies may be halved by usingg 00110011<br />

in the shift register, and divided by four by using 00001111.<br />

Depending on the equipment used, , a certain amount of<br />

inaccuracy can be tolerated. I found no equipment that<br />

would give errors in the following ranges:<br />

69 to 71 instead of 6E 8B55 to D3 instead of C3<br />

76 to 80 instead of 79 DA to 10 F8 instead of E8<br />

B. The timing loop as given by the present machine e code yields yictds<br />

Bit time = 1284 XR + YR - 1257<br />

clock cycles between successive loads of 6522 T22 low,<br />

give or take one cycle due to the difference in execution<br />

times between n mark and space caused by the branch at 0347.<br />

With the e PET's one microsecond dock clock period, period. we have<br />

XR = - INT( Bit time + 1257 ) ,<br />

1284<br />

1284<br />

YR = _ Bit time + 1257 - 1284 XR<br />

XR<br />

For baud rate<br />

one data bit time XR YR SB S8<br />

110 0<br />

9091 1 us.<br />

08<br />

OF( ( = - 15)<br />

16 (=22)( - 300<br />

3333 us.<br />

03<br />

93( ( = . 147)<br />

07<br />

4% error seems to be tolerable. For for 110 I ill baud, we can<br />

range from XR.YR XR, =07,CO= to 08,60; for 300 baud we can<br />

range from 03,70 to 10 03,B8.<br />

1 GOTO 1000 Bl00<br />

2 LIST 99<br />

3 SS="8.03 S$; S14: 11 4: CHEEP PRINT MASTER WITH -. ~<br />

YR<br />

-.DISASSEMBLER"<br />

~DISASSEMBLER~<br />

4 RETURN<br />

5 LINE FUNCTION: 23 LIST STYLE: : 43 BOLL ROLL -. ~<br />

-nPAPER:50, ~PAPER:50,63 63-66 - 66<br />

BAUD RATE<br />

6 LINE FUNCTION: 55 PAGE FORMAT FORHAT FROM -. ~<br />

i85-86: ~8S - 86 : 56 CRLF FROM 87-88<br />

7 P=LEN(PS):IF P:LEN(P$) : P THEN FOR P0=1 PO:1 TO P:<br />

-.P=ASC(MID$(PS,P0,l) ~P:ASC (MID$(P$ , PO,l)) ) ;GOSUB8: :GOSUB8 :<br />

-.NEXT ~NEXT P0: : RETURN<br />

8 POKE 10 IB23,P: 23,P:EYS(M0) SYS(M0) :RETURN:REM : RE~! POKE -> .,<br />

-dB23,0:SYS{M0) :RETURN:REM FILL -.<br />

.,1023 , O: SYS(MO):RETURN : REM FILL ~<br />

.,NUL LS<br />

-.NULLS<br />

10 GOSUB 70:GOSUB : 3:PRINT 3 : SS:INPUT S$:INPUT -. ~<br />

-."LIST .,"LIST_~~~- «F=(F+(Q=3 4} ) AND1:C=C-(F*Q=5 8) : NEXT<br />

25 IF PY+OPV-PB PY+C>PV-PB THEN TI.IEN GOSUB 41<br />

26 F=1:FOR F:1:FOR J=Y TO Z:Q=PEEK(J):F=(F+(Q=34<br />

Z:O=PEEK(J) :F:(F+(O;J4<br />

i) .,)IAN01<br />

)AND1<br />

27 IF Q*F=58 O·F=58 THEN GOSUB GaSUS 45:GOSUB :GOSUS 46:<br />

:<br />

-.GOSUB -.cOSUB 39:SS=" 39:S$. " :":GOTO 30<br />

28 GOSUB GaSUB 32:IF PL+LEN(S$)+LEN(A$) (£5) (AS) >= >:., -i<br />

.,PH-PR THEN GOSUB 45 : GOSUB 46:<br />

-.PH-PR THEN GOSUB 45:GOSUB 46:<br />

-.GOSUB ,casus 39:S$=" 39 : S$="<br />

29 SS=SS+A$ S$=S$+AS<br />

30 NEXT J:GOSUB J : 45:GOSUB 45:GOSUS 46:GOSUB 46 39:<br />

-.GOSUB -.cOS US 39:GOSUB 40:GOTO 16<br />

32 AS="":IF A$="":IF Q>127 0 >127 THEN AS=CHRS(114}:<br />

A$=CIIR$(114):<br />

-.Q=Q-128 "0"'0-128<br />

33 IF Q>63 0 >63 THEN A$=A$+CHR$(115):Q=Q-64<br />

A$. A$+CHR$(l 1S ) :0=0-64<br />

3344 AS=AS+CHRS(Q-64*(Q


114<br />

114<br />

COMPUTE. MAY/JUNE. I 198O. <strong>1980</strong>, ISSUE 4. 4.<br />

50 POKE59467 , 16:POKE59464 ,110: POKE59466 ,<br />

5D POKE59467,16:POKE59'164,110:POKE59466,<br />

i85:RETURN:REM<br />

... S5:RETURN:Rnl 59464~195=ORG;<br />

59464-195:0RG ;<br />

-.110=ANS .,110=ANS<br />

52 PRINT "ifriHWHEH READY. HIT THE RETURN -.<br />

,](£X"<br />

52 PRINT "V'VVli1:1t.N R£AIU:, H.l.T TIU: RETURN .....<br />

53 INPUT ~TTTCHECK! D£YIC£ REApY ~~~.<br />

53 INPUT "TTTCHECK! DEVICE<br />

-.;A$:PRINT "WOK" "VVOK ": : RETURN<br />

54 S$="":J=0:P=0:P$="":Q=0:Q$='"1:A=0<br />

54 S$="" :J=D:P-O : P$="":Q=O:Q$="":A=O<br />

55 PX=0:PY=I:PH=79:pv=66:PL=12:PR= 3:<br />

55 PX=0:PY=1:PH=79:PV=66:PL=12:PR= 3:<br />

-.PT=6:PB=6:REM ..,PT=6 : PB:6: ~l<br />

FOR COMPACT LIST<br />

56 R$=CHR$(0):FOR R$=CH8$(0) :FOR J=1 TO 4:RS=R$+R$:<br />

4:R$=R$+R$:<br />

-.NEXT ..,NEXT:RS : R$-CHR$ = CHRS( (13) )+R$: RETURN iREM : REH IBM<br />

58 IF ASC(A$)=160 ASC{AS)-160 THEN A$=HID$(A$+" A$:::mO$(A$+" ", ..<br />

-.2) ... 2) :GOTO :GOTQ 58<br />

59 RETURN<br />

59 RETURN<br />

60 DEFFHD(X)=X-48+7*(X>64)<br />

DEFFNO(X)=X-48+7*(X )<br />

61 DEFFNK(X)=256*PEEK(X+1)+PEEK(X)<br />

DEffNK(X)=256*PEEK(X+l ) +PEEK(X)<br />

62 HA=826:M0=HA:C$="780EFF0338E014A2":<br />

MA=826:MO=MA:C$E"780EFF0338B014A2":<br />

-.COSUB99<br />

..,GOSUB99<br />

6 3 REHiC$="08A00FA9E89002A9C38D48E888D0F<br />

63 REM : C$="08AODFA9E89002A9C38048E888D0F<br />

... OCADOFA186EFF0)OOE79004A216" :<br />

-.DCADOFA186EFF03D0E790O4A216":<br />

-.REH ..... REI'1 OR110 ORl10<br />

64 REM!C$="08A00FA97 RE"I: "OBABOFA9799002A96E8D4 99002A96E8D48E888D0F 8E888n0F<br />

-.DCAD0FA186EFF03D0E79004A216":<br />

,DCAD0FA186EFF03n0E79004A216":<br />

-.REH ,REM AN110 ANlI0<br />

65 REH:C$="0 REM : C$="03A093A9E89002A9C38D48E888D0F<br />

3A9E89002A9C38D48E888D0F<br />

•JJCAD0FA186EFF0 3D0E7 9O0 4A207":<br />

,DCAD0FA186 EFF03D0E79004A207" :<br />

,REB OR300<br />

66 C$="03A093A9799002A96E8D48E888D0FDCAD<br />

,OFA186EFF03DOE79004A207" : REM All300<br />

iREM OR300<br />

66 C$="03A093A9799G02A96E8D4 8E888D0FDCAD<br />

10FA1B6EFF03D0E79004A207":HEM AM300<br />

67 GOSUB99:C$="D0E95860":GOSUB99:RETURN<br />

GOSUB99:C$="DOE95860":GOSUB99 : RETURN<br />

68 FOR J=l TO 8000:NEXT 8000 : NEXT J:RETURN<br />

70 GOSUB COSUB 50:POKE 50 : POKE 59468,14:GOSUB 52:<br />

--GOTO 54<br />

71 GOSUB GOSUS 45:GOSUB 45:COSUB 46:GOSUB 46:COSUB 39:GOTO 40<br />

80 GOSUB COSUB 41:P=7:GOSUB 41:P=7 : GOSUB 8:GOSUB 68: 68 :<br />

-.POKE ,POKE 59467,0:POKE 59467,0 : POKE 59468,12:STOP<br />

: 85 REM REB 55 PX=0:PY=l:PH=79:PV=66:PL=12:<br />

PX:0:PY=1:PH=79 : PV=66:PL=12:<br />

-iPR=41:PT=8:PB=8:REH ,PR=41:PT=8:PB=8:REN FOR COMMENTED COMl-IENTED -...<br />

87 REM 56 R$=CHR$(E):BS=CHR$(13)+CHR?110<br />

-i)+R? ,) +R$+R + RS $+R$ + + +R$ R?:RETURN:REM : RETURN: RE~! DEC CRLF<br />

88 REM REB 56 R$=CHR$(0):FOR R$=CII R$(O) : FOR J=l J ~l TO 4:<br />

-.RETURN:REM IBM<br />

98 A=0:FOR A: O:FOR J=l TO LEU(Q$):A=16*A+FND(ASC<br />

LEU(Q$ ) :A=16*A+FND(/,SC<br />

-


MAY/JUNE, I JUNE. <strong>1980</strong>. 198O. ISSUE 4. COMPUTE. "5 115<br />

Relocate PET Monitor<br />

Almost Anywhere<br />

The Monitor program provided on tape to owners<br />

of PETs with the old ROMs occupies locations (in<br />

hex) $0400 to 5076B, S076B, right where the PET stores<br />

BASIC programs' programs! If you're only interested in working<br />

with 6502 machine language routines, that location<br />

for the Monitor poses no problem. .<br />

Unfortunately for me, I wanted to have the<br />

Monitor available at the same time as BASIC programs.<br />

Despite a variety of attempts, I was unable<br />

to find a combination that would allow me to enter<br />

and run BASIC programs while having the Monitor<br />

available in its original location.<br />

On the other hand, if the Monitor could be<br />

moved somewhere very near the highest available<br />

memory location with which the PET is equipped,<br />

then the end-of-memory pointer could be reset to<br />

protect the Monitor. Then a BASIC program could<br />

be run, and it would not interfere with the<br />

Monitor.<br />

Myy problem appeared to be solved when I found<br />

an article by Professor Harvey B. Herman of the<br />

University of North Carolina ("Move It", MICRO,<br />

September 1979). . Although a critical figure seemed<br />

to be missing from the article, it was not too difficult<br />

to puzzle out, since the technique was based on<br />

an article by Jim Butterfield in the PET User Notes<br />

(Issue I, 1, Vol. 2). Incidentally, Jim has been a key<br />

figure in unravelling the secrets of the PET, both<br />

publishing information himself and pointing others in<br />

the right direction. .<br />

Although a relocation technique is summarized<br />

in this article, the discovery that got me excited<br />

was a simple e but powerful extension to make ii it do<br />

many relocations, after the first one was completed.<br />

Why would anyone want to relocate the MonitorM to many different locations? The answer lies in the<br />

earlier observation that it would be desirable to<br />

locate it near the top end of available memory.<br />

With a 4k PET, a good location for the MonitorM would be starting at the 3k location. On an 8k PET,<br />

you would want to locate it from 7k up. If a 4k PET<br />

had ana n 8k memory extension attached, giving a total<br />

of 12k, the Monitor should be located at the Ilk<br />

point. Other combinations of PETs and external<br />

memories would lead us to want Monitors located<br />

ata t 15k, 19k, 23k, 27k and 31k.<br />

.<br />

With the approach described here, all of those<br />

Monitors can be created in little more time than it<br />

takes to SAVE each one.<br />

First, we must create one working Monitor<br />

relocated to a position where it does not conflict<br />

with the e original. Here's one way to do it:<br />

1. I. LOAD the e Monitor (Prim (Print STATUS; PEEK<br />

(630) to insure that the LOAD was good ...<br />

Roy Busdiec ker<br />

Roy Busdiecker<br />

Micro Software Systems<br />

PO P.O. Box 1442<br />

Woodbridge, VA 22193<br />

PET should print 0 0). Rewind the tape.<br />

2. Type SYS62894, then press RETURN. You<br />

will get the message PRESS PLAY ON<br />

CASSETTE #1. Insert the Monitor tape<br />

tape and press PLAY. The tape will run<br />

until the FOUND MONITOR message<br />

appears, then it will report READY. At<br />

this point the tape header has been found<br />

and loaded into locations 634 through 638,<br />

but the Monitor itself has not started loading.<br />

Here is the meaning of bytes 635<br />

through 638.<br />

635<br />

636 637 638<br />

10 lo byte<br />

First location that<br />

program tape will<br />

load into.<br />

hi byte 10 lo byte Last location that<br />

program tape will<br />

load into.<br />

hi byte<br />

3. By changing the values in these locations, we<br />

can make this second copy load into a<br />

different area of memory. For this exercise,<br />

let's put it into locations 3k (decimal 3072,<br />

hex OCOO) 0C00) and up. To do that,<br />

POKE 636, 12:POKE 638,15:SYS 62403<br />

The tape will run and PET will report<br />

LOADING until the MonitorM is in. . Rewind<br />

the tape and set it aside. At this point,<br />

you will have two identical copies of the<br />

Monitor. M One is located from $04000 to<br />

S076A ($ (S indicates a hex value), as shown<br />

in Figure 1. The other copy is in locations<br />

S0COO SOCOO to $0C6A SOC6A (see Figure 2 for the first<br />

128 locations). The second copy, of course,<br />

will not work because its addresses point to<br />

the wrong locations.<br />

4. In order to make the $0C00-0C6A $OCOO-OC6A copy<br />

of the Monitor usable, you must alter<br />

(patch) the contents of 84 memory locations.<br />

There area several ways to do this, but the<br />

straight-forward approach I used (outlined<br />

below) is about as easy as any other.<br />

a. TypeT SYS 1039 and a press RETURN.<br />

This transfers control to the $0400- S0400-<br />

$076B Monitor, M which will display<br />

PC SR AC XY YR SP<br />

C6ED 30 33 39 00 FE<br />

b. b . Consult Figure 1I to see which values<br />

are to be changed (the circled numbers).<br />

A circled value in line 0410 calls for a<br />

change in the corresponding position in<br />

line 0C10. OC Line 0500 corresponds to<br />

OD 10, 0600 to OEOO , and 0700 to<br />

0D10, 0600 to 0E00, and 0700 to


'<br />

'<br />

116 COMPUTE. MAY/JUNE, I JUNE. <strong>1980</strong>. ISSUE 4.<br />

OFOO. If the circled number is 04 in<br />

the original Monitor, that value in the<br />

copy should be changed to OC. . Likewise,<br />

05 changes to OD, 06 to OE,<br />

and 07 to OF. Figure 3 shows the first<br />

128 locations in the copy after changes<br />

have been made.<br />

have been made.<br />

c. To makem the changes, list a section of<br />

copy with the M command, as in<br />

M 0C00 OCOO 0C7F OC7F<br />

which prints the first 128 bytes in 16<br />

rows. Next, use the cursor controls to<br />

position the cursor over the value to be<br />

changed, type the corrected value, and<br />

press RETURN. Even if several values<br />

in a line are changed, you only need to<br />

press RETURN once per line. Repeat<br />

the procedure until all 84 changes are<br />

made.<br />

d. d . For insurance, save a copy of your new<br />

3k Monitor before testing it.<br />

S 01.3K 01,3K MONITOR 3087,0C00,0F6B<br />

3087,OCOO,OF6B<br />

is the command to use. To be on the<br />

safe side, make several copies on the<br />

tape. Rewind this tape, mark it "3k<br />

Monitor", , and set it aside.<br />

5. Now test your 3k Monitor, to make sure it<br />

works correctly. Type X, then RETURN to<br />

get out of the original Monitor. TypeT SYS<br />

3087, then RETURN, , to transfer control to<br />

the 3k Monitor. Tryout the features<br />

described for the Monitor in your manual.<br />

When you are confident that you have created a<br />

working Monitor at the 3k point, you are ready to<br />

make as many working copies in other locations<br />

as you have memory to accommodate. If you have a<br />

full 32k, you may use all the procedures below<br />

exactly as written. Otherwise, just delete (or ignore)<br />

references to locations beyond the end of your RAM.<br />

Here is the procedure:<br />

1. LOAD the 3k Monitor. Rewind and remove<br />

the cassette.<br />

2. Put the original Monitor tape in the cassette<br />

unit, , and do step 2 of the earlier process.<br />

3. POKE 636,28:POKE 638,31 :SYS 62403.<br />

This puts a copy of the original Monitor<br />

in memory starting at 7168 ($ICOO).<br />

(SlCOO).<br />

4. POKE 135,12. . This tells your PET that<br />

end-of-memory is just below 3k, so the<br />

BASIC program described below will not<br />

mess up your Monitor.<br />

5. Type NEW and press RETURN. This is<br />

very important!<br />

6. Type in and run the following program,<br />

which will create working copies of the<br />

Monitor at the high end of every 4k incre­<br />

Monitor at the high end of every 4k incre<br />

ment of memory.<br />

MONITOR MULTIPLE<br />

RELOCATOR<br />

i<br />

i 10 REM F~ E r'l MONITOR 1'10N I MULTIPLE f'l T I F'LE RELOCRTOR<br />

F:ELOCATOF;<br />

20 2~) PEN F~ E M COPYRIGHT COP'T'R I NQV ~lO"'·J 197? 1979 BY f:'T'<br />

30 ~:ft REM REN<br />

ROV RO'T' BU5DIECKER<br />

BUS!I I ECKEF;<br />

40 413 REM REI"<br />

MICRO r'1 I SOFTWHRE '30FHIARE SVSTEMS S,,'STH1S<br />

56 513 REM F:Ef1<br />

P.O. BOX 1442<br />

60 REM REr-1<br />

NOODSRIDGE. HOODBF: . VR '·/A 22193<br />

~:<br />

?U 70 REM REN FILL ALL RIGHTS RESERVED<br />

80 :<br />

91:::1 ~< = 6<br />

1130 100 K= 1024 11324 : M1 r'1 1 =5072 =3072 ■: M2=7168 !'12=7168 : K4=4*K<br />

1101 1tl F0RI=0TO875<br />

FORI =£IT0875<br />

12'3 13 C1=PEEK


■<br />

■<br />

'<br />

MAY/JUNE, AY/JUNE. <strong>1980</strong> 198O ISSUE 4. 4<br />

COMPUTE. 117<br />

•3509<br />

0310<br />

0513<br />

8520<br />

052S<br />

0539<br />

UH<br />

41_<br />

■<br />

1<br />

•-JD<br />

3E<br />

Kl<br />

■ -<br />

-t<br />

■■-■<br />

. ■<br />

9E ?E 28 50 4 3 £0 20 5<br />

52 20 41 43 20 5S 52 20<br />

5S 52 20 53 50 m5 OB D8<br />

BSje F2W126 37|gj20<br />

-U' 2<br />

m: a<br />

iji\ m>' '■'■ 55<br />

0578 4ft[O7] 38 0S 20 B2 FF C8<br />

0530 D9 F5 L? 7F 20 D2 FF 20<br />

0583 2fl F3 F0 28 H6 Ofl B8 1C<br />

9590 20 Ft3Rg}S8 !? 20f£SM<br />

oz?z *:■ 2e •=!.=■ ?h io — E3 ■.■<br />

OSftS tl IWIFS DS<br />

05C0 D9 Dft 2B<br />

0SC8 90 E5 R9 OS 5 il 20 .<br />

05110 (13 20 CF [04] DO FS F0 I


MAY/JUNE. <strong>1980</strong>. 4.<br />

118 116 COMPUTE. I \980. ISSUE 4.<br />

.<br />

USE OF SOFTPAC-1 MAY<br />

BE HABIT FORMING<br />

We would like to announce a NEW STANDARD in Software Packaging! With<br />

SOFTPAC-1 SOFTPAC-l we are combining QUALITY software with BACK-UP COPIES on all serious<br />

programs. There is a sheet describing how to ADD SOUND to your PET or CBM for<br />

$13! Some of the programs include SOUND in them. The Floppy version has a animated<br />

DEMO program which allows 1 key loading of any program of your choice. From the<br />

programs you can automatically return to the DEMO, to choose a different program! You get<br />

18 Programs on Disc or 17 Programs on Cassette. The difference is you get TWO Discs or<br />

TWO Cassettes with the SAME programs for redundancy in PROTECTING YOUR<br />

Investment! A clear vinyl page holds the discs and cassettes. This all comes packaged in a<br />

Strikingly Silk-Screened, virtually indestructible NOTEBOOK! We Sincerely feel l that you<br />

will be so impressed with the High Quality Software and package, that we are offering a<br />

10 day Return Privilege! See disclaimer at bottom of Ad. This package will RETAIL in<br />

stores at $34.95, but for a LIMITED time to COMPUTE READERS we will make the follow<br />

ing<br />

offer:<br />

FOR $29.95 + $1 Shipping<br />

"SOFTPAC-IF" "SOFTPAC-1F" "01<br />

YOU GET ALL THIS!<br />


MAY/JUNE, I JUNE. <strong>1980</strong> 198O. . ISSUE 4. COMPUTE. 119<br />

' APE<br />

PET PROGRAMS ON T<br />

Gene Bea Bedsls<br />

TAPE A Box 516<br />

Montgomeryville. IvionlgomeryV'He, PA 18936<br />

EXCHANGE<br />

FORCES - Everett Luinpkm mpki n -- — Calculatc Calculate resultant of vcct vector<br />

forces<br />

FORMAT - Elizabeth Deal -- - PRINT USING subroutincs<br />

subroutines<br />

The ""programs on tape"<br />

service and exchange<br />

w/rounding<br />

functions as a low cost method for software distri­<br />

HISTORYH O R Y QUIZ U - Dave Ray -- - Simple CAIl program<br />

bution. . The copying cost is $1 per program.<br />

HORIZON COORDD - R. R . Grokett rokctt Jr. -- - Calculate ate altitudes/ tudes!<br />

We e can put up to 4 programs (8K) on a C-10<br />

-I O<br />

azimuths or of celestial objects<br />

INDEX BOTH - R R. . Wagner & Wilcox -- - Indcx Index program<br />

tape, or 12 on a C-30 tape. Please add $1 SI per<br />

modijicd modified fur for


120 COMPUTE. MAY/JUNE. A Y/JUNE, <strong>1980</strong>. I960. ISSUE 4.<br />

12O<br />

Capute<br />

Capute<br />

Wherein we<br />

Wherein we<br />

acknowledge recent<br />

goofs...<br />

goofs ...<br />

This page brought to you by Robert Lock.<br />

This page brought to you by Robert Lock,<br />

Editor/Publisher and our (sometimes mes hostile)<br />

but always active readers.<br />

It seems appropriate, on this sackcloth aand ashes page,<br />

to start with a new resolution: I promise to try to<br />

avoid continuation articles of the type used last issue.<br />

Charlie McCarthy's CHEEP PRINT software is in<br />

this issue. Phew. Your comments and letters are<br />

hereby officially acknowledged. Ouch. I won't do it<br />

anymore. Groan.<br />

Perhaps the biggest blooper in Issue 3 was the accidental<br />

deletion of the last part of an OSI software<br />

listing. I can report, with some conviction, that the<br />

article was read by OSI owners. The corrected listing<br />

was printed in Issue #1 of compute II. .<br />

Corrections to Issue 3:<br />

U Utinsel, page 36.<br />

The program line 780 printed as<br />

780 POKEj,BL:j POKEJ,BL:J=J ~j + 1<br />

should read<br />

780 POKEj,Bl:j J.B1J-J ~j + 1<br />

The Learning Lab, pages 52-53.<br />

The copyright symbol shows up in various places<br />

in the listing. It should be the up-arrow (exponentiation)<br />

symbol instead.<br />

We'll keep you posted in the unlikely event that<br />

more errors surface. ©<br />

Program Listings for COMPUTE<br />

Cursor control characters will appear in source listings<br />

as shown below:<br />

h=HmlE<br />

Jl=HOME , fi=CLEAR SCREEN<br />

V=DOWN ^=D0WN CURSOR , T=up T = UP CURSOR<br />

>=RIGHT ~=RIGHT CURSOR, «=LEFT ~=LEFT CURSOR<br />

L=REVERSE<br />

X.=REVERSE , r=REVERSE OFF<br />

Graphics (i.e. shifted) characters will appear as the<br />

unshifted alphanumeric character with an underline.<br />

This does not apply to the cursor control characters.<br />

The Spinwriter thimble doesn't have a backarrow<br />

symbol, so a """,, "~"" is used instead.<br />

The .. "~i" ..," is used to indicate the beginning of a<br />

continuation line. It is also used to indicate the end<br />

of a line which ends with a space. This prevents any<br />

spaces from being hidden. ©<br />

PET Word Processor<br />

8K<br />

and<br />

16/32K<br />

PET<br />

versions<br />

This program permits composing and printi ng let·<br />

This program permits composing and printing let<br />

ters, flyers, advertisements, manuscripts, s, etc., using<br />

the COMMODORE PET and a printer.<br />

the COMMO DORE PET and a printer.<br />

Printing directives include line length. length, line<br />

spacing, left margin, centering and skip. Edit com·<br />

mands allow you to insert lines, delete lines, move<br />

mands allow you to insert lines, delete lines, move<br />

lines and paragraphs, change strings, save files onto<br />

and load filess from cassette (can be modified for<br />

disk), move up, move down, print and type.<br />

disk), move up, move down , print and type.<br />

Added features for the 16/32K version include disk<br />

and cassette support written in, string search for<br />

editing, keyboard entry during printing for letter<br />

salutations, justification, multiple printing,<br />

pagination, tabbing, paragraphing, and more.<br />

A thirty page instruction manual is included.<br />

The CmC Word Processor Program for the 8K PET<br />

The CmC Word Processor Program for the 8K PET<br />

is $29.50. The 16/32K version is $39.50.<br />

Order direct or contact your local computer store.<br />

V'SA VISA AND D W/C M/C ACCEPTED-SEND- UIID ACCOUNT ACCDUNT II NUMBER, UW'ER , UP,ltAliON EXPIRATION DATE AII ANDO SHI SI0NN ORDER ORDEN. .<br />

ADD IS »S PER ORDERO ~DU'OI'I FOfl SHIP,.'NQ SHIPPING " ft HANDli HANDLINGNG - ' FOREIGN £ IGII ORDERS ORD[~$ ADO D IDe!. 10% '011 FOR AIR ,.OSTAO(.<br />

POSTAGE.<br />

CONNECTICUT<br />

microCOMPUTER, Inc.<br />

150 750 POCONO ROAD<br />

BROOKFIELD, CONNECTICUT 06804<br />

TEL (203) 775-9659 TWX: 710-456-0052<br />

Finally, MAE -<br />

A PET<br />

Finally, MAE - A PET<br />

DISK-Based MACRO<br />

ASSEMBLER/TEXT<br />

ASSEMBLER/TEXT<br />

EDITOR<br />

EDITOR Works with 32K PET<br />

- Works with 2040 Disk, and can drive 2022/20232023<br />

Printer, and/or RS232/20 20 rna ma Device thru User Port.<br />

-<br />

-<br />

100% Disk Based, 100% Machine Language.<br />

Macros. Macros, Conditional Assembly, and a new feature we<br />

developed called Interactive Assembly.<br />

- Coexists with Basic, Auto character repeat, Sorted<br />

Symbol Table.<br />

- 27 Commands. Commands, 26 Pseudo Ops, 5 Conditional Ops, 38<br />

Error Codes.<br />

-<br />

-<br />

-<br />

-<br />

Creates relocatable object code on disk.<br />

Assemble from Memory or Disk.<br />

String search, search and replace, and inter· inter-line edit.<br />

Auto line #-ing, tf-ing, move, copy, delete, renumber.<br />

- Labels up to 31 characters -— user specifies length.<br />

- Includes extention to PET monitor (disassemble.<br />

(disassemble,<br />

trace. trace, etc.), Library of PET ROM locations. Relocating<br />

Loader, plus more.<br />

Manual. Diskette, U. S. postage - S169.95<br />

Manual, Diskette, U. S. postage - $169.95<br />

(Requires completion of License Agreement -—<br />

Write for details)<br />

Eastern House Software<br />

3239 Linda Drive Winston·Salem, Winston-Salem, N. C. 27106


COMPUTE.<br />

COMPUTE.<br />

TM<br />

The Journal For Progressive Computlng.<br />

Computing.<br />

compute II.<br />

TM<br />

The Single-Board COMPUTE.<br />

The Single-Board COMPUTE.<br />

□ Please enter my 1 year (6 issue) subscription to COMPUTE.<br />

D □ Please enter my 1 year (6 issue) subscription to ccompute II.<br />

My computer Is: is: PET _ _ APPLE __ ATARI AlARI __ OSI __ SYM __ KIM _<br />

AIM_ AIM __ Other __(Speclty) (Specify) _______________<br />

Check One:<br />

__ S9.00 S9.OO (U.S. Mail Order Subscription)<br />

__ S12.00 $12.00 U.S. (Canadian Subscription)<br />

S18.OO U.S. (Canadian Subscription)<br />

compute II.<br />

D Please enter my 1 year (6 issue) subscription to COMPUTE.<br />

Check One:<br />

D I want Both!<br />

__ S15.00 S15.OO (U.S. Mail Order Subscription)<br />

__ S18.00 U.S. (Canadian Subscription)<br />

My Name, Address:<br />

Charge my Visa _____ MC _____<br />

Number<br />

Expires / /<br />

COMPUTE ?UTE end and compUte compute U It ore are publicatIOns puDlicaiions 01 of Smon Small System ServICes. Services, Inc. inc. QQO·902 9OO-9O2 Soflflg Spring Gorden Garden SL St.<br />

GreensbofO. Greensboro. NC 27403919·272-


Place<br />

Stamp<br />

Here<br />

COMPUTE./compute II<br />

COMPUTE./compute I<br />

Post Office Box 54O6 5406<br />

Greensboro, NC 274O3<br />

Greensboro, NC 27403<br />

Place<br />

Place<br />

Stamp<br />

Here<br />

Here<br />

COMPUTE./compute II<br />

COMPUTE./compute II<br />

Post Office Box 54O6 5406<br />

Greensboro, NC 274O3<br />

Greensboro, NC 27403<br />

Place<br />

Place<br />

Stamp<br />

Here<br />

Here<br />

COMPUTE./compute II<br />

COMPUTE./compute II<br />

Post Office Box 5406 54O6<br />

Greensboro, NC 27403<br />

274O3


Dear MICRO-ED:<br />

Dear MICRO-ED:<br />

I would like further information on<br />

your educational programs<br />

your educational programs<br />

Name ____________ _<br />

Name<br />

Address ___________ _<br />

Address<br />

City _____ State _____ Zip _<br />

City State Zip


PLACE<br />

STAMP<br />

HERE<br />

MICRO-ED, INC.<br />

MICRO-ED, INC.<br />

P.O. Box 24156<br />

Minneapolis, MN 55424<br />

Minneapolis, MN 55424


Look To MTU<br />

For 6502<br />

System Expansion<br />

System Expansion<br />

Micro Tech<br />

Micro Technology Unlimited<br />

~.o . Box 4596 ~401logy Unlimited<br />

P.O. Box 4596, 841 Galaxy Way<br />

ancheste ' Galax W<br />

603.627.146;'<br />

Manchester, N.H.<br />

. 03108 Y ay<br />

603-627-1464<br />

Call Or Write F For Our Full L· Line me Catalog


·-<br />

The Great<br />

American Solution<br />

Machine.<br />

More than SO,OOO<br />

More than 50,000<br />

students, teachers and<br />

administrators solve<br />

problems with this<br />

reliable <strong>Commodore</strong><br />

computer.<br />

computer.<br />

You're looking at the<br />

You're looking at the<br />

Number One computer in<br />

education today.<br />

In fact, fact'Jou've you've probably<br />

already used it.<br />

The <strong>Commodore</strong>.<br />

You know it teaches.<br />

Guides. Challenges.<br />

Analyzes. Organizes.<br />

Simplifies.<br />

Simplifies.<br />

"3i<br />

But did you know it has<br />

But did you know it has<br />

capabilities that are far<br />

beyond its price range?<br />

You can accomplish tasks<br />

with The <strong>Commodore</strong> at a<br />

price/performance ratio that<br />

price/performance ratio that<br />

leads the field. .<br />

You can also count on<br />

The <strong>Commodore</strong> showing up<br />

for class every day.<br />

It's a remarkably sophisticated,<br />

remarkably reliable<br />

machine. Around<br />

the world in<br />

schools- and businesses<br />

schools—and businesses<br />

too-there too—there are more<br />

than 100,000 <strong>Commodore</strong><br />

computers now at work.<br />

If you sense a snag in the<br />

flow of knowledge in your<br />

classes, we think you should<br />

challenge The <strong>Commodore</strong>.<br />

Compare it against any<br />

computer in—or in-or above-its<br />

above—its<br />

field.<br />

See if it won't raise the<br />

level of interest and accomplishment<br />

among your<br />

students.<br />

And simplify the complex<br />

in your administrative<br />

duties.<br />

. All at a price that makes<br />

it stand alone.<br />

For the name of your<br />

nearest authorized <strong>Commodore</strong><br />

dealer, just write to:<br />

<strong>Commodore</strong> Business<br />

Machines, Inc., 3330 Scott<br />

Blvd., Santa Clara,CA 95051<br />

Blvd., Santa Clara, CA 95051<br />

Call now toll·free. Ask for operator 973,<br />

Call now toll-free. Ask for operator 973:<br />

800-824-7888<br />

(In Calif., Callf .. 800-8527777)<br />

SOO·S52-7777)<br />

(In Alaska and Hawaii, HawaII. 800-824-7919)<br />

SOO-824-7919)<br />

( .: commodore<br />

ore

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!