COMMUNICATION Player: Player: Atari SPEEDUP: SPEEDUP: Program Modem Smart MODCOMM: MODCOMM: DOSPLUS: DOSPLUS: 8 COMMUNICATION NO.68 or he • Appl • At i 6 • CoCo o C • -64 C • ri ta A • le p A • th fo for the the for duc Appl Dik ng Ti e im in a o isk D le p p A ce u ed R Commands Commodor 64 re o d o m o C r fo s d a m m o C ew N e r c ga rogram P an rg O ic n tro lec E Si e Modem Drvr or o C o C r fo river D m e d o M le p im S A eiu Computerist Serious International Edition: International U.S. Edition:

$3.00 $2.50 ^ ic A o & t e 7 clec*M M oaU e 4 U o * & 10610 BAYVIEW (Bayview Plaza) RICHMOND HILL, ONTARIO, CANADA L4C 3N8 (416) 884-4165 d\a° S ' 8 | < H ,Gt- C 64-LIN K RTC The Smart 64 RTC

Call or write payments Serial by VISA, Cartridge Audio I/O MASTERCARD Expansion Slot Switch RF Video Port Cassette Port Users Port or BANK TRANSFER. M a il orders also by certified check, etc. IE E E Disks (2031) (4040) T ape V IC M o d em C64-LIN (8050) (8250) (9090)

IEEE Printers 1541 D riv e or VL3 Cable Many more 64a And V L 16 (4022)(8023) to Parallel 1525 Printer (8300) P rin te r etc. or 1515 Printer

(fu tu re ) IEEE to Parallel IEEE to Serial or VL4 Cable C a rtrid g e In te rfa c e In terface to Standard I Mother Board P a ra lle l True Serial M odem D evices D evices

Give These Expanded ? CP/M Capabilities To Your 64 ★ The ability to transfer data from any type of device to another (IEEE, Serial, Parallel)

i f BASIC 4.0 which allows you to run more PET BASIC programs and gives you extended disk and I/O commands. POWER A n d ★ The ability to have several 64s on line together - sharing common IEEE PAL® devices such as disks or printers with Spooling Capability.

i f Built-in machine language monitor

I i r A built-in terminal or modem program which allows the system to communi­ Spooling O ther cate through a modem to many bulletin board systems and other computer mainframes. to C a rtrid g e s P rin te r ★ Compatibility with CP/M. Copyrights and Trademarks C64 is a copyright of Commodore Business Machines, Inc. C64-LINK is a copyright of Richvale Tele­ communications. CP/M is a registered trademark of Digital Research. POWER is a trademark of Pro­ Contact your local Commodore dealer or RTC. fessional Software. PAL is a copyright of Brad Templeton. When yoi least expect it. ZAP!!! In a few millionths of a second, common electrical surges and spikes can enter your data processing equipment and cause memory loss, false logic and misregistration. Surges very often do permanent damage to microcircuitry. FLEXIDIKT Surge Suppressors catch surges and spikes before they have a chance to enter your equipment In billionths of a second (Nanoseconds),FLEXIDIKT Surge Suppressors dissipate surges and spikes from any side of the line (most protect only one side). The multi-outlet unit is ideally suited to the computerized work­ station. It gives you the advantage of circuit breaker protection with plenty of outlets for data processor and peripheral equipment No computer should be without the protection of a FLEXIDUCT Surge Suppressor...especially yours! Write or call for further information. Available from office products retailers.

2ZZ“ 7© Surse Suppressors

a product of Winders & Geist, Inc. P.O. Box 83088 Lincoln, NE 68501 402/474-3400

No. 68 - January 1984 MICRO 1 /AlCftO Editorial

Local Networks Randall Hyde provides a comprehensive introduction to local networking with in The Network Primer. He Communications describes the seven-layered network, discusses several important network topologies, and then shows how these concepts are involved in one particular system, the NESTAR CLUSTER ONE. The focus of this issue of MICRO is on communications: computer-to-computer over telephone MICRO Communications modems -including program downloading and computer One of the reasons for featuring communications at this bulletin boards, and computer-to-computer time is that we are developing aMICRO Phone Service for communication via local networks. subscribers. In addition to being a general purpose bulletin board for serious computerists, authors will be able to Remote Communications submit articles and programs, and subscribers will be able An original article by John Kelty on CoCo and the Hayes to download programs that have appeared in MICRO. Smart Modem has been modified by Phil Daley to work on Printed listings have always been a problem. The longer the Apple, Atari, and Commodore 64 as well. No matter the program listing, the greater the chance of making which computer you own, you now have the software you typing errors. Once we have the MICRO Phone Service need to run this popular modem. Walter Charlton has running, the only effect of length will be the cost of taken a different approach to add communications to his telephone connect time! We will have to establish some CoCo. MODCONN: The CoCo and Modem-to-Modem protocols for program loading, standards for assembler mmunication shows how to add RS-232 capability formats, and so forth. I would appreciate hearing from without fancy hardware.On the Commodore computers those of you who have had experience in this area. you have to use some tricks to download BASIC. Stone and Cornwall show how this may be done on the PET, VIC and C64. Part of Paul Swanson's column deals with Telecommunicating with your Atari and the use of free bulletin boards. Editor-in-Chief DISCOUNT COMPUTER jgaSMfcs kPPLE Ratiil Discount Halail Discount I ATARI Retail Discount Rauil Oiscounl

Zork I 39.95 29.00 Threshold (d) $39.95 29.00 T=Casse tte ^ c i p p k Zork II 39.95 29.00 Snake Byte (d) 29.95 21.00 D = D isk JK Deadline 49.95 36.00 Space Eggs (d) 29.95 21.00 C=Cartridge Mastertype 39.95 29.00 Bandits (d) 34.95 29.00 ATARI* Eliminator $29.95 21.00 ------o Castle Wolfenstein 29.95 21.00 War 24.95 18.00 Color Print (d) 39.95 29.00 Rear Guard (d) 24.95 18.00 Supertext II 150.00 108.00 Canyon Climber (d) 29.95 21.00 Adventureland 29.95 21.00 Rear Guard (t) 19.95 15.00 Softcard Premium System 775.00 600.00 Shooting Arcade (d) (t) 29.95 21.00 Pirates Adventure 29.95 21.00 Caverns of Mars (d) 39.95 29.00 Wizard and the Princess 32.95 24.00 Pacific Coast Highway (d) ( t) 29.95 21.00 Golden Voyage 29.95 21.00 Atari Basic (c) 59.95 45.00 Time Zone 99.95 72.00 Ctowns And BaJloons (d) (t) 29.95 21.00 Magic Window 99.95 72.00 (c) 44.95 33.00 Cranston Manor 34.95 25.00 Wordrace (d) 24.95 18.00 Temple of Apshai 39.95 29.00 Centipede (c) 44.95 33.00 Threshold 39.95 29.00 Andromeda (d) 34.95 25.00 Upper Reaches of Apshai 19.95 15.00 Pac Man (c) 44.95 33.00 Softporn Adventure 29.95 21.00 Deadline (d) 49.95 36.00 Curse of Ra 19.95 15.00 Pilot (c) 79.95 60.00 Crossfire 29.95 21.00 Zork I (d) 39.95 29.00 Midway Campaign 16.00 12.00 Temple of Apshai (d) (t) 39.95 29.00 Frogger 34.95 25.00 Hi-Res Computer Golf 29.95 21.00 Zork II (d) 39.95 29.00 Upper Reaches of Apshai (t) 19.95 15.00 34.95 25.00 Alien Swarm (d) 34.95 25.00 DOS Boss 24.00 18.00 Latf Pak Curse of Ra (d) 19.95 15.00 Ultima II 59.95 44.00 Action Quest (d) 4 9 .9 5 3 9 .0 0 APPLE Com patible Disk Drive $265.00 Russki Duck 34.95 25.00 Raster Blaster (d) 29.95 21.00 VER8ATIM/DATAL1FE Disks $26.00 Horizon V 34.95 25.00 SPECIAL OFFERS Sargon II 34.95 25.00 MANY MORE PROGRAMS AVAILABLE VISA AND MASTERCARD ACCEPTED

WRITE OR CALL FOR FREE CATALOG TERMS: Send check or money order PHONE ORDER HOURS for total purchase price, plus $2.00 STROM » SYSTEMS INC. 4 PM - 9 PM MON. - FRI. for shipping. Ml residents add 4% P.O. Box 197 INCLUDE CARD NUMBER tax. C.O.D. accepted. Plymouth, Mi. 48170 AND EXPIRATION DATE WITH @ MFGS TRAOEMARK CREDIT CARD ORDERS. (313) 455-8022 INCLUDE TYPE OF COMPUTER. ATARI COMPUTER OWNERS: Pick the positively perfect, practical, peripheral package, from PERCOM DATA!

That s right the positively perfect PERCOM DATA 574", floppy cfisk cfrtve with a BUILT IN m m PRINTER PORT, for your Atari* 400 800 is now available1 Until now, Atari computer owners who warted to hook a printer to their computer had only one choice., spend about $220 for an interface device THOSE DAYS ARE OVER PERCOM DATA has built a parallel printer-port r gnt irto its new AT88 PD model Now you can add a quality disk drive system AND have a'place to plug in a printer WITHOUT BUYING an interface The AT88 S1 PD ’* disk drive operates in botn single density (88K bytes formatted) and double ' density (176K bytes formatted) What more cou'd you want'? NO INTERFACE a high quality PERCOM DATA disk drive ANDa built-in PRINTER-PORT all with a price of $599 Pick up a positively perfect PERCOM DATA disk drive with printer port pronto1 Perfectly Priced For the name or an authorized PERCOM DATA Dealer near you, call our TOLL-FREE HOTLINE 1-800-527-1222 NOW, or write for more information $599. PEE?CM HATA . . . . CORPOFiAl ION Expanding Your Peripheral Vision DRIVES * NETWORKS * auirwAHbSOFTWARE 11220Pagemilt Road, Dallas.Texas 75243 (214)340-5800 ' 1-800-527-1222. . ■ , ; Atari is a registered trademark of Atari, Im. • AT 3d t il PD is 1 trJdermrk of Pi i c om U jl i (... rpuratioii . COPYRIGHT PERCOM DATA CURPUHATIUN1983 1 "U * 5 ” ^ Prices subject to change without notice * * * /AlCftOfor the Serious Computerist

MICRO P.O. Box 6502 Communication= Commodore— Chelmsford, MA 01824 617/256-3649 7 The Network 17 Downloading Prim er BASIC on PET, VIC Publisher/Edltor-in-Chlef Randall Hyde and C64 Robert M. Tripp Associate Publisher The organization and Kevin Stone & Cindy Kocher implementation of local Andrew Cornwall Technical Editor n etw o rks A program to allow BASIC Phil Daley to be downloaded over a Production Manager Using the Smart m odem Nancy Lapointe Modem in Your Typesetter 22 DOSPLUSfor Lynda Fedas System : Advertising Manager John Kelty Commodore 64 Cindy Kocher Michael Keryan A A S IC Sales Manager C. Skip Bentle program that services the Add new utility functions called from the keyboard Circulation Manager Hayes Smart Modem for Linda Hensdill the following Customer Service : 33 Generating Kim Dundas Apple Characters for the Accounting Donna M. Tripp Atari EPSON FX80 on Color Computer Contributing Editors the Commodore Cornelis Bongers Commodore 64 David Malmberg Robert M. Tripp John Steiner Create user defineable Jim Strasma 62 M O D C O M M Paul Swanson Walter Charlton characters for the FX80 Richard C. Vile, Jr. interactively on the A simple modem to Loren Wright Commodore 64 display modem communication program for the Color 39 Commodore MICRO is published monthly by: C o m p u te r MICRO, Chelmsford, MA 01824. Reviews Second Class postage paid at: Chelmsford, MA 01824 and 17 Downloading additional mailing offices. 40 Commodore to USPS Publication Number: 483470. BASIC on PET, VIC ISSN: 0271-9002. Smart Modem Send subscriptions, change of address, and C64 John Kelty & USPS Form 3579, requests for back issues Kevin Stone & and all other fulfillment questions to: Phil Daley MICRO Andrew Cornwall P.O.Box 6502 A BASIC program that A program to allow BASIC Chelmsford, MA 01824 services the Hayes Smart or call 617/256-3649. to be downloaded over a Modem for the C64 Subscription Rates: (per year): modem into the family of U.S. $24.00 or $42.00 for two years Foreign surface mail: $27.00 Commodore computers Air mail: Europe $42.00 43 Commodore Mexico, Central America, Middle East, North Africa, Central Africa $48.00 Com pass South America, South Africa, Far East, Loren Wright Australia, New Zealand $72.00 Copyright © 1983 by MICRO. High resolution graphics All Rights Reserved. on the Commodore 64

4 MICRO No. 68 - January 1984 Color Computer^ Atari A-f-i oole— ------60 CoCo to Hayes 46 Atari to Hayes 74 Apple to Hayes Smart Modem Smart Modem Smart Modem John Kelty & John Kelty & John Kelty & Phil Daley Phil Daley Phil Daley A BASIC program that A BASIC program that A BASIC program that services the Hayes Smart services the Hayes Smart services the Hayes Smart Modem for the Color Modem for the Atari Modem for the Apple C o m p u te r 49 Atari Music Player 79 Speedload: 62 M O D C O M M Tom Marshall Enhanced Apple Walter Charlton Compose, save, load and DOS A simple modem to replay songs from your Enirco Colombini modem communication Atari keyboard program for the Color An enhanced version of C o m p u te r 57 From Here to Atari DSO 3.3 that performs loading operations about Paul Swanson four times faster. 67 A VOX Input for The ATR8000 peripheral Your CoCo controller and Bulletin 71 Apple Reviews Sean M oyer Boards Subroutines that allow sound to be used as input 59 Atari Reviews to the computer 69 CoCo Bits John Steiner General The -9 7 The Network Prim er 71 TRS-80C Reviews Randall Hyde A primer describing the fundamentals of local networks, with specific examples on the NESTAR system 91 Interface Clinic Ralph Tenny DEPARTMENTS Factors involved in getting 2 Editorial two or more 112 Advertiser’s Index microprocessors to work to g e th e r

No. 68 - January 1984 MICRO 5 You’ve got the loot... now, GETAWAY! to a great It’s all there! The squall of sirens, the crazy new game from the Atari® Program Exchange! turns down endless city streets, the anxious search for ill-gotten gain, the race against time for a safe place to stash your cash! Now your gas tank is nearly empty and night is about to fall. The coppers are closing in fast. Before you learn again that crime doesn’t pay...Quick! GETAWAY! Ask for GETAWAY! at your local Atari software retailer, or order direct. Phone 800-538-1862, or 800-672-1850in California. Or write Atari Program Exchange, P.O. Box 3705, Santa Clara, CA 95055. Cassette (410) APX-10195 32K $29.95 \Sv,> Diskette (810) APX-20195 32K $29.95 For direct orders, add $2.50.

You’re in for a nasty spell... unless you stop the Typos! In the dusky world beneath your uh, proze...prrrose...Oh NO! THE keyboard the gruesome Typos dwell TYPOS!!! Get TYPO ATTACK, a ...waiting to attack! Term paperdue grand and glorious game from tomorrow? Got to get that book re­ Atari® Program Exchange. It might port typed? Fool! The Typos will even improve your typing! devour your letters as you type! Ask fo r TYPO ATTACK at your local Atari That could spell D-O-O-M-E for software retailer, or order direct. Phone 800- you! 538-1862, or 800-672-1850 in California. Or write Atari Program Exchange, P.O. Box Before you start typing, get down 3705, Santa Clara, CA 95055. to the real work: destroy the Typos Cassette (410): APX-10180 8K $29.95 before they destroy your proase... Diskette (810): APX-20180 16K $29.95 For direct orders, add $2.50. ferent users to share a common database or communicate with one another. For this reason many computer depart­ ments continue to purchase large computers instead of The decentralized personal computers. The need to share peripheral devices is, of course, very important. While a single user may have the need to use a Network printer, he might not be able to justify the high cost of such a device for use at his work station alone, especially if it is a special purpose printer such as a letter quality printer that will be used infrequently. It would be much Primer better if a lot of different users could have access to a single letter-quality printer. Since each user would only be using the letter quality printer a small of the time, it by Randall Hyde would almost always be available for use whenever a user desired to print something on it. Since the printer is available to several users, instead of just one, its utiliza­ n the early sixties the integrated circuit was introduced. tion would be much higher than if it were connected to a Engineers were delighted to pay $20.00 for a single DIP single work station. Using the same idea hard disks, real­ Ipackage containing four NAND gates. Due to the ex­ time clocks, floating point processors, and other special pense involved, every device designed using these devices devices would be much more cost effective if they could be was optimized to use as few of these devices as possible. shared amongst several users. With every technological advance that came along the Several manufactures have created special multiplex­ high price of silicon dropped dramatically. Today you can ing devices that allow several personal computer users to buy that same NAND gate for less than fifteen cents in share a particular hardware device. For example, CORVUS suitable quantities. has a device called the CORVUS Constellation that lets Since computers designed in the sixties required several systems share a CORVUS hard thousands of those $20.00 NAND chips, computers disk system. Other manufacturers provide black boxes (specifically CPU's) designed at that time were very ex­ that let several personal computer users share printers, pensive. Since CPU's were so expensive computer center tape drives, and other peripheral devices. While this administrators wanted to squeeze every bit of useful com­ approach lets personal computer users share peripheral putational power out of their system as was possible. It devices (and to a lesser extent, share databases), it suffers was considered heresy to leave a computer idle. A million- from the drawback that it does not allow users to easily dollar instrument sitting around idle was a very expensive communicate with one another, nor does it let users share waste of money. exotic peripherals for which there is no multiplexer available. The same advances in silicon technology that gave us the fifteen NAND gate also gave us the micropro­ The Answer: A Network cessor. It is now possible to buy a complete computer for less than $2.00 (Intel just announced an 8048-type To solve the problems inherent with a bunch of microcomputer for less than $2.00 containing CPU, RAM, autonomous computers a technique employed by larger ROM, and I/O — everything you need for a complete com­ computers is employed: the computer network. A com­ puter system). Even considering a personal computer, puter network is simply some medium that allows two or such as the Apple II system, that sells for $1,000 to $2,000 more computers to communicate with one another. In a it becomes apparent that the CPU utilization is not very very general sense, the RS-232 line is an example of a com­ important — if the computer sits around all day with a puter network since it allows computers to communicate blinking cursor waiting for input from the user, no big with one another. Real-life computer networks usually use deal, for the same million dollars that bought the a different transmission scheme than RS-232, but the idea System/360 in 1965 you could buy 500 to 1,000 personal is exactly the same-some method for transmitting data computers and get more through-put even if over three- between two computers is used. quarters of the computers sat idle at any given time. In general there are two types of computer networks: There were only a few problems associated with using Remote networks and Local networks. A remote network 1,000 personal computers instead of a single, large com­ is usually associated with large mainframe computers. puter. First, although the overall through-put is increased Anyone who has connected to the SOURCE via TELENET tremendously, certain compute-bound operations such as or some other service has used a remote networking math-intensive floating point calculations will proceed system. Remote networks are seldomly used as a means to much slower on a personal computer than on a larger com­ share peripherals such as printers, hard disks, etc. since puter complemented with a floating point instruction set. data transmission rates are very slow and the end user Second, while the price of the CPU has dropped typically has little access to such device (so the hard copy dramatically, electromechanical devices such as printers, output, for example, could be picked up). Remote net­ disks, tape drives, and other such devices haven't dropped works do allow access to shared data bases such as the UPI in price by the same proportion (i.e., these devices are still and API data bases and stock quotation from the DOW relatively expensive). Lastly, with the big expensive com­ JONES and other financial systems. In general, however, puters several users and processes could communicate remote networks are of little interest to the group of per­ with one another and share databases. With the localized sonal computer users who wish to share a common set of personal computer it is difficult, if not impossible, for dif- peripheral devices and files. No. 68 - January 1984 MICRO The local network is used to connect various devices that are located within a short distance of one another. For example, within an office building you might place a fast -matrix printer in the engineering lab, in the account­ Application ing department, in the sales department, and in the shipping Layer departments. Persons using a local network would send draft output to the printer nearest their workstation. A Presentation single letter-quality printer might be found in the sales Layer department. Anyone could use the letter-quality printer by sending the data to the proper device. The choice of dot­ matrix printer would be made simply by distance to the Session Layer printer. The people in the engineering lab would probably use the printer in the engineering lab since it is closer Message/ (although if the printer in the engineering lab is tied Transport up for a while output could be directed to the sales depart­ Layer ment's printer). The local network also lets several individuals share a Network single high-speed, high-capacity hard disk. This also Layer allows several users to share a common database and other files. For special applications such as floating point opera­ Data-Link tions, a special floating point processor can be placed on Layer the network and complex floating point operations can be loaded into the floating point processor for further Physical calculations. Layer Finally, a local network lets individual users com­ municate with one another. Since, after all, a network is simply a medium of communication between two or more computers, two users can easily communicate by sending data from computer to computer. This allows conversa­ Figure 1: ISO seven-layer network model. tions to take place "C B ” style over the network. Within a local network there are two types of users: mechanical specification of the RS-232 standard. Elec­ clients and servers. A server is a computer system on the trically, the signal is allowed to vary between Ov and + 12v network (a computer system on the network is called a for a logic one; and between Ov and - 12v for a logical zero. node) that provides a service to other nodes. For example, These specifications are the electrical specs for the RS-232 a file server may consist of a small computer system con­ system (granted, somewhat abbreviated). The Physical nected to a hard disk. It recognizes requests from other Layer for any network system defines the connection in users in the system and reads data from (or writes data to) these terms, the connector used, voltage ratings, type of the hard disk. A client is some node that requests service transmission (phase encoded, pure digital, analog, etc.), from a server. For example, a typical user requesting data and other specifications of interest to the engineer wiring from the file server is a client of the file server. Note that a the system together. node can be both a server and a client. For example, the file The Data Link Layer is responsible for the reading and server may become a client of a node containing a real­ writing of data to the network, error detection (and time clock in order to obtain information to "date-stamp” possibly correction), and the assembly and disassembly of a file. data packets. More specifically, the data link layer is presented with a packet of data containing, in addition to The Seven-Layered Network the data to be transmitted, a destination address and other useful information. The data link layer adds a checksum Most of the modem network technology is directly (or other error-detecting scheme) to the end of this packet attributable to researched performed by the Department of and transmits the data over the network. Note that the Defense and several major universities. A few years back packet was given to the data link layer as a complete the International Standards Organization (ISO) decided to package, the data link layer did not have to assemble the create a draft containing several standards for implement­ packet a byte at a time. Likewise, when the data link layer ing network systems. A subset of the standard (in one reads data from the network it reconstructs the data packet fashion or another) is implemented in almost all modem transmitted and presents the higher levels with a com­ networking systems. Therefore, an understanding of the plete, error-free packet of data. In the event an error is ISO model is extremely useful for understanding specific detected the data link layer disregards the entire transmis­ networking systems. sion and requests a retransmission. The higher layers are The ISO model divides the networking system in­ completely unaware of this. Most networks provided to seven major components or layers. Each successive error-free data abdve the data link layer. layer builds on the layer just below it [see figure 1). The The Network Layer is usually found only in the remote physical layer is the electrical and mechanical specifica­ network systems. The purpose of the network layer to to tions of the networking system. For example, consider the insure that data packets move smoothly throughout the RS-232 standard. Mechanically, a DB-25 connector is used network system. In most remote network systems data with certain pins allocated certain functions. This is the packets being sent from system A to system C must first 8 MICRO No. 68 - January 1984 M ic r o S p e c SOFTWARE MEANS BUSINESS FOR THE COMMODORE 64

When it’s time to get serious, it’s time to boot up MicroSpec business software. Our complete line of business software is made to give you some real applications for your Commodore 64. From data base management to full accounting software, we have the package for you. It’s attention to detail that makes our packages so beautiful and makes them stand out from the rest. We realize that most people are first time users, so we designed all our packages to be completely menu driven and user prompt­ ed for each input. We also know that most people use only one disk drive, so we designed all our packages to virtually eliminate disk swapping. Other features like non destructive input routines really make our software easy to use. But all this doesn’t restrict you. Pure random access file struc­ ture maximizes your disk capacity and allows you to bring up any record for viewing in less than a second. In our efforts to put together the best pack­ ages available, we worked on more than the The Demonstration Package, which shows how software. We took the same approach with the each program runs, is available for $19.95. So, if documentation as the software. We made it com­ you’re serious about your 64, call or write for a plete and easily understood for the first time user. complete brochure or go right down to your We even provide sample reports in many cases. nearest computer retailer for a demonstration.

WHEN YOU AND YOUR 64 ARE READY TO GET DOWN TO BUSINESS GIVE US A CALL

P.O. BOX 863085 • PLANO, TX 75086 (214) 867-1333 No. 68 - January 1984 MICRO 9 pass through system B. Obviously the data being trans­ The Application layer is the user program making use mitted to point C is of little interest to the application pro­ of the network system. The definition of this layer is en­ gram running on machine B, but due to the structure of the tirely up to the user. network system B must store and forward the data being received from system A on to system C. The network layer A Network System You've Used Since Childhood handles this problem as well as other problems associated with congestion and flow control. Believe it or not, you've been using a remote network The Message/Transport layer concerns itself with for a good part of your life. Thanks to Alexander Graham machine-machine communications. The transport layer is Bell most of the people in this country, even those who've responsible for taking a complete message and "transport­ never seen a computer in their life, are well aquainted ing" it to the destination machine. Likewise this layer is with the most important network of all: the telephone responsible for accepting a message and presenting the system. Bell labs (the R & D portion of the Bell system) whole message to higher layers in the protocol. has put forth considerable research into optimizing the The transport layer is responsible for taking a complete telephone system. Luckily, many of the concepts message, breaking it up into smaller packets (if necessary), developed by Bell labs can be directly applied to computer and presenting these packets of data to the network (or networks. With this in mind, a discussion of the telephone data link) layer for transmission. This allows the higher system may be helpful before discussing computer networks. layers to treat data strictly in terms of message units In many respects, the telephone system can be divided without having to worry about maximum message up into the seven layers just described for computer net­ lengths, minimum messages lengths, the type of transmis­ works. For example, at the physical level you have the sion, etc.. Another responsibility of the transport layer is connector plug in the wall, the allowable voltages, the handling the type of communication. There are typically number of wires, and (for all you modem fans) esoteric two types of transmission "modes” : things like the ringer equivalence value. The data link layer is the circuitry required to handle the analog transmission from the mouthpiece to the telephone line. Virtual Circuits and Datagrams. The network layer is responsible for picking out the route which the phone call will take (yes, sometimes a call from Datagrams are very important in remote networks L.A. to San Francisco gets routed via Washington D.C.). where each data packet can take one of several different The transport layer defines a virtual circuit mechanism for routes. In a datagram model the network simply accepts data transmission (after all you do want the data to arrive messages and attempts to transport them to the destina­ in order, it would be uncool if you said "Hello there'' and tion as a single unit. Datagrams may arrive out of order or it came out "there Hello" at the other end). The session not at all. The receiving station is responsible for col­ layer consists of the circuitry required during dialing and lecting these datagrams, assembling them in their proper the maintenance of the virtual circuit during communica­ order, and making sure that all datagrams have arrived and tion. The presentation layer (if present] could be are error-free. represented by one of those magic "black boxes" that the A virtual circuit attempts to treat the network system CIA uses to scramble and unscramble phone conversa­ as though the source and destination stations were the tions. And the applications layer is the actual phone con­ only systems on the network. In this type of setup the net­ versation taking place. As you can see, the OSI network work appears as a single circuit between the source and structure provided by the ISO model is very general and destination stations. Virtual circuits always provide an easily re-worded to fit almost any communication system error-free transmission channel where no data packets are in existence. lost and they always arrive in the order they were It was noted earlier that Bell Labs has done quite a bit transmitted in. Once the transmission is set up, all data is of research into network structures, much of which has transmitted at which point the virtual circuit is discon­ found its way into many of the modern network designs. nected. Most local networks use some combination of vir­ This combined with the DOD's ARPANET, IBM's SNA, and other early networking systems has structured many tual circuit/datagram service. The Session layer is the true user's interface into the of the modern networking systems including ETHERNET, network. The session layer is responsible for setting up a OMNINET, NESTAR, and others. communication channel between users and tacking on the necessary address information for each packet trans­ An Introduction to Local Networks mitted. The session layer is also responsible for making sure the transmission of a message isn’t terminated The need for local networks grew from two basic halfway through. For instance, a database management desires: wanting to share expensive peripheral devices program would be completely destroyed if a session was among several inexpensive CPU's and wanting to improve terminated halfway through the update of a particular communication between various workstations. record. Typically, the session level would gather all the Consider the average sales office. At any given time data required by a particular routine and present the you may have several secretaries using word processing message as a complete package, not allowing the system to stations, executives using some financial modeling system continue operation until the entire package was received. (VISICALC anyone?), salesmen checking stock and placing The Presentation layer is typically a small collection of orders on computer terminals, and clerks maintaining the routines that handle data compaction, encryptionation, inventory using workstations in the warehouse. This etc.. This layer is rarely implemented in local networks (or much activity would bog any conventional timeshare remote networks for that matter). system down tremendously. Could you imagine how 10 M ICRO No. 68 - January 1984 useful VISICALC would be if it took 20 seconds to perform each calculation? So a timeshare system would be out of the question. Yet the individual members have to be able to share data, for example whenever a salesman sold something it would be nice if the stocking clerk was alerting so that he could order a replacement. Likewise, you wouldn't want two salesmen selling the same item if it is the last one in stock, or at least you would want to alert them so that they could advise the customer of any possible delays. By combining a group of small computers into a network it is possible to allow members of a organization to easily share computer data without the hassles of using a timeshare system. Since there is a need to provide many of the employees with access to some common data (like the number of items in stock) a bunch of isolated microcomputers won't be able to completely solve the problem. But if those same microcomputer systems could be connected together so that peripherals, data, and other communications lines could be shared the problem could be solved. Such wishful thinking lead to the development of the local network. The ETHERNET networking system is an example of a Figure 2: Star Topology. local network. The ETHERNET system allows office employees to share databases, peripherals, programs, "chat" between stations, share a single communications slow, the entire network will be slowed down since all line (such as TELEX/TWX datacom lines), and have access communication must go through the central station. Even to larger, expensive computer systems. ETHERNET if the central node is fast, attaching additional stations to features a high-speed data communications protocol that the system will cause severe network degradation since provides an almost instantaneous transfer of data. The the central node becomes vastly overworked. The STAR problem with ETHERNET is that in addition to its high topology does have one highly redeeming value. Much of speed, it is also very high cost. A controller card for a the necessary connecting hardware is in place in many microcomputer may well cost you $4000. When you stop business offices-the PBX telephone system. The PBX (or and realize that one of the main reasons for using a net­ private branch exchange) is the little operators console you work is to save the expense of putting a $2,000 printer at find on the desk of the front receptionist in any large cor­ every station you begin to realize that ETHERNET is not poration. While intended to handle voice transmissions, yet cost effective. Luckily, there are alternatives to most PBX's are easily upgraded to handle data transmis­ ETHERNET. sion. The PBX system is a good example of a network using the STAR topology. Since all the wires are already in The Shape of Things to Come: Network Topology place, many businesses will opt to use their existing equipment thus saving thousands of dollars in installa­ A networking system is used to connect several com­ tion costs. puter systems together. Each computer system within a The topology |see figure 3) was developed mainly network is called a node or a station. There are all kinds of for remote networks between large computer systems. ways to connect several nodes together, any child playing The basic idea behind a ring network is that data packets with tinkertoys can attest to that fact. In a networking system there are various layouts possible when connecting a group of computer systems together; the layout, or graph, of the computer network is called the network topology. While there are infinitely many ways to connect up computer systems in a network there are three basic topologies from which most others can be derived. These topologies are the STAR, RING, and BUS (or tree) topologies.

The STAR topology (see figure 2) consists of some cen­ tral node through which all communication must pass. The STAR topology is probably the most obvious since this type of layout is used by large mainframes and mini­ computers which are connected to computer terminals. In a networking system, if a node other than the central node wished to transmit data to any other, the transmission would have to go through the central node in order to reach the destination node. This form of communication has two drawbacks. First, if the central node goes down so Figure 3: Ring Topology. does the whole network. Secondly, if the central node is No. 68 - January 1984 I are passed from machine to machine in a "hot potato" called a frame or data packet. Data packets are constructed fashion until the data packet arrives at the destination at each level in the network protocol. For example, the ap­ system. Since few local networks use the RING topology, plication layer sends data (possibly a character at a time) to there's little need to discuss it any further here. the session layer where it is sent to the message/transport The BUS topology (see figure 4) is the favorite topology layer with a destination and source address. The amongst the various local networks. ETHERNET, OM- message/transport layer collects the data until a complete NINET, NET/80, SOFTWORKS, Z/NET, and most other frame is constructed, adds any required length, type, and local networking systems use some variation on the BUS other necessary fields and passes the data packet to the topology. The BUS topology is high robust. Any compo­ data link layer for transmission. The data link layer adds nent (with the unlikely exception of the connecting cable| the checksum and any necessary acknowledgements and in the network system can fail and the network will still transmits the data over the network. operate. The BUS topology allows you to add and remove One important feature of a networking system is its nodes at will (in some cases without powering the system data transmission rate. The data transmission rate is down). The BUS topology has another big advantage: often usually measure in bits per second (BPS) which is also the circuitry required is less expensive than that required called BAUD. For example, the familiar 300 BAUD line for other networking topologies. used in telecommunications is a three hundred bits per Network topology is very important in remote net­ second data transmission rate. Many remote networks works where delays due to routing can be significant. operate at 300 BPS and 1200 BPS (using leased lines). Many remote networks use a store and forward approach These data rates, however, are very slow. Most local net­ where one station transmits data to an adjacent station working systems operate in the range of one to twenty from which point it is transmitted on down the line. Since MBPS [megabits per second) which is 1,000 to 60,000 it takes time to receive and retransmit a package of data, times faster than the lines used by the remote networks. delays grow proportionally to the number of systems in a The maximum data transmission rate of a networking ring topology network (ring topologies are in many large system is called its bandwidth. Even though a network is networking systems). Since the network nodes are stationed capable of operating at 1 MBPS, the medium can operate at fairly close to one another in a local network, the bus 300 BPS if need be. topology is normally used. The bus topology removes the In almost any networking system there isn’t constant problem of routing delays, but requires special cables and traffic on the net. So although a cable (or whatever) is hardware which would be much too expensive for widely capable of handling data at high speeds, the average data separated stations. transmission rate is usually much lower than the band­ width of the transmission medium. If the average band­ width is low because no one is transmitting data, it's no big deal. After all, the average network user isn't in­ terested in the quality of the cable being used to connect nodes, he's only interested in response time. If the average data transmission rate is only 50 BPS on any given day, but users get instantaneous response then things are just fine. But if the network is noisy, congested, or has some other problems, many packets will have to be retransmitted thus cutting the average transmission rate and the response time down considerably. At any given time only one data packet can be in the process of being transmitted over a single circuit. If two nodes attempt to transmit over the same wire at the same time both transmissions will be garbled up and the transmission will be completely invalid. Such an occur­ rence is called a collision. Collisions occur most often in a network using a bus topology since must nodes in such a system share the same transmission circuitry. Receiving stations have no way of determining if a collision has occurred. If fact, the only time a receiving station can determine that a collision has occurred is when it performs Data Transmission in a Networking System some sort of error check and the checksum doesn’t match. One of the major problems with a collision is that the Since the same transmission medium is used by all the entire data packet must be retransmitted. Which means nodes on a network, some supplemental information must that the average data transmission rate is reduced. This is accompany each data transmission. For example, a compounded by the fact that data transmissions occur destination address must be tacked onto every transmis­ asynchronously. That is to say anybody can start trans­ sion so that the intended receiver can recognize a data mitting whenever they please. So halfway through your transmission. Other auxiliary information, such as a transmission someone else could start talking and wipe length field, type field, acknowledgement field, and out your entire message. This problem is easily solved by checksum may be tacked onto the data. by first listening to the bus to see if anybody else is A block of data containing the necessary source, transmitting. If someone else is using the transmission destination, checksum, data, and other optional fields is medium you wait until they are through. If there is no traf- 12 MICRO No. 68 - January 1984 Products for Commodore, Atari, Apple, and others!

THE MONKEY WRENCH II A PROGRAMMERS AID FOR VIC RABBIT CARTRIDGE NEW AND IMPROVED - 18 COMMANDS AND CBM 64 RABBIT CARTRIDGE PLUGS INTO RIGHT CARTRIDGE SLOT

If you are a person who likes to monkey around with the ATARI 800, then THE MONKEY WRENCH II is for you!! Make your programming tasks easier, less > $39.95 THE “High-Speed time-consuming and more fun. Why spend extra MONKEY WRENCH Cassette (includes Cartridge hours working on a BASIC program when the II MONKEY WRENCH can do it for you in seconds. Load and Save!’ and Manual) It can also make backup copies of boot type cassette programs. Plugs into the right slot and Expansion Connector works with ATARI BASIC cartridge. if on the VIC Cartridge The MONKEY WRENCH provides 18 direct mode commands. They are: AUTO LINE NUMBERING - Pro­ vides new line numbers when entering BASIC program ‘ ‘Don’t waste your Life away waiting to LOAD and SAVE lines. RENUMBER — Renumbers BASIC's line numbers programs on Cassete Deck." including internal references. DELETE LINE NUMBERS $59.95 — Removes a range BASIC line numbers. Load or Save 8K in approximately 30 seconds! Try VARIABLES — Display all BASIC variables and their current value. Scrolling — Use the it — your Un-Rabbitized VIC takes almost 3 minutes. START & SELECT keys to display BASIC lines automatically. Scroll up or down BASIC pro­ It’s not only Fast but VERY RELIABLE. gram. FIND STRING — Find every occurrence of a string, XCHANGE STRING — Find every occurrence of a string and replace it with another string. MOVE LINES — Move lines from Almost as fast as VIC Disk Drive! Don’t be foolish — one part of program to another part of program. COPY LINES — Copy lines from one part of program to another part of program. FORMATTED LIST — Print BASIC program in Why buy the disk when you can get the VIC Rabbit special line format and automatic page numbering. DISK DIRECTORY — Display Disk for much, much less! Directory. CHANGE MARGINS — Provides the capability to easily change the screen margins. MEMORY TEST — Provides the capability to test RAM memory. CURSOR Easy to install — it just plugs in. EXCHANGE — Allows usage of the cursor keys without holding down the CTRL key Expansion Connector on rear. UPPER CASE LOCK — Keeps the computer in the upper case character set. HEX CON­ VERSION — Converts a hexadecimal number to a decimal number. DECIMAL CONVER­ Works with or without Expansion Memory. SION — Converts a decimal number to a hexadecimal number. MONITOR — Enter the Works with VIC Cassette Deck. machine language monitor. 12 Commands provide other neat features. in addition to the BASIC commands, the Monkey Wrench also contains a machine language monitor with 16 commands used to interact with the powerful features of the Also Available for 2001,4001, and 8032 6502 microprocessor.

More than just an Assembler/Editor! TELSTAR 64 Machine Language Monitor Now for the “64" \ Sophisticated Terminal Communications Cartridge for the 64. Cartridge ■v MAE *PFO* I0D 00D CP02 BELL 12:30:00 10:14:36 It's a A for (TELSTAR's Status Line) for the CBM 64 Professionally PET Don’t settle for less than the best! More than 20 commands allow you to access Designed APPLE • Upload/Download to/from disk or tape. the CBM 6 4 ’s Microprocessors Registers Software ATARI • Automatic File Translation. Development and Memory Contents. Commands include $16935 • Communicates in Industry Standard ASCII. System Only • Real-Time Clock plus Alarm Clock. assemble, disassemble, registers, memory, • Line editing capability allows correcting and resending long $59.95 command lines. transfer, compare, plus many more. • 9 Quick Read functions. A Someday every CBM 64 owner will need a • Menu-driven. NOW, The Best for Less! • Similar to our famous STCP Terminal package. monitor such as this. • Designed to improve Programmer Productivity • Works with Commodore Modems and supports auto-dialing. • S im ila r syn ta a n d co m m a n d s — N o need to relearn Cartridge and Manual —$24.95 peculiar syntaxes and commands when you go The best feature is the price — only $49.95 (Cartridge and Manual) from PET to APPLE to ATARI. • Coresident Assembler/Editor — No need to load the Editor then the Assembler then the Editor, etc. • Also includes Word Processor, Relocating Loader CBM 64 Debugger and much more ATARI, PET, AND CBM 64 A more sophisticated Machine Language Monitor/Oebugger. 20K • Join the ATUG User Group tor MAE formatted d is k s EPROM PROGRAMMER of object code makes this a powerful tool. Works as a symbolic • STILL NOT CONVINCED? Send for free spec sheet! debugger for the MAE assembler. Diskette and Manual — $49.95 Programs 2716 and 2532 u r EPROMs. Includes hardware TRAP 65 5% INCH SOR and software. PET = $75.00 TRAP 65 is a hardware device that plugs into your 6502’s socket Prevents SECTORED DISKETTES - ATARI and CBM 64 (both execution of unimplemented opcodes include sophisticated machine and provides capability to extend the Highest quality. We use them on machines' instruction set language monitor) = $119.95 For PET/APPLE/SYM our PETs, APPLEs, ATARIs, and other Reduced from $ 149 95 to $69 95 computers. $22.50/10 or $44.50120

Prowntef Printer - Excellent dot matrix print Parallel = $489 00 DC Hayes Smart Modem * $235 00 Rana Dish Drive - 375 EPROMS 2716 = $4.50 2532 = $7.50 Serial = $600 00 IEEE = $569 00 DC Hayes Micro Modem ii * $289 00 4 Drive Controller - 114 Over 40 Commodore Programs by Baker (on 4040) = $25.00

3239 Linda Dr. Winston-Salem. N.C. 27106 VISA* (919)924-2889 (919)748-8446 Send for free catalog!

No. 68 - January 1984 MICRO 13 fic on the network then you can start transmitting. This One of the most important network design considera­ method, called the Carrier Sense Multiple Access (CSMAJ tions is the network topology. The Cluster/one normally improves efficiency tremendously. CSMA does not com­ uses the bus topology. Due to the structure of the hardware pletely eliminate collisions, but it does cut them down almost any topology can be accommodated. Typically, tremendously. however, the bus topology is used because it is the least A collision can still occur if two stations happen to expensive and the software was designed with the bus look at the bus at the same time and find that the carrier is topology in mind. absent. Since data transmission takes place at somewhat A typical NESTAR consists of several user stations less than the speed of light there is a finite (although (clients) and one or more file server stations. A file server small) time delay between the time a station puts a carrier consists of a dedicated Apple computer with an 8" floppy signal on the network and it travels to all the stations. or 14" hard disk. All the other users on the net share the This time, although measure in microseconds, is quite resources provided by the file server. The disk drives sup­ long compared to the cycle time of a typical personal com­ ported by the Cluster/one provide 1.2 megabytes to four puter. For example, in a normal local networking system Gigabytes of disk storage using one or more drives on the this time interval, called the round-trip transmission time system. In addition to the file server, the dedicated Apple might be 30-60 microseconds. If two nodes attempt to also provides a clock/calendar server so that files sent to transmit data within one round trip transmission time disk can be "time-stamped” with the creation and update there will probably be a collision. Collisions in a CSMA time. The Cluster/one network interface cards were collision detection system are quite rare unless there is an designed using low-cost non-critical components in an enormous amount of traffic on the network. effort to keep the total package cost down. It would be in­ sane to require a $4,000 interface card on a computer An Introduction to the NESTAR CLUSTER ONE system that only costs $2,000 (don't laugh, Intel is selling ETHERNET interface cards for $4,000). The network in­ There are hundreds of different networking terface was optimized for low-cost and reliability at the ex­ arrangements, with new ones being introduced everyday. pense of speed. As mentioned previously, the bandwidth Therefore, in order to discuss some specific details a of the NESTAR system is quite low. specific system must be discussed. The remainder of this The Cluster/one interface card uses a passive interface. paper will concern itself with the NESTAR This gives you the ability to power up and power down CLUSTER/ONE MODEL A local networking system. stations on the net without adversely affecting the net­ The Cluster/one lets you connect up to 64 Apple II work. It also allows you to add new nodes to the system computers together in a local network. Each Apple is inter­ without having to power the system down or even halt faced to the system via a plug-in card that attaches to the network communications. In the event of a station failure, Apple's bus. This circuit card contains the necessary inter­ the network may continue to function providing the con­ face circuitry as well as IK of RAM and 2K of ROM. Nodes troller card itself isn’t damaged. In many topologies (like in the Cluster/one network are interconnected with the ring and star topologies) the failure of one or more sta­ 16-conductor cable similar to that used to attach disk tions can shut the whole network down. In the case of the drives to an Apple II. Cluster/one, the net will continue to function as long as at least two stations are functional. The Cluster/one transfers data at 240 KBPS, quite slow The NESTAR system using a 16-conductor cable to for a local network. Slow, however, is a relative term. 240 connect nodes in the net. This is the second unusual KBPS is roughly 1,000 times faster than the 300 BAUD feature to the Cluster/one system, most local networks lines used by the SOURCE and other telecommunications use a twisted pair or coax cable (two conductors). Of the systems. 240 KBPS is the maximum data rate sustainable 16-conductors, eight are used to transmit data in a byte- by software methods using a 1 Mhz 6502. By comparison serial fashion. By transmitting the data eight bits at a time Xerox's ETHERNET transfers data at 10 MBPS yet the cir­ the effective bandwidth is increased by eight. Although cuitry required to support ETHERNET is better than ten the system is transferring data at around 240 KBPS, the times the cost of the Cluster/one. In general, the 240 data is actually being transferred at a data rate of 30 KBPS KBPS is fast enough. To put it into concrete terms, you on any given data wire. This gives the 6502 roughly 34 can transfer 64K of data in less than four seconds using a cycles in order to perform the necessary checksum calcula­ 240 KBPS data transfer rate, that's much faster than a tions and store the data in memory or fetch the next byte floppy disk or printer. from memory. An additional line is used for the carrier signal. When active, someone is attempting to use the net­ The Structure of the NESTAR System work, when inactive the network is free and ready for transmission. Three of the remaining seven lines are used The NESTAR Cluster/one implements three of the for handshake using the standard data available/data lowest four levels defined by the ISO reference model of taken/ready to accept handshake protocols. The remain­ Open Systems Interconnection (OSI). These are the ing four lines are signal grounds. physical, data-link, and message/transport layers. The networking layer is usually not present in a local network, To transmit data over the network a controller card and is absent from the Cluster/one networking system. first checks to make sure everyone is listening and then it The remaining layers (session, presentation, and applica­ places the data on the bus. The data available line is set ac­ tion) are either supplied by the user or left tive and the destination node senses the data available line unimplemented. How the lower layers are implemented is and reads the data off of the bus. Once the data is read the determined by the configuration of the network and the data taken signal is set active and the source station may software purchased with the system. transmit additional data. Due to the structure of the net- 14 MICRO No. 68 - January 1984 work, it’s real easy to reverse the direction of the data lines tivates the carrier control line. On the active edge of the and acknowledge a data transmission. This fact is used by carrier control line hardware on each of the interface cards the NESTAR software to handle frame acknowledgements triggers an address comparator that compares the address as will soon be pointed out. on the Clusterbus to the source address of the particular The Cluster/one system is highly tolerable of card. If a match is made then the software in the destina­ transmission errors. First of all its low bandwidth allows tion interface will be activated in order to read the data inexpensive flat ribbon cable to be used instead of expen­ packet being transmitted. sive coaxial cable. Secondly, rather than use extra-cost After the destination address is placed on the bus and passive terminators in the system, the software was accepted by the source station, the type and length bytes designed to accept unterminated connections by providing are transmitted. Following the length byte, "length” bytes a software delay whenever data was placed on the bus. of data are transmitted over the network. During the This delay allowed all the ringing and echoes to die down transmission of the type, length, and data bytes the source before attempting to read the data on the bus. By running station is constantly computing a checksum. At the end of at such a slow data rate (30 KBPS/conductor) many of the the data transmission the 16-bit [two byte) checksum is problems associated with transmission lines is avoided. transmitted over the network. All data transmitted over the NESTAR CLUSTERBUS Once the checksum is transmitted the data packet (a possibly trademarked name for the 16-conductor inter­ transmission is complete-almost. The only thing remain­ connect) is transmitted in a purely digital form. No phase ing is to make sure that the data packet was properly encoding (like that used by ETHERNET) is performed, nor received. In order to check that the data packet was cor­ are the signals converted to some type of analog signal rectly sent the source station reverses its data lines and before transmission. This simplifies the data conversion becomes a receiver. The destination station transmits a process and likewise lowers the cost of the NESTAR system. single byte containing a ACK (acknowledgement) or NAK (negative acknowledgement) code. If a NAK code is re­ The NESTAR Data-Link Layer ceived then the source station retransmits the data frame beginning with the type field. If an ACK code is received The data-link layer in the Cluster/one is implemented then the source station frees the network bus by setting in hardware and firmware. The software required for the the carrier line inactive. data-link layer is contained in the 2K byte ROM on the NESTAR interface card. The data-link layer is responsible Data Reception: for transmitting data onto the net and accepting data from the net. The data link layer attaches a checksum to the end Receiving data is almost the converse operation to of a transmission and checks the checksum value at the transmission. Data reception begins when the destination end of a transmission. It is responsible for handling hardware recognizes its address on the bus. Once the retransmissions in the event the data wasn't transmitted destination hardware accepts the destination address from properly. The data link layer is also responsible for media- the bus it reads the type and length fields respectively. The access scheduling, addressing, flow control, and conges­ destination interface software begins calculating the tion control. To sum it up, the data link layer is respons­ checksum with the receipt of the type byte. Once the ible for providing error-free data transmissions between length byte is accepted the destination station reads that two stations on the network. many data bytes from the bus. After the data bytes are read two checksum bytes are read and the final checksum is Transmitting data: checked. If the checksum is ok then the destination sta­ tion transmits an ACK code to the source station. After the The data link layer is presented with a data packet from ACK is transmitted the destination station goes on about the transport layer. The data packet is of variable length its business. If the checksum didn't match, then a NAK and consists of 4n bytes where n is the number of bytes of code is transmitted to the source station and the destina­ data to transmit. The first byte transmitted is the source tion station waits for a retransmission. address. This is used to detect a collision on the Cluster- Congestion and flow control are also taken care of by bus. If two stations attempt to place their source addresses the data-link layer. Flow control (making sure the source on the bus at the same time at least one of the transmitting doesn't transmit data any faster than the destination can stations will recognize a collision since all source ad­ receive it) is handled automatically by the hardware. A dresses are different. If a collision does occur, all stations new byte isn't transmitted until the old one is taken. Flow recognizing the collision will jam the bus to make sure control isn't quite that simple however. For example, if a that everyone else sees the collision as well. The data-link destination station is powered down in the middle of a layer only checks for collisions during the first few bytes transmission the source station would be left hanging in a of transmission. Later collisions during the transmission locked-up state if a timeout mechanism was not provided of the data frame are highly unlikely since the carrier for. Checking for timeouts also comes under the heading signal is checked before attempting to transmit data. In of flow control since making sure that the destination sta­ the case some station erroneously transmits data a tion is accepting the data fast enough is just as important checksum error will occur and both packets will have to be as making sure the transmitting station doesn't transmit retransmitted. By not checking for collisions after each data too fast. This prevents stations from monopolizing transmitted byte, the data transmission rate is increased. the network if for some reason they decide to start accept­ After the cable has been allocated (by placing the ing data at only one byte per minute. source address on it) the source station places the destina­ Congestion control is possibly more important than tion address on the bus and, after a suitable delay, ac- flow control in the Cluster/one. Congestion control deals No. 68 - January 1984 MICRO 15 with preventing too many users from accessing the net­ packet transmission can be accomplished without any in­ work at any given time. Congestion control is handled in terruption on the bus. While this does provide a small in­ one of several methods. Since the Cluster/one uses a crease in performance (especially when the packets being CSMA collision detection the number of collisions is transmitted are small), What's more important is that the reduced tremendously. Whenever a large number of sta­ data frames can be exchanged without interruption. This tions start wanting to use the bus, however, the number of very important operation allows the construction of in­ collisions rises dramatically. While the bus is jammed and divisible operations like the "set and test'' instructions re­ garbage is being transmitted the average data transfer rate quired by operating systems. Thus, semaphores can be is sorely reduced. Worse than that, it's reduced at the time efficiently implemented in the NESTAR network. Care it's needed the most when there are a lot of stations re­ must be taken, however, to make sure that two processes questing network service. don't accidentally hog the bus. As was previously men­ When a collision is detected, the stations recognizing tioned, the data-link software checks certain time-out the collision back off of the network (i.e., attempt to set counters to make sure that the current process isn't the carrier line inactive) and jam the bus so that all sta­ hogging the Clusterbus. tions on the Clusterbus recognize the collision. Once the jamming is complete each station attempting to transmit Network Transparency waits a small, random amount of time and tries again. It should be obvious why a random amount of time is used, One of the most important features of a hardware if everyone waited the same amount of time a collision system like a network is that it must be totally transparent would be sure to re-occur. By waiting a random amount of to the user. A networking system would be absolutely time (instead of a fixed, but different, amount of time) all useless if you had to throw away all the software you've stations will be given equal priority on the bus. Another written and start over again to satisfy the network re­ responsibility of the congestion control is to make sure quirements. Such a horrible thought need not come true, that a pair of stations don't hog the bus. As you will soon due to the structure of the network itself, it is perfectly see it is possible to hold the carrier line active while possible to treat the network as though all the devices at­ several data frames are transmitted. The congestion con­ tached to the network were, in fact, attached to the in­ trol portion of the data-link layer is responsible for making dividual work station. This concept of virtual I/O makes sure no one hogs the bus for too long. the system completely transparent to the end user. He need not change the way he thinks about the file system or The Message/Transport Layer I/O. Almost all of the existing software will run un­ modified on the network. And the modifications required The next layer of protocol in the Cluster/one system is to adapt existing single-user applications for a multiple- the message/transport layer which manages the handling user environment are easy to make. of messages and conversations among stations. Due to the Some of the stations on the network (the servers) are fact that the length of a data packet is limited to 260 bytes designed to serve other stations (the clients). The printer (256 bytes of data, two bytes for type and length, and a server is a good example. This consists of an Apple II at­ two-byte checksum) data must be transmitted in a tached to a printer connected to the network. From the datagram fashion. Remember, in a virtual circuit opera­ user's point of view he need only type PR1 (from BASIC) or tion the source and destination stations connect just once OPEN(F, "PRINTER:” ); (from Pascal) in order to access and then all data is transmitted across the line until the the printer. Everything else is handled by the network and transmission is complete. In a datagram system data patches made to the resident operating system. The only packets, or datagrams, are transmitted a block at a time difference is that the printout comes from the printer with the receiving station making heads or tails of the server instead of the peripheral connected to slot one in received data. Since you can transmit a maximum of 256 the users Apple. bytes in a data frame on the Cluster/one the system is To the Apple user the most important feature the limited to datagram service. Since, in the Cluster/one, Cluster/one offers is that it forces very little change on datagrams are always transmitted in order and are never current work habits. The system is easily learned and the lost, a sort of "pseudo-virtual circuit" operation can be software enhances productivity through its combined achieved by transmitted datagrams back and forth be­ computational and communication facilities. In any cor­ tween two stations. porate structure communication is essential. A group of The simplest form of communication is a one-way, widely separated computer systems doesn't enhance com­ single-packet transmission (the datagram). Datagrams in munication throughout the corporation. Unfortunately, the NESTAR system are always acknowledged (as dis­ although a timeshare system provides the communica­ cussed in the section on the data-link layer). One-way tions capabilities response time is not very good. The communications, however, are only moderately useful. A Cluster/one network allows several microcomputer truly useful communication system requires a series of system to communicate with one another while maintain­ two-way communications. This type of virtual circuit ing the excellent response time microcomputer owners are used to and without obsoleting existing software. operation is easily accomplished by sending datagrams AMCftO back and forth between the two stations. Such action, of course, requires a certain amount of cooperation between Randall Hyde is vice president in charge of advanced research the two stations. and development at Lazer Microsystems, Inc., a Southern One of the more interesting features of the Cluster/one California software development firm. You may contact Mr. system revolves around the carrier line. By leaving this Hyde c/o Lazer Microsystems, Inc., 1791 Capital, Unit G. Corona, CA 91720. ______line active inbetween packet transmissions a multiple 16 MICRO No. 68 ■ January 198*. OPEN 2,2,0,CHR$(6J CMD 2 LIST (with line range if required) Downloading The program will now be sent over the modem as a full listing - not in BASIC on the tokenized form. When listing is finish­ ed, indicated by return of the screen cursor, wait about 15 seconds (or if the PET • VIC-20 • C64 modem has a transmit light, until this light stops flickering) for the serial port buffer to empty to the modem, then by type in: Kevin Stone PRINT2 and CLOSE 2 Andrew Cornwall This redirects normal output to the screen and closes the file.

PET Transmit

Enter the following lines in direct mode and hit return after each. The open statement assumes that the modem is Tired of typing in a listing from a friend Sending a Program device number 5, a common but not or having to travel to a friend's place to universal modem device number. Use copy a program you would like? If so, the correct number for your system. continue reading. This article explains The first step in transferring a pro­ OPEN 5,5 a simple method to send and receive gram is to coordinate the modems at CMD 5 BASIC programs (or machine language the sending and receiving ends. As LIST programs with a BASIC loader) over the usual for any communication, one When listing is finished and the screen telephone using a VIC, C-64 or PET. modem should be in the originate and cursor returns, enter: Equipment requirements are minimal, the other in the answer mode (for the consisting of the microcomputer and Bell 103 standard modem). Although it PRINT5 compatible modems connected to the does not seem critical, we prefer setting CLOSE 5 serial port of the VIC or C64 or the IEEE both modems at full duplex, if there is port of the PET. The program trans­ a duplex option. Transmission Time ferred is sent as a listing and automatic­ To send a program, load it into the ally converted by the dynamic transmitting computer's memory in The time needed to send a program is keyboard technique to tokenized (pro­ the usual way (either from tape or disk, governed by the modem baud rate. At gram) form by the receiving computer. or direct entry). Once telephone con­ 300 baud, transmission requires about After communication, the received tact has been established between 30 seconds per kilobyte of listing. Since program can be readily run, or saved to modems, the transmitting computer a program listing can be as much as cassette or disk. Programs can be lists the program to its modem device. twice as "long” as its tokenized pro­ received from any other system. The procedure to do this is slightly dif­ gram form, a 4K program in memory ferent for the VIC or C64 and PET, and can take up to four minutes to transmit each is described separately below. as a listing. Kevin Stone, VIC enthusiast, is a Note that if only a portion of a program former Equipment Technician for is to be transferred, the LIST command Receiving a Program CNCP Relecommunications, and is would contain the appropriate line currently a Technical Support number references (e.g. LIST 50-, LIST The receive method uses the dynamic Representative for Victor (Canada) Ltd. 50-100, etc.). keyboard append technique. While the Kevin resides in Halifax, Nova Scotia, routines for the VIC, C64 and PET are Canada. VIC or C64 Transmit somewhat different, the general idea is the same. In each case a program listing Andrew Cornwall, is a PET hobbiest In direct mode, type the following lines is taken in and appended line-by-line to with a wide range of interests in and hit return after each. Serial port the small receive program. When the microcomputer applications. He is parameters are set by CHR$(6J at 300 process is completed, the total program Secretary of the Nova Scotia baud, no parity with 8 data bits, full in memory consists of the receive Commodore Computer Users Group. duplex, 1 stop bit, and three line hand­ routine plus the communicated pro­ He resides in Dartmouth, Nova Scotia, shake. This will work with most gram. The receive routine can be Canada. modems, but some may require removed by using a toolkit delete com­ slightly different parameters. mand or simply by entering the line No. 68 - January 1984 MICRO numbers for the routine and hitting transmitted. When listing starts the mally instructed to END. In fact, return after each. action of dynamic keyboarding can be however, the routine continues as the As with any append process, the seen on the screen. The routine characters in the keyboard buffer are line numbers of the program being simultaneously receives and appends executed (simulating direct mode operation] which enters (appends) the transmitted should not overlap those in the incoming program listing. The buffer prevents data being lost during transmitted program line printed to the the receive routine. If the line numbers the dynamic keyboarding phase of the screen and activates the transfer line. do conflict, then simply renumber the receive/append process. LINE 6: Clears the screen in program. The GOTO’s must be fixed Although the input buffer takes preparation for the next received line. It along with the renumbering. So long as only 256 bytes, the actual serial port then executes a GOTO 3 to continue overlapping line numbers is not a prob­ buffer occupies 512 bytes. The addi­ the input. lem, we prefer using the receive routine tional 256 bytes is for a transmit buffer, with low line numbers, since it is which is not used when receiving. After Using Other Line Numbers technically faster (and easier to allowing for the buffers and receive delete!). routine itself, only about 2K of Since many programmers use the Upon being run, the receive routine memory is available on a basic VIC for convention of starting at LINE 10, the will ignore all transmitted characters the received program. The routine will above routine which resides from LINE work with any memory expansion 0 to LINE 6 should not normally be in (such as the word READY sent after the configuration however, without the way of the program being transfer­ CMD command) until a numeric modification to the routine. red. If there is a conflict, then simply character with a value 1 to 9 is en­ renumber the BASIC program, countered. The routine presumes that Receive Program Detail remembering to change the line the first numeric character is part of the numbers for the three GOTO initial of a listing, and LINE 0: OPENs a file to the serial commands in lines 1, 4 and 6. commences to take in the remainder of port. CHR$(6) sets port parameters to the listing after a valid number is 300 baud, no parity with 8 bits, full PET Receive Program received. duplex, 1 stop bit, and 3 line hand­ shake. These parameters are At some point in the routines The PET IEEE port does not have an in­ appropriate for most common put buffer. As a result, when dynamic keyboarding takes over to modems. The screen is then cleared. simultaneous receive and conversion is carry-out the listing-to-program append attempted, incoming characters are process. This is visible as each com­ LINE 1: GETs a character via the missed during dynamic keyboarding. municated program line appears on top modem and tests for receipt of first To overcome this problem, the receive of the screen, a transfer line (ending numeric character 1 through 9. and conversion operations are done with a GOTO statement) is printed LINE 2: PRINTs first received separately. First, the listing is received under it, next READY flashes once, the numeric character to screen. and POKE’d verbatum into a protected screen clears and the sequence starts 3: LINE GETs via the modem and area of memory above 2K. When receiv­ over. This will continue until the word PRINTs across the screen. End of pro­ ing is finished, sensed by a 64 milli­ READY, which is automatically sent at gram line is determined by receipt of a second time-out error, the listing is the end of the listing, is encountered. carriage return. automatically PEEK'd from memory At this point the process will stop with LINE 4 : PRINTs dynamic and dynamic keyboard appending a harmless OUT OF DATA ERROR. keyboard transfer line to the screen. commences. POKE 152,1 tells the VIC/C64 that one Overall, the PET routine is slower VIC and C64 RECEIVE Ftogiams file remains open; GOTO 6 instructs than the VIC/C64 version, since it the routine to restart at LINE 6 when takes about an extra second per line to These routines take advantage of the the transfer line is executed in perform the separate appending pro­ serial port 256 byte input buffer, which simulated direct mode. cess. Another disadvantage is that in­ makes the timing of the receive and ap­ LINE 5: Fills keyboard buffer itial storage of the full listing requires pend processes less critical, although locations 631 to 634 with a home as much as twice the memory as its on average the routine keeps up with cursor and three carriage returns,- POKE counterpart in tokenized program the character input rate at 300 baud. 198,4 tells the VTC/C64 that the form. Very large programs, however, Upon being run the routine clears the keyboard buffer contains four can be communicated in stages, saved, screen and waits for the listing to be characters. After this the routine is for- and appended together afterwards. When run, the PET routine clears the screen and prints the message "READY TO RECEIVE” . When a VIC listing is being received, the message "RECEIVING” is printed. When the 0 OPEN 2,2,0,CHR*(6):PRINT "E"; receiving is completed, i.e. a READY is 1 GET A*! IF VAL(A*>“0 THEN GOTO 1 received, the dynamic keyboarding 2 PRINT A*; takes over. 3 GET #2,A$:PR I NT At;: IF A$< >CHR$(13) THEN 3 PET Receive Program Details 4 PRINTi PRINT "POKE 152,1:GOTO 6" LINE 0: POKE 53,8 sets top of 5 POKE 6 31,19: F’ 0 K E 632,13:P0KE 633, 13: BASIC memory at 2K to protect higher POKE 634 ,13:POKE 19S,4:END memory for character storage. It then b PRINT "2"}!GOTO 3 OPENs a file for device number 5, which is presumed to be the modem 18 MICRO No. 68 - January 1984 i r t

* # ? ? % £ £ » * \ce VV 5'.Ae'.»\,o' ^ v V 5 « & 9V r \aP®' » *»<<* ' j Av\>'O'6 -/^\Nlto ' \0'\o' ae9vep9OJOTo(0fo^ r><^ e© ,vS^ ^ V 0, Vs'. e ^ S ^ f e * V* e> ^ V e *<**• s^a ~ * * 4 ? S ? S L ,\o' .w®'' - - ,ev, , -^ e^ e>°^e <**&* && .a ^ * , *&{*** ■&’ \T( o*tfF : c.o' V’ For CBM-64 o^- s'°>* * < " 20 pages of the \P* newest and biggest Skyles catalog, hot off the press. We know you’ll < % y want this page, in From Skyles its full 7'A x 9 Electric Works, the splendor, and sending you your oldest and largest another 19 pages very own copy professional of peripherals, within the last few specialists in the software and books weeks, call us at business. that will make your (800) 227-9998 CBM-64 or VIC (unless you live computer even in California, in nicer to live with. (t> Skyles Electric Works which case call W 231-E S. Whisman Road So, if we missed (415 ) 965 -1735. Mountain View, California 9 4 0 4 1 PET

POKE 53,8:OPEN 5,5s J = 2048: PRINT "uREADY TQ RECEIVE"«GOTO 3 GET#5,A*:IF S T O O THEN GOTO 5 J*J +1:POKE J ,ASC(A$):GOTO 1 & GET#5,A»: IF S T O O OR VAL(A*> =0 THEN GOTO 3 PRINT "RECEI VINO":GOTO 2 POKE 53,128:K=J:J = 2048:CLOSE 5 More speed, more memory PRINT "E"; workspace from the people J-J + i: BX-PEEK (J > i PRINT CHRKBX) i : who lifted the 64K limit. IF BX<>13 AND K>J THEN GOTO 7 PRINT:PRINT "K^'K":J="J":GOTO 6" In 1981, we introduced our famous POKE 623 ,19:POKE 624,13:POKE 625,13: Saturn RAM card to boost the Apples POKE 626,13:POKE 15B,4:END memory by 32K. Now, there are 64K and 128K versions for added power. Increased RAM lets you run bigger programs, and our VisiCalc® expansion device number. Variable J is initialized the routine continues as the characters software provides a dramatic expansion to the 2K boundary. The screen is in the keyboard buffer are executed, of workspace memory Also, the extra cleared and the message "READY TO simulating direct mode operation to memory can work as a pseudo disk for RECEIVE” is printed. enter (append) the received program instant access. (No more 20-second line printed to the screen and to searches!) The Saturn RAM board is a LINE 1: GETs a character from activate the transfer line. super aid for advanced word process­ the modem and tests the status variable ing, data base management, spread ST for an error. If an error occurs, it is sheet, and accounting applications. assumed to be a time-out error (ST = 2], Reliability And perfect with PASCAL, CP/M®, and branches to the dynamic keyboard Even though this method for transfer­ and BASIC. section of the program, starting at LINE 5. ring programs does not use any error detection, such as parity checking or LINE 2: Increments variable J and checksum, we found it to be very POKEs the PET-ASCH value of the reliable. Phone line glitches can cause latest character received into memory difficulties, but these were rare during location J. Branches back to LINE 1 to Use our easily installed cards in our development and testing of this combination—and get a whopping get another character. technique. On one occasion someone 220K of VisiCalc workspace on the LINE 3: Tests for receipt of first dialed an extension telephone while a Apple He. Or sensational enhancements numeric character to suppress READY program was being transmitted. On on Apple II, II + , Franklin, Basis and and other non-BASIC lines. another, the phone line mysteriously most Apple compatibles. We even have software that increases your Apple’s LINE 4: PRINTs message went dead for several seconds. Normal memory in BASIC programming up to "RECEIVING'', after the first numeric phone line background noise and cross­ 4 megabytes! character is received. talk did not seem to cause any pro­ This kind of performance requires LINE 5: Restores the normal top blems. In our "formal'' testing of this sophisticated bank switching and sup­ of BASIC memory. Defines variable K procedure, an 8K listing was com­ porting software that we originated, as last value of J, and redefines J as 2K. municated ten times over the period of proved, and improved. Buy from CLOSEs file number 5. several days. Each time the program the leader! LINE 6: Clear the screen. was transferred successfully. Although Let us help you expand your Apples our experience was on a local call basis, LINE 7: PEEKs listing from productivity For information on our long distance telephone program memory and PRINTs characters across RAM boards and other Titan microcom­ communication should be feasible. the screen. End of program line deter­ puter products, see your computer If a problems occurs when a VIC or mined by carriage return (= 13). dealer or contact: Titan Technologies, C64 is receiving a program, the routine Inc., P.O. Box 8050, Ann Arbor, LINE 8 PRINTs dynamic can be rerun to accept that portion of MI 48107; Telephone (313) 973-8422. keyboard transfer line to the screen. the program listing which was not Sales and Marketing by The MARKETING The transfer line carries over the values received correctly. If a problem occurs RESOURCE GROUP, Costa Mesa, CA. of K and J and set the program to restart while a PET is receiving, the correction at LINE 6. procedure is more difficult. That por­ LINE 9: Fills keyboard buffer tion of the program received in good locations 623 to 626 with a 'home condition can be saved and the routine cursor' and three 'carriage returns'; the rerun to take in the listing of the re­ TECHNOLOGIES,Titan INC. FORMERLY SATURN SYSTEMS OF MICHIGAN POKE 158,4 sets a variable to tell the mainder. Afterwards, both parts can be PET that the keyboard buffer contains appended together. It is probably more Apple is a registered trademark of Apple Computer, Inc. VisiCalc is a registered trademark of VisiCorp, Inc. four characters. After this, the routine convenient to simply re-do the entire CP/M is a registered trademark of Digital Research, Inc. is formally instructed to END. In fact, procedure from the beginning. 20 MICRO No. 68 - January 1984 V ic t o r y S o f t w a r e WOULD LIKE TO WISH OUR CUSTOMERS . A « P « P « Y HOLIDAYS AND THANK THEM FOR THEIR PATRONAGE THROUGHOUT THE YEAR.

r TH E • EARTH • WARRIOR • SERIES^

METAMORPHOSIS $24.95*

You stumbled into the nest of the Cyglorx and IpFEATURING program s find yourself fighting off robot tanks guarding V FOR THE VIC-20 AND the Cyglorx eggs. You think you have everything THE COMMODORE 64. under control and then the eggs start hatching. Available for COMMODORE 64 and VIC-20. BOUNTY HUNTER $24.95* Available on TAPE or DISK Played with JOY­ An adventure in the Old West. Journey back with STICK us into the days of Jessie James and Billy the Kid where the only form of justice was a loaded revolver and a hangman's noose. In this full-length text adventure, you play the role of Bounty Hunter, battling against ruthless outlaws, hostile Indians, wild animals and the elements of the wilderness CREATOR'S REVENGE $24.95* with only your wits and your six gun. Average The creator assembled a massive army of robots and insects to take solving time: 20-30 hours. If you love adventures, revenge on the earth. Destroy insects, get treasures, and get the neutron this one is a real treat. bomb deactivator. Battle robots and destroy the neutron bomb before it Available for COMMODORE 64 and the VIC-20 annihilates your city. Miss and you must face the mutants. Features 4 (with 8K or 16K expander). Available on TAPE or different screens. DISK. Played with JOYSTICK. Available for COMMODORE 64. Available on TAPE or DISK. Played with JOYSTICK. $24.95" Climb ladders, avoid the barrels the crazy ape is LABYRINTH OF THE CREATOR $24.95* J rolling at you, and rescue the damsel. Commodore 64 version features 4 different screens! Journey into the most complex and dangerous Available for COMMODORE 64 and VIC-20. fortress ever built by the creator. You will en­ Available on TAPE or DISK. Played with JOY­ counter deadly robots, skulls, lakes, avalanches, STICK. false creators, and a creature who roams 256 rooms relentlessly pursuing you. GRAVE ROBBERS $19.95* Available for COMMODORE 64. Available on Introducing the first GRAPHIC ADVENTURE TAPE or DISK. Played with JOYSTICK. ever available for the VIC-20 or COMMODORE 64! With realistic audio-visual effects, you explore an ILLUSTRATIONS: ELIZABETH HAUCK old deserted graveyard and actually see the perils $3.00 additional for disk. that lie beyond. Available for COMMODORE 64 and VIC-20. Check your LOCAL DEALER or order directly. Available on TAPE or DISK. Played with KEY­ ORDERING: We accept personal checks, money orders, VISA, and MasterCard. BOARD. Charge orders please include number and expiration date. OVERSEAS ORDER: Please use charge, or have check payable through a U.S. 7" bank. CHOMPER MAN $24.95" CANADIAN CUSTOMERS: If you wish to write a check drawn through a Don't let the bullies catch you as you gobble the Canadian bank; please multiply the total order by 1.25 for proper conversion. Add $1.50 postage and handling per order. PA residents please add 6% sales tax. goodies! This program has 8 screens and still fits in the standard memory. VICTORY SOFTWARE INC. Available for COMMODORE 64 and VIC-20. 7 Valley Brook Road Available on TAPE or DISK. Played with JOY- Paoli, Pennsylvania 19301 STICK or KEYBOARD. (215) 296-3787 DOSPLUS For C-64 with a difference! Unexcelled communications power and compatibility, especially for professionals and serious computer users. Look us over; SuperTerm isn't just "another" terminal program. Like our famous Terminal-40, It's the one others will be ju d g ed by. By Michael Keryan • EMULATION—Most popular terminal protocols: cursor addressing, clear, home, etc. • EDITING—Full-screen editing of Receive Buffer • UP/DOWNLOAD FORMATS—CBM, Xon-Xoff, ACK-NAK, CompuServe, etc. • FLEXIBILITY—Select baud, duplex, parity, stopbits, etc. Even work off-line, then upload to system! • DISPLAY MODES- 4 0 column; 80/132 with side-scrolling • FUNCTION KEYS—8 standard, 52 user-defined • BUFFERS—Receive, Transmit, Program, and Screen • PRINTING—Continuous printing with Smart ASCII interface and parallel printer; buffered printing otherwise • DISK SUPPORT—Directory, Copy, Rename, Scratch DOSPLUS — adds new utility Options are selected by menus and EXEC file. Software functions to a Commodore 64 on disk with special cartridge module. Compatible with by use of the RESTORE key. CBM and HES Automodems; select ORIG/ANS mode, manual or autodial.

Write for the full story on SupeiTerm; or. If you already want that difference, order todayl Requires: Commodore 64 or VIC-20, disk drive or Datasette, and compatible modem. VIC version requires 16K memory expansion. Please specify VIC or 64 when ordering. his article shows how to use the RESTORE key (which generates Ta Non-Maskable Interrupt) to ac­ Smart ASCII Plus . . . S5995 cess up to 32 new utility routines. Seven new functions are implemented, The only Interface which supports streaming —sending including versatile printer support, characters simultaneously to the screen and printer — with easy color changes, and a two-key SuperTerm. append function that will allow you to Also great for use w ith your own programs or most application programs, i.e., word processors. Print modes: combine two or more BASIC programs. CBM Graphics (w/many dot-addr printers J, TRANSLATE, The framework is provided to allow 25 DaisyTRANSLATE, CBM/True ASCII, and PIPELINE. more functions to be added. Complete w ith printer cable and manual. On disk or cassette. The Commodore 64 is definitely

VIC 20 and Commodore 64 are trademarks of Commodore Electronics, Ltd. one of the best values in home com­ puter hardware. It is roughly com­ parable to IBM's PCjr at about one- fourth the cost. Why is it so inexpen­ MIDWEST sive? For one thing, Commodore de­ H i MICRO me cided to use the same BASIC-in-ROM that was used in the VIC-20 and older PET machines. The KERNAL ROM was updated for the 64 but no MICRO No. 68 - January 1984 new BASIC commands were added to Listing 1 support the 64's outstanding sound, bit-mapped graphics, sprites, etc. To DOSPLUS BY M. J. KERYAN use these features you are left with a myriad of PEEKs and POKEs that in no DUPLICATES NMI ROUTINE AT way can be described as user-friendly. *FE43 IN ROM, CHECKS FOR For example, to change the background KEY PRESS AFTER RESTORE KEY screen color to black, you must type: POKE 53 281,0. To get a printed listing ; ROM UTILITIESl of a program, you type: OPEN 4,4: IN IT 1 » IE518 CMD 4: LIST, then afterwards: PRINT INIT2 ■ *FD15 INIT3 » *FDA3 #4: CLOSE 4. An almost unbelievably STPFL - *F6BC complex series of POKES is necessary CONTNM ■ *FE72 to program sprites and music. STOP ■ *FFE1 A number of third-party software GETIN - *FFE4 packages have attempted to solve some of these problems by adding new com­ CIAIRQ IDDOD) FOR RS/232 CHECK mands to BASIC, e.g. Ultra-BASIC 64. TABL ICBCO; LOW BYTE POINTER However, there is always some TABH ICBEO; HI BYTE POINTER desirable function missing. For exam­ \ ple, Ultra-BASIC 64 provides graphic ORIGIN ■ *C900 » - ORIGIN screen dumps to the printer, but has no normal [alphanumeric) printer dump. C900 48 NEWNMI PHA SAVE REGISTERS Quite a few single-purpose machine C901 8A TXA language routines have appeared in C902 48 PHA magazines such as this recently which C903 98 TYA provide desirable add-on features. In­ C904 48 PHA variably, these routines are placed C905 A9 7F LDA #*7F either in the cassette buffer or at C907 8D 0D DD STA CIAIRQ IRQ FLAG FOR $C000, and require the SYS function C90A AC 0D DD LDY CIAIRQ \ RS/232 C90D 30 35 to operate. BMI RS232 C90F 20 BC F6 JSR STPFL FLAG SET The most convenient way to access C912 20 El FF JSR STOP STOP KEY? handy functions involves assigning cer­ C 915 DO OF BNE N0TSTP NO, BRANCH tain keys or sequence of keys to the C917 20 15 FD STOPKY JSR INIT2 DUPLICATE NMI new functions. The DOS WEDGE (pro­ C 91A 20 A3 FD JSR INIT3 ROUTINES vided on the demo disk that comes C91D 20 18 E5 JSR INIT1 with Commodore's 1541 disk drive) C920 20 47 C9 JSR INITNM NEW INITIAL uses this technique. For example, in­ C923 6C 02 A0 JMP (♦A002) ; WARM START stead of typing LOAD"$”,8 then LIST, C926 58 N0TSTP CLI ENABLE KEYBD you type only $ to get a directory C927 20 E4 FF KEYLP JSR GETIN GET A KEY C92A C9 00 listing. In general, however, assign­ CMP **00 WAIT/PRESSED C92C F0 F9 BEQ KEYLP ment of special keys makes your pro­ C92E 29 IF AND #*1F MASK FOR 32 grams run slower since the absence or C930 AA TAX UNIQUE KEYS presence of these key sequences must C931 BD CO CB LDA TABL, X GET L0 BYTE continually be checked. C934 8D 3E C9 STA * + 10 SET UP JSR C937 BD E0 CB LDA TABH, X HI BYTE The Powerful RESTORE Key C93A 8D 3F C9 STA # + 5 C9.3D 20 FFFF JSR *FFFF MODIFIED ADDR This article provides a framework to C940 78 SEI IRQ DISABLED add a series of extensions for the Com­ C941 68 PLA GET BACK Y modore 64 using the RESTORE key, C942 48 PHA C943 A8 TAY followed by another key to define the C944 4C 72 FE RS232 JMP CONTNM function. Normally when you hit the RESTORE key, you use it in conjunc­ INITIALIZATION ROUTINE FOR NMI tion with the RUN/STOP key, most likely to regain control of your com­ NMINV $0318 ; KERNAL NMI VEC puter when a program has gone into IBSOUT *0326 i KERNAL CHR0UT never-never land. However, hitting BRDCLR *D020 only RESTORE appears to have no ef­ BCKCL1 *D021 fect — a virtually worthless key. COLOR *0286 CURSOR COLOR Actually, RESTORE is probably the COLCH *00 CHARS « BLACK COLBK *0C BACKG = GREY most powerful key on the keyboard, and is ideally suited to controlling the C947 A9 00 INITNM LDA #NEWNM I ; VECTOR TO puter is doing at the time, it will stop C94E SD 19 03 STA NMINV+1 i NEW ROUTINE and jump to a special machine language C 9 51 A9 OC LDA IC0LBK program that determines why the inter­ C953 8D 20 DO STA BRDCLR ; EDGE COLOR rupt was requested, and takes ap­ C956 8D 21 DO STA BCKCL1 ; BACKGROUND propriate action. C959 A9 00 LDA IC0LCH The Commodore 64 NMI program C95B 8D 86 02 STA COLOR i CHARACTERS basically does two things: C95E A9 71 LDA #NEW0UT ; NEW OUTPUT came from the RS/232 port or from C 9 6 5 8D 27 03 STA IBS0UT +1 ; VECTOR the RESTORE key. If the RS/232 C968 EA NOP port generated it, the data transfer C969 EA NOP ■ FUTURE is handled. C96A EA NOP j• EXPANSION C96B A9 00 LDA #♦00 : PRINTER OFF 2. If the RESTORE key generated the C96D 8D BB C9 STA PFLAG interrupt, the NMI program checks C970 60 RTS to see if the STOP key was also i ■ pressed. If so, it jumps to initializa­ NEW OUTPUT ROUTINE tion routines and then to a BASIC VECTORS OUTPUT TO PRINTER IF warmstart. If the STOP key wasn't PFLAG IS SET IN ADDITION TO pressed, the program has no CRT — DISK ACCESS WILL TURN noticeable effect. OFF PRINTER ACCESS So when you press the RESTORE key alone, nothing appears to happen, CLRCHN ♦ FFCC ;KERNAL ROUTINES OLDOUT ♦ F1CA but actually the NMI program was ex­ CLOSE ♦ FFC3 ecuted. Commodore makes it very easy SETLFS ♦ FFBA to replace their NMI program with one SETNAM ♦ FFBD of your own, since the NMI routine OPEN ♦ FFCO vectors through RAM locations CHKOUT ♦ FFC9 $0318-0319. Place the locations of your new NMI program in $0318-0319 and VICMCR = ♦ DOIS ; VIC MEM CTRL REG you've gained complete control of the FA <= ♦ BA ; CURRENT DEVICE « computer through the RESTORE key. PFILE = *7E )LOGICAL PTR FILE

C971 48 NEWOUT PHA Using the Program C972 AD BB C9 LDA PFLAG ;CHECK FLAG TO C975 C9 04 CMP #♦04 ;SEE IF PTR IS An assembler program |Listing 1) il­ C977 DO 3D BNE RTNP iACTIVE lustrates how the RESTORE key can be C979 A5 BA LDA FA ; IF DEVICE IS used to add 32 new functions to the C97B C9 08 CMP #♦08 ;IS DISK THEN Commodore 64. To gain access to these C97D F0 37 BEQ RTNP ;DISABLE PRINTER new routines, press the RESTORE key C97F 68 PLA followed by a second key that identifies C980 8D BA C9 STA PTEMP the function. Seven new routines are C983 48 PHA ;SAVE REGISTERS provided in the Listing; twenty-five C984 8A TX A more are possible. The seven functions C9S5 48 PHA are as follows: C986 98 TYA C987 48 PHA C980 A9 7E LDA #PFILE A to Append programs C98A 20 C3 FF JSR CLOSE ;FIRST CLOSE FILE C98D 20 CA C9 JSR PCASE }SET U/L CASE B to change the Background color C990 A9 7E LDA#PFILE C to change the Character color C992 20 BA FF JSR SETLFS E to change the Edge color C995 A9 00 LDA #♦00 D to Dump the current screen to C997 20 BD FF JSR SETNAM the printer C99A 20 CO FF JSR OPEN P to turn on the Printer C99D B0 0B BCS PCLOSE }CLOSE ON ERROR O to turn Off the printer. C99F A2 7E LDX #PFILE C9A1 20 C9 FF JSR CHKOUT C9A4 AD BA C9 LDA PTEMP Any other key pressed will return the C9A7 20 CA FI JSR OLDOUT ;CHAR TO PRINTER computer to normal execution. Using C9AA A9 7E PCLOSE LDA #PFILE the RUN/STOP and RESTORE keys C9AC 20 C3 FF JSR CLOSE C9AF 20 CC FF JSR CLRCHN ;RESET TO CRT together function as normally, except C9B2 68 PLA j RESTORE REGS vectors are restored to the new routines. Since this interrupt technique in- 24 MICRO No. 68 ■ January 1984 volves no character checking during normal program execution, it won't C9B3 A8 TAY slow down your programs. An unex­ C9B4 68 PLA pected benefit of using the RESTORE C985 AA TAX key is that it also acts as a PAUSE or C9B6 68 RTNP PLA NO-SCROLL key. When a program C9B? 4C CA FI JMP OLDOUT ;RTS THRU OLDOUT listing or data is scrolling by too fast to C9BA OD PTEMP .BYTE I0D read, just hit RESTORE — this will C9BB 00 PFLAG .BYTE 100 • freeze everything until you hit another i key. To resume the scroll, press TURN PRINTER 0N/0FF RETURN. Also, the RESTORE func­ 1 C9BC A9 04 PRNT0N LDA #*04 ;ACTIVATE BY P tions can be stacked. Suppose you just C9BE 85 BA STA FA stopped a scroll by using RESTORE, C9C0 8D BB C9 STA PFLAG and you would like a printout of the C9C3 60 RTS current screen. Just hit RESTORE a C9C4 A9 00 PRNT0F LDA #*00 ;ACTIVATE BY 0 second time, followed by D to generate C9C6 8D BB C9 STA PFLAG the screen copy. Then hit RETURN to C9C9 60 RTS continue scrolling. This is an obvious advantage over using STOP, etc. DETERMINE IF SCREEN IS UPPER OR LOWER CASE--SET X The series of machine language AND Y routines reside in upper memory, pro­ C9CA AD 18 DO 1’CASE LDA VICMCR tected from BASIC, Reset, etc., at loca­ C9CD 29 02 AND #*02 tions $C800-CBFF. This is right next to C9CF F0 04 BEQ UPPER the DOS WEDGE 5.1 utility program C9D1 AO 07 LDY #*07 ($CC00-CFFF). Therefore the new C9D3 DO 02 BNE PDEV routines (called DOSPLUS) can be C9D5 AO 00 UPPER LDY #*00 ;Y IS SEC ADDR loaded and initialized along with the C9D7 A2 04 PDEV LDX #*04 :X IS DEVICE # WEDGE. Each routine is now described C9D9 60 RTS briefly. DUMP SCREEN TO PRINTER Non-Maskable Interrupt Routine I)PNTR = *FD ;POINTER ROWS = *19 ;25 ROWS ON CRT The new NMI routine duplicates CQLMNS = *28 ;40 COLUMNS many of the functions of the original DPFILE » *7D :LOGICAL FILE # NMI routine located in ROM at $FE43. The CPU registers are saved and a C9DA 20 CA C9 PDUMP JSR PCASE check is made for an RS/232 interrupt. C9DD A9 7D LDA #DPF ILE If the NMI request came from the C9DF 20 BA FF JSR SETLFS RESTORE key, a check of the STOP C9E2 A9 00 LDA #*00 C9E4 20 BD FF JSR SETNAM key is made. If STOP was pressed at the C9E7 20 CO FF JSR OPEN same time, then three ROM initializa­ C9EA B0 7A BCS DPCL0S ;CLOSE ON ERROR tion routines are run. A new initializa­ C9EC A2 7D LDX #DPFILE tion routine, INITNM, is then run C9EE 20 C9 FF JSR CHKOUT (more on this later), followed by a C9F1 A9 00 LDA #*00 warm start to BASIC. C9F3 85 FD STA DPNTR Assuming you had only pressed the C9F5 A9 04 LDA #*04 RESTORE key to access the new func­ C9F7 85 FE STA DPNTR+1 tions, the initializations and warm C9F9 20 89 CA JSR PCR ;CAR RET start are bypassed. The interrupt flag C9FC 20 7E CA JSR LINE i LINE C9FF 20 97 CA JSR ;BLANK LINE is cleared to allow keyboard entry. LINBLK CA02 A2 19 LDX #R0WS Then the program waits for a key to be CA04 20 El FF R0L00P JSR STOP ;IF STOP KEY, pressed. The upper 3 bits of the ASCII CA07 F0 5D BEQ DPCL0S ;THEN STOP PRINT value of the key are masked to zeroes, CA09 20 75 CA JSR SPC16 ;MARGIN so only 32 unique keys are possible. CAOC 20 91 CA JSR B0XSYM ;SYMBOL Based on the value obtained above, CAOF 20 8D CA JSR PSPACE ;SPACE pointers for the corresponding routines CA 1 2 AO 00 LDY #*00 are set up into a JSR statement, then CA 14 B1 FD C0L00P LDA (DPNTR) ,Y ;GET CRT CHAR the JSR is taken, in which the new C A16 C9 22 CMP #*22 ;IF QUOTE, function is executed. After the CA 18 DO 02 BNE SHFTQT )CHANGE TO subroutine is run, program flow returns CA 1A A9 27 LDA #*27 jAPOSTROPHE CA1C C9 A2 SHFTQT CMP #*A2 ; IF SHIFT QUOTE, to the old NMI routine in ROM which CA 1E DO 02 BNE N0TQT :CHANGE TO restores the registers and executes an CA20 A9 A7 LDA #*A7 5 SHIFT RTI [return from interrupt) and normal CA22 8D BA C9 N0TQT STA PTEMP program execution resumes. No. 68 ■ January 1984 MICRO 25 NMI Initialization Routine As mentioned above, a combination CA25 29 80 AND #180 ;IF REVERSE CHAR RUN/STOP and RESTORE restores the CA2? 8D AF CA STA REVFLG THEN SEND REV peripheral chips, colors, etc. back to CA2A FO 05 BEQ DECODE CODE TO PRINTER their default values. This means we CA2C A9 12 LDA #♦12 would lose control of the NMI routine CA2E 20 CA FI JSR OLDOUT BA because the KERNAL ROM addresses CA31 AD C9 DECODE LDA PTEMP CHANGE SCREEN CA34 29 3 F AND are reinstated in the indirect vectors in #*3F CODE TO ASCII CA36 OE BA C9 ASL PTEMP CODE FOR RAM. The new initialization routine CA39 2C BA C9 BIT PTEMP iPRINTER therefore places our addresses back into CA3C 10 02 BPL # + 4 the vectors for the NMI loutine and the CA3E 09 80 ORA #♦80 OUTPUT routine [used in the printer CA40 70 02 BVS utilities]. CA42 09 40 ORA #♦40 The initialization routine also CA44 20 CA FI JSR OLDOUT CHAR TO PRINTER allows us to change the colors to new CA47 AD AF CA LDA REVFLG IF REVERSE TURN default values, in this case to black CA4A F0 05 BEQ CHRSNT OFF REV MODE characters on a grey background. If you CA4C A0 92 LDA #♦92 CA4E 20 desire different default colors, change CA FI JSR OLDOUT CA51 C8 CHRSNT I NY « NEXT COLUMN them here. | CA52 CO 28 CP Y #C0LMNS Lastly, the printer flag is reset to CA54 DO BE BNE C0L00P disable the printer, if it was on before CA56 20 A5 CA JSR LNEND END OF LINE the intialization was run. CA59 98 TYA CA5A 18 CLC New OUTPUT Routine CASE) 65 FD ADC DPNTR CA5D 85 FD STA DPNTR NEWOUT allows you to turn on the CA5F 90 02 BCC * + 4 printer (device #4] so that all output to C A M E6 FE INC DPNTR+1 {REVISE POINTER the screen can go to both the screen and CA63 CA DEX the printer. When this routine is ac­ CA64 CO 9E BNE R0L00P tivated, to get a program listing, just CA66 20 97 CA DPCLOS JSR LINBLK DONE WITH CRT CA69 20 7E CA type LIST. JSR LINE CA6C 20 CC FF JSR CLRCHN RESET TO CRT The NEWOUT routine first checks CA6F A9 7D LDA #DPFILE to see if the printer flag is off. Then it CA71 20 C3 FF JSR CLOSE checks to see if the active device is #8. CA74 60 RTS « DONE WITH DUMP Disk access is set up to kill the printer output to avoid possible contention prob­ jSUBROUTINES TO SUPPORT DUMP lems on the serial bus. The program then checks to see if CA75 A0 to SPC16 LDY #♦10 16 BLANKS the screen is in upper/graphics or C A 7 7 20 8D CA SP16LP JSR PSPACE lower/upper case. A file is then opened CA7A 88 DEY CA7B DO FA BNE to device #4 with a secondary address SP16LP CA7D 60 RTS of 0 or 7, depending on the case. The character is sent to the printer, CA7E 20 75 CA LINE JSR SPC16 iLINE OF SYMBOLS the file is closed, then the character is CAS 1 AO 2C LDY #*2C sent to the screen. Note that the printer CA83 20 91 CA LINELP JSR B0XSYM file is opened and closed for each CA06 88 DEY character. The printer output mode is CA87 DO FA BNE LINELP turned on by RESTORE, P, and turned CA89 A9 0D PCR LDA #♦00 ;CARR RETURN off by RESTORE, O. CA8B DO 06 BNE 0UTCHR CA8D A9 20 PSPACE LDA #♦20 iSPACE Dump Screen to Printer CflBF DO 02 BNE 0UTCHR CA91 A9 2E B0XSYM LDA # m iPERIOD CA93 20 CA FI 0UTCHR JSR OLDOUT In addition to the printer on/off CA96 60 RTS functions, a screen dump routine is provided. This is accessed by the CA97 20 75 CA LINBLK JSR SPC16 sBLANK LINE RESTORE key followed by a D. The en­ CA9A 20 91 CA JSR B0XSYM tire 40 x 25 screen is copied character CA9D A0 29 LDY #♦29 by character to the printer. The printed CA9F 20 8D CA LBLKLP JSR PSPACE output is indented to center the text on CAA2 88 DEY the paper and a dotted outline is drawn CAA3 DO FA BNELBLKLP around the 40 x 25 matrix. As before, CAA5 20 8D CA LNEND JSR PSPACE CAA8 20 91 CA JSR B0XSYM the printed output is made the same CAAB 20 89 CA JSR PCR case as the screen. CAAE 60 RTS The PDUMP routine opens and 26 MICRO No. 68 - January 1984 closes a file similarly to the OUTPUT routine. A big difference is the transfor­ CAAF 00 REVFLG .BYTE *00 ;ZERO IF NOT REV mation from screen code to ASCII code. • Commodore does some very strange ;CHANGE SCREEN COLORS things to the printer and screen when a J 3 ENTRY POINTS FOR EDGE, BACKGROUND, reverse character follows a quotation ;AND CHARACTERS--ALL 3 CAN BE mark. It is very difficult to get an exact ;CHANGED WITH ONE ENTRY screen dump when this occurs. A is replaced by an CABO A2 00 EDGE LDX #*00 ;EDGE ENTRY CAB2 F0 02 BEQ CHGCOL apostrophe on printed output, to allow CAB4 A2 01 BACKGD LDX #*01 jBACKG ENTRY reverse characters to be printed (if your CAB6 FE 20 DO CHGCOL INC BRDCLR,X ;CHANGE COLOR printer or printer/interface will handle CAB9 20 E4 FF WAITCL JSR GETIN ;GET KEY them]. Examples of screen dumps are CABC C9 00 CMP #*00 shown in Figure 1. In this case the CABE F0 F9 BEQ WAITCL printer used (NEC 8023/Tymac Con­ CACO C9 42 CMP #*42 ;B KEY nection Interface) does not provide CAC2 F0 F0 BEQ BACKGD reverse alphanumerics; a Commodore CAC4 C9 45 CMP #*45 ;E KEY 1525 printer would have printed the CAC6 F0 E8 BEQ EDGE directory header with reverse characters. CAC8 C9 43 CMP #*43 ;C KEY CACA F0 01 BEQ CHARAC C ACC 60 RTS ;ANOTHER KEY Change Screen Colors C AC D A2 FA CHARAC LDX #*FA CACF FE FF D7 FILLCH INC * D 7 F F , X j CHANGE ALL A routine is provided to change the CAD2 FE F9 D8 INC * D 8 F 9 , X j OF COLOR screen colors. This routine has three CAD5 FE F3 D9 INC * D 9 F -3 , X ;MEMORY entry points. RESTORE, B changes the CAD8 FE ED DA INC *DAED X background color, RESTORE, E CADB CA DEX changes the edge color, and RESTORE, CADC DO FI BNE FILLCH C changes the character color. Note CADE EE 86 02 INC COLOR ;CURSOR COLOR that all characters on the screen will be CAE 1 10 CLC changed, not just the characters follow­ CAE2 90 D5 BCC WAITCL .•CONTINUE ing the cursor. When the colors are {APPEND PROGRAM changed, their code number is in­ S TO TACK ON SUBROUTINE PROGRAMS cremented by one, from 0 to 15, back to |TO OTHER PROGRAMS 0, etc. « Once any one color has been changed, TXTTAB = *2B you can continue to step through the VARTAB » *2D colors by repetitively pressing the same key [no need to hit RESTORE again). In CAE4 4C E7 CA APPEND JMP APPD0N ;MODIFIABLE JMP addition, no matter which one you CAE7 A5 2C APPD0N LDA TXTTAB+1 started with (B, E, or C), you can CAE9 8D 3F CB STA APHI CAEC A5 2B LDA TXTTAB change the others by pressing the cor­ CAEE 8D 40 CB STA AF'LO responding key. Any other key will get CAF1 A5 2E LDA VARTAB+1 you out of the color change mode. CAF3 85 2C STA TXTTAB+1 CAF5 38 SEC Append CAF6 A5 2D LDA VARTAB CAF8 E9 02 SBC #*02 To append a program (normally CAFA 05 2B STA TXTTAB consisting of subroutines or DATA CAFC B0 02 BCS AP0N statements) to another, first load the CAFE C6 2C DEC TXTTAB+1 main program in the usual manner: CB00 A9 2A AP0N LDA #< APPDOF CB02 8D E5 CA STA APPEND; 1 LOAD1 'PRG11', 8. Then press CB05 A9 CB LDA #>APPD0F RESTORE, A This raises the bottom of CB07 8D E6 CA STA APPEND+2 the BASIC program workspace to the CB0A 20 41 CB JSR MESSAG end of the first program. The computer CB0D 0D 4C 4F 41 .BYTE *0D ,*4C , * 4 F ,*41 than prompts you to load the second CB 11 44 20 50 47 .BYTE *44,*20 ,*50 ,*47 program, e.g. LOAD"PRG2” ,8 and CB 1 5 4D 32 2C 20 .BYTE *4D,*32 , *2C ,*20 press RESTORE, A again. This time the CB 19 48 49 54 20 .BYTE *48,*49 ,*54 ,*20 bottom of the BASIC workspace is CB 1 D 52 45 53 54 .BYTE *52,*45 ,*53 ,*54 moved back down to the previous loca­ CB21 4F 52 43 2C .BYTE *4F,*52 ,*45 , *2C tion. Your two programs are now one, CB25 20 41 0D 00 .BYTE *20.*41 , *0D ,*00 which you should SAVE with a new CB29 60 RTS CB2A AD 3F CB APPDOF LDA APHI name. You can continue to append more CB2D 85 2C STA TXTTAB+1 programs using the same technique. One word of caution — make sure that the ap- No. 68 - January 1984 MICRO 27 pended programs have higher line numbers than the main programs since they are not merged — only appended. CB2F AD 40 CB LDA APLO A general purpose message printer CB32 85 2B STA TXTTAB CB34 A9 E7 APOFF LDA #APPD0N routines, do a JSR to MESSAG followed CB3B 8 D E6 CA STA APPEND+2 by your message in ASCII characters. CB3E 60 RTS End the message table with a zero. CB3F FF APHI .BYTE IFF After the message is printed, control CB40 FF APLO .BYTE IFF will return to the next byte following a the zero. In addition to normal text, jMESSAGE PRINTER cursor controls, color changes, etc. can be ; JSR MESSAG--FOLLQW WITH ASCII intermixed with text for special effects. i MESSAGE--END WITH ZERO CHROUT = IFFD2 Entering the Program POINMS - IFB

The DOSPLUS routines currently CB41 68 MESSAG PLA ;SAVE POINTERS start at $C800 and extend through CB42 85 FB STA POINMS j FOR RETURN $CBFF. Space for more routines is CB44 68 PLA available from $C807-C8FF and from CB45 85 FC STA P0INMS+1 $CB60-CBBE. Additional extensions CB47 A2 00 LDX #$00 can be assembled below $C800. The CB49 E6 FB MSS0LP INC POINMS ;PARSE MESSAGE DOS WEDGE occupies $CC00-CFFF, CB4B DO 02 BNE #+4 CB4D E FC P0INMS+1 ;BUMP POINTER so it is advantageous to load and 6 INC CB4F A 1 FB LDA (POINMS,X) !GET CHAR initialize the DOS WEDGE and CB51 FO 06 BEQ MSSGBK ;END ON ZERO DOSPLUS at the same time. CB53 20 D2 FF JSR CHROUT ;PR I NT IT There are several ways to get the CB56 18 CLC program into your Commodore 64. If CB57 90 F0 BCC MSSGLP ;C0NTINUE you have an Assembler, type in the CB59 A5 FC MSSGBK LDA P0INMS+1 Assembly code as shown in Listing 1. A CB5B 48 PHA compact BASIC loader is also provided; CB5C A5 FB LDA POINMS see Listing 2. Checksums are used to CB5E 48 PHA catch your typing errors, which will CB5F 60 RTS terminate the program. Note the * s IC800 change to line #1260 required if you do INI DOS « ICCOO not intend to run the BASIC loader with DOS 5.1 in memory. A third C800 20 47 C9 BASINT JSR INITNMI |INIT NMI method is to send the author $10 (US) C803 20 00 CC JSR INI DOSi !INIT DOS for a disk containing the programs C806 60 RTS shown in Figure 1. (For foreign re­ quests, please provide sufficient return * = ♦CBBF postage). If you load and run the first CBBF 60 RETRN .BYTE $60 program DOSPLUS, both the DOS- * « ICBC0 WEDGE and the RESTORE routines TABL - * will be loaded and initiated. Then type CBC0 BF E4 B4 CD .BYTE IBF,IE4 ,IB4 ,ICD NEW and you're ready to go. CBC4 DA B0 BF BF .BYTE IDA, IBQ , IBF ,IBF Seven new functions were added, CBC8 BF BF BF BF .BYTE IBF,IBF ,IBF , IBF but the tables will allow a total of 32. CBCC BF BF BF C4 .BYTE IBF,IBF , IBF , IC4 Some possible additional functions in­ CBDO BC BF BF BF .BYTE !BC, IBF , IBF , IBF clude variable listing, single step, trace, CBD4 BF BF BF BF .BYTE IBF,IBF , IBF , IBF autoline, hex-decimal converter, save CBD8 BF BF BF BF . BYTE IBF,IBF , IBF ,IBF & swap screens (for animation), etc. CBDC BF BF BF BF .BYTE IBF,IBF , IBF ,IBF Don't hesitate to write if you have a useful addition. Or better yet, write it * = ICBEO TABH «= * up for all MICRO readers. CBE0 CB CA CA CA • BYTE ICB, $CA , 1C A ., 1C A AlCftO CBE4 C9 CA CB CB .BYTE IC9 , $C A .ICB,, ICB CBE8 CB CB CB CB • BYTE iCB , ICB i ICB i, ICB , 1C 9 You may contact the author. CBEC CB CB CB C9 .BYTE ICB , ICB i ICB, CBF0 C9 CB CB CB .BYTE IC9 , ICB , ICB,i ICB Michael J. Keryan CBF4 CB CB CB CB • BYTE ICB , ICB , ICB., ICB 713 Locust Drive CBF8 CB CB CB CB .BYTE ICB , ICB , ICB,, ICB Tallmadge, Ohio 44278 CBFC CB CB CB CB . BYTE ICB , ICB , ICB ;, ICB .END

28 MICRO No. 68 - January 1984 Listing 2

1 PRINT"[CLR] DOSPLUS LOADERPR I NT" WAIT — LOADING" 10 DIM N(1 0): 1=0 20 READ All I = I +1 s »0 30 XI=LEFTI(Al, 2)! GOSUB 1OOi IF Z<1 THEN SYS 5120 Oi END 40 BY = Z: KSa Z i X»-MID*(AI,3,4): GOSUB 100: LC*Z 50 XI = MIDI (Al,3,2) : GOSUB 1 OOi »KS+Zi Xl-MIDl(Al ,5,2): GOSUB 100: KS-KS+Z 60 FOR J * 1 f 0 B Y: XI-MIDI(AI,5>J»2 ,2)! PRINT"."; 70 GOSUB 100: N(J)=Z: CS»CS+Z: NEXTJ 80 XI = MIDI(AI,7*-BY*2,4) i GOSUB 100: IF Z O C S + KS THEN PRINT"ERROR LINE #" j I: STOP 90 FOR J = 1TGBY: POKE LC+J-1,N(J ): NEXTJ:PR I NT"**: GOTO 20 100 j 110 REM HEX TO DECIMAL 120 REM XI IS HEX NUMBER TO BE CONVERTED 130 REM Z IS DECIMAL NUMBER CONVERTED 140 Z=0 150 LaLEN (XI): FORK= 1 TO L 160 YsASC(MI Dl (XI,K , 1) ) 190 ZBZ*16+Y-48+7*(Y>57) 200 NEXTKi RETURN 1000 DATA"18C900488A489848A97F8D0DDDAC0DDD303520BCF620E1FFD00F200C46" 1010 DATA"18C91815FD20A3FD2018E52047C96C02A05820E4FFC900F0F9291F0C7B1' 1020 DATA"18C930AABDC0CB8D3EC9BDE0CB8D3FC920FFFF786848A84C72FEA90FE7" 1030 DATA"1SC948008D1803A9C98D1903A90C8D20D08D21D0A9008D8602A9710A74" 1040 DATA". 18C9608D2603A9C98D2703EAEAEAA9008DBBC96048ADBBC9C904D00E0E" 1050 DATA"18C9783DA5BAC908F037688DBAC9488A489848A97E20C3FF20CAC90E1B" 1060 DATA"18C990A97E20BAFFA90020BDFF20C0FFB00BA27E20C9FFADBAC9200EE8" 1070 DATA"18C9A8CAF1A97E20C3FF20CCFF68A868AA684CCAF10D00A90485BA0EC2" 1080 DATA"18C9CO8DBBC96OA9OO0DBBC96OAD18DO29O2FOO4AOO7DOO2AOOOA2OC9B" 1090 DATA"18C9D8046O2OCAC9A97D20BAFFA9OO2OBDFF20C0FFB07AA27D20C90E65" 1100 DATA"18C9F0FFA90085FDA90485FE2089CA207ECA2097CAA21920E1FFF00F32" 1110 DATA"18CA085D2075CA2091CA208DCAAOOOB1FDC922D002A927C9A2D0020CB01' 1120 DATA"18CA20A9A78DBAC929808DAFCAF005A91220CAF1ADBAC9293FOEBAODFC" 1130 DATA"18CA38C92CBAC91O0209807002094020CAF1ADAFCAF005A99220CA0C03" 1140 DATA"18CA5OF1C8C028DOBE2OA5CA981865FD85FD9OO2E6FECADO9E2O97OFE9" 1150 DATA"18CA68CA2O7ECA20CCFFA97D20C3FF6CAO1O2O8DCA88DOFA6O2O75OE3D" 1160 DATA"18CA80CAA02C2091CA88D0FAA90DD006A920D002A92E20CAF160200D1E" 1170 DATA"18CA9875CA2091CAA029208DCA88DOFA208DCA2091CA2089CA60000D8B" 1180 DATA"18CAB0A200F002A201FE20D020E4FFC900F0F9C942F0F0C945F0E8103D" 1190 DATA"18CAC8C943FO0160A2FAFEFFD7FEF9D8FEF3D'9FEEDDACAD0FlEE8614D4" 1200 DATA"18CAE0021890D54CE7CAA52C8D3FCBA52B8D40CBA52E852C38A52D0C9C" 1210 DATA"18CAF8E902852BB002C62CA92A8DE5CAA9CB8DE6CA2041CB0D4C4F0DAD" 1220 DATA"18CB1041442050474D322C2048495420524553544F52452C20410D06BD" 1230 DATA"18CB280060AD3FCB852CAD40CB852BA9E78DE5CAA9CA8DE6CA60FF0F16" 1240 DATA"18CB40FF6885FB6885FCA200E6FBD002E6FCA1FBF00620D2FF18901055“ 1250 DATA"08CB58F0A5FC48A5FB4860064C" 1260 DATA"0 7Cfl002047C9602000CC034B“ 12 70 DATA"18CBBF60BFE4B4CDDAB0BFBFBFBFBFBFBFBFBFC4BCBFBFBFBFBFBF1361" 1280 DATA"18CBD7BFBFBFBFBFBFBFBFBFCBCACACAC9CACBCBCBCBCBCBCBCBCB1450" 1290 DATA"HCBEFC9C9CBCBCBCBCBCBC0CBCBCBCBCBCBCBCBOF42" 1300 DATA"00" 1500 : 1510 REM IF DOS WEDGE WILL NOT BE RUN WITH THIS PROGRAM, REPLACE LINE 1260 WITH: 1520 REM 1260 DATA"04C8002047C960025C"

jSWCRO

No. 68 - January 1984 MICRO 29 • SANYO MONITOR SALE!!

80 Columns x 24 lines Green text display East to read - no eye strain Up front brightness control $ 79 °° High resolution graphics Quick start - no preheating Regulated power supply Attractive metal cabinet UL and FCC approved 9" Data Monitor

► 15 Day Free Trial - 90 Day Immediate Replacement Warranty

9" Screen -GreenText Display $ 79.00 12" Screen - Green Text Display (anti-reflective screen) $ 99.00 12" Screen - Amber Text Display (anti-reflective screen) $119.00 14" Screen - Color Monitor (national brand) $249.00

Display Monitors From Sanyo With the need for computing power growing every day, Sanyo has stepped in to meet the demand with a whole new line of low cost, high SANYO quality data monitors. Designed for commercial and personal com­ Official Video Products puter use. All models come with an array of features, including up­ o f the Los Angeles 1984 Olympics front brightness and contrast controls. The capacity 5 x 7 dot characters as the input is 24 lines of characters with up to 80 characters per line. Equally important, all are built with Sanyo’s commitment to technological excellence. In the world of Audio/Video, Sanyo is

synonymous with reliability and performance. And Sanyo quality is , • >»«**<. j — • ** reflected in our reputation. Unlike some suppliers, Sanyo designs, manufactures and tests virtually all the parts that go into our products, from cameras to stereos. That’s an assurance not everybody can give you!

• LOWEST PRICES • 15 DAY FREE TRIAL • 90 DAY FREE REPLACEMENT WARRANTY • BEST SERVICE IN U.S.A. • ONE DAY EXPRESS MAIL • OVER 500 PROGRAMS • FREE CATALOGS

I Add $10.00 for shipping, handling and Insurance. Illinois residents V | please add 6% tax. Add $20.00 (or CANADA, PUERTO RICO, HAWAII | PROTECTO j orders. WE DO NOT EXPORT TO OTHER COUNTRIES. j (WE LOVE OUR CUSTOMERS) I Enclose Cashiers Check, Money Order or Personal Check. Allow 14 | ENTERPRIZES | days for delivery, 2 to 7 days for phone orders, 1 day express mail! | BOX 550, BARRINGTON, ILLINOIS 60010 | Canada orders must be in U.S. dollars. Visa - MasterCard - C.O.D. | Phon* 312/382-5244 to ordar FANTASTIC PRINTER SALE

as low $ 00 as 149 15 Day Free Trial - 180 Day Immediate Replacement Warranty

LIST SALE 80 COLUMN THERMAL PRINTER — 60 CPS $199 $149 Bi-directional, dot matrix, prints 8'/:" letter size paper, full 80 columns, high resolution graphics, dot bit addressable, special symbols and true decenders! (Centronics parallel interface) 80 COLUMN TRACTOR FRICTION PRINTER — 80 CPS $399 $209 Bi-directional, dot matrix, impact, prints single sheets, continuous feed paper, adjustable columns, 40 to 132 characters! Roll paper adapter $32.95. (Serial or Centronics parallel interface) PREMIUM QUALITY 10" CARRIAGE T/F PRINTER — 120 CPS $499 $289 Bi-directional, impact, 9 x 9 dot matrix with double strike for 18 x 18 dot matrix. High resolution bit image (120 x 144 dot matrix) underlining back spacing, left and right margin settings, true lower decenders, with super and sub scripts. Prints standard, italic, block graphics, special characters, plus 24 of user definable characters and much more!! Prints single sheets, continuous feed and roll paper! (Centronics parallel interface) PREMIUM QUALITY 15%" CARRIAGE PRINTER — 120 CPS $599 $379 Has all the features of the Premium Quality 10" Carriage T/F Printer above plus a 15’/a" carriage and more powerful electronic components to handle large business forms! ( Centronics parallel interface) HIGH SPEED PREMIUM QUALITY T/F 10" PRINTER — 160 CPS $699 $499 Save printing time with these plus features: 160 CPS speed, 100% duty cycle, 8K buffer diverse character fonts special symbols and true decenders, vertical and horizontal tabs. This is Red Hot Efficiency!!! (Serial or Centronics parallel interface) HIGH SPEED PREMIUM QUALITY T/F 151/2" PRINTER — 160 CPS $799 $599 Has all the features of the 10" Carriage high speed printer plus a 15V2" carriage and more powerful electronics to handle larger business forms! (Serial or Centronics parallel interface) PARALLEL PRINTER INTERFACES: (IN STOCK) • For VIC-20 and COMMODORE 64 $49.00 • For all APPLE COMPUTERS $69.00 • For ATARI 400 and 800 COMPUTERS $79.00 NOTE: Other printer interfaces are available at computer stores!

WE DO NOT EXPORT TO OTHER COUNTRIES EXCEPT CANADA. PROTECTO Enclose Cashiers Check, Money Order or Personal Check. Allow 14 days for delivery, 2 to 7 days for phone orders, 1 day express iWE LOVE: OUR CUSTOMERS) m ail! Canada orders m ust be in U.S. dollars. We accept Visa ENTERPRIZES and MasterCard. We ship C O D. BOX 550, BARRINGTON, ILLINOIS 60010 Phone 312/382-5244 to order FLOPPY DISKS SALE *$1.19 ea. Economy Model or Cadillac Quality LOR> 4N-'‘sg.”ss" We have the lowest prices! LOMN.CE^D^^

‘ ECONOMY DISKS Good quality 5 Vi" single sided single density with hub rings. Bulk Pac 100 Qty. $1.19 ea. Total Price $119.00 10 Qty. 1.39 ea. Total Price 13.90

CADILLAC QUALITY • Each disk certified • Free replacement lifetime warranty • Automatic dust remover For those who want cadillac quality we have the Loran Floppy Disk. Used by professionals because they can rely on Loran Disks to store important data and programs without fear of loss! Each Loran disk is 100% certified (an exclusive process) plus each disk carries an exclusive FREE REPLACEMENT LIFETIME WARRANTY. With Loran disks you can have the peace of mind without the frustration of program loss after hours spent in program development. 100% CERTIFICATION TEST Some floppy disk manufacturers only sample test on a batch basis the disks they sell, and then claim they are certified. Each Loran disk is individually checked so you will never experience data or program loss during your lifetim e! FREE REPLACEMENT LIFETIME WARRANTY We are so sure of Loran Disks that we give you a free replacement warranty against failure to perform due to faul­ ty materials or workmanship for as long as you own your Loran disk. AUTOMATIC DUST REMOVER Just like a record needle, disk drive heads must travel hundreds of miles over disk surfaces. Unlike other floppy disks the Loran smooth surface finish saves disk drive head wear during the life Of the disk. (A rough surface will grind your disk drive head like sandpaper). The lint free automatic CLEANING LINER makes sure the disk-killers (dust & dirt) are being constantly cleaned while the disk is being operated. PLUS the Loran Disk has the highest probability rate of any other disk in the industry for storing and retaining data without loss for the life of the disk. Loran is definitely the Cadillac disk in the world Just to prove it even further, we are offering these super LOW INTRODUCTORY PRICES List $4.99 ea. INTRODUCTORY SALE PRICE $2.99 ea. (Box of 10 only) Total price $29.90 $3.33 ea. (3 quantity) Total price $9.99 All disks come with hub rings and sleeves in an attractive package.

DISK DRIVE CLEANER $19.95 Everyone needs a disk drive doctor FACTS • 60% of all drive downtime is directly related to poorly maintained drives. • Drives should be cleaned each week regardless of use. • Drives are sensitive to smoke, dust and all micro particles. • Systematic operator performed maintenance is the best way of ensuring error free use of your computer system. The Cheetah disk drive cleaner can be used with single or double sided S'A" disk drives. The Cheetah is an easy to use fast method of maintaining efficient floppy diskette drive operation. The Cheetah cleaner comes with 2 disks and is packed in a protective plastic folder to prevent contamination. List $29.95 /Sale $19.95

I Add $10.00 for shipping, handling and Insurance. Illinois residents I I please add 6% tax. Add $20.00 for CANADA, PUERTO RICO, HAWAII I j orders. WE DO NOT EXPORT TO OTHER COUNTRIES. j PROTECTO iWE LOVE OUfl CUSTOMERS! I Enclose Cashiers Check, Money Order or Personal Check. Allow 14 j ENTERPRIZES | days for delivery, 2 to 7 days for phone orders, 1 day express mail! I BOX 550, BARRINGTON, ILLINOIS 60010 | Canada orders must be in U.S. dollars. Visa - MasterCard • C.O.D. | Phone 312/382-5244 to order Sample Commodore Graphic Character Set for the FX80.

c — ...... H X. Jli a!£ iiiffi B1; " j I i il u L \ f UM E n WUI i H K a 1 ai>.‘ ’.^1 Si Uj|8 nU"; m * 1 * I a" X 0 -f s * + 1 -n IS G IS i a '•1' * «' n ;!i D-iJ II B m f ii 1.3 .i k L iiiiS H m iHi wet i St 11 mm i I V I §■ » nun 1 1 Sis i i A HH i l p iH n FW9I a AMI j . iiSTi .il 8 IB 1 IH) an tn r T' 4 1 1 i iUii J s H r . HUB a n n B m illlli a lifi y j iii !•»!! ilirli \ h ...... “•M „p m : ■f H i-ISlil i $ 1 iUUI a * 1 s If "i L HUH h* ’i y HILu gift Siiii ! 1 m i n*l( UHit ihS i ? r r „ >i MUM ■itf li n Wi ’ n ' n 5 ' 1 i aJ* X 0 f 1 rife <> D 11 sc I ' □ i ‘J K H i 0t.il u a ; I 118 S i k B» Hiitj llilf; iS! m B 2 H g m au; 1 2 * * r ) I- 5 “S mfn «w i Bffii 1 KH i HA B II r n m •hhi H !! It 4 J 13 i p iiUU lilit r T • i i i i 3W HI1U .J 11 u « HUU » n 'A 1 a r m m 1 i s [H Normal Characters Reversed Characters Generating Characters for the EPSON FX80 on a Commodore 64

by Robert M. Tripp

Basic Printing Concepts ing the characters varies from printer to printer, the basic concepts are the same. MICRO, as a microcomputer user, The evolution of plain paper printers has been toward less probably has more need for the user defineable characters expensive units that do more. Those who have entered the than the average user since we deal so often with printed microcomputer revolution lately may not realize that it material and we deal with such a variety of micro­ was only five or six years ago that a used Teletype ,tm| at computers. We investigated the available printers and over $500 was a hot item. And all it could do was produce selected the Epson FX80 since it has allows all 256 numbers, punctuation and upper case alphabetics - at 10 characters to be user defined. Many of the other printers character per second with a lot of noise and it was not very with UDCs currently available only permit a portion of transportable! Printers have come a long way since then the character set to be redefined and some do not support and are getting better all the time. One of the most useful copying the existing ROM set into RAM to form the basis features to come along recently is the ability for the user to for the UDC. These two factors may not be significant to define his own character set. Until this capability was you, and other printers may be better for your particular added, the user had three choices if he needed characters requirements. Most of the material in this article will be that the printer did not support: applicable to printers in general. 1. Find some way to live within the constraints of the supported character set, such as using [CLR] Custom Character Sets to stand for the inverse heart shape that Commodore computers use as the displayable The GRAPHICS issue of MICRO (#66, November 1983) representation of the clear screen function. discussed character oriented graphic characters and 2 . Print the character information in a graphics provided methods for generating character sets on the mode. Commodore 64, VIC 20 and Atari microcomputers. The 3 . Purchase a custom printer with the appropriate examples used in the articles were, for the most part, character set - normally limiting the user to the generated on our FX80. A few of the possible uses for the printer manufactured by the microcomputer UDC include: company . 1 . Graphic characters that replicate those of the Each alternatives has a major drawback. The first requires micro's display. 2 . Custom graphic characters such as those used for that special programs be written to do the conversion from the microcomputer display character code to the line drawings, macro characters, special symbols, alphanumeric string that will represent it, and results in a and so forth. printout that does not represent the microcomputer 3 . Alphabets for foreign languages, computer display very well. The second requires a program to con­ readable codes such as bar codes, optical scanner vert the character oriented information into a graphic characters, special fonts such as the magnetic ink form, and due to the fact that information has to be characters found on checks, etc. transmitted for every bit on the line, is quite slow. The 4 . Character segments that may be used to form third is an added expense and may result in a printer with 'super sized’ printouts for displays such as limited capabilities and few, if any, of the more calendars, printed material for the visually sophisticated printer features. handicaped, an so on. A very neat solution has been provided recently by the general purpose printer manufacturers. Many now include the ability for the user to define some or all of the Generation of User Defineable Characters character set in the printer’s RAM. While the number of characters that may be so defined, the matrix for The FX80 manual has a very good discussion of the details generating the characters, and the exact protocol for defin- of generating user defineable characters. This presentation No. 68 - January 1984 MICRO 33 1 REM "FXPCG GENERATOR" 2170 FOR 1=0 TO 12 10 PRINT"^GENERATING CHARACTERS” 2175 POKE FX+13#CH+I,0:NEXT 15 CLR:GOSUB 5000: 2180 GOSUB 1000:GOTO 2010 REM GENERATE CHARACTERS 2200 REM + SERVICE 20 GOSUB 5100: REM DEFINE EQUATES 2205 IF CP*225 THEN 2400 30 GOSUB 4000: REM SETUP SCREEN 2210 IF X=PD OR X=CX OR X=BX THEN 2280 40 GOSUB 1000:GOTO 2000: REM EDIT 2220 IF X=LX OR XSDX THEN 2290 1000 REM FX CHARACTER DISPLAY 2240 X = CX 1010 BY = FX + 13*CH:PRINT"S"; 2260 IF Y=LX THEN Y=BX:GOTO 2290 1020 FOR J=7 TO 0 STEP -1:K=2AJ 2270 IF Y=DX THEN Y=RX:GOTO 2290 1030 FOR L= 1 TO 11 STEP 2:I = BY+L 2275 GOTO 2290 1040 IF PEEK(I) AND K THEN 1100 2280 X = CX 1050 IF PEEK(1-1> AND K THEN 1000 2290 H-H+l* GOTO 2500 1060 IF PEEK (I +1) AND K THEN 1110 2300 REM - SERVICE 1070 PRINT "."j:GOTO 1200 2310 IF X=PD OR X=CX OR X=BX THEN 23 50 1080 IF PEEK(1 + 1) AND K THEN 1120 2320 IF X=LX THEN 2290 1090 PRINT CHR$(LH) \ :GOTO 1200 2330 IF X = DX THEN X = LX:GOTO 2260 1100 PRINT CHR$ (CL);:GOTO 1200 2340 X=BX:GOTO 2260 1110 PRINT CHRI (RH);:GOTO 1200 2350 X=BX:GOTO 2290 1120 PRINT CHR$(LR>; 2400 IF X = PD OR X = BX THEN X=RX:GOTO 2410 1200 NEXT 2402 IF X = CX OR X = RX THEN X = RX:GOTO 2410 1210 PR INT:NEXT 2404 IF Y=PD OR Y=BX THEN Y=LX 1220 RETURN 2406 IF Y = CX OR Y = LX THEN Y = LX 1400 REM OUTPUT FX CHARACTERS TO MEMORY 2408 X=DX:GOTO 2290 1410 BY=FX+13#CH 2410 IF Y=LX OR Y=RX THEN Y=DX 1420 FOR L = 0 TO 12:POKE (BY + L> ,0:NEXT 2415 IF Y=PD OR Y=BX THEN Y=LX:GOTO 2290 1430 FOR L = 1 TO 11 STEP 2: I = BY + L:A = 0:B = 0: 2420 IF Y=CX OR Y=LX THEN Y-LX:GOTO 2290 X X = I NT(L/2) 2450 IF Y=PD OR Y=BX THEN Y=LX:GOTO 2290 14 40 FOR J=7 TO 0 STEP -1:K=2AJ 2455 IF Y=LX OR Y=RX THEN Y=DX 1450 X=PEEK(OG+XX) 2499 GOTO 2290 1460 IF X=CX THEN A=A OR K 2500 IF H<0 THEN Ha 10:V = V-1 1470 IF X=RX OR X=DX THEN B=B OR K 2510 IF H >5 THEN H-0:V-V + 1 1480 X X = X X+RW:NEXT 2520 IF V<0 THEN V=5 1490 POKE(I) , A:POKE (I + 1),B :NEXT 2530 IF V>7 THEN V=00 1500 RETURN 2540 POKE PO , X:POKE(P0 +1),Y 2000 REM EDIT 2550 GOTO 2020 2010 H = 0:V=0:CP = 87 2600 REM REVERSE •• AS BEST YOU CAN ! 2015 PR INT "S ]]]]]] ] ]CHAR #" s CH ; "|| S "; 2610 X X = OG 2020 PO=OG+V*RW+H:X=PEEK(PO) 2620 FOR 1=0 TO 7 2022 Y=PEEK(P0+1):BY=FX+CH*11+V 2630 FOR J=0 TO 5:XJ = XX + J 2025 POKE PO,CP 2640 A = PEEK(XJ): IF A=PD THEN A=BX 2030 GET T$: IF T$ = '"' THEN 2030 2650 IF A=BX THEN A=CX:GOTO 2700 2040 IF T*="£" THEN CP=225: GOTO 2025 2660 IF A=CX OR A=DX THEN A = BX:GOTO 2700 2050 IF T$="'" THEN CP=87: GOTO 2025 2670 IF A=RX THEN 2720 2060 IF T$=CL$ THEN H=H+1:G0T0 2500 2675 IF PR=BX THEN A=CX:GOTO 2700 2070 IF T*=CR$ THEN H=H-1:GOTO 2500 2680 IF PEEK(XJ +1)=RX THEN A=RX: 2080 IF T*=CD* THEN V=V+1:GOTO 2500 GOTO 2700 2100 IF T*=CU$ THEN V=V-1:GOTO 2500 2690 A=BX 2110 IF TI=RT$ THEN H=0:V=V+1:GOTO 2530 2700 PR=A:POKE(XJ ),A:NEXT 2115 IF T$ = F 1 $ THEN POKE PO , X:GOTO 7000 2710 PR=0:XX=XX+RW:NEXT:GOTO 2010 2120 IF T*=F2* THEN POKE PO,X:GOTO 7100 2720 IF PR = DX OR PR = RX THEN A=LX: 2125 IF T*=F3* THEN POKE PO , X:GOTO 7400 GOTO 2700 2130 IF Tf=F4* THEN POKE PO,X:GOTO 7300 2730 A = BX:GOTO 2700 2135 IF T*=F5* THEN POKE PO , X:GOTO 6200 2800 IF PR=DX OR PR=RX THEN A=LX: 2140 IF T*=F6* THEN POKE P O , X:GOTO 6000 GOTO 2700 2145 IF T*=F7* THEN POKE PO,X:GOTO 2600 3000 PR I NT"S "5 QQ$;LL$ j"]";: INPUT CH 2150 IF T$ = HM$ THEN POKE P0,X:G0T0 2010 3010 CH=CHAND255 2155 IF T*="+" THEN 2200 3020 PRINT "S"jQQ$;LL$jS9$ 2160 IF T*="~" THEN 2300 3030 RETURN 2165 IF T*O C S * THEN 2030 4000 PRINTHu MjQO#j "+ ON / - OFF / £ HALF / A FULL M

34 MICRO No. 68 - January 1984 4010 PRINT"OF 1 READ CHAR I" 6240 OPEN 3,8,0,C$ 4020 PRINT"F2 WRITE CHAR # ” 6250 INPUT*3 , FC7., TC’/. 4030 PRINT”F3 READ NEXT" 6260 FOR I =FC7. TO TC7. 4040 PR I NT"F4 WRITE CURRENT/READ NEXT" 6270 I I=FX + I*13:INPUTM3,C%:POKE 11,0 4050 PRINT"F5 DISK LOAD" 6280 FOR J=1 TO 11 4060 PRINT"F6 DISK SAVE" 6285 INPUT#3,C7.:P0KE(II+J),C7.:NEXT J 4070 PRINT"F7 REVERSE CHARACTER" 6290 POKE(11 + 12),0:NEXT I 4080 RETURN 6295 CLOSE 3:G0T0 2010 5000 PRINT CHR$(142) 6300 PRINT";EL$;B$i" LOADED” GOTO 2010 5010 POKE 52,48;POKE 56,48 6600 PRINT RT$s"I]]]]]]]]]]]]]3 ]]]]]]"j 5020 POKE 56334,PEEK(56334) AND 254 6602 PRINT " "j 5030 POKE 1, PEEK(I) AND 251 6604 PRINT " 111111111111111111111111111111111111“; 5040 FOR 1=0 TO 2047 6610 RETURN 5045 POKE I + 12288,PEEK(I+5324S):NEXT 7000 REM READ SPECIFIED CHARACTER 5050 XX-1228S + 9U B 7010 PRINT HM$j:GOSUB 7200 5060 FOR 1=0 TO 39 7020 IF CC‘/.<256 THEN CH=CC'/. 5065 READ A :POKE(XX + I),A:NEXT 7030 CH=CC‘/.: GOSUB 1000: GOTO 2010 5070 POKE 1 ,PEEK (1) OR 4 7100 REM WRITE SPECIFIED CHARACTER 5080 POKE 56334,PEEK (56334) OR 1 7110 PRINT HM$;CD$;:GOSUB 7200 5090 POKE 53272,PEEK(53272) AND 240- OR 12 7120 IF CC’/.<256 THEN CH=CC7. 5095 RETURN 7130 GOSUB 1400:GOTO 2010 5100 POKE 650,128: RT$=CHR$<13) 7200 PRINT 88$;"8"; 5110 06=1024:RW=40:FX=256*56 7210 PRINT RT$; 11 ]]]]]]]]]]]]]]]]"; 5120 POKE 53281,1:POKE 53280,2 7220 PRINT CH; "|| llllllllllllll"; 5130 PD=ASC("."):PRINT"El"; 7230 CC7.=CH: INPUT CC7. 5140 BL=123:CL=124:LH=125:LR=126:RH=127 7235 IF CC7.<0 OR CC'^>255 THEN CC7. = 256 5150 BX=91:CX=92:LX=93:DX=94:RX=95 7240 RETURN 5160 CH = 0: FI$ = "i": F2$ = ",!": F3$ = "S“ 7300 REM WRITE CURENT/READ NEXT 5165 F4$ = "H": F5$ = "H": F6$ = "i|": F7$ = "||" 7310 GOSUB 1400 5170 CL$=" ]_": CR$ = " M": CU$ = " 7400 REM READ NEXT 5175 CD$ =" ": HM$=" S_": CS$= "E" 7410 CH=((CH +1) AND 255) 5180 ZL$=RT$+":;]]]]]]]]]]]]]]" 7420 GOSUB 1000:GOTO 2010 5185 $=" 9000 DATA 0,0,0,0,0,0,0,0 5190 ZR$ = "IIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII" 9010 DATA 0,60,126,126,126,126,60,0 5195 EL$=ZL$+ZS$+ZR$:EU$=CU$+EL$ 9020 DATA 0,192,224,224,224,224,192,0 5196 QQ$="QQQQQQQQQQ“ 9030 DATA 0,195,231,231,231,231,195,0 5197 LL$ = "]]]]]]]]]]]]]]]]]]" 9040 DATA 0 , 3 , 7 , 7 , 7 , 7,-3 , 0 5198 RETURN 6000 REM SAVE TO DISK 6010 PRINT11SQQQQQQQBQQQQQQQSQ" j 6020 B$ ="":PR I NT EL*;:INPUT "FILE";B* is designed to provide you enough information to under­ 6025 IF B* = "" THEN PRINT CU*;:GOTO 6160 stand the operation of the FX80 without the manual, and, 6030 C$="@0: "+B$+" ,S,W" to provided actual programs that make the whole process 6040 OPEN 3,9,8,0$ easier. The FX80 allows the user to define any number of characters, up to 256 characters in the standard RAM area, 6050 PRINT EU$; : INPUT "FROM CHAR #"; F C 7. more with additional RAM. First consider each character 6060 PRINT EU$;: INPUT " TO CHAR #";TC7. in the FX80 to be defined in a matrix that is eight dots high 6070 IF TCX

by allowing dots to be placed half way between the six col­ provide an attribute byte. The attribute byte determines if umns. This means that there are not six but eleven poss­ the character is to be shifted down one dot position to pro­ ible horizontal positions for dots. The capital letter A vide a lower case descender, which column the character could be defined as: starts in and which column it ends in. This is provided to permit proportional spacing. In this article, we assume • • that all characters are full width and print in the upper • • eight dot positions. • • If you sit down and start plotting out characters on • • • • • graph paper, then assigning each dot its value, summing • • the individual dot values, and so forth, that it is a • • somewhat tedious, repetitive job. The type of job that • • computers are supposed to be good at! So, why not have the computer do the work! The FX80 GENERATOR is Note that the dots in the top half of the letter A overlap given in Listing 1. It is based on the interactive Program­ vertically. The dots on the top line and third line are offset mable Character Generator by Loren Wright that appeared one-half space from the dots on the second and fourth in the GRAPHICS issue. Several important additions have through seventh lines. This extra resolution in the been made by me. First, the program automatically defines horizontal direction, eleven positions in the normal space a few new characters for use on the Commodore 64. The of six, provides very nice looking character, but does FX80 can printed dots between the main columns of each severely complicate the character generation process. character; the Commodore can not. To make a realistic There is an important restriction to be aware of. The dots display of the character being generated, three new must not overlap. If there is a dot on one of the eleven characters are defined. They are the left half of a dot, the positions, then there may not be a dot on the next right half of a dot, and the left and right halves joined position. 'back-to-back'. This permits a dot to be generated that The FX80 manual discusses how to define your appears to be half way between the normal columns of the character on graph paper, and then to manually convert Commodore display. Other enhancements include Save to each of the eleven columns into an 8-bit byte. The top Disk, Load from Disk, and Reverse Character. most row is considered to have a value of 128 decimal or The operation of the program is quite straight-forward. 80 hex. The next row is 64 decimal, 40 hex, and so forth. After the three special half dots are generated, the display The value of each dot that is to be printed in any column is is initialized. A character is generated in the upper left summed with all other dot values in the column to pro­ corner of the display. The + key is used to write a dot; the duce the column value. There is one 8-bit value for each - key to erase a dot; the up arrow to select the main column, and eleven columns. In addition to these eleven columns; and, the British to select the dots on bytes of information to define each character, you must the intermediate columns. The HOME, CLR and the cursor controls can be used for their normal functions. Function Keys 1 through 7 each have a specific function associated with them. These functions are listed on the display. SOPHISTICATED TELE-COMMUNICATION IS HERE FI READ CHAR # converts eleven bytes of data in memory accessable by the character number into a dot THE COMMUNICATOR display in the upper left comer. for 4.0 Commodore Computers F2 WRITE CHAR # converts the dot pattern in the JIM STRASMA’S REVIEW: working space into eleven bytes of data in memory “THE BEST TERMINAL PACKAGE I'VE SEEN YET” accessable by the character F3 READ NEXT reads By April 1 (maybe sooner) It Will Be Even Better the next character without requiring a number to be specified. SPEEDS UP TO 9600 BAUD XON — XOFF F4 WRITE CURRENT/READ NEXT combines a TRUE CTRL KEY (we do our own keyboard scan) write with a read to make entering of a number of consecutive characters more automatic. THE HARDWARE — A printed circuit board; easily installed in the CBM. It uses no CBM connectors; gives a serial port with true RS232C standard. F4 DISK LOAD loads a file specified by name from THE SOFTWARE — the disk to make it available for editing. — Emulates the AOOS Regent 100, ADM 31 and/or the TeleVideo 950.1 Or choose the VT100 model for use with DEC and VAX F6 DISK SAVE saves the character information that computers. is in memory on the disk. — Runs coresident with BASIC programs; lets SASIC programs and program on host computer communicate to develop real­ F7 REVERSE CHARACTER changes the dots on the ly sophisticated communication and control capabilities. main columns to blanks and the blanks to dots. Note that The program is on ROM at either address; no disk loading required. Uses only 512 bytes of RAM; wHI relocate itself around any other this will only work well with patterns that have no dots machine language program at top of memory. between the main columns. This is because the while the — Will upload and download and run BASIC programs. With BASIC FX80 can print half spaces, it can not print half dots. program w il upload and download standard data files. 100 page manual gives program listing for BASIC programs. Think about it. It is not as simple as it seems. Excellent text editor designed to work with THE COMMUNICATOR THE COMMUNICATOR $200 Text Editor $40 Program Description 1200 baud modems beginning at low, low $385, and even less when purchased with THE COMMUNICATOR AMPLIFY, INC. The subroutine at 5000 copies the standard ROM character 2325 Macbride, Iowa City, Iowa 52240 319-337-8378 set into RAM. Five new characters are defined by reading 1 trademarks Adds Regent, Inc., Lear Liegler, Inc., Televideo Systems, Inc. the DATA statements at 9000 and poking them into the character RAM. These five characters are a blank, a solid dot, the left half of a dot, the left and right halves of a dot joined 'back-to:back', and the right half of a dot. They are 36 MICRO No. 68 - January 1984 used to provided the intermediate dots for the even col­ the next even column? A number of tests are made to umns in the working display. The Character Dot-Data determine how the display must be changed. Base Address at 53272 is set to point at the RAM character Lines 600 to 2800 are a limited REVERSE function. It is set. easy to reverse a full dot by making it a space, or reverse a The subroutine at 5100 defines a number of variables space by making it a full dot. The problem comes in rever­ and strings. sing a half dot. While the FX80 can print a half space by Subroutine 4000 displays the basic editing screen. proper positioning of the printing mechanism, it can not Subroutine 1000 examines the data in memory for a print a half dot! The print head is only capable of printing a specified FX80 character. Each character is represented by full dot. So, it is not possible to accurately reverse patterns 13 consecutive memory locations. To make the testing that contain any half dots. The routine does the best it easier, the first and last location are always zero. The other can. When done reversing, it accepts a new character eleven locations contain the bit pattern for the FX80 eight- number. by-eleven dot matrix. Since the intermediate dots, those The routine at 6000 to 6140 saves the FX80 character on the even numbered columns, are generated by a com­ information on disk. It is called by the F6key. It requests a bination of display patterns - the specially defined patterns filename, the number of the first character to be saved and generated above - the prior, current and next memory loca­ the number of the last character to be saved. It outputs an tions all must be tested to determine the correct pattern to arbitrary attribute byte of 139 which defines each display. character as the upper eight printing positions on the FX80 Subroutine 1400 reverses the process and converts the with the full character width. The eleven bytes of data that display pattern into the correct memory pattern. define the information for the eleven columns on the FX80 The major editing service starts at2000. It displays the are then output. current character number and sets the cursor shape. There The routine at 6200 to 6300 loads the FX80 character are two cursor shapes used in this program. The first is an information from the disk. It is called by the F5 key. open circle that represents the odd columns. It is selected Lines 7000 to 7420 support the other basic editing by the Vertical Arrow located next to the RESTORE key. functions that include: Read a specified character, Write a When it is selected, you can write or erase in the six odd specified character, Read the next character, and, Write columns. The second cursor is a half solid that the current character number and Read the next. represents the even columns. It is selected by the British Pound Sign key, and when selected allows you to write or Generating Data Statements erase in the five even columns. Cursor up, down, left and right; carriage return, home and clear work area are sup­ Now that a new character set for the FX80 has been ported. A dot is written by positioning the cursor in the generated using the FX80 Character Generator, and is desired location, including selecting the correct full or half saved on disk as a sequential disk file, the question arises: cursor, and pressing the + key. A dot is erased by pressing How do I get it over to the FX80? The obvious answer is to the - key. first convert the sequential file to BASIC DATA The trickiest part of the program is probably in lines statements and then add a driver program that would 2200 through 2550 that determine what characters) output the character information, plus any special should be displayed as a function of the current mode - odd command information required by the FX80. Step one, or even column, the command to write or erase, and the generating the BASIC DATA statements from the information that is currently in the work area. For exam­ sequential file is simply handled by the FXPCG ple, if you are going to write a dot in an even column, you DAT AM AKER routine. Load and run the FXPCG must actually write a right half dot in one character posi­ DATAMAKER. It will ask for the FIRST BASIC LINE NO:. tion and a left half dot in the next. But what if the next Input a line number, say 10010. It will then ask for the position, the odd column, already contains a full dot? Or, FILENAME:. Input the filename that you used to save the even more difficult, what if it contains the right half for character information. The file will be loaded from disk.

1 REM FXPCG DATAMAKER - R.M.TRIPP 1983 2 INPUT "EFIRST BASIC LINE NO i " 5 LN 3 R0KE92, 48i P0KE56,481 C-256*961 INPUT "FILENAME! ";B$!C$* "SO:"+ BI +",S ,R" 4 OPEN 3,8,8,C*sPRINT"L0ADING":INPUT#3,FX,TX:F0R 1=0 TO TX-FX: X-CM *12 5 FOR J-0 TO 11:INPUT#3,CXsPOKE(X + J)fCX:NEXT J s NEXT I:E»X +11 sCLOSE 3 6 PRINT "2"i MIDl(STRI(LN),2);" DATA";FX;CHR$(44);TXiLN=LN +10:K = 1:GOTO 8 7 PRINT "2"j i K = 0 8 FOR I-K TO 6 s PR I NT MIDI(STR*(LN),2)\" DATA "j s F 0 R J = 0 TO 11 9 PRINT MID*(STR#(PEEK(C)) ,2)}CHR$(44);:C=C+1:IF O E THEN PRINT 256;i 1-6*J-l1 10 NEXT J:PR I NT CHR$(20):LN=LN+10 11 NEXT I: PR I NT" LN*" $ LN j “ : C = " j C 5 11: E = " j E 12 IF O E THEN PR I NT" QQGOTO 14":G0T0 16 13 PRINT "QQGOTO 7":G0T0 16 14 PRINT "2"J:F0RI=1T08:PRINT I:NEXT:PRINT "GOTO 15":G0T0 16 15 PRINT |:FOR I=9T016:PR I NT 11 NEXT 16 POKE 631,19: FOR 1 = 1 TO 9: POKE 631 + 1,13:NEXT:POKE 198, 10:END

No. 68 - January 1984 MICRO 37 You will then see DATA statements appear on the display, the display be cleared, and more DATA statements 30000 REM SCREEN DUMP appearing, until all of the characters have been converted 30001 OPEN 3,4 to DATA statements. Then the numbers 1 to 16 will 30002 FOR Y=0 TO 24 appear on the screen. At this point, the program is erasing 30003 FOR X=0 TO 39 itself! You are left with a BASIC program that is nothing 30004 A=PEEK(1024+Y*40+X> but DATA statement containing your character set. 3000-5 IF A< 32 THEN A-A + 64: GOTO 30010 Now all that is left is to add a short BASIC program in 30006 IF A >63 AND AC128 THEN A=A + 64: front of these DATA statements that will send GOTO 30010 initialization information to the FX80. The Character Set 30007 IF A >127 AND AC192 THEN A*A-128: for FX80 shows the additional DATA that is needed to set GOTO 30010 up a typical FX80 application. Lines 10001 to 10009 are 30010 PRINTM3,CHARI(A) the sequences that must be sent to the FX80 to perform the 30011 NEXT:PRINT#3,CHRI(13> specified operations. See the FX80 manual for additional 30012 NEXT:PRINT#3,CHR*<13> details. 30013 CLOSE 3 s RETURN All that you need to add is a driver program that will open up your communication channel, read and output FX80. Your conversions will vary as a function of how you the information contained in the DATA statements, and have defined the special characters on the FX80. you are on your way. The FX80 will now contain the characters you defined. What's Next

Using the New Characters A scheme to intercept the output of a BASIC LIST command and convert it will be presented next month. A You will need to write a short conversion program to complete PARALLEL driver will be described that includes output the correct codes to the FX80 to access the the cabling information and software to permit you to use characters you have generated. The SCREEN DUMP the FX80 with your Commodore without requiring a serial program is an example that was used with my character interface! This can save you quite a bit of money since the set. It can be appended to an existing screen editing serial interface on the FX80 is an option, the parallel program by listing it on the display, loading you editor, interface is standard. While it does take a bit of effort to get and then pressing returns on each line of the display. Then the FX80 working with the special characters for your add a command to your editor to go to the 30000 computer, it does provide you with a virtually unlimited subroutine, and you can dump your screen directly to the printing capability. 4MCRO"

HOW MUCH LONGER WILL YOU LAST?

How long can you endure? When will it end?... We’re not talking about a new shoot ’em up game for the Commodore 64, but Commodore’s own disk operating system! Commodore made a great computer in the 64 but left its disk operating system out in the cold. If you’ve been waiting for a true disk operating system, here it is!... If you’ve been waiting for a great BASIC language enhancement that will let you utilize the Commodore’s many special features, here it is! What is it? It’s grafDOS, the great new utility from Xylex Software that allows the user to actually become friendly with the Commodore 64! grafDOS includes commands like DELETE, RENAME, CATALOG, RUN, etc. The BASIC allows you to do high resolution and low resolution graphics, sound, sprite program, plus much, much more for a total of 40 commands! Plus included in every package is MINIMON, a powerful machine language monitor that includes another 20 commands for use in machine language. The disk also comes with sample pro­ grams and demos including a great music generator! And all this together is only $49.95! How could you have lasted this long without it?

DON’T WAIT ANY LONGER! Make your programming easier! grafDOS is available now at your local dealer or:

Visa/MC/Check/Money Order INT€R€STING SOFTUJflRC Add $2.00 shipping 21101 S. Harvard Blvd. CA residents add 61/2 # sales tax. Torrance, CA 90501 Dealer inquiries invited. (213) 328-9422

38 MICRO No. 68 - January 1984 /AlCftO TM Commodore Reviews

Product Name: Interpod Product Name: DIARY 64 Equip, req’d: Commodore VIC or 64 Equip, req'd: Commodore 64 Computer, 1541 Disk Price: $150.00 drive or Dattasette; Printer Optional Manufacturer: Oxford Computer Systems Ltd. Price: $39.95 Hensington Road, Woodstock Manufacturer: Computer Marketing Services Oxford 0X 7 1JR England 300 W. Marlton Pike U.S. Distributors: Cherry Hill, NJ 08002 SJB Distributors [609) 795-9480 10520 Plano Rd., #110 Dallas, TX 75238 (214) 343-1328 Description: DIARY 64 is a cartridge based file manage­ ment program. Files are set up in blocks which may con­ sist of up to 10 lines of 27 characters each. When the files Limbic Systems are printed out, only the first four lines of each block is 1056 Elwell Ct. printed. This allows printing names and addresses or like Palo Alto, CA 94303 information. The files may be saved on either tape or disk. (415) 964-8788

Pluses: The program is quite easy to use. The manual ex­ Description: This is an IEEE-488 and RS-232 interface for plains the functions quite well. Files may be set up using a the VIC-20 and C64. It is guaranteed compatible with all date rather than a block number and the file information programs. Though it lacks the BASIC 4 and monitor of can be accessed by data as you would use a diary. This RTC's C64-LINK, INTERPOD is a most important new seems to be the origin of the program's name. Blocks may product. Highly recommended. be added, changed or deleted as necessary. There is a search function allowing a particular record to be found by Pluses: Unlike other IEEE interfaces we've tested, it con­ block number, data, or "key" character. nects to the serial bus, like Commodore accessories. Thus, there is no need to relocate it and no problem with pro­ grams that use up internal memory. It easily links a Minuses: The blocks cannot be sorted nor can you set up VIC-20 or C64 to a whole network of PET/CBM or other and print out all files at one time. Each file record requires IEEE-488 devices plus an RS-232 printer, and it works fine the user to press the 1 'up-arrow' and the return keys to ob­ with most DOS-protected programs. When the computer tain a print out. addresses a device, INTERPOD sees if a device on the serial bus answers. If not, the call is transferred to the IEEE bus to see if any device answers there. If not, and the Documentation: The eight page manual contains all the device number is 4, it tries the RS-232 port. It ignores the information needed to use the program effectively. It is IEEE device when a serial device is on and can arrange clearly written and easy to understand. another address for the RS-232 device.

Minuses: INTERPOD goes off and sulks if you turn the computer off and on without also turning off INTERPOD. Skill level required: Beginning level user. A multi-plug switch solves this. When rechecking IEEE INTERPOD disk status, adds garbage after the valid infor­ Reviewer: Richard E. Devore mation; this hangs some data-handling programs. The cute, says the fairly adequate manual, is to send a ‘'clear" command to INTERPOD’s command channel before each new access — easy in your own programs, but impossible in protected commerical ones.

Skill level required: None to use the IEEE port. The usual high skill is needed to set up the RS-232 port.

Reviewer: Jim Strasma 4MCOO

No. 68 - January 1984 MICRO 39 260 REM HAYES TO RUN AT 300 BAUD. 270 REM 280 REM THE HAYES WILL OPERATE 290 REM LOCALLY AT HIGHER RATES 300 REM BUT NO HIGHER THAN 300 310 REM WHILE ON LINE. 320 REM 330 REM SEE YOUR USER'S MANUAL . ' . ■■■■■. ■/ v ■ ■ :■ ■■■■■ 3 4 0 REM FROM HAYES FOR DETAILS. ( > A l 350 REM v UI [VIVI1UUUI 1U 360 REM »»»*»**«****»»»#****#**#**# 370 REM 380 REM OPEN MODEM LINE FIRST THING Smart Modem 390 OPEN 2,2,3,CHRI(6) 420 DIM M l (5), SNI(9) 430 REM »»»»»»##*»»*»»##*»»»**#»##» 510 PRINT"uO ***** SMART MODEM *####" by John Kelty 520 PRINT" BY: KELTY ENGINEERING" 530 PRINT" *»»**#»#**»**#*»***#***" 540 PRINT: PRINT"CONNECT CABLES TO MODEM," 545 PRINT"COMPUTER AND PHONE Adapted for Commodore by Phil Daley COMPANY." 550 PRINTiPRINT: PRINT" (BREAK AND LIST THIS PROGRAM TO" 555 PRINT"SEE CABLE DETAILS)." 560 PRINT:PRINTi INPUT"PRESS ENTER WHEN READY";A1 570 PRINT"EQ" 580 PRINT#2,"AT Z":'CLEAR MODEM 590 REM I***####**##*#*#*##*####*#* 10 REM SMART300 600 REM MENU 20 REM WRITTEN BY JOHN R. KELTY 610 Ml (1)B "AUTO DIALING" 30 REM LINCOLN, NEBRASKA 68505 620 M l (2 ) * "AUT0 ANSWERING" 40 REM MODIFIED FOR C64 BY PHIL DALEY 630 FOR S-l TO 2 50 REM 640 PRINTS;Ml(S) 60 REM USE THIS PROGRAM TO CONNECT 650 NEXT S 70 REM AND PROGRAM THE HAYES 660 PRINTiPRINT: 80 REM SMARTMODEM TO THE PRINT"SELECT ONE OF THE ABOVE" 90 REM COMMODORE-64 COMPUTER. 670 GET Al:IF AI=""THEN670 100 REM 680 ON VAL(AI) GOSUB 700,1310 110 REM THE CONNECTOR CABLE SHOULD 690 GOTO 510 120 REM CONNECT TO THE RS-232 PORT 700 REM a****#*###***#****#**####*# 130 REM IN THE FOLLOWIMG WAY: 710 REM AUTO DIALING ROUTINE 140 REM HAYES PIN C-64 PIN 720 REM *###**##***###*##***#***##* 150 REM ------730 REM 155 REM 1 A 740 PRINT"CQ"Ml(1) 160 REM 2 M 750 PRINTiPRINT: 170 REM 3 B It C PRINT"1 DIAL A SAVED NUMBER" 180 REM 5 K 760 PR INT"2 DIAL A NEW NUMBER" 190 REM 6 L 770 GET Al: IFAI=""THEN770 200 REM 7 N 780 ONVAL(AI) G0T080D, 980 205 REM 8 H 790 G0T0740 210 REM 20 E 800 REM #####*##############*#* 215 REM 22 F 810 HM»2i 'HOW MANY NUMBERS 220 REM THE 300 BAUD HAYES MODEM 820 REM TO CHANGE THIS LIST, 230 REM MAY BE USED WITH MAKE HM=HOW 24 0 REM OR ANY OTHER TERMINAL 825 REM MANY ft YOU WANT TO LIST (MAX 250 REM PACKAGE THAT ALLOWS THE OF 9) .

40 MICRO No. 68 • January 1984 830 REM THEN INSERT LINES SIMILAR TO 1340 REM THOSE 1350 PRINT"GQ"Ml(2) 835 REM BELOW WITH YOUR NUMBERS AND 1360 PRINT NAMES. 1370 REM MENU 840 PRINT"GNUMBERS YOU CAN EASILY 1380 ANI (1)="DO NOT ANSWER" CALL"iPRINT 1390 ANI(2) ="ANSWER IMMEDIATELY" 850 SNI(l) 1400 ANI(3)■"ANSWER AFTER XX RINGS" ■"1 XXX-XXXX A FRIEND 1410 FOR SA=1 TO 3 M 1420 PRINTSAjANKSA) 860 SNI(2) 1430 NEXT SA ="2 XXX-XXX-XXXX A BBS 1440 PRINTiPRINT! tl PRINT"SELECT ONE OF THE ABOVE" 8 70 FOR K=1 TO HM 1450 GET Al:IF Al=""THEN 1450 880 PRINT SNI(K) 1460 PRINT"CQ "Ml(2) 890 NEXT 1470 ON VAL(AI) GOSUB 1490,1560,1720 900 PRINT! 1480 GOTO 1310 PRINT"SELECT ONE OF THE ABOVE" 1490 REM ######################### 910 PRINT"(BREAK AND LIST TO EDIT 1500 REM DO NOT ANSWER THESE NUMBERS)." 1510 PRINT!

920 GET Al! IF Al*""THEN920 PRINT" # # # " ANI ( 1)" ### "

930 NB=VAL(Al ) 1520 PRINT!

940 IF(NB<1 ) OR ( NB > HM ) THEN 800 PRINT"THE SMART MODEM ANSWER 950 PI=MIDI(SNI(NB),5,16) FUNCTION" 960 GOSUB1090 1530 PRINT" IS DISABLED." 970 RETURN 1540 PRINT#2,"AT S 0 = 0 “

980 REM ########################## 1550 GOTO 2040 990 PRINT:PRINT"DIALING A NEW NUMBER" 1560 REM ######################### 1000 PRINT! 1570 REM ANSWER IMMEDIATELY PRINT"TYPE IN THE PHONE NUMBER 1580 PRINT" ###"ANI(2) "###" THAT" 1590 PR I NT"THE SMART MODEM WILL 1005 PRINT"YOU WISH TO CALL. " ANSWER ALL" 1010 PRINT"EXAMPLESi 11 1600 PRINT"CALLS IMMEDIATELY." 1020 PRINT"1-800-XXX-XXXX LONG 1610 PRINT"USE THIS TO TRANSFER CALLS DISTANCE THAT" 1030 PRINT”112-800— XXX-XXXX FROM 1620 PRINT"ARE ALREADY IN PROGRESS LINCOLN BETWEEN" 1040 PR I NT"X X X-X X X X LOCAL 1630 PR I N T 11 TWO INDIVIDUALS TO CALL COMMUNICATION" 1050 PRINT 1640 PRINT"BETWEEN THEIR COMPUTERS." 1060 INPUT"TYPE DESIRED NUMBER";P$ 1650 GOSUB 1870 1070 GOSUB 1090 1660 PRINT#2, "AT"DPI"A" 1080 RETURN 1670 PRINT"AT THIS POINT YOU NEED TO 1090 REM ft************************* RUN" 1100 REM NUMBER KNOWN AT THIS POINT 1680 PRINT“OR EXEC YOUR OWN RECEIVER" 1110 REM READY TO DIAL 1690 PRINT"PROGRAM TO INTERPRET THE"

1120 PRINT# 2,"AT FO D"PI 1700 PR I NT " INCOMING CALL. " 1160 REM J************************** 1710 G0T02040

1170 REM YOU CAN RUN ANY TERMINAL 1720 REM *»»»»»»»»*»»******** 1180 REM PACKAGE THAT YOU WISH BY 1730 REM ANSWER AFTER XX RINGS 1190 REM EDITING THE NEXT LINES. 1740 PR I NTs PR INT " ###"ANI(3)"#»#" 1200 REM LOAD"MODCOMM.PRG",8 1750 PRINT! 1220 REM RUN PRINT"THE SMART MODEM WILL 1230 PRINT"EQYOU NEED TO USE YOUR ANSWER ALL" OWN" 1760 PRINT"CALLS AFTER THE NUMBER OF 1240 PRINT"TERMINAL PACKAGE AT THIS RINGS" POINT" _ 1770 PRINT"YOU SELECT (FROM 1 TO 255 1250 PRINT"(SUCH AS VIDEOTEX AND RINGS) '' OTHERS)." 1780 PRINT 1300 GOTO 2040 1790 INPUT"HOW MANY RINGS (I TO 255)"; 1310 REM ft******************* RG

1320 REM AUTO ANSWER ROUTINE 1800 RG = I NT ( RG ) 1330 REM *******»**»»*»»*»»** 1810 IF RG<1 OR RG>255 THEN 1790

No. 68 - January 1984 MICRO 41 1820 PRINTi 2080 PRINT: PRINT"THE PHONE WILL BE PRINT"THIS PROGRAM HAS ENDED." ANSWERED" 3000 REM THIS PROGRAM SENDS AND 1830 PRINT"AFTER"RG"RINGS." RECEIVES 1840 GOSUB 1870 3010 REM TRUE ASCII DATA 1850 PRINT#2,"AT"DP#"S0«,"RG 3020 DIMF'/. (255) , TX (255) I860 PRINT.-G0T0 1670 3200 F0RJ«32T064:T'/, (J)*J:NEXT 1870 REh ************************* 3210 T7. (13) = 13:TX(20)*8sRV=18:CT = 0 1880 REM FULL OR HALF DUPLEX 3220 F0RJ»65T090iK-J+32iTX-KiNEXT 1890 PRINT! 3230 F0RJ-91T095G TX(J)-JiNEXT PRINT"DO YOU WANT FULL OR HALF 3240 FOR J-193 TO 218:K«J-128:T‘/.(J)«K: DUPLEX?" NEXT 1900 PRINT"(IF YOU DO NOT KNOW, 3250 T'/. < 146) *16: TZ (133) *16 TRY HALF) . " 3260 FOR J*0 TO 255 1910 PRINTiPRINT" 1 FULL DUPLEX" 3270 K*T'/.(J) 1920 PRINT"2 HALF DUPLEX" 3280 IF KOOTHEN F'/. (K) = J : F7. (K+128) = J 1930 GET A$sIF A#=""THEN1930 3290 NEXT 1940 ON VAL(A*> GOTO 1950,1990 3300 PRINT " "CHRI(147) 1950 REM FULL DUPLEX 3310 GET #2,A♦ 1960 D P * - *' F1" 3320 IF A$=""OR ST<>0 THEN 3360 1970 PRINT: 3330 PRINT " "CHR$(15 7)i PRINT"FULL DUPLEX SELECTED." CHR$(FX)); 1980 GOTO 2020 3340 IF F'/. (ASC (A*) ) =34 THEN P0KE212, 0 1990 REh HALF DUPLEX 3350 fiOTO 3310 2000 DP*="F0" 3360 PRINTCHRI(RV) " "CHRI(157)! 2010 PRINT: CHR$(146);:GET Al PRINT"HALF DUPLEX SELECTED." 3370 IF Al< >""THEN PRINT#2 , 2020 PRINT CHR$ (T7. (ASC (A$) ) ) ; 2030 RETURN 3380 CT*CT+1 2040 REM #######*################# 3390 IF CT = 8 THEN CT = 0:RV= 164-RV 2050 REM EXIT ROUTINE 3400 GOTO 3310 JUCRO„

INCOMM SO COMPACT: Only 1!4 ' x 6 12 x 7 1 2 1.5 lbs. 115 N. WOLF RD. WHEELING, IL 60090 Fits in your coat pocket!

No. 68 - January 1984 42 MICRO /AlCftO Commodore Compass

by Loren Wright

High Resolution on the Listing 2 is a similar routine, only for multicolor bit­ Commodore 64 map mode. X and Y are the input. Remember X ranges from 0 to 159 because of the double-width pixels. The out­ any C-64 users don't even know that their put is the byte BY, byte contents BQ, bit pair BP, and posi­ machines have high-resolution graphics, let alone tion PO. Mknow how to use them! There is no mention in To use listing 1, perform the following set-up once at the User's Guide, and very little in the Programmer's the beginning of your program: Reference Guide. In this column I'll explain a little about these modes, and provide a couple machine-language 40 DIM P%(7),M%(7):FORI = OTO7: P%(I) = 2AI: utilities to make high-resolution programming easier. M% = 255 — P%(l): NEXT I There are actually two bit-map modes. One is a two- color mode (hereafter calledhi-ies bit-map mode) that pro­ The following calling sequence may now be used: vides resolution of 320 by 200 pixels. The other is a four- color mode (hereafter called m ulticoloi bit-map mode) 110GOSLIB 4000: REM X = 0 TO 319, Y = 0 TO 199 providing resolution of 160 by 200 pixels. Each mode uses 120POKE BY,BQ AND M%(BI) OR P%(BI) an 8K bit-map area and the IK color memory. In hi-res bit-map mode, each bit in bit-map memory To use listing 2, perform the following set-up once at the corresponds to a pixel on the screen. If the bit is a 1, then beginning of your program: the corresponding pixel appears in the foreground color; if the bit is a 0, then the corresponding pixel appears in the 40 DIM P%(3),M%(3):FORI = 0TO3: P%(I) = 4AI: background color. Screen memory is used to select the M% =255-P%(l):NEXTI foreground and background colors for each 8-pixel by 8-pixel area (the area normally occupied by a character). You may now use the following calling sequence: Bit-map memory is arranged to take advantage of this square-by-square color selection capability. The first eight HOGOSUB 4000: REM X = OTO 159, Y = 0TO 199 bytes in bit-map memory represent the pixels of an 8-by-8 12QPOKE BY,BQ AND M%(BP) OR P%(BP) square at the top left comer. The next eight bytes of repre­ sent the 8-by-8 square immediately to the right of that. This arrangement makes it a little more difficult to How to Set Up Bit Map Modes calculate a given bit, but the reward is being able to use many more than two colors on a high-resolution screen. The procedure shown in the Programmer's Reference In multicolor bit-map mode, the pixels are twice as Guide uses bit-map memory at $2000 (8192). This is ade­ wide and it takes two bits to specify the source of the color quate for experimenting with short programs, but the 6K 00 — background #0, 01 — high four bits of screen left for BASIC is not adequate for a program of any memory location, 10 — low four bits of screen memory significance. Listing 3 is a routine to set up bit-map location, 11 — color memory location. Each byte contains memory at $6000 (24576). This uses bank 1 for the VIC II, four bit-pairs, each of which corresponds to a double­ so the screen must be moved to $5C00 (23552). The result width pixel. The bytes are arranged in the same way as in is over 20K for your BASIC program. Listing 4 is a routine hi-res bit-map mode, and the little squares are the same to restore the multicolor bit-map mode. Listing 5 is a rou­ size (8 rows of 4 double-width pixels). Each little square tine to restore the normal screen. If you are using either may have only four colors in it, but there may be many listing 3 or listing 4, the first lines of your program must be: more than four colors on the whole screen at once. Listing 1 is a hi-res bit-map routine to calculate the 10 POKE 52,92: POKE 56,92: POKE 55,0: CLR proper byte BY, byte contents BQ, and bit BI, as well as 20 BA = 24576: OG = 23552: MY = 199: MX = 319: the proper position PO for control of colors. X and Y are REM MX = 159 for multicolor the input and represent the x- and y-coordinates of the hi­ res pixel. 0,0 is the coordinate of the upper-left comer. BA Line 10 prevents the BASIC program from writing over is the starting address of bit-map memory, and OG is the bit-map or screen memory. It must be the very first line in screen memory start address. These vary with the memory your program. Because the CLR instruction clears the configuration you choose. stack, as well as the variables, this statement cannot be in- No. 68 - January 1984 MICRO 43 eluded in a subroutine. Line 20 sets up constants used in MICRO) may be used to SAVE bit-map and screen memory the subroutines of listings 1 and 2. to tape or disk. To load, LOAD‘'name’', dv, 1, where dv is the device number. To SAVE color memory to tape, you Machine-Language Bit-Map Utilities must first copy it to a location below $8000 (32768), such as a buffer at $5800. Listing 6 contains a group of machine-language Finally, SAVE your program often. There is a lot to utilities in the form of BASIC DATA statements. Space keep track of, and therefore a lot that can go wrong. does not permit listing it in source format. Also included JMCftO in the listing is a routine to POKE the utilities into the cassette buffer and subroutines to call each routine. List 1: Calculate byte and bit In hl-res bit-map mode. Important note: The routines must be POKEd back 4000 REM CALCULATE BYTE & PIXEL into the cassette buffer after using either the cassette or 4010 RW= I NT <: V/8 > : CO= I NT < X,'8 :> :LN= disk or LOAD or SAVE operations. VAND7:BT=7- 4020 PO=40#RH+CO Set-up for routines: 4030 BV=BA+RW*320+CO*8+LN POKE 842,92 High byte of the beginning 4040 BQ=PEEK of screen memory. 4050 RETURN POKE 843,96 High byte of the beginning of bit-map memory.

Clear bit map: List 2: Calculate byte and bit pair in multi-color bit-map mode. POKE 840.CC CC is used to fill bit-map memory, 0 clears to back­ 4008 REM CALCULATE NEW PIXEL DATA ground color. 4010 RW=INT < V/8 >: CO=INT SYS 845 4020 LN=VAND7: BP-3- 4030 BY=BB+RW#320+CO#3+LN Clear color memory: 4040 BQ=PEEK< BV > POKE 840,C C is color to fill color memory. 4050 PG=40#RW+CO SYS 883 Execute routine. 4060 RETURN Clear Multicolor Co|or 1 or Hi-res Foreground POKE 840,C Color used to fill high 4 bits of screen memory without List 3: Set up hl-res bit-map mode. disturbing low 4 bits. 8000REM SET UP HI-RES IN BANK 1 SYS 898 Execute routine. 3001 REM HI-RES SCREEN $6000~$7FFF 3002 REM SCREEN MEMORY $5C00-$5FFF Clear Multicolor Color 2 8003 REM MCM OFF & HI-RES ON or Hi-res Background 8010 POKE 56578 r PEEK < 56578 > 0R3 POKE 840,C Color used to fill low 4 bits of screen memory without 8020 POKE 56576 , PEEK < 56576 > AND2520R2 disturbing high 4 bits. 8030 POKE 53272 , PEEK 53272 AND70R120 SYS 915 Execute routine. 8040 POKE 53 2 6 5 PEEK < 53265 > 0R32 8060 RETURN Miscellaneous Tidbits

If your program should happen to stop while in one of the bit-map modes, it may appear that you have lost con­ trol of your computer. One way to get out is to press STOP L/st 4: Set up multi-color bit-map mode. and RESTORE together. Another is to type GOSUB 8100 8000REMSET UP HI-RES IN BANK 1 and press RETURN. Even though you can't see any characters on the screen, the command will be accepted. 8001REMHI-RES SCREEN $600@-$7FFF Keep in mind that there is only one location for color 8002 REM SCREEN MEMORY $5C0&—$5FFF memory and it applies to whatever screen is in use at the 8003 REM MCM & HI-RES ON moment. Therefore, if you are in multicolor bit-map mode 8010 POKE 56578 , PEEK 56578 > 0R3 and you switch to a normal character screen, then any col­ 8020 POKE 56 5 7 6 PEEK < 56576 > AN02520R2 or changes you make here will also affect Color 3 on the S630POKE 53272 , PEEK >■. 53272 > AMD70R120 bit-map screen. One way to avoid this is to keep Color 3 8040 POKE 53265.- PEEK < 53265 > 0R32 the same for the entire screen. Another is to copy color 8050 POKE 53270,PEEKC53270 > OR 16 memory to a IK buffer at $5800. This area must be pro­ 8060 RETURN tected from BASIC by POKEing 88 instead of 92 in line 10. When you return to the bit-map screen, copy the contents of the buffer back into color memory. Terry Peterson's BSAVE procedure (September '83

44 MICRO No. 68 - January 1984 List S: Restore normal screen.

8100 REM RESTORE NORMAL SCREEN 8110 POKE 56578 ., PEEK < 56578 > 0R3 8120 POKE 56576 ,r PEEK < 56576 > AND2520R3 8130 POKE 53272 PEEK < 53272 > AND70R16 8140 POKE 53265 PEEK < 53265 > AND223 8150 POKE 53270.,PEEK <53270 >AND239 8160 RETURN

List 6: Machine-language routines, Installation and calling routines. 30 GOSUB8500 : P0KE843 I NT C BA/256 > ; P0KE842 I NT < OG/256 > 3100 POKE840.,C :SYS838 iRETURN:REM CLEAR COLOR 1 3200 POKE840,C :SYS315 :RETURN:REM CLEAR COLOR 2 3300 POKE840.,C:SYS883:RETURN:REM CLEAR COLOR 3 8500 REM READ IN ML ROUTINE 8510 XX=840:I=0 8520 READYV : IFYV=-1THEN8540 8530 PUKEXH+1 ., VY : I = I +1 : uuTO85i=i0 8540 RETURN

1 3000 DAT r k ' 4 0 ,f S d r 3 c l 3 5 r 1 I*" 3 r 7 5 ,r 3 , r 1 3 3 ., 2 5 4 c l 4 r 1 0 5 ., 3 d ., 1 4 1 , 7 6 ., 3 ., 1 6 , W r 1 •J -

1 9 0 1 0 DATA2531737231600 .,145 , 2 5 3 r 2 0 0 r 208., 2 5 1 r 1 6 5 2 5 4 ,r 24.-1051 ,

1 3 3 r ^54 r

13020 DAT A 7 6 r 3 r i ! 0 8 r 2 ' 3 6 3 6 ,r 1 6 3 T 2 1 6 ,r 1 3 3 r 2 5 4 r 1 6 3 ,r 0 1 3 3 ,r 2 5 3 ,r 1 6 3 2 2 0 r 1 4 1 ,r

7 6 . , 3 13030 DATA208218 ,173., 72., 3., 10., 10., 10., 10., 141., 72., 3., 16 3 .,15,141., 73., 3 ,208., 5 13040 DAT A 163., 24 0 .,141,73., 3., 173., 74., 3., 133., 254., 24105., 3., 14176., 3 ,163,0., 13:; 13050 DAT A 2 5 3 ., 168., 177., 253., 45., 73., 3., 13., 72., 3., 145., 253., 200., 240., 13., 132., 232., ci0y 13060 DAT A 233., 165., 254., 205,. 76., 3., 208., 232., 240., 4., 230254., 208., 226., 36-1 JMCRO

FOR APPLE II PLUS, FRANKLIN, APPLE lie Font Down Loader Expand the capacity of your printer hundreds of times Load custom fonts into your Apple® Matrix Printer, ProwriteiTM 8510A, OKI® Microline 92, 93, 84 Step II, and Epson® FX and use them with virtually every word processor to turn your printer into a custom typesetter. After the fonts are loaded, they will stay in your printer until it’s turned off. A font editor is also provided to allow you to create your own graphics, text, foreign language letters, math and electronics symbols to load into your printer. On-Disk (Specify Printer) ...... $3 9 00

New knpioved versions with drivers for Grappler, Pkaso, Wizard and most other intelligent parallel boards.

r»$100 REWARD-*-, m i c r o u m r E P.O. Box 113 Submit the best or most unique “There’s got to be a better way to load fonts!” font using the above software and we Pompton Plains, N.J. will make you $ 1 0 0 richer. Other prizes for the first 25 runners up. 07444 Dealer and Distributor Inquiries InvitedCALL (201) 838-9027

No. 68 - January 1984 MICRO 45 Atari To Smartmodem

By John Kelty Adapted for Atari by Phil Daley

his is an adaptation of my pro­ however, to have the Smartmodem gram for the Color Computer. near your computer setup, then you TThe hardware requirements are can hear the dialup and the send and the Hayes Smart Modem and the Atari receive carrier tones when you begin 850 commmunications interface. This communicating. There are many pro­ program was specifically written with gramming options you can choose with the serial line connected to port 1 of the the Hayes Smartmodem, and these are serial port (the standard port for com­ extremely well documented in the ex­ munications). This fantastic modem cellent Owner's Manual. |In case you can be programmed from Atari BASIC. have not guessed, I consider the Hayes The interface cable is a standard Smartmodem my best computing pur­ Atari communications cable — 9-pin chase to date!). D-connector to DB-25. If you want to The BASIC program is menu driven wire your own cable, here are the for ease of operation. If you BREAK and connections: then RUN the program again, the Smartmodem functions are cleared Atari Connector DB-25 ("AT Z" is sent to the modem). To write to the Hayes, you must access the 1 20 port in concurrent I/O mode (XIO 40) 2 8 and then use normal PRINT# com­ 3 2 mands. Now you can talk to your 4 •3 modem just like it was a printer with 5 7 PRINT#5, "your modem command". 6 6 To get back into the normal Atari mode 7 4 use CLOSE#5. It is important to read 8 5 back the information sent by the Hayes 9 11 modem or else the program will hang, and pressing reset is the only way to You need 9-conductor cable and I have recover. Also, the only way to ter­ used as long as about 25 feet without minate the program is by pressing reset. any problems. It is convenient Now you can use a communications

MICRO No. 68 • January 1984 package such as AMODEM or a similar BASIC and possibly some hardware, found in the Smartmodem User program to communicate with bulletin the Hayes Smartmodem can be made to Manual Appendix H. Obviously some boards or data bases. The program in­ send . Auxiliary relay con­ nice commercial terminal packages cludes a short subroutine to emulate a tacts are provided in the modem to key exist for the Atari, but this program has dumb terminal if you don't have a com­ the transmitter automatically. It can­ made me happy for some time now. munications package yet. not however, be made to directly With the Hayes Smartmodem and the I know little to nothing of amateurreceive morse code. Diagrams describ­ Atari Computer, I am sure you will also radio operations, but with a few lines of ing the modem to radio interface are enjoy computer communications.

Listing 1 KELTY ENGINEERING" •JC G U T U 5 0 0 530 PRINT " 10 REM SIMPLE TERMINAL PROGRAM ***********************" 11 REM TO GET AND PUT CHARS 540 PRINT : 12 REM TO AND FROM MODEM PRINT "CONNECT CABLES TO MODEM, 13 OPEN # 1 ,4 ,0 ," K.: " ii 15 OPEN #3,8,0, "E:" 545 PRINT "COMPUTER AND PHONE iiO GOSUB 400 COMPANY." 30 IF PEEK(764)=255 THEN 60 560 PRINT “ PRESS ENTER WHEN READY";: 40 GET #1 ,A:F'UT #3, A INPUT Al 50 PUT #5, A 570 PRINT " } H 60 STATUS # 5 ,XX sao GOSUB 400:PRINT # 5 ,"AT I": 70 IF PEEK (747)=0 THEN 30 GOSUB 450 SO GET #5, A: IF A = 0 THEN 30 590 REM *************************** 90 PUT #3, A:GOTO 30 600 REM MENU 10 1 REH SMART300 610 PRINT : PRINT "1 AUTO DIALING" 102 REM KELTY ENGINEERING 620 PRINT "2 AUTO ANSWERING" 103 REM WRITTEN BY JOHN R. KELTY 660 PRINT "SELECT ONE OF THE ABOVE" 104 REM LINCOLN, NEBRASKA 68505 670 INPUT A* 105 REM 680 ON VAL (A !) GOSUB 700,1310 1 0 6 KEM USE THIS PROGRAM TO CONNECT 690 GOTO 510 1 0 7 REM AND PROGRAM THE HAYES 700 REM *************************** 103 REM SMARTMODEM TO THE 710 REM AUTO DIALING ROUTINE 109 REM ATARI COMPUTER. 720 REM *************************** i l o REM 730 REM 111 REM THE MODEM CABLE SHOULD 740 PRINT " } AUT0 DIALING" 1 2 0 REM CONNECT TO THE 850 750 PRINT "1 DIAL A SAVED NUMBER" i 3 0 REM INTERFACE MODULE, / 6 0 PRINT "2 DIAL A NEW NUMBER" 140 REM PORT #1 770 INPUT A* 210 REM 780 ON VAL £ Al > GOTO 800,980 2 2 0 REM THE 300 £AUD HAYES MODEM 790 GOTO 740 2 3 0 REM NAY BE USED WITH AMODEM 800 REM *********************** 2 4 0 REM OR ANY OTHER TERMINAL 810 HM=2:REM HOW MANY NUMBERS 250 REM PACKAGE THAT ALLOWS THE 820 REM TO CHANGE THIS LIST, 2 6 0 REM HAYES TO RUN AT 300 BAUD. MAKE HM=H0W 2 7 0 REH dn ■- ij et REH MANY # YOU WANT TO LIST (MAX 2 8 0 REM THE HAYES WILL OPERATE OF 9). 2 9 0 REM LOCALLY AT HIGHER RATES 830 REM THEN INSERT LINES SIMILAR TO 3 0 0 REM BUT NO HIGHER THAN 300 THOSE 3 10 REM WHILE ON LINE. 835 REM BELOW WITH YOUR NUMBERS AND 3 2 0 REM NAMES. 3 3 0 REM SEE- YOUR USER'S MANUAL 840 PRINT " } NUMBERS YOU CAM EASILY 340 REM FROM HAYES FOR. DETAILS. CALL": RESTORE 350 REM 850 DATA "1 XXX-XXXX A 360 REM *#**#*#**#****##***#***'*##* FRIEND " 370 REM 860 DATA "2 XXX-XXX-XXXX A BBS 4 0 0 OPEN # 5 ,1 3 ,0 ,"R: " II 410 XI0 38,#5,0,32, "R :" 8 7 0 FOR K=1 TO HM 420 XI0 4 0 ,# 5 ,0 ,0 ,"R :" 880 READ A l: PR I NT Al 430 RETURN 890 NEXT K 450 GET #5, XX:GET # 5 ,XX 900 PRINT "SELECT ONE OF THE ABOVE" 460 GET #5, XX: 9 10 PRINT "(BREAK AND LIST TO EDIT IF x X < >10 THEN PRINT CHR*(XX); THESE NUMBERS)" 4 7 0 IF XXOIO THEN 460 920 INPUT A l: RESTORE 490 CLOSE # 5 :RETURN 930 NB=VAL(A$) 5 0 0 DIM A1(30) , P I (16) , DPI(2! 940 IF NB<1 OR NB >HM THEN 800 510 PR! NT "} * * * * * SMART MODEM 950 F.OR K = 1 TO NB: READ AI:NEXT K * * * * *" 955 Frl = A$ (5 , 16! 5 2 0 PRINT " BY: 960 GOSUB ). 0 7 0

No. 68 - January 1984 MICRO 47 970 RETURN 1600 PRINT "CALLS IMMEDIATELY." 7S0 REH ***#**#*; 1610 PRINT "USE THIS TO TRANSFER 990 PRINT "DIALING A NEW NUMBER" CALLS THAI" 1000 PRINT "TYPE IN THE PHONE NUMBER 1620 PRINT "ARE ALREADY IN PROGRESS THAT" BETWEEN" 1005 PRINT "YOU WISH TO CALL. " 1630 PRINT "TWO INDIVIDUALS TO 1010 PRINT "EXAMPLES:" COMMUNICATION" 1020 PRINT "1-800-XXX-XXXX LONG 1640 PRINT "BETWEEN THEIR DISTANCE" COMPUTERS." 1030 PRINT i 12-300- XXX-XXXX FROM 1650 GOSUB 1870 LINCOLN1' 1660 GOSUB 400:PRINT #5 , " AT “ ;DPt; "A"; 1040 PRINT “ XXX-XXXX LOCAL GOSUB 450 CALL" i 6 70 PRINT "AT THIS POINT YOU NEED I 0 6 0 PRINT "TYPE DESIRED NUMBER TO RUN" INPUT F'f 1680 PRINT "YOUR OWN RECEIVER" 1070 GOSUB 1090 1690 PRINT "PROGRAM TO INTERPRET 10S0 RETURN THE" 1 700 PRINT "INCOMING CALL. " 1100 REM NUMBER KNOWN AT THIS POINT 1710 GOTO 2040 II IQ REM REABv TO DIAL 1120 GOSUB 400: 1730 REM ANSWER AFTER XX RINGS PRINT # 5 ,"AT FO T D";P$: 1 740 PRINT " * * * A N S W E R AFTER XX GOSUB 450 RINGS***" 1130 REM IF YOU NEED PULSE DIALING 1750 PRINT : THEM PRINT "THE SMART MODEM WILL 1140 REM SUBSTITUTE A "F" IN ABOVE ANSWER ALL" LINE 1760 PRINT "CALLS AFTER THE NUMBER OF RINGS" 1170 REM YOU CAN LOAD ANY TERMINAL 1770 PRINT "YOU SELECT (FROM i TO 1180 REM PACKAGE THAT YOU WISH BY 255 RINGS)" 1190 REM EDITING THE NEXT LINES. 1780 PRINT 1200 REM RUN “D;AMODEM" 1790 PRINT "HOW MANY RINGS il TO 255) 1230 PRINT "YOU NEED Tu USE YOUR INPUT RG OWN" 1800 RG=I NT(RG) 1240 PRINT 'TERMINAL PACKAGE AT THIS 1810 IF RG<1 OR R G > 2 5 5 THEN 1790 POINT' 1820 PRINT : 1250 PRINT (SUCH AS TELELINK AND PRINT "THE PHONE WILL BE OTHERS! . " ANSWERED" 1300 GOTO 2040 1830 PRINT "AFTER"; RG;"RINGS. " 1310 REM a#**#*-*##***###*#*** 1840 GOSUB 1870 1320 REM AUTO ANSWER ROUTINE 1850 GOSUB 400: 1330 REM ******************** PRINT #5,"AT";DP*;"S0=";R6: 1340 REM GOSUB 450 1350 PRINT ">AUTO ANSWERING" 1860 PRINT : GOTO 1670 1360 PRINT 1370 REM MENU 1830 REM FULL OR HALF DUPLEX 1380 PRINT "1 DO NOT ANSWER" 1890 PRINT : 1390 PRINT "2 ANSWER IMMEDIATELY" PRINT "DO YOU WANT FULL OR HALF 1400 PRINT "3 ANSWER AFTER XX RINGS" DUPLEX?" 1440 PRINT "SELECT ONE OF THE ABOVE" 1900 PRINT "(IF YOU DO NOT KNOW, 1450 INPUT A* TRY HALF)." 1460 PRINT "} AUTO ANSWERING" 1910 PRINT :PR I NT "1 FULL DUPLEX" 1470 ON VAL(At) GOSUB 1490,1560,1720 1920 PRINT "2 HALF DUPLEX" 14S0 GOTO 1310 1930 INPUT Al 1940 ON VAL(Ai) GOTO 1950,1990 1500 REM DO NO I ANSWER i 950 REM FULL DUPLEX 1510 PRINT " ***DG NOT 1960 OP$="Fr1 ANSWER***" 1970 PRINT : 1520 PRINT "THE SMART MODEM ANSWER PRINT "FULL DUPLEX SELECTED." FUNCTION" 1980 GOTO 2020 1530 PRINT “ IS DISABLED." 1990 REH HALF DUPLEX 1540 GOSUB 400:PRINT #5,"AT S0=0": 2000 DF'*="FO" GOSUB 450 2010 PRINT : 1550 GOTO 2040 PRINT "HALF DUPLEX SELECTED." 1560 REM ************************* 2020 PRINT 1570 REH ANSWER IMMEDIATELY 2030 RETURN 1 5 8 0 F' R INT " * * * A N 3 W h R IMMEDIATELY***" 2050 REM EXIT ROUTINE 1590 PRINT "THE SMART MODEM WILL 2070 PR’INT "THIS PROGRAM HAS ENDED. " ANSWER ALL" 20b0 GQTU 10 JMCRO"

48 MICRO No. 68 - January 1984 already provided in the file 'D:SONG' to be loaded into your Atari. 7. When the song has been loaded, Atari Music Player Atari Player will tell you how many notes have been loaded, wait a few seconds, and then return to the original menu. 8. Press the 2 key to select the By Tom Marshall 'REPLAY SONG’ option. 9. You will now be treated to a rousing song played automatically on your Atari computer.

Using the Atari Player PLftY WHEN READY SONG:YANKEE DOODLE SPACE BARTO PAUSE,RETURN TO END SONG After choosing the 'PLAY SONG1 op­ A , r, OR K = REST _ 3 _ tion from the menu, the program will prompt you for the name of your song. (This is not the same thing as the file name that disk users have to supply when performing a save or a load. The name is saved with the song just for convenience and has no bearing on the song itself.) Then a representation of the Atari keyboard is printed on the screen in the format of a two-keyboard organ. The bottom row of keys represents the lowest notes, starting with 'C' and ascending alphabetically. The second row of keys represents the sharps and flats (black keys) that cor­ respond to the first row. Note that Atari Player enables you to play music Operating Instructions for Atari there are inbetween keys on the second on your Atari. It converts the Atari into Player Demonstration row of the Atari for every pair of first- a simulated organ with the organ keys row notes. This is different than the being represented by the keys on the The first time you use the Atari Player, normal organ keyboard and means that Atari keyboard, as shown above. Each you should listen to the song already some of the second-row keys do not note you play can be heard over one of provided on your cassette or disk to ap­ sound when pressed (A, F, and K). the Atari voices. The keyboard spans preciate how much can be accomplish­ These keys can be used to introduce three complete octaves, beginning with ed. To do this, follow the simple steps rests into your song. a low C and ending more than two listed here. The third row of keys represents the octaves higher with a B. Each note that 1. Using standard Atari loading pro­ second keyboard of the organ, starting is played is stored in memory so that it cedures, load Atari PLAYER. If you at middle 'F' and ascending to high 'B'. can be instantaneously replayed and are using a cassette, leave it in the The top row of keys represents the then saved on or disk. cassette unit; do not rewind it. sharps and flats corresponding to this Later you can load your song in again second keyboard. When you have 2. Type 'RUN' followed by the and replay it. mastered the keyboard, you are well on 'RETURN' key. We have included a feature in Atari your way to composing your own Player that allows you to stop playing, 3. You will be presented with the infor­ music. Read on. go back to correct mistakes, replay the mation that appears on the display At the beginning, the program waits song from the beginning to the current screen below. for you to start the song. This is one of note, and then continue playing addi­ 4. Press the 4 key to select the 'LOAD the few times when a pause doesn't tional notes. Absolute perfection is SONG' option. count. Once you start playing, the possible using the editing option computer keeps track of every note and 5. The display will ask for the file (number 5), which allows you com­ its length exactly as you play it. Prac­ plete control over every note that has name under which the song is tice a bit to get the feel of the keyboard. stored. been played. You can change the tone, It is not as simple as a piano, especially octave, and/or duration of any of the 6. If you are using a cassette, type 'C :' with the letters on the keys distracting notes,- or, if you wish, you can add followed by the 'RETURN' key. This you from what the true note is. The more notes or remove them altogether. will cause the next file [a prerecord­ white keys on the display have the ac­ With the Atari Player installed in ed song) on the cassette to be loaded. tual name of the note printed over the your computer you can make your If you are using a disk, then type keyboard name of the key to help keep Atari a musically instructive as well as 'DtSONG' followed by the you oriented. entertaining device. 'RETURN'. This will cause the song After you start a song, you may No. 68 - January 1984 MICRO 49 discover that you didn't mean to play a particular note. Fortunately there is a Listing 1: Atari Player/Editor mistake-recovery method. As soon as iO REM ATARI PLAYER/EDITOR you realize that you have made an error 30 OPEN **1 , 4 , O , "K : ■* : GOSUB 12600 (sometimes the first note is an error), 40 gosub loeee press the space bar to pause momen­ SO GET ltl,A:IF A < 4 9 OR A>55 THEN 5 tarily. You will be presented with O several options. 60 A=A-48:G05UB A«ieOO:GOTO 40 10OO PRINT : PRINT "Input: song name 1. CONTINUE allows you to start . . .**; : INPUT BS:IF B$ = ,,,‘ THEN B playing the song at exactly the point $ = "NONAME ■1 where you stopped. This is a useful ioxo v=e technique for the times when you 10*1015 GOSUB 14000 become confused as to which note 1020 D=e you want to play next; press the 1030 D = D + 1 : A = PEEK (764J : IF A =255 TH space bar to pause, regather your EN 1030 wits, and press 'C' to continue from 1040 POKE 764,255:GOSUB 9500:SOUND where you stopped. e,e,0,o 1060 IE A=12 THEN SOUND 0,e,e,O:MA 2. REPLAY will play the song up H=U+1:Wtu+H=0:GOTO 1120 through the current note so that you 1070 IE 0=33 THEN MAX=U+1:GOSUB 80 can inspect your masterpiece as you 80:GOTO 1015 input and make corrections if 1080 IF A>62 THEN A=3 necessary. This option can be chosen 1090 TP=A:SOUND 0,ASC(PITCH$CTP+1, as many times as you need it. TP+1JJ,,L 1100 V=ytl:IF U=LN THEN M(V)=0:G0T 3. BACKUP is the option for which O 1120 you've been waiting. This allows m o 1020 you to remove one note at a time 1120 POKE CF,O:RETURN from the current song, all the way 2000 ? "«PLAYING" : U = 1 back to the beginning if you want. 2010 IE H(U) = 0 THEN ? "?NO SONG IN When you make a mistake and press MEMORY":GOTO 9000 the space bar to pause, press the 'B' 2020 GOSUB 9200:IE TP=0 AND D = 0 TH option and the note you are erasing EN RETURN 2030 SOUND 0, 0 j, O, O : GOSUB 9800 : U = V + will sound. Another 'B' will erase 1 : IE U>=MAX THEN SOUND 0,0,0,0 the next note, and so on. Then press­ ; U = 'U=U-1 : RETURN ing ‘C’ will allow you to continue 2040 IE PEEK(764)<>255 THEN POKE 7 your song from the point to which 64,255:RETURN you have backed up. 2050 GOTO 2020 If, no matter how hard you try, you 3000 GOSUB 9100:OPEN tt2,8,O,F$:TRA P 3500 can't seem to get the song perfect, then 3010 PRINT t*2; BS the next step is to use the editor (option 3020 EOR U=1 TO MAX:? U2;U(U):NEKT 5], which will allow you to manipulate V the more obscure aspects of your song. 3040 CLOSE **2:? "SAVED " J MAX — 1} mm N OTES TO "; F$ : GOT O 9000 3500 CLOSE **2:? "FILE I/O ERROR" :G Using the Editor OTO 9110 4000 GOSUB 9100 : OPEN tt2 , 4 , O , F$ : TRA The Editor option enables you to fix P 3500 any minor (or major) mistakes that 4010 INPUT »2,B$ may creep into your performance. It 4020 INPUT tt2;A:M(U)=A allows complete control over every 4030 IE A > 0 THEN U = Utl:GOTO 4020 note in your song; the note, octave, and 4040 MAX = V: CLOSE «2 : ? "LOADED "; MA duration can all be changed to your X-l;" NOTES EROM ";FS:GOTO 900 specifications. And when using the in­ O sertion feature, you can start from 5000 POKE 201,5:POKE CE,l:POKE 82, 0 scratch and construct your own song 5020 U=0 without ever playing a note on the 5030 POKE CF, 1 : POKE 703,24:PRINT ■* Player keyboard! The Editor option is ■(CURRENT SONG: ";B$ the perfect complement to Atari Player. 5032 POSITION 0,1: PRINT The first thing that the editor does is to list the notes currently in memory "J:COLOR 2:PLOT 18,2:DRAUTO 18 in groups of 30. These are notes that , 19 have been either entered from the 5040 EOR XX = 2 TO 22 STEP 20:FOR YY keyboard or loaded in from a previously =3 TO 17:V=V+1 saved song. The 'Next' and 'Previous' 5060 GOSUB 9200:IF MtU)=0 THEN MAX commands allow you to page forward — U:POSITION MX,YY:PRINT "END": GOTO 5130 and backward through the note tables MICRO No. 68 - January 1984 20I ()0TE 5270 THENIF H(U)=0 5240 10 RN "HNE, QJELETE "BHANGE PRINT5170 OR, , 5150 V5150 = ASCCASAND :IF A5C(A$)>=48 0 PRINT5140 20I S""TE D = UAL(A$) 5290 THEN ASO"/" 5280IF Y=ASC(NTOCTS(TP+1,TP 5250 + 1)):0=IN 9200 GOSUB5200 54605190GOTO 5540 GOSUB5180 : 520 THEN AS="C" IF 5160 IF U=0 THEN 5430THEN U=0 IF 5160 5320 TON=0 FOR 5310 00NK YNX XX 703,4:POKE B,20:POKE POSITION 5130 YY:NEXT NEKT5090 NO5062 = A5C (NTOCT$ C T P + 1 , TP + 1 J ) : 0 = 1 5300 IF ASO"/" THENNS THENNS = ASO"/" 5300IF A$iIFIFLEN( 5080 POSITION KK,YY:PRINT U,;M KK,YY:PRINT POSITION 5080 5390 NT=N+0*12:F0R TP=0 TO 62:IF A 62:IFTO TP=0 NT=N+0*12:F0R 5390 0THEN = 5330ASO"/" IF VAL(AS) AS="2"THEN 5325VAL(AS)>2 IF " N$(2)="THEN 5302LEN(N$)=1 IF 5392 GOSUB 9500:REM PACK IT INTO MINTO ITPACK 9500:REM GOSUB 5392 40 RN "»5":GOTO PRINT5420 5030 V=0THEN5415V<©IF 5400 5200V=V+1:GOTO 5440 IF ASO"N" THEN 5450THEN 5440ASO"N" IF 6010 ? " NEM TEMPO -TEMPO NEM "6010 ? 5550 RETURN 5480 I FOR = VSTEP TOMAX 5 V=PP~30:GOTO THEN 5450 AS="C"IF 50305444 V=PP:GOTO 5443 PP IF PP<0 THEN = 0 703, POKE5442 24 : "»S":IFPRINT PP + 2 5 V=PP~60:GOTO THEN 5430A$-"P"IF 00? ? ? TMO = TEMPO ";S :? :? " 6000 ? 5999 END GET *tl5540 , A : AS 5510I= FOR =CHRS (A) HAX:H(I)=M(I TOV +: 1) A$=""IF : NE 5460 IF AS="D" THEN 5510 THEN5460 AS="D"IF 5458 RETURN 6020 IF S<1 THEN 60106020THEN S<1 IF o 6 - y 1984 ry a u n a J - 68 No. 6 RN (NT NUMBER: U PRINT260 "(SNOTE

270 AS270 cn = cn O NSERT" )<=57 THEN U=UAL(A5):PP=PP-30 U=UAL(A5):PP=PP-30 THEN )<=57 ORNT, NT (NO/13) : Y = NO-INT (NO/13)*13 : N PUT AS : IF T (Y/13) :N = Y-INT(Y/13)*13 ■■ PUT AS:IF AS="" THEN 5390 THEN AS=""PUT AS:IF AS AS:IF T = 5390 THEN"" AS="Z" THEN = IF $ = NTS ( Y * * 2 + l , Y*2 + 2 ) NS) > 5290 THEN2 T O ON.:OO 5290 OTEFOUND.":GOTO NOT + NNEXT THEN 2) S : N O 2 "?NPRINT SC CNTOCTS (TP + ,1 TP + 1) ) <>NT THEN 415 415 9> PP THEN MAX = MAX~30 TI:A=A-:OO 5140 :MAX=MAX-1:GOTO I XT 40 = M PUT S PUT 5540THEN (V) CF , O ,,M - S A NEXT TP NEXT ; o CI) i " ; D " PRINT "NEM NOTE "NEM . PRINT ,,,‘ : NEXTI : MAX = MA X + 1 : 51 GOTO : “NEMPRINT LENGTH:", :IN : OCTAVE:","NEM PRINT :IN [I" ■•□EXT, : ,,n - $ A IF : 2 1 QREUIOUS, NU AS:PP . INPUT = U: THEN 5140 THEN NT$(N*2+1JN« ::INPU 1:M(I — ICRO M IN : ; " QlJRRE + 1) O s ih h isr oto, o il be will you option, insert the with As them. yourretype .having to without andFor prompt.example, next the to valuejumps one that preserves prompt change. to want don't skip and unchanged note the of parts up your note in the note table andcon­ table note the in note upyour deletion. the after looks song the how Previous, see to option ‘Current' the use to 'Next, want the to returned note. that one erasing down effectively specified position, you one the ing note. a entered just have youand want Change song the looks. how see to now option 'Current' the use to You want might prompt. #' or Current, Previous, and position one forward entered) you one number whosethe (including notes change to want do but length, as such you that values remaining the entering youallows This note. next the aheadto they how see to together them play Experi­ amistake. making about worry expec­ is it signitself; number the want NOTE' prompt to give you another another you give to prompt NOTE' NOT ‘?NOTE the giveyou will it note, represents that number the into it verts program looks The ]'. 'by [indicated is in listed as etc., ac­ 'C#', be will 'C', are that cepted notes only the note, you specifications whatever to tion inser­ of point the at was that note the ‘Next, the to you returns then save to want you values the over skip will andit '/' press octave, or note the value, a change to want don't you if re­ without lengths the change to the of rest the leave will prompt other any at return Pressing menu. main to the you return will prompt LENGTH:' sound. then and notes changing with ment don't so disk, or tape the on notes any in­ an after used usually is option This ON. erradrtr ote ‘NEW the errortoand return FOUND.’ that find can't it If note. particular that rest A 13010). (line statement data the may you Again, #’ prompt. or Current, change does not it Also, number. not a ting does editor the that Note a time. at one memory, in notes current the the howlooks. song see to change or delete, sert, The change. to wish you that notes) chance to change it. change to chance note. same the at starting table the (or note the for look can you that so Cret cmad ipy redisplays simply command 'Current' h isr oto mvs l the all moves option insert The eee oe al h nts follow­ notes the all moves Delete any at return and the Pressing 'NEW the at return the Pressing change to you allows option '#’ The hn o ae rmtd o a new a for prompted are you When 51 Other Menu Options 6030 RETURN 7000 CLOSE «i:GRAPHICS O:E ND There are five additional menu 8000 SOUND 0,0,0,0:G0SUB 92 0 0 options that allow you to hear your 8010 ? POSITION 3,3 song, load a song from or save a 8020 ■■CHOICES :■■:? : ? song to the tape player, change the 8030 "SONTINUE" tempo of the song, or quit. 8 0 4 0 ? "HEPLAY1' Choosing option 2, 'REPLAY 8050 "□Jack up i n o t e 11:? -T- SONG,1 will play the song current­ 8060 ■■w h i c h ? ly in memory over the television 8070 GOSUB 5540!REM GET RO UTINE speaker. The routine uses the cur­ 8080 IF A$ = ,,C M THEN GOSUB 9200:SOU rent tempo for the speed at which ND O,O,O,O:RETURN 8090 IF A$ = ,,R M THEN GOSUB 2000:GOT to play the song. If there are no O 8010 notes in the song, then the error 8100 IF ft$<>“BM THEN 8070 '?NO SONG IN MEMORY' is 8110 IF U=0 THEN 8070 printed and you are returned to the 8120 GOSUB 9200:GOSUB 9800 : U = V - 1 menu. 8130 SOUND e,0,e,0:G0T0 80 70 'SAVE' and 'LOAD' options are 9000 FOR 1=1 TO 300:NEXT I :RETURN numbered 3 and 4, respectively. To 9100 PRINT :PRINT "H ton cassette save the current song, choose op­ Z E E C m tion 3 and enter the file name of 9105 PRINT Enter' filenane. . . " ; : IN the song to be stored. If you are PUT F$ 9110 U = l i I F FSO"C: 1 THEN RETURN using a cassette you can specify on­ 9150 ? "INSERT SONG TAPE AMD PRESS ly 'C :' as your file name. If you are [Us using a disk, the file name must be 9160 GET »1,A:? :POKE CF,0 :RETURN a standard disk file name. Note 9200 TP-INT(H(V)/lOOO) that this file name and the name of 9210 D=M(U)-TPttlOOO:RETURN the song you specify when you 9500 IF D> 999 THEN D = 999 choose option 1 (PLAY SONG) are 9510 H(U)=IHT(TP*1000+D):R ETURN not the same. The name refers to 9800 SOUND O, ASC (PITCHS CTP+ 1 , T P + 1 ) the name that you wish the song to j ,d s ,l be titled — for the sake of conve­ 9810 FOR 1=1 TO 5*D/8:NEKT I:RETUR nience only. The file name is mere­ N looee GRAPHICS O :SOUND 0,0 ,0,0:POK ly where you want the song to be E CF,1:SETCOLOR 1,0,0: SETCOLOR stored and applies only to disk 2,3,4:SETCOLOR , 7 , 6 users. If you are using a cassette- 10030 ? "ft*** AT ARI PLAY based system you will be prompted ER":? :? :u=o to press PLAY and RECORD on the 10040 ? " Q PLAY ONG" tape player. When the song is sav­ 10050 ■ ■ 0 REPLAY SONG" ed, the number of notes and the file 10060 -> S SAVE ONG" in which they are saved are 10070 □ LOAD SONG" 10075 s EDIT SIONG" displayed and you are returned to -> the menu. If you are using the tape 10080 13 CHANGE TEMPO" Q QUIT*" player, it will stop. 10090 loiee poke c f ,o :? CHOOSE Option 4 is similar in operation ? ";:RETURN to option 3. Remember that when 12000 S=10:LN=500 DS = 10 : L =8:CF-752 you LOAD a new song, you will 12010 D I M WCLN) ,PITCH5 C63) , N T S C 26 ) erase any song currently in ,FS(14),B$(20),N$(3),A S (3) , N TO memory; you must SAVE the cur­ CT$ C 6 3) rent song (if you want to keep it for 12020 RESTORE : BS = • ■ NONAME" later use) before loading a new one. 12042 READ PITCH$,MT$,MTOC TS The file name prompt will now 12050 RETURN appear. [If you are using a cassette, 13000 DATA r r {«!/» + < Q there are no file names that you 0D»L9**U»y¥lE»C*»e»H5» can specify. The tape will read 13010 DATA C C»D DtSE F FtSG GttO AS3B from where it was left last.) When LI the song is loaded, as when saving, 13020 DATA ^ ■»* t h | the number of notes and the file they were in are displayed and you A* ¥ ¥ / h are returned to the menu. Again, if 14000 POKE 82,2:POKE CF,1: ? "HiPLA applicable, the tape player will Y WHEN READY SONG:"; BS : SET CO stop. LOR 1,O,O:SETCOLOR 2,1 2 , 6 To change the current tempo 14010 ? "SPACE BAR TO PAUS E, RETUR setting, choose option 5. The N TO END SONG"; minimum (fastest) setting allowed 14020 ? "A, F, OR K -- REST is 11'. There is no restriction on the 52 MICRO No. 68 - January 1984 14030 ? .3. 2. ASCH Codes Because computers cannot handle 14040 ? **r I anything other than numbers, a ■ m I" method for handling characters such as 14050 ? "| I punctuation marks, letters of the ■ ■ ■ m I" alphabet, or any other character, is 14060 ? "I I needed. What has been devised is the ■ mm m I" ASCII codes (American Standard Code 14070 ? ”| I for Information Interchange), which are ■ m m m I" numerical representations of each 14080 I I I I I I I character for the computer to handle I I I" internally. Most users never see these 14090 "I S I 0 I El SI a I HI SI SI numbers for they are converted back to S I B I I 03 characters when displayed on the 14100 ? "| | | I II I II screen, but they are neccessary when I I I- 14110 ? "I a| M| e | RI t I v| uI z| dealing with such specific statements O | P | - I" as the Atari GET. 14120 ?

14130 ? , 2 _ 3. Using a Menu to Make a Choice: 14140 ? I Selection by Number I" When you run Atari Player, the first 14150? I display that you see is a list (or menu) I" that tells you what options are 14160? I available. Each item on the menu is I" selected by pressing the number 14170 ? I associated with it. The BASIC program I” steps required to evaluate your choice 14180 ? I I I I I I are in lines 50 and 60. I I I’ 14190 ? B « G E T * * 1 , A : HI HI SI SI SI HI SI IF A<49 OR h i h i sI" A > 5 S THCN 8 0 14200 ? ■■ I II IIII » m a;a-49i6osub I I AMieeeiGOTo 4a 14210 ? ■■ Z| X| C | V| B | N | M| , \ -l/l 14220 ? " — Line 50 gets the ASCII code for the “;:RETURN keyboard character pressed and stores it in variable A. The following IF.. .THEN statement checks to see whether or not maximum (slowest) setting, except one for the character being input and the character typed was a number. for the fairly large internal limits of one for the return key. The way around Note that, as stated above, the GET the Atari. However, even a setting this is illustrated in program lines 30 statement gets the internal code for the of just 100 will result in extremely and 50. character typed rather than the long notes. Line 30 opens the keyboard for in­ character itself. This means that the When you are finished with put. This means exactly what it seems: program has to check for the characters Atari Player and want to return to you can now input from the keyboard. 1-9 rather than the numbers 1-9. If A is BASIC, choose option 6. Always The open statement is usually used for less than 49 (ASCII 1) or greater than 55 remember to save any song that access to files on cassette or disk, but it (ASCII 7), then the character typed is you are currently working on can be used for any connected device, ignored and the program returns to line before choosing this option. If you such as the keyboard and even the 30 to get another choice from the forget this rule, typing 'GOT020' screen. The device specification for the keyboard. might enable you to return to the keyboard is 'K:', which is the open Line 60 does the actual branching to program without losing your song. statement's fourth parameter. the appropriate routine. Since the only Because a single keystroke input is options available are listed 1 through 7, preferred, the keyboard input for the and the program routines for each start Programming Concepts menu (line 50) is done with a GET. The on the line numbers that are multiples GET statement waits for one character of a thousand (1000-7000), the bran­ Using a Menu to Make a Choice of data from the keyboard; i.e., the ching to these routines can be done by 1. Input with a Single Keystroke single keystroke. Thus no carriage formulae. All that is needed to branch Normally input from devices is return is required and an option may be to the appropriate routine is to multi­ done with the INPUT statement. The selected by striking a single key. ply the option number chosen by 1000 only limitation of this statement is that However, the data input is not a and then perform a GOSUB to that it requires the input data to be followed character, or a letter, but rather a result. Thus, 48 (ASCII 0) is subtracted by a carriage return. Thus, any input number. This number is the numerical from the code in A to convert it to one from the keyboard using this method representation of the typed letter and is of the numbers 1-7. Then a GOSUB to would require at least two keystokes — called an ASCII code. the line number A » 1000 is performed. No. 68 - January 1984 MICRO 53 This is a useful space conservation tirely. For the beginner, using this loca­ 'eats' up 15 bytes plus 6 bytes for every technique. The only other way to do tion is rather difficult as the codes cell in the array. This is not including this would be to have a fairly large follow no obvious pattern. For in­ the space that is eaten up by the ON...GOSUB statement followed by stance, a space is a 33, the letter A is variable name and the DIM statement the starting line number of every 63, the B is 21, and so on. Therefore, itself. For example, an array that was subroutine. the user must know which keys to ex­ dimensioned for 100 cells would eat up pect ahead of time. The following short 15 plus 6 times 100 — or 615 bytes! 4. Selecting by First Letter routine can be used to discover the Therefore, the only array that we made If the space bar is pressed during the various key codes. After typing RUN, numerical was W, and it was dimen­ 'PLAY SONG,' then another menu is simply hit a few keys; their correspon­ sioned for a whopping 501 cells. Over displayed. ding codes will come up on the screen. 3000 bytes is used to store it. The first character of each item is However, things could be worse. displayed in reverse video to indicate 10 PRINT PEEK(764):GOTO 10 The W array has a little more informa­ which letter is to be pressed on the tion than normal crammed into it. In keyboard to select that choice. The Lines 1030, 1060, and 1070 show fact, that one array is made up of both routine that gets the characters from how Atari Player uses this location. the keystroke [for the note played) and the keyboard is at line 5540. Note that Note that it is POKEd with 255 after be­ the length of time that it is played. It this routine converts the number put in ing read. This insures that the same was necessary to perform such a variable A into a string (A$) via the key can be hit twice and registered as numerical combination to keep from CHR$ command. This is done so that two keys. That is, because the location wasting an exorbitant amount of the routine will return a string holding holds the last key hit, if you were to memory. But before we get into such a the choice as opposed to returning the hit, say, the 'Z' key twice, and if the space-saving trick, let's first examine ASCII value of the choice. That is, this location was not reset after each read, it how not to program the storage area. routine returns a letter, which is then simply would not change from the first As mentioned briefly before, each serviced by its own IF...THEN- 'Z' to the next. This means that two note that you play involves two pieces statement. notes would be read as one (with a of information that must be saved by Atari Player: the number (keystroke) of the note and the duration of the note. 8070 GOSUB 554©:REM GET ROUTINE We could define a two-dimensional 8080 Xr A$ = C THEN GOSUB 9200 S SOUND 0,00.©:RETURN array that contains a number for both 8090 IF A5-B THEN GOSUB 2000SCOTO parts of each note: e.g., DIM W(500,1) 00X0 8100 ir AS OB THEN 0070 would reserve space for 500 notes (the zero th element is not used) with two numbers per note. How much memory If there are only a few choices, as in rather long duration). Resetting loca­ do you think this would take? It really this example, then there is not a lot of tion 7 64 also allows us to keep track of is deceiving. Since 500 times 2 is 1000, code. If there were many choices, then the duration in the first place (line is that the total number of bytes re­ the amount of code to service the 1030). By checking for the 255, we quired? No! Each Atari BASIC array letters could be significant. know that the key has not yet been hit number requires six bytes of memory. 5. Accessing the Keyboard for Real- and that the duration should then be Therefore, it would take 6 * 1000, or Time Situations incremented. 6000, bytes of memory! On a 16K Atari The above method of selecting by (which, by the way, has only 13000 first letter using the GET statement is Space Saving with Arrays some bytes left after the operating fine for most situations involving input system has taken its share) that leaves with a single keystroke, but it is severe­ Atari Player uses many arrays — for the a little over 7K for the rest of the ly limited in real-time applications. storage of its notes, keyboard entries, program. This is because the GET statement and other such internal data. There are You have to get a bit tricky to actually waits for a key to be struck. many ways of storing this information squeeze more out of the song space; but For instance, suppose you were writing in the arrays. This section deals with there is nothing wrong with getting a game that needed to keep track of the the most economical way possible for tricky when writing programs. In fact, elapsed time between keystrokes. This storing the types of information that can be half the fun! To really would be impossible with the GET contained in Atari Player. squeeze the memory in Atari Player, statement because the loop required to we took advantage of the size of the keep track of the time could never be 1. Numeric Arrays number that the Atari arrays can hold. executed. Such was the problem in Atari Player could have stored all of its The two values that we need to keep for writing the PLAY SONG option, which information in the form of numerical each note played are the note number has to keep track of such things. arrays as all of its information is, in­ (0 to 38] and the duration (which is The Atari uses memory location deed, numbers. But numbers are very limited to 0 to 999 units). If only we 764 as the place to keep the last key hit. costly to store in BASIC arrays, could pack both of these individual That is, whenever a key is struck (no especially on the Atari. Atari BASIC values into a single number for storage matter what program is running) loca­ tion 764 is filled with a number that 5392 GOSUB 9580 : REM PACK XT XNTO WCVJ represents the last key pressed. But this number is not ASCII. This location uses the actual hardwired codes for the 9500 ir’»>999 THEM D=595 keyboard — a different set of codes en- 9S10 HCV)=I1ITCTIH»I000*0I {RETURN 54 MICRO No. 68 - January 1984 and then unpack them when we needed elements are of equal size this is fairly end of line 5062. Note that the to use them. Well, good news — we simple because the starting character elements in this case must be two can! position of any of the elements can be characters long: a note, 'C' for The technique to pack the numbers calculated using the index. Take for instance, followed by either a space or a is shown in line 5392. example the following lines: sharp sign, This equation is not as difficult as it may at first appear. 10 DIM NAMES(30) 2© NAME$="TOM DICK HARRYJIMBO W (V) is the array of notes where V RALPHBILLY" 1O0 INPUT INDEX: REM ------INDEX is the number of the note in STARTS AT O------the song 110 PRINT NAME$(INDEX«5+1,INDEX * 5 + 5) + TP * 1000 multiplies the 120 GOTO 10O keystroke number (0 to 63) by 1000 + D adds the duration value (0 to This routine simulates a string There is another way that strings 999) array where the elements are first are used in Atari Player. It is a bit more names. In Atari BASIC, to get part of a complex but basically entails the same All we have done is multiply the string, you specify the string name concepts. The difference lies in the fact keystroke value that we need to save by followed by the starting and ending that this method is used to store a enough to make sure it does not overlap character position of the substring you series of numeric values such as would with the duration value. This insures want. In line 110, what is printed is the normally be done with numeric arrays. that we will be able to unpack the substring that starts with character The savings are space and time and for separate parts later. The unpacking is a position INDEX* 5 + 1 and ends with the following reasons. bit more difficult than the packing, but INDEX*5 + 5. Thus, because the Strings use up only one byte of conceptually it is simple. All we need character position is calculated, every memory per character. A little more is to do is reverse the packing process. element must be the same length. If used up in the variable name and such, This is accomplished in the following they aren't, and this is usually the case, but that is essentially it. So, if we were lines: then the smaller ones must be padded to somehow convert every number that is in a numeric array (six bytes) to a 9 Z O B TP = INT (14 CU) /1O00) string character (one byte), we would 9210 D=W(V)-TP*1000:RETURN have a savings of five bytes per ele­ ment. Thus, a numeric array dimen­ sioned for 100 elements that would Line 9200 restores the note number with spaces. Every element must start normally eat up 600 bytes of storage by dividing by 1000. at every character position that is a could be made to fit in merely 100 Line 9210 restores the duration by multiple of some number in order for bytes. subtracting the note number this particular technique to work. Loading in the initial values in a multiplied by 1000. This simply The note symbols used by Atari string is very fast, whereas loading in returns the remainder that was sheared Player are stored the same way. They the initial values in an array is tedious­ off by the INT 1000. are stored initially in line 13010 and ly slow. This is because string loading The above lines of program take the then READ in as a single string (NT$) can be done with a single statement single integer value and convert it back in the initialization routine at lines and all the elements can be loaded in at into two separate parts. This method 12000 through 12050. Assuming Y is once; the elements in an array must be results in a 500-note song requiring the note number (0-12), the following loaded in one after another in a loop. only 501 array slots to store it, at six routine will set NS equal to the For arrays of ten elements or less, con­ bytes per number, for a total storage of corresponding note symbol: version to a string is hardly worth the just over 3000 bytes — only half the effort because the loading is so short amount that would be needed if we 10 N$ = NT$(Y*2 +1 ,Y*2 + 2) and, therefore, does not take up much stored the two values separately! time anyway. But for larger arrays, In fact, this very routine is found at the string conversion is definitely worth­

2. Simulating String Arrays NT$ is a string that holds all the possi­ 12000 5=10:LN=500:D5=10:L=8:CF=752 ble note symbols. Normally these 12010 DIM I4CLN1 , PIT CHS (63) , NTS 126) symbols would be entered separately in ,F$(14),B$(20),NS(3), AS (3),NTO a string array, but the Atari does not CTS C63) have this capability. (It does dimension 12020 RESTORE : B S = ■ "N ON A ME ■1 strings, but this refers only to the 12042 READ PITCHS,MT$,MTOCTS 12050 RETURN _____ lengths of the strings and that doesn't 13000 DATA rf" help us much.) Instead, all string infor­ 0D»L9»»U¥yVlElfC*VeVH5V<(l [*»JI2f mation must be concatenated, or * • ♦¥ 'strung together,' one after another in a 13010 DATA C CStD D«E F FttGGttfl fl«6 single string. This means that the only C3 way to access the different elements is 13020 DATA W I to access the different character loca­ VrV.t♦»+¥'“¥, .¥ ■ r¥»-•— ¥■■+» tions within the string. As long as the A 1 No. 68 - January 1984 M ICRO 55 \ while because the loading time of even element numbers off at one, or add one number that could possibly be stored in several minutes can be cut down to to the element number so that the ele­ one is 11111111 binary (255 decimal). only a few seconds at most. ment that was previously numbered Also, the number must be a non­ Lines 12042, 13000, and 13020 zero will reside at string position one negative integer. To get the number in demonstrate how the strings are stored (1 ]. Line 9800 demonstrates how this the string as an element it must be con­ and read in. latter method is used in Atari Player. verted to a character via the CHR$

There are a couple of problems 9800 SOUND 0,ft5C CPITCHS tTP + 1,TP + 1)) D 5 , L when working with these strings. First, when addressing the element you must, in reality, address the individual where TP is the index to the string function. This function will turn the characters of the string. That is, the array PITCH$. number specified into the character index that you would normally use to whose ASCII value is that number so access any of the elements in the The second problem is a little that it may be stored in a string. When numeric arrays is now the character tougher for the beginner to under­ accessing that element, to get the position in the string. But element stand. Since each character in a string number from the character, the ASC positions in arrays start at zero (0] is essentially one byte of storage inter­ function must be used. This function while string positions start at one (1 ]. nally, the size of the numbers you can converts the string specified Therefore, when accessing the data in store are limited to what a byte can (presumably an element in the string) strings, you must either ignore the store. Because, as you may know, bytes to its ASCII equivalent. (See Program­ zero th element entirely and start the are only eight bits long, the largest ming Concepts 2: ASCII Codes.)

/MCftO

Atari Player Variable Usage Constants CF POKE location for cursor inhibit DS Sound distortion L Sound loudness LN Last element available in W array NT$ String 'array' of all note symbols NTOCT$ Note/octave conversion from keystroke number PITCH$ String 'array' of sound pitches for conversion from keystroke S u re Variables A ASCII value from keyboard its insured? D Duration for current note I Loop counter SAFEWARESM Insurance provides full MAX Position of the zero element in the song replacement of hardware, media and purchased software after a low $50 deductible. (end of song) As little as j35/yr covers: N Note number (0-12) • Fire • Theft • Power Surges NT Actual note (0-12) plus octave (0-2) • Earthquake • Water Damage • Auto Accident O Note's octave Select the coverage you want from the table. S Tempo setting (speed of song) Amount of Insurance Annual Premium TP Keystroke/note equivalent Up to $ 2.000 $ 3 5 V Note pointer for song $ 2.001-$ 5.000 $ 60 W() Array of notes and durations $ 5.001-$ 8.000 $ 75 XX X position of editor's output $ 8.001-$11.000 $ 90 YY Y position of editor's output $11.001-$14.000 $105 Call for higher coverages. A$ Input string from keyboard Not avail in AK. IK . HI. KY LA MR. MS. W . SC, or WY. B$ Song name Call for immediate protection. F$ File name N$ Note symbol 1-800-848-3469 (In Ohio call 1-800-848-2112)

COLUMBIA NATIONAL GENERAL, AGENCY

56 MICRO No. 68 - January 1984 /AICRO From Here to Atari by Paul S. Swanson

The number of new peripherals you can add to your Atari provided in the manual and the three ports on the computer has been steadily increasing. The ATR8000 is a ATR8000 are edge card connectors. The printer cable device produced by SWP Microcomputer Product, Inc. that required the most work to assemble. The disk cable was adds CP/M and a few other interesting capabilities. relatively easy. The Radio Shack disk cables will work Another addition is a modem, which opens up a new with no problem, even when using disks which are not direction to microcomputer users. In addition to the Radio Shack disks. The only caution with using Radio modems which can be attached to the Atari computers Shack disk cables is that the drive selection is done in the directly, any RS232C modem can be used either with the cable, so you have to put the drives onto the cable in the 850 interface module or under CP/M with the ATR8000. correct order and the select on the disk drive must agree with the select on the cable connector. The ATR8000 The ATR8000 manual explains how to alter a Radio Shack drive to use it on the ATR8000. I ran into a slight This peripheral is actually a computer on its own and can problem with that, however, because the Radio Shack be used with or without an Atari computer attached. It drives I have are not the same kind as the ones described. If does have the standard Atari serial bus connectors, but it you try this and find you have the older Radio Shack can use any RS232C terminal instead of an Atari, drives, all that is required is to sever the only jumper connected through its modem port. across the connector inside the drive. When you open the I have had an ATR8000 now for about a month and use drive, which wire to cut will be obvious. it to connect three Radio Shack disks to my Atari Since most "bare" disk drives will work with the computer. With such a setup, the drives can be used as ATR8000, including 8" drives with an alteration, it is Atari drives when not in CP/M mode, or as dual density tempting to get an ATR8000 and two drives from a surplus CP/M drives in CP/M mode. electronics store instead of two Atari drives if you are Using the ATR8000 as a peripheral to the Atari upgrading to a disk system. Careful shopping can result in computer (i.e., not in CP/M mode) allows mixing the drives for less than $150 each. The ATR8000 lists at drives so that drive 1 may be connected to the disk port of $349.95 (16K without CP/M) or $499.95 (64K with the ATR8000 and may be a Radio Shack or other non-Atari CP/M), which adds up to $649.95 or $799.95 - less than drive and drive 2 may be an Atari 810 or 1050 connected the cost of the two Atari disk drives. You will still need the along the serial I/O bus. In the CP/M mode, an Atari 810 cable and a power supply for the disk drives, but if you do or 1050 disk drive may not be used. this, you will also have the printer connection with the Two other devices that can be directly connected to the 48K buffer and a modem port, plus CP/M if you get the ATR8000 are parallel printers and RS232 devices, such as a 64K version, not to mention the ability to add a third drive serial printer or a modem. When the ATR8000 is not being for under $150 if the power supply is adequate for three used for CP/M, it will act as a printer buffer for the printer disks. connected to it. A 64K ATR8000 provides a 48K printer Using CP/M with an Atari does have one serious buffer. This buffer will work for any printer attached to the problem associated with it, which is that CP/M requires parallel port on the ATR8000. It does not work for printers an 80-column screen and the Atari screen has only 40 that are connected using the Atari serial I/O bus or 850 columns. The software that accompanies the ATR8000 interface module. contains a program that turns the Atari into a terminal for A modem can also be connected to the ATR8000 using CP/M use. The screen is sectioned and moves back and its serial port. The modem must be RS232 compatible and forth to allow you to see the 80 columns with a 40-column is controlled directly by the ATR8000. The modem window. connected in this fashion is not available to the Atari There is a better solution for more serious CP/M users. computer as device "R :", but may be used under CP/M. A Austin Franklin has provided the software on a cartridge modem connected to the 850 interface may be used by the for the 800 to allow use of his 80-column board with Atari computer as device "R :" when not in CP/M mode. CP/M. The system runs on the Atari 800 computer. The There are several different configurations allowed with the 80-column board and the software for using it for the ATR8000, particularly if you also have an 850 interface. ATR8000 is available from Austin Franklin Associates, There are also a few drawbacks to consider. The device Inc., 43 Grove Street, Ayer, MA 01432, (617) 772-0352. does generate a large amount of television interference, The 80-column board lists at $289.95 and the software particularly if you use a ribbon cable connector for the allowing its use with the ATR8000 lists at $29.95. printer. It may even display an interference pattern on the television you use as a monitor for your Atari computer. A Telecommunicating with your Atari Computer ferric core is supplied with the ATR8000 to suppress this interference (by wrapping the cable from the Atari to the Modems create one of the more unusual ways to meet television around it) on your monitor/television. Another people. All over the country there are free bulletin boards problem is that you have to build cables. The pinouts are for computers to call. If you have a modem on your Atari

No. 68 - January 1984 MICRO 57 computer, you were probably informed amply about major national networks where you, for a fee, can tap in and take advantage of various services. In addition, there are many telephone numbers you can use to connect your computer to services that are completely free. These free bulletin board services, or BBS’s, are run mainly by private individuals on many different types of microcomputers. They provide a public message base, which usually have some interesting conversations that you can jump into, as well as other features. Many have downloading sections where you can obtain copies of public domain programs for your Atari. Some have “feature articles" which are the electronic equivalent of magazine articles. Most have private mail capability to allow you to communicate with specific other users if you have something private to discuss. There are also games available for you to play on many of these BBS's while you are connected. Bulletin files may be read, which tell you things about the computer you have connected with or about some recent alterations in J * * the services provided. Almost all of them also have a help rcp-2JSlvsSlt file you can read, which tells you how to operate the BBS. I am now involved with two of these BBS's. One I mentioned in a previous column, which is the Atari World section of the Outpost (617-259-0181). Another I have set up on my Atari computer. This one, Nite Lite, is on line from 6pm to 6am (eastern time) at 617-576-2426. Both support message bases and have bulletins, help screens and games. Both also answer at either 300 or 1200 baud and have lists of other boards in this area. In the near future, I will post a list of several boards in other areas of the country, so you will be able to call the number for Nite WORD PROCESSING TOTL.TEXT Lite (please take careful note of the hours) and get a list containing numbers that may be closer to you. MAILING LIST AND LABELS In many ways, these BBS's resemble the CB radios, TOTL.LABEL which allowed communication between people who have TIME MANAGEMENT never met. Some of the informality and lack of self- TOTL TIME MANAGER consciousness that CB radios created in conversations can KEYWORD CROSS REFERENCE be seen on the BBS's. The main difference between CB RESEARCH ASSISTANT radio and the message bases of these BBS's is that the messages have to be typed and can be reviewed. It seems to ______For Commodore 64™ and VIC 20™ ______result in more sophisticated conversation, almost always Announcing the newest members of the family... interesting and well worth reading. In addition to idle chatter, discussions concerning BUSINESS ACCOUNTING $ A C / national or local politics, critiques concerning news items . SUG 1 TOTL.BUSINESS F0R JF9 VRI RETAIL J and other discourse, the message bases are also a very good SPELLING CHECKER source of help for you concerning, among other things, your computer. If you are having a problem and don't TOTL.SPELLER (64 only) FOR $35( know how to solve it, you are looking for some hardware DATABASE or just some advice on making a decision, all you have to MANAGEMENT FOR $50( do is post a message on one of the local BBS's. You will TOTL.INFOBASE probably have several replies within a few days and if your problem is interesting, you may even see messages where other people have started discussing it on their own. The future of these free BBS’s looks very promising. As Ask your dealer about TOTL Software or send in the coupon for further an example of what can happen, both Nite Lite and the SOFTWARE, INC. details and ordering information. Outpost are members of BINEXNET, which is Boston quality you can afford INformation EXchange NETwork. One of the planned functions of this network is an exchange of mail (the 1555 Third Avenue, Walnut Creek, CA 94596 messages) among the member BBS's. If this is PLEASE SEND ME MORE INFORMATION ON TOTL SOFTWARE implemented successfully, this network will be looking to tie into other networks around the country to exchange Address: mail. The result, if successful, will be the electronic -2'P- equivalent of letter mail, except there will probably be no charge. JMCftO 58 MICRO No. 68 - January 1984 ;= Atari

TM /AlCftO Atari Reviews A

Product Name: VoiceBox D record may contain separate entries for “First Name1',, Equip, req'd: Ataii 800 computer with 40K of RAM "Last Name", "Address 1", “Address 2", “City", BASIC Cartridge Disk Drive “State", "Zip Code”, "Reference 1”, and "Reference 2". Price: $124.95 Features a random access search which claims to find any Manufacturer: The ALIEN Group file on the disk in less than 1 second. Supports use of up to 27 West 23rd St. 4 disk drives and multiple files on the same or different New York City, NY 10010 data disks. (212) 741-1770 Pluses: Menu driven and easy to use. Sorts on "Name2", "C ity", "State” , “Zip Code” , “Reference 1” in ascending Description: The VoiceBox 11 is a voice synthesizer that or descending order. Prints labels with or without the two connects in daisy chain fashion to the computer just as the reference fields. disk drives, etc. do. It is provided with three disks. These disks have the demo program plus programs and dic­ Minuses: You MUST read the directions carefully and be tionaries which allow the use of speech or singing in your sure to use OPTION 7-END to end the session or your BASIC programs. There are also several games included records may be lost. which take advantage of the speech abilities provided. Documentation: A twelve page booklet gives adequate in­ Pluses: The synthesizer may be used to include speech structions for the programs use. and/or music to any BASIC program. This can make educational programs much more interesting to younger Skill level required: Any computer owner with the prere­ children. You may also become a song writer and producer quisite equipment. for the Atari. A talking, singing head is provided complete with lip movement to match the sounds. There are two Reviewer: Richard E. Devore versions, one is just the outline of a head with eyes, JMCRO mouth, etc. while the other is full featured including hair. The latter was programmed by Jerry White and is quite good. C64-FORTH for the Commodore 64 Minuses: The use of the VoiceBox II is not easy if you FORTH SOFTWARE FOR THE COMMODORE 64 want the sound to be realistic. The speech is reminiscent C64-FORTH (TM) for the Commodore 64 - $99.95 of someone from a Spanish speaking country who is learn­ • Fig Forth-79 implementation with extensions ing English. In order to play the work back, it is necessary • Full feature screen editor and macro assembler • Trace feature for easy to have a VoiceBox //connected to the computer. Thus • 320x200, 2 color bit mapped graphics anyone who wants to use your speaking or singing pro­ • 16 color sprite and character graphics • Compatible with VIC peripherals including disks, data set, modem, gram would also have to have the synthesizer. printer and cartridges • Extensive 144 page manual with examples and application screens • "SAVETURNKEY" normally allows application program distribution Documentation: An eighteen page manual is supplied. without licensing or royalties This is sufficient to use the program but it could be more C 64-X TEN D (TM) FORTH Extension for C64-FORTH - $59.95 informative. New computer owners would have a difficult (Requires original C 64-FO R TH copy) time at first. • Fully compatible floating point package including arithmetic, relational, logical and transcendental functions • Floating point range of lE+38 to 2E-39 Skill level required: Intermediate computer user. • String extensions including LEFT$, RIGHTS, and MID$ • BCD functions for 10 digit numbers including multiply, divide, and percentage. BCD numbers may by used for DOLLAR.CENTS Reviewer: Richard E. Devore calculations without the round-off error inherent in BASIC real numbers. • Special words are provided for inputting and outputting DOLLAR.CENTS values Product Name: Mail List • Detailed manual with examples and applications screens Equip, req'd: Atari 400/800/1200XL with 48K Atari (Commodore 64 is a trademark of Commodore) TO ORDER- Specify disk or cassette version BASIC disk drive printer - Check, money order, bank card, COD's add $1.50 Price: $39.95 - Add $4.00 postage and handling in USA and Canada - Mass. orders add 5% sales tax Manufacturer: MMG Micro Software - Foreign orders add 20% shipping and handling P.O. Box 131 - Dealer inquiries welcome Marlboro, NJ 07746 PERFORMANCE MICRO PRODUCTS 770 Dedham Street. S-2 Description: Mail List program. This program will handle Canton, MA 02021 (617) 828*4209 up to 600 names per disk. It uses one complete sector per record and allows up to 125 characters per record. Each No. 68 - January 1984 MICRO 59 CoCo To 4-conductor cable and I have used as Now you can talk to your modem just long as about 25 feet without any like it was a printer with PRINT-2, Smartmodem problems. It is convenient however, to "your modem command". By John Kelly have the Smartmodem near your com­ To get back into the CoCo original puter setup, then you can hear the RS-232 mode, use the following: T he Radio Shack Color Computer dialup and the send and receive carrier (using same A and B as above) is certainly my favorite person­ tones when you begin communicating. POKE B,1: POKE A,0: POKE B,55: nel computer, but the RS-232 There are many programming options POKE A,5 connections are not exactly what I had you can choose with the Hayes Smart­ Now you can use a communications in mind when I read that it had a serial modem, and these are extremely well package such as the Radio Shack interface (how many other RS-232 in­ documented in the excellent Owner's Videotex or a similar program (see terfaces do you know of that use the Manual. (In case you have not guessed, MODCOMM elsewhere in the CoCo data input line as the printer busy?). In I consider the Hayes Smartmodem my section) to communicate (the Videotex any case, there are ways around these best computing purchase to date!). will set the data rate at 300 Baud as re­ things, and to connect the Hayes Smart The BASIC program is menu driven quired by the Hayes 300 model). Modem to the CoCo, I have written for ease of operation. If you BREAK and I know little to nothing of amateur this BASIC program (including a few then RUN the program again, the radio operations, but with these POKES) to change the RS-232 input/ Smartmodem functions are cleared POKES, a few lines of BASIC, and status line response. With this change, ("AT Z " is sent to the modem). To possibly some hardware, the Hayes the many automatic features of this write to the Hayes simply make the Smartmodem can be made to send fantastic modem can be programmed CoCo printer busy signal constantly morse code. Auxiliary relay contacts from Color Computer BASIC. high. I do this with software (remember are provided in the modem to key the I am presently using a “ 64K" CoCo that the modem is sending back infor­ transmitter automatically. It cannot with Extended Disk Color BASIC, two mation on that line as the data to however, be made to directly receive disks, and the "Solution" (from Frank CoCo) by programming the internal morse code. Diagrams describing the Hogg Labs). Since the program is fairly 6821 bit to be an output. Not to worry! modem to radio interface are found in simple, I am sure it can be modified for Remember somebody said that you the Smartmodem User Manual Appen­ whatever CoCo configuration you cannot type in anything into your Col­ dix H. Obviously some nice commer­ have. Most of the lines that are op­ or Computer that will damage it (See cial terminal packages exist for the tional are listed as comments. some past Rainbow editorials). This CoCo, but this program has made me The interface cable is made with a programming is accomplished with the happy for some time now. With the DIN plug at the CoCo end and a male following: Hayes Smartmodem and the Color DB-25P connector at the Smartmodem A65314: BA1 Computer, I am sure you will also en­ end. The pin connections are described POKE B,51: POKE A,1: POKE B,55: joy computer communications. early in the program listing. You need POKE A,4 JMCftO Listing 1 10 ’SMART300 340 ’FROM HAYES FOR DETAILS. 20 ’KELTY ENGINEERING 350 ’ 3# ?WRITTEN BV JOHN R. KELTY 360 ’tmmmmtmmmtm 40 ’LINCOLN, NEBRASKA 68505 370 ’ 50 ’ 380 ’RESET PRINTER BUSY TO WRITE TO HAYES 60 ’USE THIS PROGRAM TQ CONNECT 390 ’ 70 ’AND PROGRAM THE HAYES 400 A=65314:B=A+1:POKE150.180 410 POKEB,51:POKEA.1:PDKEB,55:POKEA,480 ’SMARTMODEM TO THE RADIO 410 POKEB,51:POKEA.1:PDKEB,55:POKEA,480 90 ’SHACK COLOR COMPUTER. 420 DIM M*(5),SNI(9) 100 ’ 430 ’tsmmmmmmtmm 110 ’THE CONNECTOR CABLE SHOULD 440 ’FOR CASSETTE OPERATION, YOU 120 ’CONNECT TO THE RS-232 PORT 450 ’CAN DELETE THE DISK CHECK, 130 ’IN THE FOLLOWING WAY: 460 ’BUT IT COULD BE LEFT IN, 140 ’ 470 ’WITH OR WITHOUT DISKS. 150 ’COLOR DIN HAYES CONNECTER 480 mmmmmmmmm 160 ’ 490 DK=0:’CASSETTE OPTION 170 ’ 1 CARRIER DETECT B 500 IF PEEK 149152)=68 AND PEEKI49153)=75 THEN DK=1 1S0 ’ 2 RECEIVED DATA 3 505 ’CHECK FOR RS DISK ROM 190 ’ 3 SIGNAL GROUND 7 510 :PRINT:PRINT” ttttt SMART MODEM MW 200 ’ 4 TRANSMITTED DATA 2 520 PRINT" BY: KELTY ENGINEERING’ 210 ’ 530 print1 m m m m m m t m t 1 220 ’THE 300 BAUD HAYES MODEM 540 PRINT:PRINT’CONNECT CABLES TO MODEM,1 230 ’MAY BE USED WITH VIDEOTEX 545 PRINT’COMPUTER AND PHONE COMPANY.1 240 ’OR ANY OTHER TERMINAL 550 PRINT:PRINT;PRINT"< BREAK AND LIST THIS PROGRAM TO1 250 ’PACKAGE THAT ALLOWS THE 555 PRINT'SEE CABLE DETAILS).” 260 ’HAYES TO RUN AT 300 BAUD. 560 PRINT:PRINT:INPUT”PRESS ENTER WHEN READY1yA$ 270 ’ 570 CLSsPRINT 280 ’THE HAYES HILL OPERATE 580 PRINTI-2,"AT Z1:’CLEAR MODEM 290 ’LOCALLY AT HIGHER RATES 590 ’tmm mm tmmm tm 300 ’BUT NO HIGHER THAN 300 600 ’MENU 310 ’WHILE ON LINE. 610 M*(1)=,AUT0 DIALING* 320 ’ 620 N*(2)="AUT0 ANSWERING" 330 ’SEE YOUR USER’S MANUAL 630 FOR S=1 TO 2 60 MICRO No. 68 - January 1984 640 PRINTS;h$HM THEN 800 1700 PRINT"INCOHING CALL." 950 P$=NID*(SN*(NB),5,16> 1710 GOTO2040 960 GOSUB1090 1720 'tttm ttm m tttttt 970 RETURN 1730 ’ANSWER AFTER XX RIN6S 980 ’tmtttttmtttttttttttttt 1740 PRINTsPRINT' ttt'ANtl3)-***- 990 PRINT:PftlNT’DIALINS A NEW NUMBER’ 1750 PRINT:PRINT'THE SMART MODEM WILL ANSWER ALL1 1000 PRINTsPRINT’TYPE IN THE PHONE NUMBER THAT’ 1760 PRINT'CALLS AFTER THE NUMBER OF RINGS* 1005 PRINT’YOU WISH TO CALL.’ 1770 PRINT'YOU SELECT (FROM 1 TO 255 RINGS)" 1010 PRINT’EXAMPLES:" 1780 PRINT 1020 PRINT’l-800-XXX-XXXX LONG DISTANCE 1790 INPUT"HOW MANY RINGS (1 TO 255)";RG 1030 PRINT’112-B00-XXX-XXXX FROM LINCOLN 1800 RG=INTIRG) 1040 PRINT’XXX-XXXX LOCAL CALL 1810 IF RG<1 OR RG>255 THEN 1790 1050 PRINT 1820 PRINT:PRINT"THE PHONE WILL BE ANSWERED" 1060 LINE 1NPUT”TYPE DESIRED NUMBER’;PI 1830 PRINT"AFTER"RG"RINGS." 1070 GOSUB 1090 1840 60SUB 1870 1080 RETURN 1850 PRINT#-2L"AT*DPI"S0='RG 1090 ’mttmtttttttttttttmtt 1860 PRINT:GOTO 1670 1100 ’NUMBER KNOWN AT THIS POINT 1870 ’tmmtmmmmttttt 1110 ’READY TD DIAL I860 ’FULL OR HALF DUPLEX 1120 PRlNTi-2,-AT F0 D"P$ 1890 PRINT:PRINT-DO YOU WANT FULL OR HALF DUPLEX?" 1130 ’ENABLE RS232 RECEIVE BIT 1900 PRINT1(IF YOU DO NOT KNOW, TRY HALF).’ 1140 POKES,1:POKEA,0:POKES,55:POKEA,5 1910 PRINTiPRINT"! FULL DUPLEX- 1145 STOP 1920 PRINT'2 HALF DUPLEX- 1150 IF DK=0 THEN 1230 1930 A$=INKEY»:IF A»="THEN1930 1160 ’ttttttttttttttttttttmttt 1940 ON VAL(At) 60T0 1950,1990 1170 ’YOU CAN LOADN ANY TERMINAL 1950 ’FULL DUPLEX 1180 ’PACKAGE THAT YOU WISH BY 1960 DP»=-F1- 1190 ’EDITING THE NEXT LINES. 1970 PRINT:PRINT-FULL DUPLEX SELECTED.1 1200 LOADM ’NODCQMM’ 1980 GOTO 2020 1210 FOR D=1 TO 2000:NEXT D:’DISK MOTOR DELAY 1990 ’HALF DUPLEX 1220 ’EXEC 2000 DPI=,F0" 1230 CLS:PRINT:PRINT’YOU NEED TO USE YOUR OWN" 2010 PRINT:PRINT"HALF DUPLEX SELECTED." 1240 PRINT-TERMINAL PACKAGE AT THIS POINT’ 2020 PRINT 1250 PRINT”(SUCH AS VIDEOTEX AND OTHERS).’ 2030 RETURN 1260 PRINT”IF YOU HAD PRELOADED A TERMINAL’ 2040 ’m m m m ttttm ttm t 1270 PRINT’PACKAGE WRITTEN IN MACHINE- 2050 ’EXIT ROUTINE 1280 PRINT"LANGUAGE. THEN SIMPLY TYPE EXEC1 2060 ’ENABLE RS232 RECEIVE BIT 1290 PRINT'AND PRESS ENTER." 2070 POKEB,1:POKEA,0:POKEB,55:POKEA,5 1300 GOTO 2040 2080 PRINT:PRINT“THIS PROGRAM HAS ENDED." 1310 tttmmtttmtmt 2090 EXEC 1320 ’AUTO ANSWER ROUTINE 2100 'TO USE THIS PROGRAM WITH MODCOMM 1330 ’t m m t m m m m 2110 ’YOU MUST ADD A SWITCH TO THE MODEM 1340 ’ 2120 'CABLE SO THAT PIN 1 CAN BE CONNECTED 1350 CLS:PRINT:PRINTM$(2) 2130 ’TO PIN 2 AFTER DIALING THE NUMBER 1360 PRINT 2140 ’SEE MODCOMM ARTICLE FOR EXPLAINATION M i r o n 1370 ’MENU______2150 END______No. 68 - January 1984 MICRO 61 reason or timing will be wrong and data will probably be lost. The hardware configuration of the RS-232C I/O port is as follows:

Pin Purpose MODCOMM 1 Carrier detect - CA1 Interrupt of PIA1 2 Data in - Bit 0 of Address &HFF22 on PIA1 3 Ground The Color Computer 4 Data out - Bit 1 of Address &HFF20 on PIA1 and Modem to Modem As the interrupt is currently wired (pin 1), it is useless for modem com­ munication. The carrier detect just checks for carrier on the modem. If Communication carrier exists, the interrupt is active (carrier is the medium that actually transmits the data over the phone lines). This would mean that com­ munication must be totally software controlled. Better use of this interrupt would enhance the computers ability to communicate to a mainframe. An interrupt can be used to force the MODCOMM explains how to use the Color Computer to MPU to a service routine. For instance, communicate to large mainframe computers. The the computer can be busy doing anything and still be programmmed so program has the Color Computer emulating a that when an interrupt occurs, it will dumb terminal. drop what it is doing and go to a vector address that will service the interrupt. After servicing the interrupt, it can then return to exactly what it was do­ by Walter Charlton ing before the interrupt. Since data coming onto the computer will always be at random intervals, I wanted to use odem to modem communica­ least 16K of memory, if you use an the interrupt line to bring in the data. I tion is often a necessary use of assembler package. did this simply by tieing the data in Mthe Color Computer. Radio The CoCo use the Peripheral Inter­ line to the interrupt so that when a bit Shack has a ROM pack that will make face Adapter (PIA) to communicate to enters the computer, it will force an in­ the Color Computer emulate a dumb external devices. While the PIA is an terrupt. This is a very simple technique. terminal; however, since the package is excellent device, it was actually de­ I suggest that you first purchase a in ROM, there is no way to add other signed for parallel communication. new serial I/O cable from Radio Shack. applications or features to the package. When it is used for serial communica­ This cable should be used only for The purpose of this paper is to show tion (for instance with the RS-232C), modem to modem communication. how simple it is to write your own ap­ the information must be passed to the Select one end and lift a small tab out of plications. Additionally, there is a pro­ adapter one bit at a time. Timing loops its slot which will allow you to pull gram with this paper that will do most must be designed to wait the proper bit back the outer shield. The inner shield things the Radio Shack package will. time for baud rate timing. can now be separated which will bare The paper also shows the use and ad­ There is also a drawback in the soft­ the wires. Cut the wire to pin 1 (the vantages of interrupts. ware. The processor must be totally pins are numbered on the front) and The program listed here is com­ dedicated to input or output at the time solder a small piece of wire from pin 1 pletely relocatable, so for those CoCo of communication, so a great deal of to pin 2. After putting it all back owners that only have 4K of memory, processing time is wasted. For in­ together, mark the modified end. This you can load the object code beginning stance, if the processor is bringing in end will be the one that plugs into the at any location and it will work. The information from the RS-232C I/O CoCo. We are now ready to start on the in the listing will take at port, it cannot be interrupted for any software. 62 MICRO No. 68 - January 1984 forced low by the peripheral. The FIRQ volt pin which is slightly indented. interrupt is tied to the PIA so the jump After installing the program pack, it Software vector address is in &H110 and can be executed by typing EXEC 49152. &JH111. These addresses are loaded Without the use of the interrupt, with the start address of the subroutine The Program the data in line would need continual DATAIN which is the service routine checking. The interrupt significantly for the interrupt. The final job of the The program has a few features that reduces the software needed for com­ initializing routine is to able the inter­ have not yet been mentioned. It will munication. I will first discuss the out­ rupt in the condition code register so output nearly the full spectrum of con­ put routine and then the input. Most of that the interrupt will be recognized by trol characters. The downward arrow the programming of the PIA is done on the MPU. When an interrupt occurs, acts as the control key. It has a power up of the computer so nothing the MPU will go to addresses &H110 backspace key that when used with the more is needed on that. and &.H111 to get the service routine shift key, will output the delete/rub Lines 1700-1900 are the transmit address and will then execute it. After character.Both lower and upper case routine. All that is needed to transmit executing the service routine, and RTI characters are recognized, displayed is a store command to the address command will return the processor to and output (lower case letters have a &HFF20.The data is held in register A the point before the interrupt. dark background). By using the shift of the MPU as shown in the DATAOT Subroutine DATAIN (lines and clear keys, the program will be subroutine. Bit 0 is then shifted into 1230-1610) works just the reverse of exited. Without the shift key, the clear the carry bit with the LSRA command. subroutine DATAOT. The first thing key outputs the escape character. The This is followed by two rotate left com­ that needs to be done when entering break key will output the control C mands that position the bit into the the subroutine is mask any interrupts. character. Shift zero will set the transmit location of the B register. The If this is not done, the computer will keyboard to lower case characters and B register is then stored into &HFF20 start interrupting interrupts as data output upper case only when the shift which transmits the data. After comes into the computer. Another key is used. transmitting the entire byte, two stop thing that needs to be done upon enter­ This program does have a few bits are normally transmitted which ing the routine is to save the state of all weaknesses. The program cannot send are logic ones. Often one of the stop registers. The FIRQ interrupt will only and receive data at the same time. This bits is not used. Also, some systems save the program count and condition would take a great deal of software and use parity, so if the program listed here code register, so the rest of the registers has little value so I did not put it in. I does not work, check with your must be saved to assure that nothing did, however, mask the interrupts go­ systems people to get what is needed. will be lost when returning. ing into the data out routine. This will You should note the branch to the The HBWAIT routine is a half bit allow the operator to transmit data subroutine WAIT in DATAOT. This is wait. It is necessary to center the recep­ even if a long receive message is com­ the baud rate timer. This routine can be tion so that slight errors in the timing ing in. One or two characters may be used for both transmit and receive, and will not matter., Address &HFF22 is lost, however, on receive. is currently set for 300 baud. For the data address for receive. The data is There will be some difficulty in in­ reasons I will explain later, it cannot be in bit 0 and after a load of the data creasing the baud rate on this program. set for a baud rate higher than 300 in register, two rotate commands are Screen control and scrolling are done the program listed here. needed to position the data in the A during the two stop bit times. Since The loop value for the baud rate register. The RORB moves the data into screen control takes a great deal of timer is found by the following steps. the carry bit and the second shifts the time, any increase in the baud rate will First, find the cycle time of the CoCo data into the A register. Since the inter­ result in garbage on there screen during by dividing the clock time (.895 MHz) rupt is the CA1, it is necessary to read scroll. As it was, I had to reduce the into one. Second, find the baud rate the PIA data register A (&HFF20) to half bit wait to get the screen control time by dividing the baud rate (300 clear then interrupt. This should be in. If it is necessary to communicate at baud) into one. Third, divide the com­ done just before returning. a higher baud rate, the received infor­ puter cycle time into the baud rate time A further comment needs to be mation will have to be buffered and to find the number of cycles for each bit made on interrupts if using a program displayed when the processor has time. Finally, the wait loop takes ex­ pack for assembly. The program pack more time. actly 8 cycles, so after taking you the forces a continual interrupt that cannot The program, as listed here, is just overhead (about 10 cycles), divide the be cleared. If this is not disabled, the one use of the Color Computer's ability above value by eight and the answer is program cannot be executed with the to communicate to mainframe. Other the time for one bit wait. This pro­ pack installed because the interrupt uses could be for preloaded programs cedure works for any baud rate. will always be active. The simplest for later transmissions, downloading Before discussing the receive way to disable the interrupt is by put­ from a computer or use as an intelligent technique, I will talk about how to set ting scotch tape over pins 7 and 8 of the terminal. Happy computing! / / y c ftO up the interrupt routine. Lines 640-720 program pack. These pins can be found show the routine that prepares the by viewing the pack from the top. Hold Walter Charlton has his MBA from the computer for interrupts. Bit 0 is forced it with the plug at the top and points 7 University of Nevada, Las Vegas. He high in address &HFF21. This is the and 8 are the first ones on the top and teaches computer programming part time control address for the A side of PIA1. bottom with copper runs from the right and works as a Field Engineer for a major By forcing the bit zero high, the inter­ side. You can tell if you have the proper computer manufacturing firm. rupt is activated when CA1 is end because just next to pin 7 is the 5 No. 68 - January 1984 MICRO 63 o u i ( n o *-«co ui- CJ_u OE I— o3 co -Xtn H-zcn a: Q UJ Lfci u < c z M (O u r ^ z « t-fle a >- k LU UJ O uj liJ 3 ~ S S_ 3 _ 4C4 2; t _ j* U------K Z a K O UJ (J *“• o:co CJ^*CJ^uucnui^:^ UJzts‘^; CJk CLH- *— LU gQOo>-_iOuiOflaa:>--Joa zuizg

H’UiOOc'viu. « a . monOQu.Lk«h U.a o u i k 4f» 4»0w^4»0* Saet-u a jc n n — - - ___ fleQiCLUl UlUlzZctdCzUz3Bct^0^o3C^ZEZ(i)UIZ-J3r>A cjA ^A uA uA l^A^(0_j cj cm clo cjz ^o h cn a.a

J -o -o^>o^-o~o-o ^r-.r"»i***, r*^-gocooogdoooocdqgdcoo*o*q- O'o*> ^ n v tn v i ^ i s 2£SS52SS5S5SS25S5SSS5S59S95«5«5«5*5f'««!®«='-‘^-'!?-«^-*

i)inrsnou.«H OOrxrs.r

CD LlJ^ P 3 ■ COatLliiCO cn _|UJ B o .> ^ — — ^ cn ^ lu ^ + A cn i ^ ^ «>k uj ■ ■• Vi ® 3 ^ UJU.M CC —l*“ in^ ^-+ ♦CM *0+ ®t«2 w^riS^. ujSC > z -t*OC4: ac A- ^ c n * * • «2ft52>—i ^ ->**cn• » lu lu z a-J H OC3fc O K

a««*^Sooo^r «s(Va« ®-«S in'OmiflDa: MW^^^r^^ininioinioinioin-o^S^iSiSSlili*« o » ^ r ^ x c o ® ^ wr^c»'«ou.«»ti!!S<5y <34;r,!!?!P CMOO CMGO CMGO CMOO OOCM CMOO CMGO OOC1'* GOCM CMGO CMOQ CMGO CMGO CMOO GOCM OOOOCM CM CMOD OOCM CMOD CMOD CMOD GDCM CMOD CMGO • cn ^o LU 60 ^ (Dp: ►— CJ Cm -cn Ou a ^cd —_ Q H u j= 3C =:C t*f£ • - * •—•a •—•Q z S ^ i q p 4 c »-•« > £ « ui z n lu u jq 9 c H - h — ~*^ H“ QfX ^ deZcrCO ^ ^ Vt 2 * 4 n 5 J*/uj a . a . 3 uiOucj i— {Jjcv. ^ — >( o£oc 3 •—•— ««oc i-a:i_Si-Xi->OA So- S ocffi ^ Sa>« £S““*tt:a:o*S “ljE§g3*S“g§ ^^3 R •“t“_ KtoyiuWi-p«;ouiujuih=o= ui5o2SOft.OEH£ uiSu3uiOa.aci.a: O a ^ •-_ £J _ s =« !«•£ stsiiss“ I u.Sg^ig_gg^_u.S”5S3“^g£ glff^aasSSE o *S® J~“*:T““~~e3E~2ES:==«^ Ui ^JOOnh 9EZ^4I H- *—U-~ i-"Ir X —z (J(D(J Scag 3(Qq ga5e» “=§ :s<£ sS~Seau.00«*isS S *,='i3£S_u.g *2" sii£ a k i~£o= oc 2S“sSs=Si“=2a«tLg5«=3^c auao_iiiiL a.S)-iDKon3ii.o(Bl«K ass ac ac « LU csscssLi co«Scstjcocn = s s « • • ro«> «, «■££ “ S i— cn co (n h > c^ h - o h - «cn a go q qq ^ Tju* 3 J?ui m> u .^ o ^ i« ^n h r a «■ qqq ^ ^ t. _q r j - V 3 S 3 Q= 2 jtS®« 5t. ex. m 4?

S* g S liitf B

Iij «Q ^O > .

_ CN, in« Ulu . i 4CH5,s‘9'0i ,*,OK<>*rs‘0,n

cn •__ * l b oc og sLU -25 *— uj lua u cj j scS lu u c d z zc • (n >* UJ ^ OC Ify I UI^-UI^- m ■ JJJa c a c cycouj k £ z i — ujuj a ujuio.>uJa.aezH- J^H-CLcn^ .oszz oc h -Z a ujoe ^* h - z <^cj-J4;«Ja:^z>(ocnxcn iiiL4ai(x.a.4(La4H«MOM^cJa:H- h — * *cj^»-i xoujuiki-zSm CJZH>4 *-«CO Zi- m ca nh a cn ►-. cn cn nn cj »-icn cj q, —J 3:« —i m (JXH>4CX e X CD A O CO I— |— ^ o ^ o aoc oc u iz u j c q c i o o> « < C 3 Q Z(r— X ^UJXUJ H- H- hT- T H- U CJ J »-iLU LU ac a. •OSCJ>0>'CJ>CJ0(J^UMZCDU ou *oc^ (DMCOS a A )-cnui I— X • Mi— CM - x x CJ z CJ » LU QQ x :qclu>lu z >•Jb«x « 5 m* I XK>SA« A A 4»04»0 «CJ u . 4» «- 1*0 zc Joc c n o SOSI-UJK > U j O &.

)0'^A^vt«-'(Mi.«^Nio^in ^’•r^^*r^inmininininininin -Orsa)

A CM QQ cm CJ® CM «4akaa«|CMQUJ«|CJl&>0«CM«*0LLUI «~t

^■ o^ci® ^cujvt-o-4ct^,-o*4-o.^rv^r,s«^rvw«in«Hin«N^‘«io-oinAUJ a cm a a cm n^o^CMCJQoroLLin^niocM^^aCMaCMaMoacMaDCMaiCMaDCMaDaAi^ioa) Q U .*H <-oaa^Q >3o.O -iaxQ Q -oc«i>(noQ f 3333»««S®£“3d£Sa333S;5^35S£££e

SOC * g ae = corJ UJ •= s h tr:

in 0 » NNW■o-o*o«.rsrsrsa3cn®a3®®S®S®?‘,®‘^th CNNMtN(NCN(MCMCNN(NNNW tNN(NN(MN(NN(MN jq C4

«touL^'rou.ciC i««kC N O ^«rs^u^-!ncN «rooo«H (N u^ru.ui< too co ao®ao®9tui cn co as co .alA.fs>H ps.g>om c>O in-O fvV>p> ^i.i^t.iLu^ujm cN K iw ainiucD tM ^t-jooLuatN tatf^w A ijLM -oO 'nuiisc^inr^cQ Q uiQ i cs ‘raacaui«roinr*.0‘O uiLLUI u. r*- CN

uj z co ui n > __ «ui O OC UI ■—t OC UJ U I—< W * U j- J Z ® t l 4: co ^ q CJ ui CJ X OE H- ^ CJ u. o co OE ■ cjd co >— _ cj >» co/x cn z CJ CJ UI Z Q Z O UI III aj ^ » |— | , i ^ CD ^X ^ OC OE I i^j LXl LxJ Z SC Q X X |JLi1 * * OE bL 41 OE 41 • ■• ■ ■■! OE "Jt CO Z UI Z UJ OEU|4!zOEx4;mO0UJhHm uj __I O UIr> 3 o uj lu cn lu i— x ^ lu cn lu h- cd o pq cn x ‘i x cn » tn < c ^ 4: h>w > lu OEUh.(P tf uiH>ZH>Z a:gCJr.ZQQEZUI2QEtjr>-QUJzUIUZC>U^QujQ4 4 co «x X4^ui O m UI O uj rn o LU K UI ° X QCU, O x S X uj H- Q 3C LU OE Q X O X O iLU IQ O o O C jE X tiE Q X LU O * CD CD m Z cD ® ® « U 4 : m ® U ® U CO Cn CD CJ >• A _j CO CJ JCCJ CD CO >* CD —I CD ~l n X c jtt0 ( J > C D C - J tjQ u Z > CO CD —J CO

OE UlLL z «a£ - CO I— OE w ^ CD _ _ 5® 3: n CD zOxUla 91 3S^a4KL.^CJ W u (L * ^ Z IL w Q t ^ Z »-“ <» t t - J ___CMCJ<0 >(N >-«C O » >.CM>.UI>|“N®X^W^X5^®«2S£2S]2^i.2!l£5^f“,2 U i« > Z 0 > 4* 0 4» > UI i J -^x-r 4»mQo> -Ui »H4»3»»Z»M»Qi^4»»>>»»X>Uiy Q # Q | J L 4 K » < j# a c ;Z # -0#Q (E#C Z*Q *Z*#^0*(D 0## v «»«4PtJ •'OE »

<*y --, q a ^ ^ pQ 414| 41 41 ^ _ CO QEo.atf ttft tuQ-mQgrnafngflaflatf Q.Bi4fltt»taata4:Q.OI

S z o £ K CO MC V CD ® E £ i £ £ £ 2 £ £ £& I z Z ca u j 5 Ui o 2 S a jE SS 2 u U z OE Z OE Z X z Z K CD O CJ Qt C&Vk® 9k 9k ® 9 | 91 9 k 91 9 k 9191 9191 91 91 91 91 9k 91 9k 91 9k 91 919k 919 i 9k 9k 91 9k 91 9k 919k 91 9k9k9k9k9k9k9k9k9k9k-».. 9k^cNro^in'Or>®0'«k^(Nro^in'Or^®Ch9k^9t^MKi^'in'Or^oo'9k^rsto^rin'Or»®i>(a^cNKi^nn r*Hr" ,r " ,r" ,r" ,^ (Vi^ c,y4£,|(Vi^ (Virv|(ViMw MroM rtW M M rt^^^^»^.»^^-^inioin»n«in*r»inin««

$4CN(Q^9t^9i^CN|9lrs|’49r0A M 91 Ch 9k(M9kC'4Q*4^>r4OMCJqb^,(M9lMlv<>QkCN^-9k«>^(M9l9kCNa0^CN(V<«l^i4‘^iQk*rv«suj^ •^®M(NUIU,)inc0- •p4;4;4;4;4C

A discussion of subroutines that allow sound as a form of input.

the Color Computers Owner’s Manual. To test the procedure, turn up the I developed the program in listing 1 to volume on your monitor and type All Sound Subroutines look through each address, pausing AUDIO ON. If the procedure was com­ require: momentarily at each one. pleted correctly, you should hear your amplified voice issuing from your TRS-80 Color Computer with For noise, I grabbed the nearest cassette. Some routines music cassette I had on hand, put it in television speaker. With the require Extended BASIC. the Color Computer's cassette recorder preliminary set up now complete, we and pressed play. I ran my program, sat are ready to discuss three subroutines back and waited. My wait was a short that should get you sufficiently one. At memory location 65312, I familiar with the of sound input By Sean Moyer noticed the content display flickering to help you to develop your own sound rapidly. I recorded the location, and subroutines. letting the program run, I found several The first subroutine is a voice ac­ W hile waiting for a particularly more locations showing identical tivated binary input. When the pro­ long program to cassette load behavior. The change on the display gram receives a sound, the routine is during one of my late night was binary two for the low state, three turned "O N ". When the next sound is programming sessions, I began to for the high. recognized, the routine is turned ponder the possibility of voice control All that remained now, was to "OFF” , and will alternate "ON” and for my Color Computer. Visions of ex­ substitute my voice for the prerecorded "OFF” with each additional sound. ternal amplifiers and analog to digital input. The procedure for accomplishing Specifically, the program will check converters danced through my mind. this varies, depending on the type of memory location 65312. If this loca­ Next to dance through my mind were cassette you own. For the older black tion contains a 2, the low state, it visions of the price tags that accom­ model, with built in microphone, returns and checks again. If the loca­ panied these pieces of equipment. I was simply remove the plug from the tion contains a 3, indicating the about to abandon this line of thought "M IC” jack on the left side of the unit. presence of sound, the program im­ when my attention was caught by the Next, open the cassette compartment mediately prints ON. The next se­ steady hiss of the program loading in. It and remove the cassette. Now, care­ quence in the routine is a FOR/NEXT dawned on me that I probably had fully inspect the upper lefthand comer loop. This delay loop debounces the everything I needed right in front of of the compartment. There will be a switch, which is to say it allows the me. I realized that in order for a pro­ small stud there. Push the stud toward sound that activated the switch to end. gram to load in from the cassette the back of the unit. While holding it Without this delay the voicing of a player, the input from the player had to down, press Record and Play. word such as ON or OFF would be suf­ affect any number of memory locations The process is the same for the ficiently long as to turn the routine off in the area of memory devoted to I/O. more recent models with one excep­ and on several times in succession. The All I needed was a source of sound for tion. You must plug an external memory location is checked again in the cassette player and a program to microphone into the "M IC” jack. With the manner previosly mentioned, and look through the area of memory this accomplished, the recorder is when a sound is recognized, the pro­ devoted to I/O. I found the range of now sending your amplified voice to gram prints OFF and goes through a de­ memory addresses devoted to I/O in the computer. bouncing loop. The program returns to No. 68 - January 1984 MICRO the beginning and repeates the cycle. for activity. Listin g 2 If the program fails to operate and The third and final program differs you determine it has been entered cor­ from the first two in that instead of a rectly, reset the computer. Under straight binary input, it uses a sampling 10 REM LISTING 2 special circumstances, such as the use routine to approximate an analog in­ 20 REM VOX BINARY INPUT of the AUDIO ON or PLAY commands, put. This program displays the analog 30 REM BY SEAN MOYER the contents of memory location 65312 approximation in PMODE 4 graphics, 40 REM 50 REH CHECKS FOR SOUND may be other than 2 or 3. If the program oscilliscope style. This is the only 60 IF PEEK (65312! = 3 THEN 70 ELSE 60 gets number other than 2 or 3, it will routine that requires Extended BASIC. 70 PRINT"ON" crash. Resetting the computer should In addition, because the program uses a 30 REM DELAY LOOP restore the program to operational order. real time graphics display, I have in­ 90 REM DEBOUNCES SWITCH 100 FOR I = 1 TO 200 : NEXT I cluded the high speed poke (POKE This is the least complex and least 110 REM CHECKS FOR SCUM useful of the three routines presented 65495,0). If the high speed poke does 120 IF PEEK (65312) = 3 THEN 130 ELSE 120 here. It serves basically as a primer for not work on your system simply 130 PRINT-OFF" the next two programs. The next two remove it from the program. This will 140 REM DEBOUNCES SWITCH slow down the routine, though the 150 FOR 1 = 1 TO 200 : NEXT I routines are more complex, and they 160 GOTO 60 should prove more interesting and results should still be acceptable. useful as well. The routine begins with the high The next routine we will discuss is speed poke and then prepares the the voice operated dictation shown in graphics screen. This is followed by a listing 3. This program is designed to threesome of nested FOR/NEXT loops. Listing 3 record whatever you say, deleting the The outer loop controls the initial ver­ 10 REM LISTING 3 long periods of silence between tical placement of each trace line. The 20 REM VOX DICTATION phrases. To run this program, leave a next loop in controls the rate at which 30 REM BY SEAN MOYER blank cassette in the recorder before the trace sweeps horizontaly across the 40 REM 50 REM CHECKS FOR SOUND you press record and play. screen. The innermost loop is the heart 60 IF PEEK (65312) = 3 THEN B0 ELSE 60 of the program. This is the sampling 70 REM ACTIVATES RECORDER The program begins by checking routine. For every point on the horizon­ SO MOTOR ON memory location 65312. When a sound tal sweep, memory location 65312 is 90 REM DELAY LOOP/CONTINUITY is recognized, the recorder is activated sampled six times. 100 FOR I = 1 TO 300 by the MOTOR ON command. The 110 REM IF DICTATION IN PROCESS The routine sums all six samples, 120 REM REINITIATES DELAY LOOP delay loop that follows serves a and stores the sum in variable T. It 130 IF PEEK (65312) = 3 THEN 100 somewhat different purpose than that then subtracts a constant (12 in this 140 NEXT I in the VOX binary input. This loop case), so that six samples taken during 150 REM DEACTIVATES RECORDER prevents the recorder from shutting 160 MOTOR OFF a period of total silence would give T a 170 GOTO 50 down during the short pauses between value of zero. T is then multiplied by a words in a sentence, or even shorter constant (4) to give the graphic dis­ silences in the words themselves. The play proper amplitude. The grahics dis­ program begins the count from 1 to play comes directly after the sampl­ Listing 4 300, and checks memory location ing routine. 10 REM LISTING 4 65312 inside the loop. If at any time a These routines will help you under­ 20 REM OSCILLISCOPE sound is recognized, the program stand the workings of the cassette audio 30 REM BY SEAN MOYER begins the count again from 1. This 40 REM input port, and hopefully they will be 50 REM HIGH SPEED POKE MAY NOT way, if the pause is short, the loop re­ useful to you in your program library. 60 REM WORK ON SOME SYSTEMS initiates, leaving the motor on. If the 70 REM REMOVE IF INOPERABLE pause is long, the routine will complete 80 POKE 65495.0 the loop, and the recorder will be shut You may contact Sean Moyer at. 1825 90 REM PREPARE GRAPHICS SCREEN down using the MOTOR OFF command. South 17th Street, Fargo, ND 51830. 100 PMODE 4.1 110 SCREEN 1.1 Finally, the program returns to the begin­ 120 PCLS ning and waits for the next sound. 130 REM VERTICAL PLACEMENT LOOP If this program is used for dictation Listing 1 140 FOR V = 26 TO 191 STEP 25 150 REM HORIZONTAL SWEEP a small preliminary sound, such as a 10 REM PROGRAM 1 160 FOR H = 4 TO 255 STEP 4 finger snap, might prove necessary for 20 REH MEMORY SEARCH 170 REM SAMPLING ROUTINE total legibility. When the first sound is 30 REM BY SEAS MOYER 180 T=0 sensed the motor is activated, but it 40 CLS 190 FOR I = 1 TO 6 50 REM I IS ADDRESS RANGE takes a fraction of a second for the 200 T = T + PEEK (65312) 60 FOR I = 452B0 TO £5535 210 NEXT I motor to reach proper recording speed. 70 REM J IS I OF TINES EACH 220 REM CORRECTION FOR This often causes the first word to be 80 REM ADDRESS IS DISPLAYED 230 REM ZEROING AND AMPLITUDE lost. A finger snap would activate the 90 FOR J = 1 TO 75 740 t = ( j - J2) i 4 100 REM DISPLAYS ADDRESS AND motor and allow it to reach recording 250 REM GRAPHICS DISPLAY 110 REM CONTENT CENTER SCREEN 260 LINE !H-4, V - T D M H , V-T), PSET speed in time for the first word to be 120 PRINTI224, 1,PEEK'D 270 TD=T recorded. A preliminary sound would 130 NEXT J 280 NEXT H not be needed if the program were used, 140 NEXT I 290 NEXT V JMCftO for instance, to monitor an empty room 300 GOTO 50 68 MICRO No. 68 - January 1984 the OS-9 prompt, you will see a list of directories and files stored under the main operating system directory. /AICRO Entering DIR /DO/ACCOUNTS will list all the files and sub directories stored in the ACCOUNTS directory. To keep files and directories separate, CoCo Bits OS-9 users have developed the conven­ tion of using upper case characters by John Steiner when naming characters and lower case characters when naming files. Eight L ast month we looked at how easy cuit board with a small adjustment letter filenames are a thing of the past and you are allowed from 1 to 29 it is to install drives on the CoCo. potentiometer. Plug in the drive unit, characters. This month, lets take a look at install and run the disk timing program The directory system builds files in something new that you may be in­ and adjust the potentiometer with a a tree or hierarchical format and you terested in running with your new disk small screwdriver until the drive speed move from directory to directory with drives. The OS-9 operating system has is within range. When done, turn off the CHD [change data directory) or finally been released, and is now the computer, unplug the drive and available in local Radio Shack stores. reinstall the case. CHX (change execution directory) commands. CHD /DO/ACCOUNTS OS-9 is one of the most powerful disk Now that we are done with that will move you to the ACCOUNTS operating systems I have seen, and pro­ little diversion, back to OS-9. Other in­ directory and all commands that con­ vides new power for CoCo, and new cluded utilities include an editor and tain any default options will default to capabilities. In addition to OS-9, Radio assembler for writing your own OS-9 the ACCOUNTS directory. The whole Shack is selling BASIC-09, a very power­ software. For those who would like to process is a lot easier to understand ful, supplement to Extended BASIC. know how the DOS interfaces with than explain, and the manuals have The OS-9 package, which retails for your CoCo, the operating system several examples that allow you to $69.95, comes in a gray box, and con­ resides between any applications pro­ understand how to create and delete tains four operating manuals, Getting grams and languages you may run, and directories. Started With OS-9; OS-9 Commands; the computer. All programs and OS-9 Program Development; and OS-9 languages are designed to use OS-9 to In addition to the multiple level fil­ Technical Information. OS-9 requires a access the disk, printer, terminal, ing system, OS-9 is multiuser and 64K CoCo and at least one disk drive. keyboard and video display. multitasking. In the Color Computer See the July and August, 1983 CoCo Who needs OS-9? Anyone who implementation, you can configure the Bits for instructions on upgrading your wants to run applications programs RS-232 port as a terminal and someone machine to 64K. There are two disks written using the operating system, can use the accounting package from a included in the package, an OS-9 Boot and anyone who might be interested in terminal while you are running disk, and an OS-9 system master. The running other languages besides customer files from the main CoCo OS-9 boot disk allows users with 1.0 BASIC. By the time you read this, you keyboard. A security system can be im­ disk disk ROMs to boot OS-9. CoCo should be able to buy PASCAL, C, and plemented that allows users to have users with 1.1 disk ROM may just load COBOL configured to run on CoCo. If private and public files, and files can be the system master and type 'DOS’. The you write your own machine language read or write protected. You have the new DOS command will take care of software, you will like the thorough capacity of private passwords for up to selecting 64K mode and other details. documentation of the operating 65,535 users. Most of us don't even The boot disk has one other utility system, and the ease with which you know that many people. of value to all CoCo disk users, a disk can implement and access disk files, Multitasking allows the user to run timing utility. This program reads and and other CoCo accessories without more than one task at a time. For exam­ displays the RPM of the selected drive. having to write your own device drivers ple, you might ask OS-9 to list a file The Getting Started... manual lists or trying to decipher the ROM. using the command LIST /Dl/customer accepted speeds, however an addendum OS-9 is in charge of managing the /P &. LIST is a program that will letter corrects those speeds to a range of disk directory, and keeping tabs on how display the output of a file on the video acceptable RPM from 295.5 to 304.5 the computer can manage its time and display. In this case, the file RPM. If your drive is out of time, Radio system resources. OS-9 creates one of "customer". Options include /D1 for Shack recommends you send it in to be the most sophisticated disk directories drive one, / P redirects output from adjusted, however the TEC drive in­ in the computer industry in that it the video display to the printer and the cluded with the RS disk system is easy allows directories within a directory. & () tells OS-9 to do this as a to adjust yourself. For example, you can make a directory background task. This means that the All you have to do is shut off the of accounting files called ACCOUNTS, prompt will return to the display, and computer, unplug the drive from the and within the directory you might keyboard control will be restored so AC outlet, remove the screws holding have files called ledger, receivables, that you may continue with other the case and lift the case off. On the left payables, etc. For that matter, you tasks. OS-9 will share time between side of the drive (facing front), you will could have a sub directory in the the printing task you just gave it and find the motor drive belt and pulleys. ACCOUNTS directory that could have any other tasks you decide to give it. Just below these, there is a small cir- its own set of files. If you enter DIR at The only limit to the number of tasks No. 68 - January 1984 MICRO 69 you ask the computer to do at one time SPECTRUM is the available memory space. 32K RAM Button...... $ 2.99 The computer will share tasks in a NANOS Reference Card ...... $ 3.99 priority basis, and you may assign a 64K RAM Button...... $ 4.99 higher priority for jobs you want done Coco Editor Assembler ...... $ 6.95 more quickly. OS-9 uses a hardware Coco Tech Manual ...... $ 7.95 clock to divide time into slices, and 16K RAM Chips...... $ 9.95 allot more time slices to tasks that Coco Secrets Revealed Book.s 14.95 have a higher priority. By the way, LED On/Off Indicator ...... $ 14.95 when you sign on to OS-9, you can Coco Light Pen ...... $ 19.95 enter the time and date, and the time ATARI Joystick Interface ...... $ 19.95 will remain accurate, even with disk Video Interface Kit ...... $ 24.95 I/O as the software does not allow in­ 16K-32K Upgrade K it ...... $ 25.95 terruption of the time clock for disk 6883 SAM Chip ...... $ 29.95 I/O. You can use the clock in program 6809E CPU Chip...... 29.95 output for any purpose desired. Basic ROM 1.1 ...... $ 36.00 One of the major advantages of OS-9 64K RAM Chips...... $ 49.95 is its device independent I/O system. MARK DATA Keyboard ...... $ 69.95 Only one I/O routine is needed with BOTEK Printer Interface ...... $ 69.95 several drivers written to support the Extended Basic ROM ...... $ 84.00 devices being used. OS-9 normally Disk Controller...... $139.95 defaults to input from the keyboard and COLOR COMPUTERS...... $ CALL Call or Write for FREE Catalog output to the video display, however it SPECTRUM PROJECTS is easy to redirect input and output as 93-15 86th Dr Woodhaven, New York 11421 required. Devices that are supported in Add Sales Tax & $3.00 for S/H the CoCo implementation are: • • Dealer/Club Inquires Invited # #

Drives 0 to 3 212 441-2807 Keyboard Video display Serial printer RS-232 terminal Joysticks It pays to write for MICRO! □ Win the esteem of your colleagues - As an example, you might redirect in­ □ Gain recognition as a computerist - put from the keyboard to drive 1, and output from the display to the printer. □ See your programs and ideas in print - OS-9 is powerful, and complex, and □ Feel satisfaction from helping others - I have a big project to become proficient □ Earn money for your work. in its use during the cold North Dakota winter. This overview will hopefully MICRO wants to continue to provide substantial give you some idea of the new found material for the Serious Computerist. This must come power in the Color Computer. You from you - the readers of MICRO who are actively don't have to hang your head anymore invloved with understanding the inner workings of when someone asks 1 'Why did you buy microcomputers, who experiment to find better ways of that "toy” computer. using microcomputers, who are developing new Over the next few months we will techniques, who are programming in assembler, take other looks at OS-9 and its FORTH, Pascal and other languages in addition to features. Next month we will look at BASIC. BASIC09, and see what features and ad­ Writing for MICRO is easier than you think. If you can vantages you get for your hundred provide the programs and the basic information about dollars. We will also take a look at two how they work, our staff can help turn this ‘rough’ more CoCo word processors, Nelson's material into a polished article. Remember, in this VIP Writer, and Elite*Word. business, everyone knows something of value, and nobody knows everything. Request the Writer’s Guide which covers many of the You may contact John at 508 Fourth Ave., fundamentals of writing for MICRO. N.W., Riverside, ND 58078.

70 MICRO No. 68 - January 1984 /MCftO TRS-80C Reviews

Product Name: Disk interface/ROM pack extender Minuses: You cannot edit, or otherwise change a line Equip, req'd: TRS-80 Color Computer Disk system packed program. The program must be saved in an un­ Price: $29.95 + $3.00 shipping packed format, should you decide to modify or edit it. Manufacturer: Spectrum Projects 93-15 86th Drive Documentation: Four pages of notes describe the opera­ Woodhaven, NY 11421 tion of the program thoroughly.

Description: The Spectrum Projects disk interface and ex­ Skill level required: No advanced skill level is required to tender cable can be a useful accessory for the Color Com­ use the program. puter. It allows the disk or program ROM pack to be located up to three feet away from the side of the com­ Reviewer: John Steiner puter. This high quality cable has a gold plated connector on each end that mates with the connectors on the com­ puter and ROM packs. Product Name: CCP-1 Serial-Parallel Interface Equip, req’d: TRS-80 Color Computer Pluses: Makes positioning of drives more convenient at Price: $69.96 + shipping the desk, allows the computer to have only a ribbon cable Manufacturer: Botek Instruments extending from the computer, rather than a large ROM pack. 4949 Hampshire Utica, MI 48087 Minuses: Unfortunately, it may not work with all drives. My MPI works correctly with the cable but my Tandy unit Description: Botek Instruments serial-parallel interface has problems. If I put drive one as drive zero, then the provides the TRS-80 Color Computer and TDP-100 with a cable seems to work. It is possible that my drive needs ad­ standard Centronics style parallel interface. The interface, justment for the longer length of cable. housed in a 3 in. by 6 in. mini-box, is easily connected to the CoCo RS-232 port. A parallel cable is provided that Documentation: None needed or provided. The cable is connects the interface to the printer. A third cable leads to marked TOP on both sides, care must be taken that the a small AC power supply. Baud rates of 300 to 9600 baud cable is inserted correctly. are switch selectable on the front of the interface. POKE 150,1 will allow CoCo to access the printer at 9600 baud. Skill level required: The cable is easy to install by even The unit can be configured to ROM 1.0 or ROM 1.1 by just a novice. changing a jumper.

Reviewer: John Steiner Pluses: The interface is easily installed, and requires little attention, except to change baud rates. If the printer you have is capable of + 5 volts on pin 18 of the printer connec­ Product Name: The Stripper tor, you may remove the AC supply and power the inter­ Equip, req'd: TRS-80 Color Computer face from your printer. This option is not available on my Price: $7.95 Epson printer, so I could not test it. Manufacturer: Eigen Systems P.O. Box 10234 Minuses: None noted. Austin, TX 78766 Documentation: A single page instruction sheet describes Description: The Stiippei is a programmers utility for the hook-up and operation of the unit. In addition, a separate Color Computer that will compress or "pack" a BASIC sheet contains a complete interface schematic. program. Stripper has three options, remove remarks, pack lines, and remove spaces. Any one or all three options may Skill level required: The unit should be easy to install for be exercised. anyone familiar with computer and printer installations.

Pluses: The packed program will take up less memory, and Reviewer: John Steiner may operate slightly faster. The utility normally loads into graphics memory, thus freeing all other memory for the packing operation, and youi BASIC program. One of the Product Name: BASIC Aid lowest cost utilities I've seen, and well worth the money. Equip, req’d: TRS-80 Color Computer Price: $34.95 No. 68 - January 1984 MICRO 71 Manufacturer: Eigen Systems P.O. Box 10234 Documentation: The instruction book is excellent, easy to understand, and well written. The only conflict I could Austin, TX 78766 find was in the MOVE utility. The manual asks for line numbers in the format 100, but on my machine, 100 Description: BASIC Aid is a ROM based programmers turned into 10000 until I entered the numbers with leading utility for the Color Computer. Commands may be zeroes, as 00100. entered using two keystrokes, and keys may be redefined as required. A plastic overlay is included to remind you of Skill level required: The program is easy to use, and makes the key codes. Automatic line numbering is supported, programming a much easier task. No extra skills are re­ and lines may be moved from one part of a program to quired of the programmer. another. A MERGE utility allows two BASIC programs to be combined. Reviewer: John Steiner Pluses: BASIC Aid works with all CoCo’s, 4K on up. ROM pack construction requires only 227 bytes of RAM to hold the key define table. An auto space command prints a Product Name: CCEAD Color Computer Editor/ space after the defined key for maximum readability. Auto Assembler/Debugger space can be shut off should you require memory conserva­ Equip, req'd: TRS-80 Color Computer tion. Programs to be merged may be binary, and do not Price: $6.95 + $3.00 shipping have to be stored in ASCII format unlike many utilities. Manufacturer: Eigen Systems BASIC Aid can be turned off and on from the keyboard PO Box 10234 if desired. Austin, TX 78766

Minuses: BASIC Aid automatically allocates the top 227 Description: This is a BASIC program that provides the bytes of available RAM for its key define table, which is user with a machine-language software development not relocatable. As a result, you will have to relocate any system. You receive two versions: a 12K+ commented machine-language routines that must be used with your source listing and a stripped 7600-byte running version. It program, assuming they are relocatable. In addition, all assembles and stores code in the unused CoCo graph­ CLEAR commands must be set to protect the top 227 ics pages. bytes, or you may accidentally overwrite the table. (Continued on next page)

DERRY COMPLETE PRODUCT LINES FOR lERIPHERALS D.C. Hayes • HDE • • Nashua • Okidata

O- APPLE • FRANKLIN • IBM -PC/XT We carry many products at competitive prices to expand these fine computers. I Request Catalog No. AFP*

D e a le r HDE • AIM • SYM • KIM In q u irie s HDE hardware and software for ASK, DLC, OMNI-65 systems KIM replacement modules (1K — 4K) and keyboards In v ite d AIM-65 (1K — 4K) and accessories. Request Catalog No. TASK*

COMPUTER REPAIR SERVICE Professional Workmanship A p ple • Franklin • Atari Guaranteed Repairs PET • H D E Quick Turn-around AIM • SYM • KIM

P erry Perip herals

’Catalogs Repair Center Orders AFP $2.00 TASK $1 50 6 Brookhaven Drive P.O. Box 924 (516)744-6462 with nrs^order0 Rocky Point’ NY 11778 Miller PlaCe NY 11764 9AM—5PM Weekdays

72 MICRO No. 68 - January 1984 Pluses: The program is inexpensive and easy to use. It Description: SHRINK is another implementation of Eliza, allows you to “get your feet wet” in machine-language the computerized psychologist. It is fun to use, but it is programming for little cost. The BASIC program is easily rather easily "fooled" into making somewhat irrelevant modified to the user's preference. comments. It will run indefinitely and is a cute demo for parties, etc. Minuses: The program is slow in assembly and allows only five directives; ORG, RMB, FCB, FDB, and EQU. No Pluses: SHRINK is a change of pace: you can relax while math is allowed in labels. experimenting — an unusual use for a computer. Written in , it is somewhat faster than many Documentation: A ten-page manual is provided to other similar programs. demonstrate the operation and use of CCEAD. Two sam­ ple programs are provided that assist in learning to use the software. Minuses: A serious experimenter might wish for a more sophisticated implementation of this concept. Skill level required: This program requires some knowledge of machine-language programming. Documentation: A single page gives adequate instruc­ Reviewer: John Steiner tions; once started, all yot; need to know is how to stop — simply type "shut up” !

Skill level required: None. Product Name: SHRINK Equip, req’d: Color Computer with 16K memory Reviewer: Ralph Tenny Price: $15.00 tape or disk Manufacturer: Star Kits P. O. Box 209-N Mt. Kisco, NY 10549 JMCftO

k

«MNARE ASSOCIATES, JTD- NOW — FULL POWER ASSEMBLY LANGUAGE!! ------GET THE VERSATILITY OF INDEPENDENTLY in ASSEMBLED RELOCATABLE SUBROUTINES WITH A

CJ RELOCATING UNKING LOADER

* For use with APPLE DOS TOOLKIT ASSEMBLER REL files * Relocate and link up to 255 REL files ' Convenient specification of relocation parameters (output file, CJ 03 □•card start address, REL file names, . . .) in text control file * Comprehensive error reporting and recovery Questionnaire Analysis Software * Memory map has module and entry point addresses to aid debugging ' Complete with user manual and disk example • Microcomputer bosed Avoid the expense of contract services -• do everything in-house on ' FAST — ten 256 byte REL files done in 30 SECS your own A pple-11+ microcomputer. RELOCATING LINKING LOADER W/MANUAL ...... $49.95 • Eosy doto entry M A N U A L ...... $ 4.50 Avoid time consuming keypunching. Uses respondent-morked cords entered with on Opticol Mork Reoder (keyboord entry olso possible). Also — FAST-CRYPT — Available for APPLE and IBM • Comprehensive doto onolysis Sort on ony varioble(s), tolly oil responses, conduct cross tobs, Encrypt/decript any file with FAST-CRYPT corretalions, tineor regression, frequency distributions, ond more. An efficient assembly language implementation of the DES • Complete editing capabilities (Data Encryption Standard) algorithm Weight items, derive composites, odd or delete items, ond more. FAST-CRYPT W /M A N U A L ...... $34.95 • Easy-to-use Progroms ore user friendly, menu driven, ond interoctive. No speciol KIWI SOFTWARE CO. computer expertise is required. P. O. BOX 218 m Plainsboro, N.J. 08536 Coll or send for more information todoy.

System requirements: APPLE II, II + , lie (or compatable) DOS 3.3 W/48K SCIENTIFIC SOFTWARE ASSOCIATES, LTD. IBM-PC, XT (or compatable) PC, MS-DOS W/64K IBM tm IBM CORP, APPLE tm APPLE COMPUTER, INC. BOX SOS • KJfllJSflU, WJ. SU.01 MS-DOS tm MICROSOFT CORP. TELEPHONE: (715) fli,5-2Q&g,

Apple 11+ is o registered trademark of Apple Computer, Inc. KIWI SOFTWARE does not copy protect its products send check or money order (N.J. residents add 6% sales tax)

No. 68 - January 1984 MICRO 73 This fantastic modem can be pro­ PRINT "your modem command". To grammed from Applesoft BASIC. get back into the normal Apple mode The interface cable is a standard use "PR#0". communications cable — DB-25 to Now you can use a communications DB-25, with pin-for-pin connections. package such as DATA CAPTURE or a You need 12-conductor cable and I have similar program to communicate with used as long as about 25 feet without bulletin boards or data bases. The pro­ Apple To any problems. It is convenient gram includes a command to enable however, to have the Smartmodem terminal mode on the CPS card, which Smartmodem near your computer setup, then you will allow a dumb terminal com­ can hear the dialup and the send and munications setup. receive carrier tones when you begin I know little to nothing of amateur By John Kelty communicating. There are many pro­ radio operations, but with a few lines of gramming options you can choose with BASIC and possibly some hardware, the Hayes Smartmodem, and these are the Hayes Smartmodem can be made to Adapted for Apple by Phil Daley extremely well documented in the ex­ send morse code. Auxiliary relay con­ cellent Owner's Manual. (In case you tacts are provided in the modem to key T his is an adaptation of my pro­ have not guessed, I consider the Hayes the transmitter automatically. It can­ gram for the Color Computer. Smartmodem my best computing pur­ not however, be made to directly The hardware requirements are chase to date!). receive morse code. Diagrams describ­ the Hayes Smart Modem and an RS-232 The BASIC program is menu driven ing the modem to radio interface are communications interface. This pro­ for ease of operation. If you BREAK and found in the Smartmodem User gram was specifically written with the then RUN the program again, the Manual Appendix H. Obviously some CPS Multifunction card in slot 1 with Smartmodem functions are cleared nice commercial terminal packages the serial port assigned to slot 2 (the ("AT Z" is sent to the modem). To exist for the Apple, but this program standard slot for communications). write to the Hayes, merely access the has made me happy for some time now. This program should be easily adapt­ slot (with PR#2), and PRINT your com­ With the Hayes Smartmodem and the able to other interfaces. See your inter­ mands. Now you can talk to your Apple Computer, I am sure you will face manual for any necessary changes. modem just like it was a printer with also enjoy computer communications. Listing 1 ------/MCftO 100 REM SMART300 500 PRINT : PRINT : INPUT "PRESS ENTER WHEN 110 REH KELTY ENGINEERING READY”; At 120 REM WRITTEN BY JOHN. R, KELTY 510 HOME : PRINT 130 REM LINCOLN, NEBRASKA 63505 520 PRINT D$"PR#2": PRINT "AT Z": REM CLEA 140 REM R MODEM 150 REM USE THIS PROGRAM TO CONNECT 530 PRINT DVPRttO" 160 REM AND PROGRAM THE HAYES 540 reh tmtttttmmttmmtm 170 REM SMARTMODEM TO THE 550 REM NENU 180 REM APPLE COMPUTER. 560 Mi(l) = "AUTO DIALING" 190 REM 570 Mi(2) = "AUTO ANSWERING" 200 REM THE CONNECTOR CABLE SHOULD 580 FOR S = 1 TO 2 210 REM CONNECT TO THE RS-232 PORT 590 PRINTS" "MttSi 220 REM IN THE FOLLOWING WAY: 600 NEXT S 230 REM PIN FOR PIN CONNECTION 610 PRINT : PRINT '• PRINT "SELECT ONE OF TH 260 REM E ABOVE" 270 REM THE 300 BAUD HAYES MODEM 620 GET Ai 280 REM HAY BE USED WITH VIDEOTEX 630 ON VAL (A*) GOSUB 650,1210 290 REM QR ANY OTHER TERMINAL 640 GOTO 430 300 REM PACKAGE THAT ALLOWS THE 650 rem ttmttmtmmtmmnt 310 REM HAYES TO RUN AT 300 BAUD. 660 REM AUTO DIALING ROUTINE 320 REM 670 rem mtnmtmmmtmtm 330 REM THE HAYES WILL OPERATE 680 REM 340 REM LOCALLY AT HIGHER RATES 690 HOME : PRINT : PRINT Midi 350 REM BUT NO HIGHER THAN 300 700 PRINT : PRINT : PRINT "1 DIAL A SAVED N 360 REM WHILE ON LINE. UMBER" 370 REH 710 PRINT "2 DIAL A NEW NUMBER" 380 REM SEE YOUR USER'S MANUAL 720 GET Ai 390 REM FROM HATES FOR DETAILS. 730 ON VAL (Ai) GOTO 750,950 400 REM 740 GOTO 690 410 rem ttmtmmtttttttmnm 750 rem ttmttttmmmtmt 420 DIM Mi(5),SNV9):Di = CHRi (13) + CHRt 760 HM = 2: REM HOW MANY NUMBERS (4) 770 REM TO CHANGE THIS LIST, MAKE HM=H0W 430 HOME : PRINT : PRINT ■ M t t SMART H 780 REM MANY tt YOU WANT TO LIST (MAX OF 9). odem m t r 440 PRINT " BY: KELTY ENGINEERING" 790 REM THEN INSERT LINES SIMILAR TO THOSE 450 print " tmtmtmmnmm1 800 REM BELOW WITH YOUR NUMBERS AND NAMES. 460 PRINT : PRINT "CONNECT CABLES TO MODEM, 310 HOME : PRINT "NUMBERS YOU CAN EASILY CA ll LL": PRINT 470 PRINT "COMPUTER AND PH0HE COMPANY." 920 SN$(1) * "1 XXX-XXXX A FRIEND 480 PRINT : PRINT : PRINT "(BREAK AND LIST THIS PROGRAM TO" 830 SN$(2! = "2 XXX-XXX-XXXX A BBS 490 PRINT "SEE CABLE DETAILS)." 74 MICRO No. 68 - January 1984 OWER OF YOUR UR COMMAND! CRO’s newest book... OUR VIC-20

Now you can do more eight projects and programs master VIC BASIC on a particular aspeqt of You’ll Receive: - . ■ X

+ M I C R O C a l c . . . a miniature spread­ sheet program that makes complex, repetitive calculations a breeze.

4 > M A S T E R ...a guessing game that teaches programming with random numbers and flags.

+ V IC Clock...to teach you ON..GOSUB function and character graphics.

BREAK-UP. ..a popular game that also teaches how animation is achieved with PEEKS and POKES to screen memory.

Use this coupon or the postage paid card in this issue to order. PIUS... music programming string manipulation, sorting MICRO Books P.O. Box 6502, Chelmsford, MA 01824 demonstrations, and more. □ YES, please rush ______copies of MASTERING YOUR VIC-20 (w/cassette), at only $19.95 per copy (plus $2.00 s/h, MA res. add 5% sales tax). Each Program

My payment of $______is enclosed. I’m paying by □ Check □ MO Worth the Price □ VISA □ MC of the Book! NAME ______ADDRESS Order your copy of CITY _____ .STATE..ZIP. MASTERING CREDIT CARD#. .EXP. DATE YOUR VIC-20 Allow 6-8 weeks for delivery. Today! TERMINALS 9 1 0 ...... $ 5 1 9 .0 0 9 1 0 P lu s ...... S 5 9 9 .0 0 ft TeleVideo 9 1 4 ...... S 5 6 9 .0 0 N E C 3 5 5IBM 0 ...... 8 1 6 9 9 . 0 0 9 2 4 ...... $ 6 8 9 .0 0 PERCOM/TANOON 9 2 5 ...... $ 7 3 9 .0 0 DRIVES 9 5 0 ...... $ 9 2 9 .0 0 5V«” 3 20 K F lo p p y ...... $ 2 4 9 .0 0 9 7 0 ...... $ 1 0 3 9 .0 0 5 M eg Hard w /C o n tro lle r... $ 1 3 9 9 .0 0 COMPUTERS 10 Meg Hard w/Controller... $1699.00 Teleport Portable ...... CALL 15 M eg Hard w /C o n tro ller... $ 2 0 9 5 .0 0 8 0 0 A ...... $ 1 0 9 9 .0 0 20 Meg Hard w/Controller... $2399.00 8 0 2 ...... $ 2 6 9 9 .0 0 ASHTON-TATE 8 0 3 ...... $ 1 9 4 9 .0 0 AMOEK dB A SE I I ...... $ 3 9 9 .0 0 8 0 2 H ...... $ 4 6 9 5 .0 0 3 1 OA A m ber M o n it o r ...... $ 1 6 9 .0 0 IUS 8 0 6 / 2 0 ...... $ 4 9 9 9 .0 0 DXY 1 0 0 P lo tte r...... $ 5 9 9 .0 0 EasyW riter I I ...... $ 1 8 9 .0 0 8 1 6 / 4 0 ...... $ 9 1 9 9 .0 0 C o lo r I I ...... $ 3 9 9 .0 0 E a s y S p e lle r...... si 19 .0 0 1 6 0 2 ...... $ 3 3 9 9 .0 0 AST RESEARCH, INC. E a s y F ile r...... $ 2 2 9 .0 0 1 6 0 3 ...... CALL Six Pak P lu s ...fr o m ...... $ 2 7 9 .0 0 CONTINENTAL SOFTWARE Combo Plus II...from ...... $ 2 7 9 .0 0 1 st Class Mail/Form Letter ... $79.00 / ------—V Spirit XL Portable ...... $ 3 9 9 9 .0 0 Mega Plus...from ...... $ 3 0 9 .0 0 The Home Accountant Plus ... $88.00 IIE -1 ...... $ 1 3 6 9 .0 0 I/O Plus II...from ...... $ 1 3 9 .0 0 SYNAPSE File M a n a g e r ...... $ 8 9 .0 0 M E-2...... $ 1 6 4 9 .0 0 QUAORAM IIE -3 ...... $ 2 3 9 9 .0 0 LOTUS Q u a d lin k ...... $ 5 4 9 .0 0 1 -2 -3 ...... $ 3 1 9 .0 0 IIE -4 ...... $ 3 1 9 9 .0 0 Quadboard...as low a s ...... $ 2 8 9 .0 0 PROFESSIONAL SOFTWARE PC-E ...... $ 1 5 7 9 .0 0 Quad51 2 Plus...aslowas .. .$249.00 PC P lu s/The B oss...... $ 3 7 9 .0 0 P C -1 ...... $ 2 3 9 9 .0 0 Quadcolor...as low a s ...... $21 9 .0 0 VISICORP P C -2 ...... $ 2 7 9 9 .0 0 Chronograph ...... $ 8 9 .0 0 IBM APPLE PC X L ...... $ 3 5 9 9 .0 0 Parallel Interface Board ...... $ 8 9 .0 0 VisiCalc 159.00 1 6 2 0 ...... $ 3 5 9 9 .0 0 64K RAM Chips Kit...... $ 5 9 .0 0 VisiCalc 4 159.00 1 6 3 0 ...... $ 5 4 9 9 .0 0 M IC R O PRO VisiCalc-Advanced 269.00 1 6 4 0 ...... $ 6 4 9 9 .0 0 WordStar/Mail Merge ...... $ 3 6 9 .0 0 VisiWord/Spell 249.00 Cyma Software ...... CALL In fo S ta r ...... $ 2 9 9 .0 0 Visitrend/Plot 199.00 199.00 S p e llS ta r ...... $ 1 5 9 .0 0 VisiLink 169.00 C a lc S ta r ...... $ 9 9 .0 0 Visi File 199.00 169.00 ^ S A N Y O VisiSchedule 199.00 199.00 MICROSTUF Visidex 159.00 M B C -5 5 0 P C ...... CALL C ro s s ta lk ...... $ 1 0 5 .0 0 M 8 C -5 5 5 P C ...... CALL VisiPlot 135.00 MICROSOFT M B C 1 1 0 0 ...... $ 1 5 9 9 .0 0 VisiTerm 7 5 .0 0 M u ltip la n ...... $ 1 5 9 .0 0 M B C 1 1 5 0 ...... $ 2 0 9 9 .0 0 D esktop Plan 1 9 9 .0 0 1 6 9 .0 0 pfe M B C 1 2 0 0 ...... $ 1 9 9 9 .0 0 Bus. Forecast Model 7 5 .0 0 7 5 .0 0 APPLE IBM M B C 1 2 5 0 ...... $ 2 3 9 9 .0 0 Stretch Calc 7 5 .0 0 7 5 .0 0 Write: 79.00 89.00 FDD 3200-320K Drive ...... $ 3 9 9 .0 0 VisiTutor Calc 59.00 59.00 Graph: 79.00 89.00 7 5 .0 0 FDD 6400-64K Drive ...... $ 4 9 9 .0 0 VisiT u tor-Advanced 7 5 .0 0 Report: 79.00 79.00 5 9 .0 0 PR 5500 Printer ...... $ 6 9 9 .0 0 VisiTutor Word 5 9 .0 0 MOOEMS File: 79.00 89.00 Vision Calc 249.00 Solutions*: as lowas 16.00 16.00 Vision Graph 129.00 MONITORS ANCHOR ‘Call On Titles Vision Mouse 1 5 9 .0 0 Mark I (R S -2 3 2 )...... $ 7 9 .0 0 AMDEK Vision Host 319.00 3 0 0 G re e n ...... $ 1 4 9 .0 0 M ark II (A ta ri)...... $ 7 9 .0 0 3 0 0 A m b e r ...... $ 1 5 9 .0 0 M ark Ml (T I-9 9 ) ...... $ 1 0 9 .0 0 PRINTERS 3 1 0 A m b e r ...... $ 1 6 9 .0 0 Mark IV (CBM/PET) ...... $ 1 2 5 .0 0 AXIOM NEC C o lo r 1 ...... $ 2 7 9 .0 0 M ark V (O s b o rn e) ...... $ 9 5 .0 0 AT-100 Atari Interface ...... $ 2 4 9 .0 0 8023 Dot Matrix ...... $ 3 7 9 .0 0 Color 1 Plus ...... $ 2 9 9 .0 0 Mark VI (IBM -PC) ...... $ 1 6 9 .0 0 CD-100 CBM 64/VIC 20 ....$249.00 8025 Dot Matrix ...... $ 6 6 9 .0 0 C olor 2 ...... $ 3 9 9 .0 0 Mark VII (Auto Ans/Auto Dial)... $119.00 GP-100 Parallel Interface .. .$1 99.00 2050 Letter Quality ...... $ 9 9 9 .0 0 Color 2 Plus ...... $ 4 1 9 .0 0 Mark XII (1200 Baud) ...... $ 2 9 9 .0 0 BMC 3510 Serial/Letter Quality... $1449.00 C olor 3 ...... $ 3 4 9 .0 0 TRS-80 Color Com puter ...... $ 9 9 .0 0 401 Letter Q uality ...... $ 5 8 9 .0 0 3530 Parallel/Letter Quality ... $1499.00 C olor 4 ...... $ 6 9 9 .0 0 9 Volt Power Supply ...... $ 9 .0 0 BX-80 Dot Matrix ...... $ 2 6 9 .0 0 3550 IB M/Letter Quality... $1 699.00 BMC HAYES CENTRONICS 7710/7730 Serial/Parallel.. .$1949.00 Smartmodem 300 ...... $ 2 1 9 .0 0 12 ” G r e e n ...... $ 7 9 .9 9 122 Parallel ...... $ 4 9 9 .0 0 OKIDATA Smartmodem 1200 ...... $ 5 0 9 .0 0 12” Green HI-RES ...... $ 1 1 9 .9 9 739-1 Parallel ...... $ 3 9 9 .0 0 82,83,84.92,93,2350,2410 .CALL 9191-13” Color ...... $ 2 4 9 .9 9 Smartmodem 1200B ...... $ 4 5 9 .0 0 739-3 Serial ...... $449.00 Micromodem It ...... $ 2 6 5 .0 0 SMITH CORONA GORILLA C.ITOH Micromodem II Plus ...... $ 2 9 9 .0 0 T P - 2 ...... $ 4 4 9 .0 0 1 2 ” G r e e n ...... $ 8 8 .9 9 Gorilla Banana ...... $ 2 0 9 .0 0 Micromodem ME ...... $ 2 6 9 .0 0 Tractor F e e d ...... $11 9 .0 0 1 2 ” A m b e r ...... $ 9 5 .9 9 P row riter 851 O P ...... $ 3 7 9 .0 0 Micromodem 100 ...... $ 2 9 9 .0 0 P row riter 15 5 0 P ...... $ 6 7 9 .0 0 SILVER REEQ NEC S m art C om I I ...... $ 8 9 .0 0 A 10 (1 8 c p s )...... 5 6 9 .0 0 500 LetterQuality ...... $ 4 6 9 .0 0 JB 1260 Green ...... $ 1 0 9 .9 9 C h ro n o g ra p h ...... $ 1 9 9 .0 0 F 1 0 - 4 0 ...... $ 9 9 9 .0 0 550 LetterQuality ...... $ 6 9 9 .0 0 JB 1201 Green ...... $ 1 4 9 .9 9 NOVATION F 1 0 - 5 5 ...... $ 1 4 9 9 .0 0 STAR JB 1205 Amber ...... $ 1 5 9 .9 9 J -C a t...... $ 9 9 .9 9 COMREX G em in i 1 0 X ...... $ 2 9 9 .0 0 JC 1215 Color...... $ 2 9 9 .9 9 SmartCat 103 ...... $ 1 7 9 .0 0 ComWritertl LetterQuality... $549.00 G em in i P1 5 ...... $ 4 4 9 .0 0 JC 1216 RGB...... $ 4 2 9 .9 9 S m artC at 1 0 3 /2 1 2 ...... $ 3 9 9 .0 0 DIABLO D elta 1 0 ...... $ 5 5 9 .0 0 QUAORAM A u to C a t...... $ 2 1 9 .0 0 620 LetterQuality ...... $ 9 4 9 .0 0 Serial B o a rd ...... $ 7 5 .0 0 Q u a d c h ro m e ...... $ 4 9 9 .9 9 2 1 2 A u t o C a t...... $ 5 4 9 .0 0 630 Letter Quality ...... $ 1 7 4 9 .0 0 TOSHIBA ... . CALL TAXAN A pple C a t I I ...... $ 2 4 9 .0 0 OAISYWRITER 1 2 ” G re e n ...... $ 1 1 9 .0 0 2 1 2 A pple C a t...... $ 5 6 9 .0 0 TRANSTAR. . CALL 2 0 0 0 ...... $ 9 9 9 .0 0 1 2 ” A m b e r ...... $1 2 9 .0 0 Apple Cat 21 2 Upgrade ...... $ 3 0 9 .0 0 2 5 0 0 ...... CALL PRINTER CABLES Taxan 1 RGB ...... $ 2 7 9 .0 0 C a t ...... $ 1 3 9 .9 9 Tractor F e e d ...... $ 1 0 9 .0 0 Available for Atari, Commodore, IBM. USI D -C a t ...... $ 1 4 9 .0 0 EPSON Apple, Epson, Kaypro, Televideo, Frank­ Pi 1, 9” Green ...... $ 9 9 .9 9 PC C a t...... $ 3 3 9 .0 0 MX-80FT, MX-100. RX-80, RX-80FT. lin, Eagle. Sanyo, Osborne. NEC, Pi 2, 12” G reen ...... $ 1 1 9 .9 9 ZENITH FX-80, FX-100 ...... CALL Zenith and many others. We supply all Pi 3, 12” Amber ...... $ 1 4 9 .9 9 ZT-1 ...... $ 3 6 9 .0 0 IOS your computer needs! Pi 4 , 9 ” A m b e r ...... $ 1 3 9 .9 9 APPLE INTERPACE 1 4 0 0 C o lo r ...... $ 2 6 9 .9 9 Prism 80...For Configurations.. .CALL CAROS & BUFFERS Prism 32... For Configurations.. .CALL ZENITH Choose from PKASO, Orange Micro, MANNESMAN TALLY PAPER SUPPLIES ZVM 122 Amber ...... $ 9 9 .9 9 MPC, MicroMax, Tymac, Quadram & 1 6 0 L ...... $ 5 8 9 .0 0 1000 shts. 8 Vjx1 1 Tractor Paper... 19.99 ZVM 123 Green ...... $ 8 9 .9 9 1000shts.14Vax11 Tractor Paper..$24.99 Practical P erip h e rals ...... CALL 1 8 0 L ...... $ 7 9 9 .0 0 ZVM 135 Color/RGB ...... $ 4 6 9 .9 9 1 or 2” Address Labels ...... $ 9 .9 9 S p irit 8 0 ...... $ 3 0 9 .0 0

s a c ^ ® ®

00-6*8-55ff 3' 2 6 8 * ^559 800-215.8950 In Toronto call(416-828 0866. Dept. 0 11 5 In PA call (717)327-9575. Dept 0115 IrrNU call (702)588 5654 Dept 0 11 5 Order Status Number: 828-0866 Order Status Number: 327*9576 Order Status Number: 588-5654 2505 Ounwin Orive. UniMB Customer Service Number: 327-1450 P.O. Box 6689. Statelrne. NV 89449 Mississauga. Ontario. Canada L5L1T1 477 E. Third St., Williamsport. PA 17701 No ri*k no deposit an C O D. orders. Pre-paid orders receive free shipping within the UPS continental United States with no waiting period for certified checks o r’, money orders. Add 3°-o (minimum $5.00) shipping and handling on all C.Q.D. and credit card orders. Larger shipments may require additional charges. NV and PA residents add sales tax. All items subject to availability and price change. We stock manufacturer's and third party software for most all computers on the market Call today for our catalog. APPLE/FRAN KLIN DISK DRIVES HOME COMPUTERS M IC R O -8C I A2 ...... $ 2 1 9 .0 0 A 4 0 ...... $ 2 9 9 .0 0 A 7 0 ...... $ 3 1 9 .0 0 C2 C o n tro lle r...... $ 7 9 .0 0 C47 Controller ...... $ 8 9 .0 0

PANA E lite 1 ...... $ 2 7 9 .0 0 E lite 2 ...... $ 3 8 9 .0 0 ATARI j E lite 3 ...... $ 5 6 9 .0 0 ACE 1000 Color Com puter ___CAUL ACE Fam ily Pack S y s te m ...... CAUL APPLE lie STARTER PACK ACE PRO PUUS System ...... CAUU 64K Apple Me, Disk Orive & Controller. 600X1____...$189 1200XL ____CALL ACE 1 2 0 0 Office Mgm t. System ... CAUU 80 Column Card, Monitor II & DOS 3.3 14DOXL ____CALL NOT HE EXPENSIVE C O M P L E T E ...... $ 1 4 9 9 .0 0 800X1____... $299

Q z c o m m o d o r e 1010 Recorder ...... $ 7 4 .0 0 PEflQCM 1020 Color Printer ...... $ 2 4 9 .0 0 A T 8 8 -S 1 ...... $ 3 2 9 .0 0 CBM 1025 Dot Matrix Printer ...... $ 4 4 9 .0 0 AT 8 8 - A 2 ...... $ 2 5 9 .0 0 C BM 4 0 3 2 ...... $ 5 9 9 .0 0 1 0 2 7 L e tte r Q u a lity ...... $ 2 9 9 .0 0 AT 8 8 - S 2 ...... $ 5 2 9 .0 0 CBM 8 0 9 6 ...... $ 8 6 9 .0 0 8032 1030 Direct Connect Modem ... CALL A T 8 8 -S 1 P D ...... $ 4 2 9 .0 0 CBM 9 0 0 0 ...... $ 9 9 9 .0 0 1050 Disk Drive ...... $ 3 7 9 .0 0 A T 88-DDA ...... $ 1 1 9 .0 0 B1 2 8 - 8 0 ...... $ 7 6 9 .0 0 CX30 Paddle ...... $ 1 2 .0 0 R F D 4 0 -S 1 ...... $ 4 4 9 .0 0 CBM 64K Memory Board ___$ 2 6 9 .0 0 5 9 9 CX40 Joystick...... each...$8.00 R F D 4 0 -A 1 ...... $ 2 6 9 .0 0 8032 to 9000 Upgrade ...... $ 2 6 9 .0 0 CBM 64 CX77 Touch Tablet ...... $ 6 4 .0 0 R F D 4 0 -S 2 ...... $ 6 9 9 .0 0 2031 UP Disk Drive ...... $ 2 9 9 .0 0 CX80 Trak B all ...... $ 4 8 .0 0 R F D 44 -S 1 ...... $ 5 3 9 .0 0 8050 Disk Orive ...... $ 9 4 9 .0 0 VIC SO ... CX85 Keypad ...... $ 1 0 5 .0 0 R F D 4 4 -S 2 ...... $ 8 6 9 .0 0 8250 Disk Orive ...... $ 1 1 9 9 .0 0 C 1541 Disk O riv e ...... $ 2 4 9 .0 0 4003 Assorted Education ___$ 4 7 .0 0 4023 Printer ...... $ 3 7 9 .0 0 C 1 5 3 0 D a ta s e tte ...... $ 6 9 .0 0 4011 Star Raiders ...... $ 3 3 .0 0 T X 9 9 -S 1 ...... $ 2 7 9 .0 0 8 0 2 3 P rin te r...... $ 5 6 9 .0 0 C1520 Color Printer/Plotter... $169.00 401 2 Missile Com m and ...... $ 2 9 .0 0 RANA 6400 Printer ...... $ 1 3 9 9 .0 0 C1525 Dot Matrix/Parallel...$219.00 4013 Asteroids ...... $ 2 9 .0 0 1 0 0 0 ...... $ 3 1 9 .0 0 ZRAM ...... $ 4 9 9 .0 0 5049 VisiCalc ...... $ 1 5 9 .0 0 C 1 526 Dot Matrix/Serial ... .$279.00 TRAK Silicon O ffice ...... $ 6 9 9 .0 0 7 0 9 7 L o g o ...... $ 7 9 .0 0 C 1 7 0 2 C o lo r M o n ito r...... $ 2 4 9 .0 0 A T -D 2...... $ 3 8 9 .0 0 The Manager ...... $ 1 9 9 .0 0 C 1311 J o y s tic k ...... $ 4 .9 9 7101 Entertainer ...... $ 6 9 .0 0 S oft R O M ...... $ 1 2 5 .0 0 C 1 3 1 2 P a d d le s ...... $ 1 1 .9 9 7102 Arcade Champ ...... $ 7 5 .0 0 MEMORY BOARDS V is iC a lc ...... $ 1 5 9 .0 0 C 1 6 0 0 VIC M o d e m ...... $ 8 9 .0 0 8026 Dig Dug ...... $ 3 3 .0 0 Axlon 3 2 K ...... $ 5 9 .0 0 C 1 6 5 0 Auto M o d e m ...... $ 8 9 .0 0 8030 E.T. Phone Hom e ...... $ 3 3 .0 0 Axlon 4 8 K ...... $ 9 9 .0 0 PROFESSIONAL Uogo 6 4 ...... $ 4 9 .0 0 8031 Donkey Kong ...... $ 3 9 .0 0 Axlon 1 2 8 K ...... $ 2 9 9 .0 0 tn tec 3 2 K ...... $ 5 9 .0 0 SOFTWARE Pilot 6 4 ...... $ 3 9 ,0 0 8 0 3 6 Atari W rite r...... $ 7 9 .0 0 In te c 4 8 K ...... $ 8 5 .0 0 W ord Pro 2 P lu s...... $ 1 5 9 .0 0 S im o n ’s B a s ic ...... $ 1 9 .0 0 8040 Donkey Kong. Jr ...... $ 3 9 .0 0 8043 Ms. PacMan ...... $ 3 9 .0 0 In te c 6 4 K ...... $ 9 9 .0 0 W ord Pro 3 P lu s...... $ 1 8 9 .0 0 W ord Pro 6 4 P lu s...... $ 5 9 .0 0 8 0 4 4 J o u s t...... $ 3 9 .0 0 Intec Real Time Clock ...... $ 2 9 .0 0 Word Pro 4 Plus/5 Plus...each...$2 7 9.0 0 Parallel Printer Interface ...... $ 6 9 .0 0 In fo P ro ...... $ 1 7 9 .0 0 Calc Result 6 4 ...... $ 1 2 9 .0 0 ALIEN VOICE BOX Administrator ...... $ 3 9 9 .0 0 C o d e w riter 6 4 ...... $ 7 5 .0 0 Quick Brown Fox ...... $ 4 9 .0 0 DISKETTES A t a r i ...... $ 1 1 9 .0 0 P o w e r ...... $ 7 9 .0 0 A p p le ...... $ 1 4 9 .0 0 Word Pro 64 Plus...... $ 5 9 .0 0 MAXELL We stock a full inventory of software for Commodore, such as: S’/ r M D -1 ...... $ 2 9 .0 0 KOALA PAD 5 ’A ” M D -2 ...... $ 3 9 .0 0 A ta ri ...... $ 7 5 .0 0 Artworx. Broderbund. Commercial Data, Creative Software, 8" FD-1 (SS/DD)...... $ 3 9 .0 0 A p p le ...... $ 8 5 .0 0 Epyx, HES, MicroSpec, Nufekop, Romox, Sirius, Synapse, 8" FD-2 (D S /D D )...... $ 4 9 .0 0 I B M ...... $ 9 5 .0 0 EMI, Tronix, UMI, Victory, Spinnaker, Rainbow & Timeworks' VERBATIM CB M 6 4 ...... $ 7 5 .0 0 CALL FOR DETAILS! 5V*" S S /D D ...... $ 2 6 .9 9 CONTROLLERS & 5'U" D S /D D ...... $ 3 6 .9 9 JOYSTICKS HANDHELD COMPUTERS ELEPHANT WICO 5'M" S S /S D ...... $ 1 8 .4 9 Jo ystick...... $ 2 1 .9 9 5 ’A" S S /D D ...... $ 2 2 .9 9 3*way J o ys tic k ...... $ 2 2 .9 9 5 ’A ” D S /D D ...... $ 2 8 .9 9 F am ous Red B a il...... $ 2 3 .9 9 HEAD Pow er G rip ...... $ 2 1 .9 9 S'/*” Disk Head Cleaner ...... $ 1 4 .9 9 BOSS Joystick ...... $ 1 7 .9 9 41 CV . $209 A T A R I/V IC Trak B a ll...... $ 3 4 .9 9 41CX ...... $259 Apple Trak B a ll...... $ 5 4 .9 9 □ ISK HOLOERS Apple A d a p te r...... $ 1 5 .9 9 HP 1 0 C ...... $ 5 1 .9 9 PC-1 5COA... $ 165.99 INNOVATIVE CONCEPTS Apple A n a lo g ...... $ 3 7 .9 9 HP 1 1 C ...... $ 6 9 .9 9 PC-1 250A ____$88.99 Flip-n*File 1 0 ...... $ 3 .9 9 HP 1 2 C ...... $ 8 8 .9 9 KRAFT HP 1 5 C ...... $ 8 8 .9 9 Flip-n-File 5 0 ...... $ 1 7 .9 9 J o ys tic k ...... $ 4 1 .9 9 Fiip-n-File<400/800R0M)Holder..$17.99 HP 1 6 C ...... $ 8 8 .9 9 CE -1 25 Printer/Cassette.... $1 28.99 Atari Single Fire ...... 51 2 .9 9 HP 7 5 C ...... $ 7 4 9 .9 9 CE*150 Color Printer/Cassette...$171.99 Atari S w itch H itte r...... $ 1 5 .9 9 HPIU M o d u le ...... $ 9 8 .9 9 CE-1 5 5 8 K R A M ...... $ 9 3 .9 9 Apple Paddles ...... $ 3 4 .9 9 U iK ENTERPRISES HPIU Cass, or P r in te r ...... $ 3 5 9 .9 9 CE 181 16K RAM ...... $ 1 3 4 .9 9 IBM Paddles ...... $ 3 4 .9 9 Atari U tter Perfect*Disk(40/80)... $79.99 Card R e ad er...... $ 1 4 3 .9 9 CE 500 ROM Uibrary ...... $ 2 9 .9 9 IBM Joystick...... $ 4 6 .9 9 Atari Letter Perfect-ROM(40 cof)— $79.99 Extended Function Module ... $63.99 AMIGA Atari Letter Perfect-ROM(BO cot). . .$79.99 Tim e M o d u le ...... $ 6 3 .9 9 TIMEX/SINCLAIR 3100 Single ...... $ 1 3 .9 9 1 0 0 0 Atari Data Perfect-ROM(SOcol)...... $ 79 .99 3101 P a ir ...... $ 1 9 .9 9 NEC Atari Spell Perfect-DISK ...... $ 5 9 .9 9 J o y b o a r d ...... $ 3 7 .9 9 PC-8201 Personal Computer...$599.00 Timex/Sinclair 1000 ...... $ 3 5 .9 9 Atari Utility/MailMerge ...... $ 2 1 .0 0 TG PC-8221A Thermal Printer... $149.00 1 6K M e m o ry ...... $ 2 9 .9 9 Apple Letter Perfect ...... $ 9 9 .0 0 Atari Trak B a ll...... $ 4 7 .9 9 PC-8281 A Data Recorder ....$99.00 2 0 4 0 P r in te r ...... $ 9 9 .9 9 Apple Data Perfect ...... $ 7 5 .0 0 Apple Joystick ...... $ 4 7 .9 9 PC-8201 -06 8K RAM C h ip s ... $ 1 0 5 .0 0 V u C a lc ...... $ 1 7 .9 9 Apple LJK Utility ...... $ 2 1 .0 0 A p p le Trak B a ll...... $ 4 7 .9 9 PC-8206A 32K RAM Cartridge...$329.00 Mindware Printer ...... $ 9 9 .9 9 Apple Lower Case Generator ...919.00

800»648«55t1 8 - 4 5 5 9 8 0 0 * 2 3 5 » 8 9 5 < In Toronto call (41 6 828-0866. Dept 011 5 In NV call <702)588-5654. Dept 0115 In PA call (717)327-9575 Dept 01 1 5 Order Status Number: 588-5654 Order Status Number: 828-0866 Order Status Number: 327-9576 P.O. Box 6689. Stateiine. NV 89449 2505 Ounwin Drive. Unit 1 B Customer Service Number: 327-1450 Mississauga. Ontario. Canada L5L1T1 477 E. Third St.. Williamsport. PA 17701 CANADIAN ORDERS: All prices are subject to shipping, tax and currency fluctuations. Call for exact pricing in Canada. INTERN ATIONAL ORDERS: AH shipments outside the continental United States must be pre-paid by certified check only. Include 3%(min\mum S5.00\ shipping and handling. EDUCATIONAL DISCOUNTS: Additional discounts are available to qualified Educationai Institutions. APO S FPO: Add 3°/o {minimum S5 00) shipping and handling. 1490 PRINT " T O HANt( 2 )"**»" B50 PRINT SNt(K> 1500 PRINT "THE SMART MODEM WILL ANSWER ALL 860 NEXT II 870 PRINT : PRINT "SELECT ONE OF THE ABOVE" 1510 PRINT “CALLS IMMEDIATELY." 1520 PRINT "USE THIS TO TRANSFER CALLS THAT 880 PRINT "(BREAK AND LIST TO EDIT THESE NU (I 1530 PRINT “ARE ALREADY IN PROGRESS BETWEEN MBERS)." II 890 GET At 900 NE = VAL (At) 1540 PRINT "TWO INDIVIDUALS TO COMMUNICATIO 910 IF NB < 1 OR MB > HM THEN 750 N" 920 Pt = HID* (SNt(NB),5,16) 1550 PRINT "BETWEEN THEIR COMPUTERS." 930 GOSUB 1070 1560 GOSUB 1800 940 RETURN 1570 PRINT DVPR*2": PRINT "AT"DPt"A" 950 reh mmmntmmtmtm 1580 PRINT D T P M O * 960 PRINT : PRINT "DIALING A NEW NUMBER" 1590 PRINT "AT THIS POINT YOU NEED TO RUN" 970 PRINT : PRINT "TYPE IN THE PHONE NUMBER 1600 PRINT “OR EXEC YOUR OWN RECEIVER" THAT" 1610 PRINT "PROGRAM TO INTERPRET THE” 980 PRINT “YOU WISH TO CALL." 1620 PRINT "INCOMING CALL." 990 PRINT "EXAMPLES:" 1630 GOTO 1970 1000 PRINT "1-800-XXX-XXXX LONG.DISTANCE 1640 r e m mtitmtmmittt 1650 REM ANSWER AFTER XX RINGS 1010 PRINT "112-B00-XXX-XXXX FROM LINCOLN 1660 PRINT : PRINT ” tt*"ANt( 3 )"**»" 1020 PRINT "XXX-XXXX LOCAL CALL 1670 PRINT : PRINT "THE SMART MODEM WILL AN 1030 PRINT 3WER ALL" 1040 INPUT "TYPE DESIRED NUMBER";Pt 1680 PRINT “CALLS AFTER THE NUMBER OF RINGS 1050 GOSUB 1070 <1 1060 RETURN 1690 PRINT "YOU SELECT (FROM 1 TO 255 RINGS 1070 rem nmtmnttnmmttm v 1080 REM NUMBER KNOWN AT THIS POINT 1700 PRINT 1090 REM READY TO DIAL 1710 INPUT "HOW MANY RINGS (1 TO 255)";RG 1100 PRINT D V ,PR«2,‘: PRINT "AT T FO D"Pt 1720 RG = INT (RG) 1101 REM TOUCH TONE, IF YOU WANT PULSE, U 1730 IF RG < 1 OR RG ) 255 THEN 1710 SE T 1740 PRINT : PRINT “THE PHONE WILL BE ANSWE 1105 REM CHANGE THE 'O' TO 'V FOR FULL DU RED- PLEX 1750 PRINT "AFTER"RG"RINGS." 1110 PRINT DfPRHO" 1760 GOSUB 1800 1120 rem mmmmmimmmi 1770 PRINT Bt"PRN2": PRINT "AT"DPt"SO="RG 1130 REM YOU CAN RUN ANY TERMINAL 1780 PRINT M “PRHO" 1140 REM PACKAGE THAT YOU WISH BY 1790 PRINT : GOTO 1590 1150 REM EDITING THE NEXT LINES. 1800 rem tmnmtttmttmttm 1160 REM PRINT Dt"RUN TERMINAL PROGRAM" 1810 REM FULL OR HALF DUPLEX 1170 HOME : PRINT : PRINT "YOU NEED TO USE 1820 PRINT : PRINT "DO YOU WANT FULL OR HAL YOUR OWN" F DUPLEX?" 1830 PRINT “(IF YOU DO NOT KNOW, TRY HALF). 1180 PRINT "TERMINAL PACKAGE AT THIS POINT" II 1190 PRINT "(SUCH AS VIDEOTEX AND OTHERS)." 1840 PRINT : PRINT "1 FULL DUPLEX" 1850 PRINT "2 HALF DUPLEX" 1200 GOTO 1970 1860 GET At 1210 rem tmttmtmmmt 1870 ON 'ML (At) GOTO 1880,1920 1220 REM AUTO ANSWER ROUTINE 1880 REM FULL DUPLEX 1230 rem m n t m t n m n t n 1890 DPt = "FI" 1240 REM 1900 PRINT : PRINT "FULL DUPLEX SELECTED." 1250 HOME : PRINT : PRINT M M 2) 1910 GOTO 1950 1260 PRINT 1920 REM HALF DUPLEX 1270 REM MENU 1930 DPt = "FO" 1280 ANt(l) = "DO NOT ANSWER" 1940 PRINT : PRINT “HALF DUPLEX SELECTED." 1290 ANt(2) = "ANSWER IMMEDIATELY" 1950 PRINT 1300 AIM 3) = "ANSWER AFTER XX RINGS" 1960 RETURN 1310 FOR SA = 1 TO 3 1970 rem mttmmmtttmitm 1320 PRINT SA;AN$(SA) 1980 REM EXIT ROUTINE 1330 NEXT SA 1990 PRINT : PRINT "THIS PROGRAM HAS ENDED. 1340 PRINT : PRINT : PRINT "SELECT ONE OF T II HE ABOVE" 2000 PRINT "THIS PROGRAM WILL GO INTO" 1350 GET At 2010 PRINT "TERMINALMODE IN5 SECONDS" 1360 HOME : PRINT : PRINT " "MW 2) 2015 PRINT "------" 1370 ON VAL (At) GOSUB 1390,1470,1640 2020 PRINT "TYPE 'CTRL-C' FOR LOWER CASE" 1380 GOTO 1210 2030 PRINT “TYPE 'CTRL-A' FOR SENDING LIME 1390 rem m t m m m n t m m m FEEDS" 1400 REM DO NOT ANSWER 2040 PRINT “TYPE 'CTRL-R' 'CTRL-X' TO EXIT 1410 PRINT : PRINT " WAKtt 1 )"*»" TERMINAL MODE" 1420 PRINT : PRINT "THE SMART MODEM ANSWER 2060 PRINT “------" FUNCTION" 2065 FOR I = 1 TO 10000: NEXT 1430 PRINT “IS DISABLED." 2070 PRINT Dt"PR*2": PRINT CHRt (9)"H“ 1440 PRINT Dt"PR#2“: PRINT "AT S0=0" 2080 REM THIS PUTS MOUNTAIN CPS CARD 1450 PRINT DfPRHO" 2090 REM INTO HALF DUPLEX TERMINAL MODE 1460 GOTO 1970 2100 REH FOR FULL DUPLEX SUBSTITUTE 1470 rem u m m m m n m m m 2110 REH AN 'F' FOR THE 'H' IN ABOVE LINE 1480 REH ANSWER IMMEDIATELY 2120 PRINT Dt"PRIO": END JMCftO

78 MICRO No. 68 - January 1984 Enhanced Apple DOS

By Enrico Colombini

his article describes how to build answers, we must look at the Apple Speedload an enhanced version of Apple hardware and at the inner structure requires: TDOS 3.3 which performs all of DOS. loading operations about four times Apple does not have a specialized Apple II or Apple II + or Apple faster then original DOS. The modified disk controller chip as Western Digital lie 48K or 64K with disk DOS is fully compatible with a 48K 1791 or similar device. It has instead a drive(s) and DOS 3.3 (16 slave DOS, including inner routines little masterpiece of engineering: a sectors). and addresses, excepted that it cannot "state machine” based on a PROM and format new diskettes for the first time. a shift register. This circuit performs the hardware encoding/decoding opera­ tions to and from the R/W electronics Why Apple DOS Is So Slow of the disk drive. But that simplicity has a cost: the encoding/decoding pro­ Since I started using Apple, I was cess is not complete. It just sends to or puzzled by the apparently strange receives from the disk drive a stream of behaviour of the Disk Operating 6-bit "nibbles” . The remainder of the System. Why the DOS itself is loaded process, that is the nibbles-bytes con­ much faster than a binary file of equal version, has to be done by software. length? A slave DOS 3.3 is loaded in Every track is organized as a stream less than 2 seconds. A file of equal size of 16 sectors, 256 bytes each. In (9.25KJ is loaded in about 11 seconds. reading, the software conversion of a Even considering the time spent in sector (342 nibbles to 256 bytes) takes looking at index and other file informa­ about 10 msec. In theory, it is therefore tions, there is still a great difference in possible to read the entire track (200 loading times. With an ear at the head msec) and then decode it (10 msec by steppin-motor and a hand on the stop­ 16 = 160 msec) in only 360 msec. But watch, I measured the average track- this implies a great waste of space for loading time: about 3.70 seconds. If the nibblized-track buffer: 342 by 16 you consider that the disk rotates at = 5472 bytes of memory! It is not five turns per second (a turn in 200 acceptable. msec], you can see that the-entire track A more realistic approach is to read passes under the head 3.70 by 5, that is and decode one sector at a time. That over 18 times! Why is it not possible to is, read a sector and decode it, read the load the track in just one revolution of next sector and decode it, and so on. the diskette? Where is the theoretical Ok, but what is the NEXT sector? limit? And the practical one? For the While the program decodes the first No. 68 - January 1984 MICRO 79 R aise you r A pple’s IQ e Tim A Year! Try a NIBBLE! Here’s what some of our Readers say: □ "Certainly the best magazine on the Apple!" □ “Impressed with the quality and content. ” □ "Programs remarkably easy to enter.” □ “I’ll be a subscriberfor life!” □ ‘Your service is fantastic.. .as a matter offact, I’m amazed!” Try a NIBBLE! NIBBLE is focused completely on the Apple and Applesoft-compatible computers. Buy NIBBLE through your local Apple Dealer or subscribe now with the Coupon or Order Card in this issue.

You’ll want Back Issues Too! Here are some examples of programs you can get: The Investor—Stock Tracking, Reporting, and Graphing. Recipe Box—Kitchen/Menu Management made Fun. A One Year Subscription The Librarian—Auto Logging and Retrieval of your Disks. Brings You 12 Issues W ith: Designer/Illustrator—Art/Design Creation and Composition with Graphics. Over $500 o f Programs for your Home, Business, Education Machine Language Editor—Quick and Easy Aid for Typing and Entertainment. Complete Program Listings with and Changing M/L Programs. Instructions. Comprehensive Articles that show what each program does, And Much ... Much More! how to use it and how to type it into your Apple, Franklin ACE or NIBBLE will become a permanent part of your Reference other Applesoft-compatible computer. Library. Discover why 95% of NIBBLE Readers save every issue Regular Features for the Beginner and Expert. Join more than 120,000 Apple/Ace users who say: “NIBBLE IS TERRIFIC!” On The Scene The Latest New Software/Hardware Releases. SUBSCRIBE NOW AND SAVE $12.00 OFF THE COVER PRICE Products! Inside and Out Comprehensive Product Reviews. Education Corner Programs that help make Learning Fun. We accept Master Charge & Visa Tips ’N Techniques Box 325, Lincoln, MA 01773 (617) 259-9710 Little known programming Tricks you can Use. I’ll try nibble! Enclosed is my $26.95 (for 12 issues) Disassembly Lines (Outside U.S., see special note on this page.) An Expert reveals the mysteries of Applesoft. □ check □ money order □ bill me (U.S. only) Utilities Your subscription will begin with the next issue published after receipt of your Superchargers for Basic, DOS, Printing, and More. check/money order. Games Card # . . Expires _ PLEASE PRINT CLEARLY Arcade Fun you can Type and Run. Signature. Note □ Domestic U.S. First Class subscription rate is $51.95 Name ___ □ Canada A ir Mail subscripton rate is $59.95 Address. □ Outside the U.S. and Canada A ir Mail subscription rate is $89.95 I All payments must be in U.S. funds drawn on a U.S. bank. City------©1983 by MicroSPARC Inc. All Rights Reserved. State __ . Z i p . I Apple® is a registered trademark of Apple Computer, Inc. ACE5 is a registered trademark of Franklin Computer, Inc. — RD1BYT calls another routine which increments the POSITION file Figure 1: Sector Interleaving pointer. After that, it returns with the wanted byte to main file manager Access order by R/W head of disk drive "] routine. — File manager returns to external 0123456789ABCDEF Physical sector order level. — External level returns to Basic with 07E6D5C4B3A2918F Logical sector order the first character.

The above procedure is repeated for every character requested by Basic.

sector, the next physical sector (the Apple DOS is a deeply structured Just a little confused by this second) passes under the head and can­ program. It is very well written and can simplified explanation? Well, think not be read. Since the decoding time be easily adapted to different diskette that all increments and calculations are (10 msec) is shorter than the sector organization, that is shorter sectors, done in 16 bit arithmetic and you may duration (12 msec approximately in­ more tracks, etc. At the moment, begin to understand why sequential cluding header), the program can safely however, the 3.3 version is widely files reading is so slow. But, you will read the third sector. After that, it loses accepted and the coming of another ask, what has that to do with loading of the fourth, reads the fifth and so on. version is very unlikely, unless the Basic or binary files? It has since DOS, It is so possible to read only 8 sec­ DOS is wholly changed for new disk as I said, is highly structured: it loads tors per disk revolution. Starting with drives. We can therefore see if the these files using the same above the disk head at the beginning of the slowness depends on the DOS structure described procedure, as if they would first sector, it takes two turns (400 and, if it is so, see if it is possible to be text files! So, Basic and binary msec) to read the entire track: reducing reduce the structure level and so speed loading is very slow too. the buffer from 5472 bytes to only 342, up the operations. we lost about 10% of speed. A very The SPEEDLOAD Approach good compromise. Considering a head Apple DOS is made mainly of three positioning and first sector finding time blocks, in order of depth: How much is the wasted time, in of 150 msec (average), we can expect to terms of disk sectors? When DOS is read a track in about 550 msec, or .55 — The external level, which is the in­ loading a Basic or binary file, after call­ seconds. The DOS track loading time is terface with Basic, monitor and user. ing RWTS for reading a sector it waits near to this value, so we can consider — The file manager, which performs for a little less than 100 msec (8 sectors this time (550 msec) as the practical all operations on diskette files. or half a track) before calling the RWTS speed limit. — The RWTS, which physically again for the next wanted sector. Well, Apple can load a track in .55 reads/writes a single disk sector. I must now explain another feature seconds. Yet we do not know why DOS of Apple DOS: sector interleaving. cannot. We must find the reason in the This is (roughly) the sequence of opera­ Using RWTS driven by a fast routine, deepest depths of DOS itself. tions when Basic inputs a string from a as it happens when loading DOS, it is sequential text file, already opened: possible to load a sector every two, ac­ The Cost of Structured cording with our former analysis. Max­ Programming — Basic calls input routine for getting imum speed can be achieved only if the first character. Since READ com­ sectors are loaded in that order. In DOS I like structured programming. Itmand is in effect, DOS intercepts 3.3, every track is initialized with sec­ improves program development, the call. tors in ascending order, that is starting testing, debugging and reading. The — DOS external level calls file with sector $0 and ending with sector program occupies less memory and is manager asking for a single character $F (hex). But this is the physical sector much more easy to modify, even by from active input file. order. Using a table called "interleav­ another programmer. I make large use — File manager calls its internal ing table", DOS make use of the sec­ of it in every language, including Basic, routine "read one byte” (RD1BYT). tors as if they were in another order, and I am greatly rewarded: my work is — RD1BYT calls a routine which, if a the "logical order". much easier. All these advantages are byte is not already available, finds and Figure 1 shows the correspondence achieved at only one cost: the program loads the next sector in the buffer between physical and logical sector runs slower. How much slower it runs, (using RWTS). numbers. The upper line represents the it depends on the level of structuring. — RD1BYT gets the requested byte sector numbers in a track as they are More deep the structure, more slow the from the buffer. physically written on the diskette dur­ program. For some time-critical pro­ — RD1BYT calls a routine which in­ ing initialization process. The lower grams, structuring to the deepest level crements the pointer (offset) in current line shows the sector numbers as they can be a great disadvantage. For these record. In case of sequential files, are used by the DOS (the RWTS). DOS programs, the programmer must find records are of course one byte long. stores sectors in descending logical the better compromise, that is the level Since end of record is reached, the order, that is starting with sector $F where it must stop structuring and record counter is incremented and the and proceeding towards sector $0. start 1' spaghetti-programming''. offset is reset to zero. Every sector is stored in the physical No. 68 - January 1984 MICRO 81 sector located through the interleaving table. For example, logical sector $F is Figure 2: Approximate binary file loading times (in seconds) stored in physical sector $F, logical $E in physical $2, $D in $4 and so on, as File size Normal DOS Speedload DOS stated by the table in fig. 1. As DOS always uses sectors in logical order, 1K (1024 bytes) 3.1 2.5 you can forget the upper line and look 2K (2048 bytes) 4.2 2.7 only at the lower line (logical order). 4K (4096 bytes) 6.5 3.7 When loading DOS itself, after 8K (8192 bytes) 9.8 3.9 reading sector $7 it must be decoded. 16K (16384 bytes) 17.6 5.7 32K (32768 bytes) 32.3 8.3 During this operation, sector $E passes under the head, unnoticed. When RWTS is ready for reading sector $6, it is just this sector which passes under the head, with very little delay. The loading time is thus optimized. The not ever possible, as some sectors are reading a block of bytes of specified situation is very different when loading only partially written and unwanted length. a Basic file (it is the same matter with a bytes must not be placed in memory. - External level sets required binary file): the time needed by the file Looking closer at the file structure, it parameters and, if needed, starts the manager for processing sector $7 is so can be seen that only the first and the loaded program. great that in the meanwhile sectors last sector does not contain only bytes In all loading operations, file $E,$6,$D,$5,$C,$4,$B and $3 passto be copied in memory. The first manager make use of the formerly under the head. When at last DOS is because it begins with address/length outlined RD1BYT routine. But for ready for reading sector $6, that one is informations and the last if it is not ex­ loading a block RD1BYT is called already passed by and it has to let sec­ actly filled [which is unlikely to hap­ through a "read L bytes” (RDLBYT) tors $A,$2,$9,$1,$8,$F,$0,$7 and $Epen) . All the sectors in between can be routine which sets L (the required pass under the R/W head before it can loaded directly in memory without any length) and jumps in a general purpose at last read sector $6. 17 sectors to problems. routine (read/write a range of bytes]. It wait: a very long time! That is the theory of SPEEDLOAD: is therefore possible to alter this jump In the book Bag of tricks by Don loading the first sector in the normal and redirect it to a hi-speed block Worth and Peter Lechner (published by way, loading all the subsequent ones loading routine. Quality Software) you can find a directly in memory, excepted the last, Since the 48K slave version of DOS similar description of the problem. The if it is not wholly filled. Obviously, 3.3 is universally accepted, I decided to authors call the time wasted in waiting there is no gain in loading a very short make SPEEDLOAD not relocatable, the next sector to read "rotational file and in preliminary operations (in­ thus keeping it smaller. delay'' and the time wasted in process­ dex looking, etc.), but there is a great After a careful analysis (using ing a sector "file manager overhead” . speed improvment as the file size grows some DOS sources and the Quality Searching for a solution, they discarded up, as you can view from figure 2. Since Software's Beneath Apple DOS), I (rightly) the idea of modifying the in­ SPEEDLOAD trick is in the DOS, it do determined the input parameters and terleaving table, because DOS and not requires any modifications on conditions of RDLBYTE. These are diskettes thus created were incompat­ diskette formatting and can read any outlined in figure 3. The new routine ible with standard ones. They suggest standard diskette. The modified DOS must respect these conditions in order to modify the physical sectors order, in can be put on the diskette and it will be to maintain compatibility with stan­ such a way that 8 sectors lay between booted exactly as the standard DOS. dard DOS. two logical consecutive sectors. It is a Let us go to the practical implementa­ good idea, but it has some disadvan­ tion of SPEEDLOAD. The SPEEDLOAD routine tages. First, it requires to re-init the diskette. Second, the majority of copy Inside The File Manager The SPEEDLOAD routine is very programs, and the more reliable ones, little structured, because speed is will destroy the work and restore the Since SPEEDLOAD must deal with needed. There are only 2 msec (or little standard sector order on the copy. Basic and binary files, we need to look more) available between RWTS calls. Third, all that work can achieve only a closely at the loading process. The in­ Figure 4 is the listing of 45% gain in loading speed, in the best volved commands are LOAD, BLOAD, SPEEDLOAD routine, (in LISA 2.5 for­ case. If we might read a sector every RUN and BRUN. First, notice that mat). Notice the assembly address: the two, as in the DOS loading, we can RUN and BRUN make use respectively SPEEDLOAD routine take the place of achieve a much greater improvement. of LOAD and BLOAD routines, so we the DOS 3.3 FORMAT routine, that is But this implies rewriting part of file can look only at the latter ones. Let's the routine which physically initializes manager. Well, if there is no other way, look at the DOS loading process: a new diskette, writing the address we must follow this one. marks on it (and empty data too). The There is a problem: after loading - External level calls file manager for FORMAT routine is therefore no more and decoding a sector, there is no time reading file informations: loading ad­ available, but this do not means that it for copying it in memory at the right dress and length for binary files, length is impossible to INIT a diskette. Since place. It were therefore necessary to only for Basic files. the INIT routine is not modified, it is read it directly in memory. But this is - External level calls file manager for always possible to re-INIT a previously MICRO No. 68 - January 1984 Figure 3: RDLBYT input variables (for 46K slave DOS). DOS, then boot SPEEDLOAD DOS and All 2’byte variables are in the L'H order. re-INIT the diskette. Memory locations: 2.) Transfer tracks 0-2 from SPEEDLOAD diskette to normal diskette, using some copy program. Loc. Name Contents and/or meaning The second way allows you to in­ $B5BB FMOPC $03 s READ (FMNGR opcode) stall SPEEDLOAD without erasing the $B5BC FMSUBC $02 = R/W RANGE (FMNGR data on the diskette, if you have a track subcode) copy program. $B5BD FM PAR+0 Record index. In practice, position in If you want to copy a SPEEDLOAD FMPAR+1 file $ 1; it is $01 if Basic file, $03 if binary. diskette, you can do it with COPYA, $B5BF FMPAR+2 Byte offset in the record; always 0. but the destination diskette must have FMPAR+ 3 been previously INITed with normal $B5C1 FMPAR+ 4 No. of bytes to read (FILEN) DOS, or you will get an I/O ERROR FMPAR+5 message. $B5C3 FMPAR+ 6 Before jumping to SPEEDLOAD FMPAR+ 7 routine, it will contain the loading Conclusions address (now in Y,X) $B5C5 FMPAR+8 FMNGR return code Although there are many speeded- $B5C6 FMPAR+9 Not used up DOS available on the market, $B5C7 FMPAR+ 10 Address of FMNGR work area buffer + 11 SPEEDLOAD DOS is the only one, for $B5C9 FMPAR+ 12 Address of T/S list buffer, which that I know, which is fully compatible + 13 contains the first T/S list sector with normal DOS in inner addresses, $B5CB FMPAR+ 14 Address of sector buffer, which POKEs, variable usage and so on. + 15 contains the first data sector SPEEDLOAD works only in loading process, and that is its major limita­ CPU registers: tion, but that is a constraint if you want to keep compatibility with DOS A: don’t care 3.3 (and, beside that, I do not wanted to Y,X: loading address (H,L) to be stored in FMPAR+ 6 ,+ 7 rewrite all the DOS). However, if you Zero page variables available: have a big program, or you made use of chaining or machine-language $42,$43 only. routines, SPEEDLOAD can save you lots of time, in program development and usage. used diskette (if it is not damaged). It is assembler to save the produced object I tested SPEEDLOAD with over 200 not possible to INIT a new diskette for code under the name SPL.M. programs and I do not found any in­ the first time, because the routine compatibility, even with programs which writes the address marks is no Installing SPEEDLOAD which make extensive use of the file longer within DOS. A direct call to manager, as FID or Microsoft’s TASC RWTS Format returns with a "format Once you have assembled the compiler. I confess that I removed the error" indication. SPEEDLOAD routine, you must build protection system from many of my A diskette must be INITed for the a SPEEDLOAD DOS, following this game diskettes, only for installing first time using a normal 3.3 DOS. procedure: SPEEDLOAD and avoiding frustrating After that, it can be re-INITed with delays. I hope we do not have to see SPEEDLOAD DOS, unless an un­ — Boot a standard 3.3 DOS. again the hateful "please wait while wanted exposition to a magnetic field — Put in a new (blank) diskette. loading...", now that SPEEDLOAD is has destroyed the formatting. More in­ — INIT the blank diskette. available. iMCftO formation about INIT in the next — Insert the diskette with SPL.M paragraph (installation). — BLOAD SPL.M, A$BEAF Biography The routine is 257 ($101) bytes — Remove the diskette with SPL.M long. A more detailed analysis of DOS — CALL-151 (go to monitor) After working five years in designing specialized circuits for FM broadcasting, might have allowed to further reducing — A477: 4C BA BE (link SPL routine) — AE93: EA EA EA (unlink Format I founded a little firm which is now the routine size, making use of some growing in the European industrial DOS subroutines, but I preferred a self- routine) micro-board market. Since January 1983 I contained routine. The only external — CTRL-C (return to Basic) work as free-lance programmer and call is for RWTS. You might be sur­ — Put in again the blank diskette. writer (mainly for Jackson publishing — INIT the blank diskette again. group, based in Milan). My first interest prised to see a single zero page pointer in programming are high level multi­ (PTR in the listing) used alternately for player games and didactical applications. two purposes, but I chose to use only You now have a diskette with I am responsible for small computers in SPEEDLOAD DOS on it. Transferring locations used by the standard file ABRS (a research association] and ASTROFISMA (a didactical one for young manager routine, thus insuring total SPEEDLOAD DOS to another diskette can be achieved in two ways: people). I work with an Apple n, two compatibility in any case. drives and silentype. The DCM directive instructs the 1.) INIT a new diskette with standard No. 68 - January 1984 MICRO 83 A CJ OMJ c x tn ■ H 1 * c c: CC| ro a i o a> U.C i/i Uul F—I W+* t. cn JB ■—■ o IQO c- c 41 **-• gl £- J. o , C- •H O 4» o c ,—4 -4-5 ro C— 0 '-' o o «- crt 41 ff i TO r a 41 •• 41 ro « l/l O -rH ■P &; C f t f l CO T> fc-3 a =» > - — * O W 41 •U 41 .5 x 25 at “O 3 JO CO n i *H ° 8 A] ■*• 41 ui t*- -*-> C o ►— I/I e— •«-> s- •—* i/i <*- c- o c= ui + * A « f - 3 Ifl 4» C- rOT3 4 i or* r o ■H 41 fc- =J U ro »h-HQ "S^ S o O l X 41 V I s ’ ■S-ti «~» o ■ *0 £_ 41j 21 o 41 > - II 3 LU -»-* i/l ,3 <2 c . r o H3 "O <*- £_ t n utm >- ■—• cn 4 l ^ - V •H • ^o £ c +* CL C 4 1 * 0 ^ * ( . C- U C 41 ■o *->• t- —J v> O) h (- m =i o c j ai ro s- -*-* Q -O » •—i j f ui 3 O + > =» S= s- o h o p i_«r> cr« O-C-H 41 t. fO o 41 •PV 0 ( 0 4 1 »■ c • H “C C c - r t - a c n 41 > .•-I'v. men ^ 41 4* c_. tn ro > J3 Ui V H - • O "C ns o •/* 41 e ro 4i n? **-*— ro o 5 S t .** m C o r-H O o e - z : • t — > r m 41 >••«-! O "a r-H r-H l/l m w '—■ w ^ j 3 tfl .& in 4i rQ 4 j - £ t z - x _ o i • ro 3 ui ui J/I-*-3 «*- CJ A ^ n j v H m c ■ C+. r-H * 41 I/I 41 P^f. H H-OC ■ ■ r— '— o ro r o -^ t- '*"• ■** ° ° s s o *h n j = 4J C* -O 41 b. 4I H h~ Lul O a n + oecu Ck- + o +J t - c «f- O 41 <—I o o o o <4- f-s.-*-* yi (-T3 U cc: J O - f l g e j c j t x : c j cc: ►— a : oc s oc: oo Oc^O(-if)U13 S no • ^"0 X 3 X LUQ£ ► t o o ^ -L U I■ U■ J, a I— i Li-ii i I—H - ftO -lA ii_lt— jt— Luli * j U—. £ Al U . CG Ui b> 3 »H U) a -s -s __i o 3 - O II II II U -^ -JO ->- C C O U i ( L 3 n II 103 i c o i m i u i it n —i t o 2 © t - o 4»-*j £ s r + o b . o i - C i/i p i - ro ■ H u j m Q i o u j o s x ; £ C q f *c w ai s 3 mi i/i ro >— i/i ^ : u_ jE h- coi-« —3—a ___ l/v^ i f ■i , i l/l L/l - Lul j c X a , o c i— ** <35 «h-

‘O fs,oo^orirM M ' r * r‘iro ■<■ in-. o 2<£» O* Cl* o> o o ^ o ^ >—<

U2in in in *P *G iXi 1X1 urt c a

0 = 1 c-j c j m ca pocm ro

^Q ^auooainQ iO HLd'CiiJ'O

oopft *f»

»• 41 ■U W*0 *o 01 Ot c ro O v» Jk.' 4l ’ H CJ 4f 41 U 4i mi i_i t - h* r-H £_ (_ l/l o =3 Lul •H S= *0 41 r-H > - p <4- O c-.-cc._a * : >- -t^ =3 roT3 t- t~ u_ f— e= H-> Xlr-H U- o H-> o • «H 41 41 L Ifl o o **- ro ^ . - " 2 c c: Cn l 4; l CD X crt -rH 4l t- s 4» *- CO 41 C. c. 41 ro t- c*- 4i C h- Or* 41 o «.fl 4i 41^ _o c- C <11 a <4- o 41 ro -*o Lu. ' S* ' H ^ 3 5 X U X c <- c £ C 'r t C» X 3*»- 0 2 =» 3 ■•H O - 4» 1%: *— 41 £_ C r-H O V ■ • l/l c*co 0 9 0 4 1 <= <=>- cx £. 3 o U «= x •—* cn cl t— ui •H X X 41 X*H £_=* 41 4141 H o 41 41 > Cxi c j ujuc: r U - H O l^ O &J— h- O • »•■»- *»>a»

**■ tn H H « C. ^ ^ UJ m* c/5 ro H H U W ^ A lxl> K « CO _J H « 3 CO UJ*-0 0 (/} H H X UJ _I ■♦- < C O h z x in M o UJ M AUJlO- AOcJCJUULulU. CO Lul X »•< « h ______^ ro *— Nrj'OUJ ►-j n ininir>irj|i->irirv.tn — go 3 0O^0»A q£ _J 00000 )0 0 00130 00 00 => O 0O«-V O ^ I N U J cc o<«>- ^4 uj h a . t h-> = 3 2 ^ > 2 cd m u h c n o h •«-* ^ rn ocioca ro c= cacj G»ca g »c j q i o o -a acsa. oc > j ft >>l r-H I „CZ • UJUJUJUJ • o UJ UJ UJ UJ UJ UJ Lul UJ __J 41 Lul Lul UJ CD ‘ ■ 55 m r o o ro ovh ro ro a 3 M H to • u (- o CO cn H h uj 1/1 >ae: o oc: o « — cj u_ uj m H CO 4» O o C=a Lul a d o ro o c ^ h - i— U - = J a r H H O >r C- OH cocguix: > OUJ&UJ3A 3 H . 9- * cS M o o u x ; ■•» »— o c o c g -w- w c j ^ i Z c g S c j e o - j HMHHH 3—loo UJMUIZCOUIOO ---- .► •• .►■» •- « • — .-••^cupu. — .»o^u_ uac. h- co h =>

thtj ro -rio-o r^. co o H firo 't in,O N A O ' 0 »HC'Jro'^'ip*o»HC,,iM5 ' ' i n ^ (C N C-| CM T 1 ^ 1 r -J C M r - jM C J W r O M M f O M M K l f O fO « T ^ - T lO ITlU O lO ID O 4J

UI

41 cl. -c o c: £ «j Ol 41 A m a cn o i c 4» a * "O 1 Lkl ui 41 o^> ■ co ui cn a 4 # i m ro > h — s’. o a _ »■uj ^ ^ - ►— 4i v ,0 t—« H-■ »• »-H Ul t-U l U-—.-0 t_ ►—*—* c »— fS O41 «1 fh 5 o ro «= "O c c 'Hp H H-»0 - >- M S- 11 ti C “ » _ »— -U. W w Of —I c- ►GC 4» 41■— d " 0 off -»h xcn =» ^ -h » t- -£ a t- t- a > c- .c ra -*j 4jh- ■** u ^3 S m=> 4i oa: « ■P (. H C 4 i fO Lkl £13 *-CC 4iq. •Hu. o -*J t- (. S ra ffl O t-LiJ*—• © — — — ■ * -*j -O ■Off -*J =5 5 1 2 41 c * * _ \ j m ro*H -a c- ______i 5 £9 "pm o ^ * o e j 4) o 4»OC © <*. o Q o 4j 4) -s £ c toc n _J1 a0 :a: 0 . - U t-J M ►“* a tfo c o c c hhh in ¥► U aill

_ O* Ll . O O ■*•■ c ^ I—»+> •«H S t I (J m -*j <£**_ 41 ££u j c j uj cjuc: Atni^oi^ch a « 3 ^ CL r0 -|H */» M . __ _ # w • — -r « + 5 + 5 +Q •" UJ 4|W + A 3U. + r* 4- flQflaO^U-PQgtpUJUJ =2cnH-cn5-,-t&-o« (L O. >< flQtt OOC H-flQ a.O(nou>aui<*u) h-A fiQ ttaXS 4ZCJQ. o (_ x^ai—i U OC "O 2feiS?£ OQ __lU.g>OOaOQH-U.-J-4;«>*tf m o i ^ v o > tn***oH on-ao»—XQHaHOHigOHH h- w« O'fHoe oujoo 3 5 *“ -iH M flO __icn jm j __imM irn irn itnn __irno^ D *H _i A _ iuj tn _lcn—l_l ^ —ICO a _l to ^ oe ^ •" a cor*

£ “ §s s S OC C*t

^r-j ro -=r in^ONCO a-o^c-jfo^in-or-H .ffl^-o ^-iCMi-o-jr m-or-s.QoCr*o *-*rM i-o*«r m ^r-* ixi 0 ^ o ^ c M r 0 ^ * n - - ' 0 r ^ g 3 & - 2 K N N r - v r s N . r s K r v c o o o c o c o c o c o c o < d o o a 9 0 «o^fr>oooodpo «—< vH »-» rH »H v—i vH V—I v—i v—i i v—i vH T-i*-* H « -p-h -p-h tH pH «-< »h *h (vif-J Oi?J N W CM CM CM CM w N fv l CM CM CM C-JCM rJ *>J CM f4rMCM (S| CM

u.tnin in in r-<. m o n i o n u _ m tr in £> r^. in in ^ Sff n co oa ixi MffiAMMa ea e o 2o 00 a a 00 S o a rs,u.ii.a)(hc^3THC'4u oiOo-o^-iii 'Tuiuu.uii.oon ui'-'uu.uJOu.uJaiixiu.ii.oOuin o ui uj o q i t i q m o * q o •*—»ts^» a a a o o * ^ o c j Q0 Q q'pfltQ $i};0 > g 0 5 a 0 0 r^uiuiQ^QO^EQOtf txiosuA iscaiSQ O r^^co^ 2 u<*^cd^co^«h«coo'iioo)»uJH r«)2 Nt;KjsNNNrs ^g^1'?^0^^-0'00^?0?0? m m inm inin'O *O ‘49'C'O'-o’i>'Q* o m

4{ c :>' . «H « 2^«n 3 ac £ 01 b= Cd 4 i v r t 3 A x roA ^ O 4ic_.ac 4.CJ -t-i ex. t-H <= © ro ui Cb O >. pH 4) CO !C c ■ c= t- C- t_lrH 4 i “l H •—*UI •pH o 41 o || rd c: u (_ w ^ u. Oi ^ Li­ C s 'H OfQ u 00^41 P pH U» za 4J O rtj ac H->HJ ^ 41 - * j 15 - o 4 * 0 UI A * ^ *0 _^<*- S-*j y u»S t- 'j i^-iti ^ <4- 41 CO A — + I *Oovn^U]4lfl^.H4lO H-? t - *—££ A CD C H- **y ». rQ t- M tfl 1 T3 UI >^rH o •. -O ►— C3 1—« •H a . LftJ o ll-Q O rH 3 c f - £=•>-« -a c: o- t-H > • £ _J It a t- C + > « • I-H O UI rd «-H • • rm ■pH __ c: 4> uj m z -p 4 1 V 1VS {Su .<•' H E 4 1 ro > -ai£ : G pH 4 1 3C ij_ u j - > -s -it n Zj x -^ h j v o h O n a - H t f hj* ui o c: 41 t - jO o h - ac t—4 41 o O *“1 ^ Os c U< (J 4> •pH "CLu O 4t +4 0 . ui Li- C •> TJ c 41 V 4> ^ d| O 41 C T3 !==> C» H-> > -P u t£ _j "O ph m » CO c > m ro Xso c rq £«P (rt h ra M CC| ra u » iJfljU *—* 4 <- c: * ^ < 4- =3 4u _ £ 0 0 0 e j M i n e 0 H CO u 41 no a.oc:Z u. hh rqmmu.>. 2 : —i>- £__j _iZm o »-hi— c oih^ 2 ? 3 _J >-»— h- CO . _i ^ £a3C_ rn o ^ ; «<►* »-H ^_i _ f— C- O I in w ff t- *» . pH iH C 41 »“ I r - t X UI « H —• , 41 U* K -O .0*1 C 41 • fO , 5- | -s. t- 2= tn 0 0 I I— m -0**H O r-H "O *g cl y h >- >- X # _ ro r a m m - <+- 4* ♦ • •> 0 ^ 0 4 !^0 > H UI COO- U. U.^-H-^'*-^ ^40 ^ _ a>^_. okii m >■ c«i — + a.+ 1 •—__ = — 3 + oe .*■< +_i_ m> X' I_I t- cu. 4J --'oc ^ a«a.iaaaciaaacH-A -A t- c -hD uhoc h ootnroi-tni— Q-o SI 3 Q| t 7 3 < » t .(. « I«* UJLlJ ^ I—• >—• t— t— O - t— O - ^1—1 u> ■ j- focnm / n 3 w M j _ _ _ ^ o»—c j **-o > - « x > - he - *a:-« I— x **- —I I* 'H O C HHppHOHaH-*OH , 4 1 o •- ll ••-* cnco __i _ j cn _ j cn _Jcn*~* —»cn o c "C xAo-cna. . S *c 41 »c=icok>s: u A UI *= “o y co ro ro •• *— o «♦- 41 ■• h- x a t _ j »—• «_ a c 3 u i

rH ojro< io-

i£2 in in u-5 m in ^ -jin i n m m ^ . m m u . i n m m in r-4 knu-ji/? m r > r ^ . A A A A A A A A A A A A A A A A A A <^l A C AAAA AAA

oocmoMrofM rNQCQcjf^ooro -»*cm ■«■cjcj r~-- l»_c»» c j UO^UJCJOCJUOUCJuUr-J UCJOCJuriOAUUroUUUuPLiJ u. U. A c j '■r CJ -*■ UJ ^-Ul c j <5 » -^h c j u o u j a o u j u o o o 0 0 0 A 0 a u i o o o a u jo u ju j A a o u ouicjouia m t~* qco tha 4 u3 « u3 <1 A u c j « o .i» u jh < -hd co a u j ph-t r-,U-i^-U-U-U- ^ OO gCi A A 2 S S ) flO A A A A <^*» ( S 3 S A A CO CO A A A A A A A f l o p n p f t ^O A A A A AO CO GO A A A CO A COCO CO CO CCt iSO CO AO PO CO CO CO CO CO CO A FOR YOUR APPLE II

Industry standard products at super saver discount prices

BUSINESS SPECIAL Includes 80 Column Z-80 Card • 16K Card • SOFTWARE Wordstar • Supercalc SPECIAL AND N E W Special ...... $795.00 ARTSCI List SGC Magicalc ...... $149.00 $ 99.00 FRANKLIN COMPUTER D.O.S. Programming SPECIAL Magicwindow ...... 99.00 65.95 With 48K RAM, 1 Disk Drive, Disk Controller Card, 80 column Card • Magicalc • Magicwindow • Magicword ...... 99.00 60.95 12" Amber Monitor, Additional 64K RAM, Magi- Magicspeller • 16K Card Special .... $449.00 Special, All 3 of above .. . 347.00 219.95 calc, Magicword, Magicwindow, Magicspeller 3-CARD SYSTEM BRODERBUND Special Price ...... $1949.95 80 col/1 6 K card/Z-80 card Special ___ $319.95 Payroll ...... $395.00 $255.95 “New” from Prometheus Products MODEMS Acct/Rec ...... 395.00 255.95 ProModem® 1200 Bell 212A 300/1200 Smartmodem 300 ...... $219.95 Arcade Machine ...... 59.95 39.95 Baud Modem Smartmodem 1200 ...... $499.00 C h o p lifte r ...... 34.95 24.95 A. Can be expanded into a telecommunication D-Cat Modem ...... $164.00 Sea fox ...... 29.95 20.95 system as a stand-alone package. MONITORS Galaxy Wars ...... 24.95 20.95 B. Real time clock and calendar 14” Composite Color High Res ...... $260.00 C. Help Commands DATAMOST Amber 12” ...... $129.95 D. Built-in diagnostics Property M gr...... $295.00 $194.95 E. Auto dialer Taxan RGB color ...... $395.00 Real Estate F. Programmable Intelligent Dialing LISI Hi/Res g re e n...... $141.95 Investment Package ... . 179.95 118.95 G. RS 232 interface 80 COLUMN CARDS Tax Beater ...... 129.95 89.95 H. Internal Power Supply Smarterm 11 ...... $149.95 Zaxxon ...... 39.95 27.95 OPTIONS Videx Video Term ...... $215.00 Casino ...... 39.95 27.95 On line phone directory Ultra Term ...... $289.00 Conquering Worlds ___ 29.95 20.95 Expandable buffer from 16K to 64K View Master ...... $139.00 Mating Zone ...... 29.95 20.95 SPECIAL ...... $ 475.00 Apple lie 64K, 80 col ...... $ 99.00 Pandoras Box ...... 29.95 20.95 BASIS 108 Z-80 CARDS Series Baseball ...... 29.95 20.95 128K computer ...... SPECIAL $915.00 Microsoft Softcard ...... $229.95 INFOROM Also available with CPM 3.0 or DOS dual drives Z-80 P lu s ...... $125.00 Zork 1, 2, 3 ...... $ 39.95 $ 27.95 monitor, perfect series software or Magicalc, Z-Card 11 ...... $131.95 Magicwindow and Magicword. Call. Planet Fall ...... 49.95 32.95 EDUCATIONAL SOFTWARE Starcross ...... 39.95 27.95 PROMETHEUS PRODUCTS Spelling/Reading Primer ...... $ 29.95 16K Card ...... $ 60.00 PEACHTREE P erce p tio n ...... $ 20.95 64K Expand-A-Ram ...... $ 225.00 Counting Bee ...... $ 23.95 Peachcalc ...... $150.00 $ 92.95 128K Expand-A-Ram ...... $ 275.00 Word Scrambler ...... $ 15.95 Peach Pak (G1/Ar/Ap/) .. . 395.00 226.95 Graphitti Card ...... $ 36.95 Mailing List Mgr...... 250.00 151.95 (Specify P rin te r)...... $ 89.00 Intro. Algebra ...... $ 2 1 .9 5 P.S. 16K Buffer Card SENSIBLE SOFTWARE BUSINESS SOFTWARE Expandable to 64K ...... $ 105.00 Medical dictionary ...... $ 99.95 $ 72.95 Applesurance Card ...... $ 99.00 Wordstar ...... $244.95 DOS Plus ...... 25.00 18.95 Spellstar ...... $159.95 VersaCard Four cards in one Legal D ic tio n a ry...... 99.95 72.95 W Star/MMerge ...... $395.00 I. Serial 2. Parallel 3. Real Time clock and WStar/SStar ...... $422.00 SIR TECH SOFTWARE calendar 4. BSR P o rt...... $ 159.95 Supercal ...... $129.95 Legacy of Llylgamyn ___ $ 39.95 $ 29.95 With G raphics...... $ 199.95 PSF File ...... $ 88.75 PRT-1 Printer Card ...... $ 79.00 W izardry ...... 49.96 34.95 PSF Graph ...... $ 88.75 Galactic A tta c k ...... 29.95 21.95 PRINTERS NEC 8023 ...... $ 395.00 PSF Report ...... $ 8 8 .7 5 SIRIUS with interface PSF3PAK ...... $246.75 Bandits ...... $ 34.95 $ 24.95 card and cables ...... $ 449.00 All equipment shipped factory fresh. Manufacturers warranties Epoch ...... 34.95 24.95 OKI 82A included. California customers add 61/2% tax. Include payment by personal check, money order, or cashier’s check with order and Fly Wars ...... 29.95 20.95 80 col./120cps ...... $ 439.00 SGC will pay shipping charge. Cad for amount of shipping charge Beer Run ...... 29.95 20.95 OKI 83A when paying by credit card. 136 col./120 c p s ...... $ 695.00 Outpost ...... 29.95 20.95 All item s are norm ally in stock Brother Snake B y te ...... 29.95 20.95 LetterQuality ...... $ 889.00 Sneakers ...... 29.95 20.95 Transtar 315 415)490-3420 Joy P o r t...... 49.95 37.95 Color Printer ...... $ 469.95 . .. And we’ll be here to help after you STRATIGIC SIMULATIONS receive your order. Feel free to call the SGC ACCESSORIES Germany ...... $ 59.95 $ 42.95 Technical Staff for assistance. T.G. Jo ystick...... $ 42.95 59.95 42.95 North Atlantic 1986 ___ Select a Port ...... $ 39.95 Rapid Deployment System Saver Fan ...... $ 69.95 Force ...... 34.95 25.95 Super Fan 11 ...... $49.95 Road to Gettysburg .... . 59.95 42.95 Slimline Disk Drives ...... $ 225.00 Computer Baseball ___ . 39.95 32.95 Disk Drives Full Ht...... $ 195.00 Computer Quarterback . 39.95 32.95 Floppy Oise Box 10 ...... $ 25.00 Floppy Disc w/order ...... $ 19.90 sThe mail e order e specialists Bomb Alley ...... 59.95 42.95 Napoleons Campaigns .. 59.95 42.95 342 Quartz Circle, Livermore, CA 94550 /AlCftO Apple Reviews

Product Name: Printmate 150G Printer Minuses: The program is overpriced. I've seen similar Equip, req’d: Serial, Parallel or IEEE interface home finance utilities for half as much. Functionally, the Price: i only feature I found offensive was the inability to display Manufacturer: Micro Peiiphals, Inc. on the screen all the reports that could be printed. 4426 Century Drive Salt Lake City, UT 84107 Documentation: The documentation is entirely adequate. The tutorial is written clearly and is easily followed. Do­ Description: A high quality dot-matrix printer with bi­ ing so, one can learn everything in about two sittings. directional printing, true descenders and one-pass underlining capability, the 150G prints 100 CPS, 132 Skill level required: A new Apple owner would have no characters per line and has a IK (expandable to 8K) buffer. problem using the program. While printing normally with a 5 x 9 dot matrix, a serif font is included for letter quality type in a 11 x 9 matrix. Reviewer: Chris Williams Dot addressable graphics are supported, and an Ap-pak is available for Apple owners with full software support for screen dumps including different sizes, alignment and Product Name: Apple Record Manager printing two pictures at once. Special fonts may be down Equip, req'd: Apple II or II + with one disk drive loaded into RAM or stored in ROM. An optional external and 48K keypad is available for setting printer options and is Price: $40.00 backed up with a battery for remembering the settings. Manufacturer: Connecticut Info Systems 218 Huntington Road Pluses: A very fast, very high quality printer which makes Bridgeport, CT 06608 the imported models pale in comparison. If you want a better quality printer at a comensurate price, this is the Description: Creates and saves text files, which you can printer I recommend. I have used it for all my printing for 4 then edit, append, rename, or delete. This Menu-driven months and have not had a single problem. program allows you to set up sequential data files of variable length. You name the files and fields and can Minuses: None. quickly view/edit data prior to printing or saving.

Documentation: An 80+ page technical manual and a Pluses: One-keystroke commands make operation smooth 50 + page Ap-pak reference manual are included. They are and simple. A quantity of utilities perform all needed func­ terse, well written manuals. If you like chattiness, buy tions from the menu. an import. Minuses: Error-handling is only marginal and might trip Skill level required: No prior knowledge necessary. up beginners. The screen often becomes cluttered as Record Manager is a stripped-down package and skimps on Reviewer: Phil Daley niceties, such as screen formatting.

Documentation: No written instructions are provided, but Product Name: Money Tool upon booting the disk, on-screen instructions are Equip, req'd: Apple II + or lie, disk drive, printer displayed, and they are satisfactory for acquainting the Price: $59.95 user with information needed to operate the program. Manufacturer: Howard W. Sams & Co., Inc. 4300 W. 62nd St. Skill level required: Some knowledge of text files is useful Indianapolis, IN 46268 but not mandatory. After some stumbling around, a begin­ ner will get the hang of things. Description: This product is an excellent checkbook/ budgeting program. It is set up to automatically categorize Reviewer: Mike Cherry expenses and apply them against deposits. Additionally, features are provided to accommodate payroll deduction storage for end-of-year tax accounting. Product Name: Micro Illustrator Equip, req'd: Apple II w/48K and Applesoft Pluses: The program is incredibly fast for what it has to do. Recommended: Koala Touch Tablet Categorized summations are available for any desired time Price: $129.95 with Tablet period. Hard copy is neatly structured and easily interpreted. (continued)

No. 68 - January 1984 MICRO 87 Hewlett Packard W rite or call for prices. m 0 commodore SPECIALS on INTREGATED CIRCUITS DISK 6 5 0 2 7.45 1 0 /6 .9 5 5 0 / 6.55 1 0 0 / 6 .15 See us for Personal, Business, and Educational 6 5 2 0 PIA 5.15 10/4.90 50/4.45 1 0 0 /4 .1 5 SPECIALS 6522 VIA 6.45 10/ 6.10 50/ 5.75 1 0 0 /5 .4 5 requirements. Educational Discounts available. 2 7 1 6 EPROM 4.45 5/ 4.20 1 0 / 3.9 5 Scotch (3M) 5" ss/dd 10/2.20 50/2.00 100/ 1.95 2 5 3 2 EPROM 5 .90 5 / 5.75 1 0 / 5.4 5 Scotch (3M) 5" ds/dd 10/ 3.05 50/ 2.80 100/ 2.75 6116 2KX8 CMOS RAM 6.45 5 / 6.20 1 0 / 5.9 5 PETSCAN I $245 base price 4 1 1 6 RAM 8 for 14 Allows you to connect up to 30 CBM/PET Computers to Scotch (3M) 8" ss/sd 10/ 2.30 50/2.10 100/2.06 4 1 6 4 RAM 6.00 Scotch (3M) 8" ss/dd 10/2.85 50/2.70 100/2.65 ■ / Z shared disk drives and printers. Completely transparent to the user. Perfect for schools or multiple word processing con­ Anchor figurations. Base configuration supports 2 computers. Addi­ We stock VERBATIM DISKS Automation' tional computer hookups $100 each_ Write for Dealer and OEM prices. Sentinal 5" ss/dd 10/1.90 50/1.85 100/1.80 Signalman Sentinal 5" ds/dd 10/2.55 50/ 2.50 100/2.45 Modems COMPACK/STCP $115 Intelligent Terminal Package for PET, CRM, C64 We stock Dysan disks FREE SOURCE MEMRERSNIP WITH SIGNALMAN Includes ACIA_Hardware /_STCP Software All Signalman Modems are Direct Connect, and provide the Wabash 5" ss/sd 10/ 1.60 50/ 1.55 100/ 1.45 best price-performance values. SCREEN MAKER 80 Column Adapter for C64 145 Wabash 5" ss/dd 10/1.90 50/1.85 100/1.75 Dealer and OEM inquiries invited Provides big screen capability for business applications. Wabash 8" ss/sd 10/2.00 50/ 1.95 100/ 1.85 Volksmodem with camputer cable |99] 68 G EN ESIS Computer Corp We stock MAXELL DISKS Mark VI for IBM Personal Computer (279) 139 VICoBtraller (for C64 as well) 50 Write for dealer and OEM prices. Mark VII Auto Dial/Auto Answer (159) 99 combine with BSR modules for home or business control Disk Storage Pages 10 for $5 Hub Rings 50 for $6 Mark XII Smart Model 1200/300 (399) 299 COMSENSE Remote Sanslag Adapter for C64 orVIC 35 Oisk Library Cases 8"— 3.00 5"— 2.25 COM VOICE Synthesizer for C64 or VIC 139 OC HAYES Smirtmodem 2 1 9 Head Cleaning Kits 12 includes software for text to speech, pitch, etc. DC Hayes Smartmodem 1200/300 5 2 9 AMARAY Disk Storage Systems in stock. **!! ___ i 5 Innovative Concepts FLIP FILES in stock. ___ VIC 20 Products and Software la stack CASSETTE TAPES— AGFA PE-611 PREMIUM Thora EMI Software UMI Saftware C-10 10/.61 50/.58 100/.50 ABACUS Saftware HES Software 16K RAM for VIC 64 Vanilla Pilot 27 C - 3 0 ______50/82 _

PROM QUEEN lor VIC 1 7 0 VICTORY Software for VIC and C64 DATASHIELD BACKUP POWER SOURCE $265 Battery back up Uninterruptible Power Supply with surge and Apple Emulator lor Commodore 64 Call Metamorphosis 16 Creator's Revenge 16 noise filtering. The answer to your power problems. STAT Statistics Package for C64 9 5 Labyrinth of Creator 16 Galactic Conquest 16 Solid Oak 2 Level Stand lor C64 or VIC 2 9 Kongo Kong 16 Annihilator 16 MultlPlan— IB M or Apple IBS C64/VIC Switch (networking) 129 Chomper Man 16 Grave Robbers 13 Quadboard for IBM available Bounty Hunter 16 Adventure Pack I or II 16 BACKUP V1.0 tape copier lor C64 or VIC 2 0 KOALA Touch Tablets— Apple, Atari, IBM, CBM CARDBOARD/6 Motherboard - VIC 64 PAPER CLIP Ward Processor 99 Peachlext 5000 Software Package 2 0 9 CARDBOARD/5 Motherboard - C64 5 6 ORACLE Oata Base from Batteries Included 109 PFS Soltware for IBM and Apple in stock CARD PRINT G Printer InL with Graphics 72 Super BusCard from Batteries Included 159 VOTRAX Personal Speech System 2 8 0 CARD PRINT B Printer Interface— C64/VIC 4 0 Commodore 64 Programmers Reference Guide 16 2 2 9 CARDB0ARD/3S Motherboard - VIC 22 BMC 9191 Color Monitor MlcroChoss for C64— 8 levels ol play 19 BMC 12A 12" Green Monitor 7 9 CARDCO C64/VIC Calculator Keypad 3 2 excellent graphics and color 7 6 9 CARDRAM/16 RAM Expansion - VIC 4 4 Brother HR-75 Daisy Wheel Printer SPINNAKER Software C64. Apple, IBM. Atari Dyeu (Bratber) DX-15 Daisy Wheel Printer 4 5 9 Complete CARDCO Lina in stock Computers First Book of PET/CBM 11 Itoh Prowriter Parallel Printer 3 7 9 CIE and VIE IEEE Interfaces in stock C64 or VIC SWITCH 129 Paaasoalc 1090 Printer with Correspondence Mode 2 7 9 MSD Superflrive lor C64 or IEEE 3 6 5 POWER ROM Utilities for PET/C8M 78 Daisywriter 2000 with 48K buffer 1020 MAE Assembler for C64 5 0 WordPro 3+/64 with Spallmaster 85 Gamlai 10X 2 9 9 Koala Touclt Tablet— C64 or VIC 7 9 WordPro 4+ - 8032, disk, printer 295 EPSON. Okldala, Star Mlcrenics printers in stock CBC 4/12 12-bit A to D Board + Software 1 9 9 SPELLMASTER spelling checker ler WordPro USI CompuMOD 4 R F Modulator 2 9 Multiplan lor C64 7 9 VISICALC for PET, ATARI, or Apple 189 We Stock AMDEK Monitors Dust Cover for C64 of VIC 6 PET-TRAX PET te Epson Graphics Software 40 Amdek DXY-100 Plotter 5 9 0 1 5 % OFF SM-KIT enhanced PET/CBM ROM Utilities 40 A P P rn riiirte APPLE—FRANKLIN ITEMS COMPUTER COVERUPS IN STOCK FRANKLIN— complete line In slock Programmers Toolkit - PET ROM Utilities 35 EASY CALC for C64 65 BROOKS 6 Ontlet Surgo Suppressor/Noise Filter 54 QUENTIN Drives lor Appl«/Frinklia 219 PET Spacemaker II ROM Switch 36 Surge Suppressor-6 outlet 29 Swapper Stopper 26 33 5 COPYWRITER Word Processor lor C64 69 Electrohome 1302-2 13" Hi-res RGB Monitor automatic switch between paddles and joystick 135 2 Meter PET to IEEE or IEEE to IEEE Cable 40 Panasonic 12" Monitor (20 MHz) with audio KRAFT Apple Joystick 40 Dust Cover for PET, CBM, 4040, or 8050 8 Syaeriek SYM-1 Microcomputer 189 Kraft Apple Paddle Pair 30 CmC Interfaces (A0A1800, A0AI450, SADI In stock| Koala Touch Tahlet-Apple/Franklin 90 ALL BOOK and SOFTWARE PRICES DISCOUNTED Programming the PET/CB M (Compute!) — R. West 20 SPINNAKER Saftware In stock Computers Machine Language for Beginners 11 USI Video Monitors— Green or AMRER 20 MHz hi-res. Brodertund Software in stock MULTIPLAN lor C64 79 Dealer aad OEM iaqairies invited ______16K RAM Card for Apple 59 HES MODEM with Saftware 65 Maltfpfan— Microsoft 185 HES Software aad Hardware la stock Solid Oak 2 Level Stand for Apple 29 UMI preduttajnjtack ______V g M IT H data Serial Card for Apple 89 MCP RAM/80 column card lor lie |AP/TXT) 139 systems Z80 Softcard and CP/M (Microsoft) 235 FlexFile for PET/CBM/ C64 $ 50 RANA Elite I with Controller 389 Database, Report Writer with calculations, Mailing Lists ZVM-122 A 109 ZVM-123G 9 5 Parallel Printer Interface/Cable 69 FORTH for PET/C64"fuHFIG model -Cargill/Riley *50 ZVM-131 300 ZVM-135 5 1 0 HERO 1 Robot (factory assembled) 2 1 4 5 Microtek and MCP Interfaces in stock MetacanpHorforFORTH for independent object code 30 Grappler + Interface 129 Z29 Terminal (DEC and ADM compatible) 6 8 0 KMMTPASCAlT»Tro7WCBM/C64 95 Kraft Products for Apple in stock ZT-10 Intel. Terminal with Serial Port 3 4 0 DC Hayes Micromodem II 299 EARL for PET/CBM Disk-based ASSEMBLER______6 5 Z100 16-bit/8-bit Systems CALL PFS: File 95 Super Graphics — RASIC Laagiage Eiteaslans 45 W e stock entire Zenith line. PFS: Report 95 Fast machine language graphics routines for PET/CBM Videx 80 Column Card 209 ATAHI — WE STOCK ENTIHE LINE RAM/ROM for PET/CBM 4K $75 8K $90 Applo Blue Baak 19 SPINNAKER and Broderbund Software in Stock. W RITE FOR CATALOG. Add $1 50 per order for United Parcel 215-822-7727 We pay balance of UPS surface shipping charges on all prepaid orders 252 Bethlehem Pike (add extra for mail, APO/FPO, air) Prices include cash discount Colmar, PA 18915 A B Computers Regular prices slightly higher Prices subject to change — Apple : Manufacturer: Koala Technologies Product Name: Bugbyter 253 Martens Ave. Equip, req’d: Apple II Mt. View, CA 94040 Price: $47.50 Author: Steven Dompier Manufacturer: Computer-Advanced Ideas 1442A Walnut Street, Suite 341 Description: A graphics illustrating program with various Berkeley, CA 94709 brush sets, colors, and drawing modes. Points, lines, rec­ Author: Tom Cohn, and Pete Row tangles and circles can be plotted on the high resolution screen with different colors. Filling and erasing is ac­ Description: Bugbytei is an interactive M/L debugging complished easily. Creations can be saved to and loaded tool which is relocatable to any unused location com­ from disk. The program is a combination of BASIC and patable with your program including into a language card. machine-language on an unprotected disk. It has a screen-oriented display which has complete infor­ mation on the status of all the 6502’s registers and stack. It Pluses: The program is menu driven and much easier to includes capabilities to turn off the display to avoid con­ use than most graphics programs. It includes many flict with the program, and to set an area of memory (such sophisticated features such as magnification and fill. It is as DOS or the monitor) to be executed at real-time known very easy to create complicated and professional look­ code. You can set breakpoints-hard or soft-and triggers to ing drawings. count the break points. It assembles and disassembles code similar to and uses instructions like the monitor. The Minuses: The Koala Tablet is recommended for its accompanying 40 page documentation is excellent. smoothness and preciseness. It is difficult to draw a smooth line with a joystick. Pluses: It is very easy to use and clearly shows everything you need for debugging. No M/L programmer who writes Documentation: A very complete, clear and well written large programs should be without it. booklet is included with the program. Minuses: None. Skill level required: No prior skill needed. Good for ages 5 and up. Skill level required: Beginning to intermediate M/L programmer. Reviewer: Phil Daley Reviewer: Phil Daley ilMCftO

# 1 SETTER AT AJ.P.LE* Powerful New Software Enhancement System For Apple ][, //e . Triples Programming Speed! APB-102 Ultra-Rom Board/Editor Includes: • Advanced G.P.LE * (Global Program Line Editor) in Firmware —With Insert, Delete, Find, Tab, Zap, Pack, Restore, End, Etc.

SOFTWARE ENHANCEMENT • Firmware Management Program (FMP) Overlays32K of ROM in 2K Space SYSTEM. AFB-102 ...... S189 00 W/GPLE. APU-1, FMP. DISK, —Allows jumps and calls between banks—searches for utilities by name MANUAL, QUICK REFERENCE GUIDE APU-2, UTILITY ROM * 2 ...... $35.00 —Recognizes new ROMs and utilities automatically W/RENUMBER, MERGE, HOLD, ETC. 25 ROM DEVELOPMENT PKG...... $99.00 • APU-1 with over Language Extensions & Ampersand Utilities W/DISK, INSRUCTTONS & —If/Ihen/Hse, Print Using, Ultra Fast Search, Damaged Program Recovery EMULATION ROM A /0 , 12 BIT. 16 CHANNEL...... $299.00 • Always in the Machine—No Searching for a Disk W/5 VOLTAGE RANGES. 25 /J SEC CONVERSION • Never in the way—No Program RAM used PRO-1, XTRA-LAKGE PROTOTYPE BOARD...... $29.95 —Connect with 4 Keystrokes / Disconnect with 2! UP TO 52 IC's. NUMBERED & LETTERED PINS, HANDY POWER “If y o u program & haven't used a line editor, get one right aw ay” — MICRO MAGAZINE AND GROUND CONNECTIONS. NUMBERED I/O CONNECTIONS “The most powerful program development tool I have” — ROBERT WILSON, PROGRAMMER 48 LINE PARALLEL I/O “Excellent Product, flawless" — PHILIP DALEY, PROGRAMMER BOARD. CPU-1...... $249.00 2 5 B U F F E R E D U N E S IN “Great product, exceeds my expectations” — DR. STEVE COOK W/FILTERING, 23 “A n elegant solution... well thought out... worth — SQFTALK it" REVIEW, SEFT. 1 9 8 3 BUFFERED UNES OUT. INTERRUPT INPUT “The best thing for the Apple since the disk" — EDWARD DECKER. PHARMACIST/PROGRAMMER

Hollywood Hardware (213) 989-1204 USE OUR 60 DAY UNCONDITIONAL MONEY BACK TRIAL IF YOU CAN PAST WITH IT—WE LL BOY IT BACK! 6842 VALJEAN AVENUE, VAN NUYS, CA 91406 ASK ABOUT DEALER/USER GROUP DISCOUNTS!

* G.P.L.E = 1983 NEIL KONZEN. SOLD UNDER LICENSE FROM SYNERGISTIC SOFTWARE / APPLE IS A REGISTERED TRADEMARK OF APPLE COMPUTER INC. A.P.P.LE. IS APPLE PUGETSOUND PROGRAM LIBRARY EXCHANGE. THE WORLD S LARGEST APPLE USERS' GROUP WITH 25.000 MEMBERS.

No. 68 - January 1984 MICRO 89 SJB DISTRIBUTORS. ONE STOP SHOPPING FOR COMMODORE SYSTEMS.

Q commodore LANGUAGES 64 Z INTERFACES & ACCESSORIES Instaspeed Basic Compiler ( D ) ...... $ 99 Data 20 80-Col. Exp ...... $ 159 NEW COMMODORE PRODUCTS Nevada Cobol (D ) ...... 55 Mr. Computer 80-Col. Exp...... 60 Executive 6 4 ...... $ Call Pilot ( D ) ...... 45 5-Slot Exp. (6 4 ) ...... 65 CBM B 128-80 ...... 825 Logo ( D ) ...... 45 Vic Switch (connect 8 64's or Vic's B Series Software...... Call Assembler Development (D ) ...... 25 to DD/Printer)...... 145 WORD PROCESSING 64 S 64 Forth ( R ) ...... 40 Cobles 3M, 6M, 12M for above ...... Coll NEW - Mirage 80 col ...... $ 95 PRINTERS - DOT MATRIX Verex (Box of 10) 5 V* Diskettes...... 26 WordPro 3 +/Spellright...... 79 Epson RX80 (80 cps)...... $ 299 Connection(Pet/64 graphics,2K Buffer) 99 WordPro 3 * (W P )...... 59 MX80 w/FT (80 cps) ...... 399 Cardco Print ♦ Graphics...... 85 Spellright (Dictionory) ...... 39 FX80 (1 6 0 c p s )...... 549 Cardco Cardprint...... 70 Paper C lip ...... 95 FX100 (160 cps) 14" width...... 859 MW 302 Parallel ...... 65 Easy Script ( D ) ...... 35 Okidata 82A ...... 429 PET/IEEE Coble ( lm ) ...... 33 Easy Spell (D ) ...... 19 Okidata 92 ...... 549 IEEE/IEEE Cable ( l m ) ...... 49 SPECIAL - Busiwriter (C ,D ) ...... 39 NEC 8 0 2 3 A ...... 429 Interpod (Intelligent IEEE, Quick Brown Fox ( R ) ...... 49 star Delta (160 cps)-NEW!...... 549 RS232, serial)...... 149 SPREADSHEETS 64 Z Star Gemini 10X (1 2 0 c p s )...... 309 ADA 1800 (IEEE/Parallel) ...... 129 Calc Result - Advonced (R ,D ) ...... $ 120 Star Gemini 1 0 /1 5 ...... Call ADA 1450 (IEEE/RS232 (M /F ))...... 129 Busicalc II - More Power! (R ,D ) ...... 95 Transtar 315 (Hi Res., C olor)...... 575 Multiplan 64 (D )...... 79 Micro Edge Printer Paper (5 4 0 Sheets).. 10 VISA/MASTERCARD Calc Result - Easy ( R ) ...... 70 ESSENTIALS MONEY ORDERS Practicalc 64 ( D )...... 45 Commodore 6 4 ...... $ Call B A N K C H E C K Busicalc I - SPECIAL! (C ,D )...... 39 1541 Disk Drive ...... 249 C.O.D.'s Accepted. (Add $5) DATA BASES 64 Z 1525 Printer (80 c o l/D M )...... 225 In stock items shipped within 48 hours. Mirage Data Base (D ) ...... $ 95 1530 Datasette...... 65 M'Fite (merges with WordPro) (D)... 89 1520 Plotter/Printer (4 Color)...... 169 F.O.B. Dallas, Texas (Texas Res., Add 5 % Tax). Micro Spec Data Manager ( D ) ...... 60 1526 Printer...... Call Products shipped with manufacturer's warranty. Codewriter (develops program s)(D)... 95 1702 Monitor...... 249 Prices subject to change without notice. PRODUCTS OF THE MONTH CBM $50 Minimum Order. TCS 6 4 /8 0 - NEW! (D ) ...... $ 139 8032 (80 column Pet)...... $ 625 (WP/Data Base/Spread) SuperPet (5 languages!) ...... 1049 'Defective units m u s t h a v e return Koala Pad - NEW!...... 89 8 0 50 Dual Drive (1 m g .) ...... 995 authorization number and include Delta 10 (160 cps)-NEW!...... 549 8250 Dual Drive (2 m g .) ...... 1295 copy ot invoice. UTILITIES 64 Z 9060 Hord Disk (5 m g .)...... 1995 Vic Tree (4.0 Basic) ( R ) ...... $ 75 2031, 170K Single D rive ...... 295 64 (R ) ...... 25 64K Upgrade for 8 0 3 2 ...... 259 Simon's Basic (R...... ) 25 SuperPet upgrade for 8032 ...... 599 Cardco Printer Utility (C )...... 15 4023 Printer (80 cps, 80 c o l) ...... 395 MS-Backup (Back Up Data!) ( D )___ 15 8023 Printer (1 5 0 cps, graphics)___ 545 ACCOUNTING 64 Z 6 4 00 Printer (4 0 cps, L Q )...... 1450 Home Accountant (Continental) ...... $ 75 LETTER QUALITY PRINTERS Tax Advantage (merge w/home Diablo 620, 25 cps...... $ 949 accountant) - N E W !...... 45 Transtar 130, 16 cps - 132 col...... 769 General Ledger, A/R, A/P, P/R, tnv. Transtar 1 2 0 ,1 4 cps - 80 col...... 500 SJB DISTRIBUTORS INC. (Info Design's Original) ( D )...... ea.79 MONITORS 10520 Plano Road, Suite 206 Numeric Keypad (H ardw are) ...... 65 Panasonic CT 160 (color)...... $ 279 Dallas, Texas 75238 Numeric Keypad (C ard co ) ...... 35 Panasonic TR120 (w/spkr,green)___ 155 TELECOMPUTING 64 S Sanyo/Amdek -Green, No Audio, 1 2 "... 125 Vic 1650 (Auto Ans/Dial) Modem . . . $ 95 BMC/Sanyo-Green, No Audio, 9 " ___ 95 TO ORDER Vic 1600 M odem ...... 59 Cable (For Above) A /V ...... 15 CALL TOLL FREE Hes Modem (Downloading Software) 65 VIC ACCESSORIES SuperTerm (Download/80-128Form). 95 8K RAM Expand. Cart...... $ 40 800-527-4893 Micro Term 64 (Download P /D ) ...... 39 16K RAM Expand. Cart ...... 70 800-422-1048 EDUCATION 64 Z 24K RAM Expand. Cart ...... 105 (Within Texas) Spelling I (Koala) (D ) ...... $ 29 27K RAM (Expands Vic to full 3 2 K ).. . . 119 Geometric (Koala) (D ) ...... 20 3 Slot Expander...... 30 I.Q. Baseball (D )...... 25 6 Slot Expander...... 70 CATALOG Bible Baseball (D ) ...... 25 Joystick (W ico-Red)...... 25 Send Postcard with Name & Address to Happy Tutor (Typing) ( D )...... 15 Joystick Blaster (ADR Rapid-Fire)___ 10 speed processing.

NOTE: SJB HAS A FULL LINE OF COMPUTER MEDIA IN STOCK, CALL OR WRITE FOR MORE INFORMATION. Interface Clinic

by Ralph Tenney or different processors (such as 6809 subset of the main processor, dedicated and Z-80). to a special task such as number crunch­ During this discussion we will ignore ing or I/O. These are a special case, those microprocessor families which and the interaction has been carefully D ave English, of Orange, California have coprocessors available; a planned by the manufacturer. We will wrote with the following ques­ coprocessor is a specially programmed also not deal with the concept of multi- tion: “I have never seen a general treatment of direct interfacing between micro CPUs, so that one runs foreground and one runs background. This does not seem to be a difficult topic, as there are a variety of plugin modules are sold for various computers and other microcom­ puters with dual CPUs, such as the SuperPET." Dave then goes on to mention one of his own experiments: “I currently have a Timex 1000 and a PET 2001 sharing the screen of the PET. It's not true time shar­ ing; one or the other has complete con­ trol of the screen at any time." We can address part of Dave's ques­ tion by e x a m i n i n g the factors involved in getting two (or more) CPUs to cooperate in various ways. The first thing is to define the extent of the interaction and decide what type of interface is needed. We also need to understand that not all of the plugin boards sold for computers such as Apple are multi-processor setups, even though they may seem to be. Many of the popular "appliance'' computers have a special input line in their expan­ NO POWER SPIKES sion port to disable the processor so that WITH SUPER FAN II. an external plugin can take command of the memory. So, as long as that plugin is Super Fan II’s Zener Ray™ Transient built-in suppressor. Voltage Suppressor and Power In addition, Super Fan II cools in place, only the processor on the plugin Filter squelches spikes up to 6000 your Apple, removing heat buildup is active. I think it is fair to say that this amps — even those caused by at a remarkable 17 cubic feet of air setup doesn't really fit Dave's topic. lightning—while responding up to per minute. Yet it’s the quietest There are two basic types of multi- 100 times faster than Apple II’s fan of its kind on the market. CPU interfaces — one is where the Super Fan II various CPUs communicate directly on a also positions a shared bus, and, strange as it may seem, lighted on/off m this can be done even with dissimilar computer switch processors. It is perhaps more convenient and two accessory plugs at your fingertips. It’s warranted to do both the programming and the in­ for two years and simply clips to terface design if the shared-bus concept your Apple II, lie or monitor stand. uses identical processors, but mutual See your R.H. Electronics dealer operation on a shared bus is possible with today about Super Fan II* or contact us at 566 lrelan Street, Buellton, different processors. The second mode is CA 93427, (805) 688-2047. one where the necessary communication is carried on an auxiliary bus such as an RHELECTRONICS, INC. RS-232 link or a high speed synchronous Super Fan II, m black o r lan. $109. Dealer/OEM inquiries invited. France, call 8.I.P 1-255-4463 or asynchronous line. This type of com­ Without Zener Ray. $74.95. ’ U.S. Patent #0268283 Australia, call imagmeermg (02)212-1411 Additional air Ilow seals. $5. *4383286 munication can also be performed by Avaiiable m 240V/50 Hz. similar processors (such as two 6502s) No. 68 - January 1984 MICRO 91 Blow up

Gee whiz. Look what you’ve done. The game’s finished. And maybe, so is Your big shiny Apple, destroyed. your Apple. Oh, but don’t worry And you thought you were just having Cavern Creatures is just a game. Full of action. a little fun? Fun. Suspense. Just like our other games. Whether they’re blowing up your Apple. Or totally blowing your mind. How Much More Can One Joystick Jockey Take? We’ve exceeded our past reputation for bringing you some of the most super snazzy ultra-intense, graphically involving games around. We’ve gone totally out of our minds with every game from shoot ’em up, blast ’em out of the sky strategies to mind game graphics guaranteed to provoke a mental meltdown. Are you ready?

Introducing our Cavern Creatures™ new game • You can squirm. Beg. Plead. And moan. Nothing will save Cavern Creatures.™ Where one false move, one you, or your Apple, from being mistaken twitch of the Joystick can do terrible blown sky-high by this game. things to an Apple. Like shut parts down. Don’t worry. The effect’s not per­ Who knows which ones? Making it act manent. Your Apple will recover. awful funny and then... KA-BOOM! But will you? your Apple.

Space Ark"' Super Bunny™ Skin-hunters, poachers and No, Super Bunny is not mechanicals—enemy robots who referring to all those Playboys aren’t exactly the warm and stashed under the bed. It’s a friendly types—await you. Oblite­ strategy/action game that just rate the bad guys. Save the good might turn your brains into car­ guys. You might survive this. rot puree. Cover your burrow! Ardy The Aardvark™ Conquering Worlds™ Here’s a tongue that’s as long So you fancy yourself a die­ and skilled as you are. Think you hard strategist? Try conquering can lick stinging ants and taran­ this. Maybe you’ll rule the uni­ tulas? Use Ardy’s tongue as you verse if mom will let you off make it through this maze! restriction. Roundabout™ Bilestoad™ Sharpens your target skills Avoid violence, but be prepared. with 24, count ’em, 24 different Incredible graphics make this series of targets. How’s your rated R! But if you’re a wimp, pass hand to eye coordination, pal? this game up. It’s not for babies. Argos'* And if you like to push people around, lay off your little brother and take on these aliens instead. ffiDATAMOST Save the Domed City from The most out of our minds. TM is a registered trademark of Datamosc. Inc. 8943 Fullbright Ave., Chatsworth, CA 91311 doomsville. (213) 709-1202 "Apple is a trademark of Apple Computers. © Datamost 1983 pie processors for the purpose of reliabil­ ity (redundant design]. Instead, I will give some points to consider and hints on how to proceed with designing a system of multiple processors which share the system resources but each "does its own thing". One example is a commercially P0R7 3 - S I.-'O LINES available dedicated word processor. In this particular system, a 6800 handles all the word processing while a 6502 runs □ 5 3 ------I 3 3 ___ HfiNDSHfikE LINES __ the keyboard, screen display and the disk I S3 ------as; drives. This particular machine can receive serial data at 1200 baud, storing the incoming data on the disk and displaying it at the same time. The major HHS7ER PROCESSOR SLftYE' PROCESSOR system requirement for multi-processing is to partition all the jobs, defining very carefully the responsibility of each pro­ cessor. In fact, it is like designing two Figure 1: Some microprocessors, such as the Motorola separate systems and then designing an 6802 shown here, have built-in provisions for communica­ tion between processors. interface between the systems! Once all the system jobs have been passed out, you need to define the interface and decide how the information interchange will be handled. Some microprocessors have been designed specifically for multi­ processing, such as the 6801 and 6809. Figure 1 shows just the interconnection FLAG 1 of two 6801 uPs. The eight lines of Port P3 and the two SC lines combine to make a parallel link which transfers one byte at a time between the two devices. The SC lines form a handshake setup which informs the 1 'slave'' processor that data is ready. Note that "slave" and "master’’ status is defined by which is programmed to send and which is pro­ Figure 2: Two processors sharing some common memory grammed to receive. The 6809 has a area can use interlocked latches to prevent bus conflict special pin called DMA/BREQ which (see text). allows other processors or special pur­ pose hardware to request control of the data and address bus lines for fast data transfer or other purposes. The Radio Shack Color Computer uses the 6809E, which does not allow normal DMA or ------5 .5 'JOLTS other types of bus access, since this 1001 - would disturb the special relationship lOOO - between the uP and the SAM (Syn­ 0111 - chronous Address Multiplier]. 0110 - Another way to interface between ftr'D 0101 - processors is to define special areas of COUNTS memory which can contain anything 0100 - from a single bit or byte to whole pages 0011 - of data. One processor must leave the 0010 - data for the other, and set a flag which 000 1 - indicates the data is ready. The second oono 0 VOLTS | processor will then pick up the data and cancel the flag. In practice, the memory bus must be segmented so that each processor has enough "private" memory for its own tasks, and the data Figure 3: A Digital-to-Analog converter cannot make accurate buffer must be in address space which measurements without adequate resolution (see text). each processor can use. At the same 94 MICRO No. 68 - January 1984 time, there needs to be either interlock The master must be programmed to tween two limits in such a way that a circuitry which prevents both pro­ pass the required commands to the digital quantity will not be exactly cor­ cessors from trying to access the area slave computer, besides keeping its rect as shown in Figure 4. This diagram simultaneously, or the programming own business straight. It is likely that assumes an A/D converter with a full for both processors must enforce a the slave will be assigned some kind of scale input of 16 volts and having a similar protocol. This type of design monitoring tasks, and the incoming resolution of four bits (2**4, or one almost always involves a dedicated pair commands will trigger interrupts on part in 16). In other words, each step of of latches, and each latch will have a the slave. Then, depending upon the the converter represents a one volt unique address controlled by one pro­ type of command, the slave may make change. If we assume the voltage to be cessor. This is illustrated in Figure 2; a different measurement or report the measured is 9.5 volts, we find that step when uP#l is using the data buffer, it previously collected data. Whatever the 1001 (binary) is too low and step 1010 sets latch Ll to the “off” state (Q = 0) assigned tasks, part of the program­ is too high. Note that even if the 4 bit by pulsing the CLEAR input. L i’s Q ming for both computers will involve converter is 100% accurate, the best output holds L2 in PRESET |Q high) as specially coded commands to define answer it can give for this measure­ long as uP#l is accessing the buffer. At precisely the nature of the task to ment is incorrect by .5/9 or 5.5%. If we the same time, L i's /Q output is high, be performed. can increase the converter’s resolution serving as a BUSY flag for uP#2. When That's enough on computer com­ to 8 bits (2**8, or 1 part in 256), 9.5 uP#l releases the buffer, it pulses the munications for now! I have promised volts happens to be exactly 152 steps clock line of Ll, which sets Ll to the to introduce some of the real-world out of the 256 possible; the new con­ “on” state, clears the busy flag and hardware such as analog to digital verter has steps of 62.5 millivolts. At releases L2. Similar action by uP#2 (A/D) and digital to analog (D/A) con­ present, about the best resolution controls L2 and warns uP#l that the verters. Very few processes and economically possible with an A/D buffer is busy. It may also be important parameters we might be interested in converter is 16 bits (one part in 65536), that the two processors have syn­ are digital. We normally want to know or 244 microvolts if the full scale range chronized clock inputs. how heavy, how strong, how loud, etc. were 16 volts as in our examples. Ac­ If two separate computers involved something is. Natural processes come tually, typical A/D converter ranges in a project must work together, one in all sizes, shapes and colors, and a are 0 - 5 volts, 0 - 10 volts, or -5 to +5 computer can be designated as the precise measurement will usually in­ volts. If we don't have another reader master, and it will send commands to volve values which do not change in question next month, we will get into the other computer over their link, discrete digital steps. types of A/D converters and do some which can be a high speed RS-232 line. Natural processes vary widely be­ experiments.

RIM + POWER You may contact Mr. Tenny at P.O. Box f r o m COMPUTECH 545, Richardson, TX 75080. Ail prices Check the Postpaid outstanding JMCRO (Continental documentation U.S. — supplied with otherwise till! AIM65 $2 credit) Top quality power supply designed to Rockwell’s specs for fully populated AIM 65 — includes overvoltage protection, transient suppression, metal case and power cable: PSSBC-A (5V 2A Reg; 24V ,5A Avg, 2.5A Peak, Unreg) ...$64.95 Same but an extra AMP at 5 volts to drive your extra boards: PSSBC-3 (5V 3A Reg; 24V ,5A Avg, 2.5A Peak, unreg) ...$74.95 The professional’s choice in microcomputers: AIM65/1K RAM ...... $429.95 BASIC (2 ROMS) ...... $59.95 AIM65/4K RAM . $464.95 ASSEMBLER (1 ROM) .. $32.95 FORTH (2 R O M S )...... $59.95. SAVE EVEN MORE ON COMBINATIONS AIM65/1K +PSSBC-A .$479.95 AIM65/4K + PSSBC-3 .$524.95 We gladly quote on all AIM65/40 and RM65 items as well. ORDERS: (714) 369-1084 « Ufiw P.O. Box 20054 • Riverside, CA 92516 H California residents add 6% sales tax

No. 68 - January 1984 MICRO 95 LOOK TO MACMILLAN Advertiser Index FOR COMPUTER SCIENCE^

A B Computers ...... 88 Amplify ...... 36 THIS IS VIC-20 BASIC Atari Program Exchange ...... 6 ROBERT F. SUTHERLAND CompuTech ...... 94 and RICHARD M. GILMAN Computer Mail Order ...... 7 6 ,7 7 Emphasizing good programming practices, the au­ Datamost, Inc ...... 92,93 thors show how to take advantage of the VIC-20’s Eastern House Software ...... 13 special capabilities such as creation of shapes and Hollywood Hardware ...... 89 pictures in color, and production of music and Incomm ...... 42 sound effects. Interesting Software ...... 38 1984 Paperback 420 pp.(approx.)ISBN:0-02-418380-6 $16.95 Kiwi Software ...... 73 Leading Edge ...... Back Cover MacMillan Publishing Co ...... 96 AN INTRODUCTION TO Micro ...... 75, 80 STRUCTURED BASIC Micro Spec ...... 9 Micro Ware ...... 45 FOR THE C-10 Midwest Micro Inc ...... 22 WAYNE T. WATSON Percom Data ...... 3 Performance Micro Products ...... 59 The only book available in its area, this book as­ Percy Peripherals ...... 72 sumes no prior programming experience and Protecto Enterprizes ...... 30,31,32 stresses interaction with the microcomputer. The RH Electronics, Inc ...... 91 first ten chapters provide a foundation to the most Richvale Telecommunications ...... Inside Front commonly used concepts in BASIC, and the last S G C ...... 86 four chapters offer more advanced material on files S J B Distributors ...... 90 and programming structures. Safeware ...... 56 1984 Paperback 276 pp.(approx.) ISBN: 0-02-424580-1 $16.95 Scientific Software ...... 73 Skyles Electric Works ...... 19 BASIC-80 AND CP/M Spectrum Projects ...... 70 Star Micronics ...... Inside Back Cover JACK JAY PURDUM Strom Systems Inc ...... 2 The key features of BASIC-80® are related to the Titan Technogies, Inc ...... 20 most popular microprocessor operating system, Totl Software ...... 58 CP/M.'" Coverage includes sequential, random, Victory Software ...... 21 and skip-sequential file structures and many use­ Winders & Geist, Inc ...... 1 ful subroutines for applied programs (binary searches; Shell and Bubble sort; range checks; direct cursor control for many popular CRT’s; and error messages under direct cursor control). National Advertising 1984 Paperback 220 pp. ISBN: 0-02-397020-0 $16.95 Representatives

IBM-PC: Home Office: 8088 MACRO ASSEMBLER Cindy Kocher, Advertising Manager PROGRAMMING P.O. Box 6502 DAN ROLLINS, Independent Consultant Chelmsford, MA 01824 (617) 256-3649 Intended specifically for the increasingly popular IBM-PC, this book incorporates up-to-date sec­ Mid-West Territory: tions on IBM-PC color graphics and includes many Thomas Knorr & Associates sample programs. Thomas H. Knorr, Jr. 333 N. Michigan Avenue, Suite 401 March, 1984 Paperback 300 pp. ISBN: 0-02-403210-7 $13.95-tentative Chicago, Illinois 60601 (312) 726-2633 serving: Ohio, Oklahoma, Arkansas, Texas, North Dakota, South Prices sub/ect to change without notice. Dakota, Nebraska, Kansas, Missouri, Indiana, Illinois, Iowa, AVAILABLE AT YOUR LOCAL Michigan, Wisconsin, and Minnesota. BOOKSTORE West Coast: The R.W. Walker Co., Inc. FOR MORE INFORMATION CALL TOLL-FREE Gordon Carnie 1-800-223-3215. OR WRITE: 2716 Ocean Park Boulevard, Suite 1010, Santa Monica, California 90405 (213) 450-9001 A/f ACMILLA XT serving: Washington, Oregon, Idaho, Montana, Wyoming, Colorado, New Mexico, Arizona, Utah, Nevada, California, Alaska, and Hawaii .X V X PUBLISHING COMPANyJ. (also British Columbia and Alberta, Canada) College Division • 866 Third Avenue • New York, NY 10022

96 MICRO No. 68 - January 1984 With a fast and furious work pace, a highly time more efficiently. Bi-directional performance flexible printer is crucial. That printer is the new Friction and tractor feed. An automatic sheet Radix-15. Watch it take your work and run with it. feeder for letterheads and a short form tear-off It’s dual speed! At 200 cps Radix fires for preprinted forms. Plus, the freedom to under­ out a superbly refined dot matrix printout. At 50 line, set vertical and horizontal tabs and print a cps it prints professional near-letter quality. So now huge variety of type faces. you can go from spreadsheets to memos at the flip It’s economical! And not only does Radix of a switch or at your computer’s command. give you 2 printers in 1, it also gives you a price per­ It’s multi-functional! In either mode Radix- formance as outstanding as its working performance. 15 quickly adapts to your needs. There’s serial and The professional Radix-15. Using the ever- parallel interface. Memory storage with a 16K changing beat of business to your advantage. And buffer. Responsive throughput to help you use that’s what being a pacesetter is all about!

j *.

m i c r o ft i c s • i a c THE POWER BEHIND THE PRINTED WORD. Computer Peripherals Division P.O. Box 612186, OallasfFI Worth A irport, TX 75261 (214) 456-0052 ELEPHANT NEVER FORGETS. 0 ? «*

A full line o f top-qtiality floppies, in virtually every' / / '5 and 8" model, for compatibility with virtually every computer on the market. Guaranteed to meet or exceed every/ industry standard, certified 100% error-free and problem-free, and to maintain its quality for at least 12 million passes (or over a lifetime o f heavy-duty use). Contact Dennison Computer Supplies, Inc., 55 Providence Highway, Norwood, MA 02062 or call toll-free 1-800-543-8413. Dennison In Massachusetts, call collect (617) 769-8150. Telex 951-624-