, $4.95 OCTOBER 1988

OF

SINCLAIR COMPUTERS

The Sinclair QL

-a 32 bit CPU Powerhouse!

The TS-2068 Workte3<

1317 Stratford Ave. I ^nama City, FL 32404 I 904 871 3556

News and New Products

A Christmas Wish for

n SPECTERM-64(TS-4.1)

300/1200 Terminal Software for T/S2068 On JLO. AERCQ. t arlcpn disk or tape. Only S25.00 + S2.50 S&H

ALSO

[] Z~SI/0^ Bare Boards

RS-232C Serial Interface for T/S2068

With FREE 2050 card Only S24.50 + S2.50 SSrH

OR BOTH FOR ONLY

$50.00 inc. S&H

( OinsiK W connains sraicsi S6.S0 StH I

LARKEN Disk Harduare;

[ ] liRKEN Disk System

includes LARKEN Floppy Disk Interface. LKDOS (v.3) Cartridge, Operating Manual and LKDOS Utiities' Disk Only S120.00 + S5.00 S^H

[ ] LKDOS Cartridge for 10

Specially configured LKDOS (v.3) Cartridge that works with your JLO SAFE Disk hardware. Includes Operating Manual and LKDOS Utilities' Disk, Only S65.00 + S3.50 S&H

[ ] LARKEN Raidisk

No RAM chips are incltjdpd. You can add up to 256K to this Nonvolatile Ramdisk. Easy to use as a floppy disk with LKDOS.

Only S60.00 + S3.50 S&H

[] Tandon TMlOl-4 Quad Disk Drives

These disk drives are brand new in factory sealed cartons. They are double sided, double density, 98 tpi (quad), full height drives. They are compatible with JLO, LKDOS, AERCO and QL disk systems.

$45.00 + $5.00 S&H

Buy 2. Get FREE Drive Cable! Buy 3, Get 4th for Half Price! Buy 4, Get One Disk Drive FREF!

C 3 Cable (2dr)..S12.50+S2.50

Hayes Compatible HODEHS

[ 3 Avatex 2400 <3/12/2400)....S179 For CP/M, IBM and other systems.

[ 3 Avatex 1200hc (300/1200). S99

For T/S2068 <w/ Z-SI/O) and QL.

[ 3 Avatex 1200<P> (300/1200U...S125 <:P>ocket size for the Z88.

[ ] Avatex 1200-=:E:> (300/1200).^ S85

Great for SPECTERM-64!

Epson Compatible PRINTERS

[ 3 Seikosha 1200AI (120/25)..S199

[ 3 Seikosha 180AI (100/20)..S169

[ 3 Star NX1000 (144/34)....S229

All modems add $3.50 for SSrH, all printers add $10.00 for S&H {Canada double S&H on all items).

This Christmas Uish List is brought to you by:

Ed Gr^ey Enter^pr^ises

P.O. Box #2186, Inglewood, CA 90305

Info » 213-759-7406 « Order Call Jke firey Met BBS & RCP/H (m-m-6260}

INDEX

UPDATE OCTOBER 1988 ISSUE

General Infornetion

Disk Libraries

4

Flea Market

70

Invitation to Writers

48

Issue Disks

6, 72

MDV Dubbing

6,72

North American User Group

8

SINCLAIR Z88

12

Supply Support 15, Writer's Format

70-73

43

CLUBS

Boston Computer Society 27

CCATS Portland, CR 25

Milwaukee, WI TSUG 33

SINCUS, New York 8

Toronto, Canada TSUG 33

Vancouver, Canada TSUG 17

ADVERTISING RATE SCHEDULE page 77

ZX APPEAL 17

SINCUS NEWS 8

PLOTTER 25

BoSlUG 27

SINC-LINK 33

QZX 40, 17

UPDATE SOFTWARE LIBRARY page 74

TS-2068 Articles and Subjects

Align Decimals 11

Color Screens Copy 9

Disk Multi Mgr (Oliger) 21

Extra Memory Recap 49 Extra Memory, Charles Bothner 50

Graphics LFRINT 25

Hex Printer Dump 25

INTeger Function 11

Interface for Color Copy 9

LFRINT CHR$ 25

MAX DOS 3 Stacked DOS's 2

MSCRIPT for LKDOS 34

m ERR Tutorial 14

a>EN#, CLOSES, Streams 36

Ckimate 20 Printer 9

PRINT USING 11

Round Numbers UP 11

TOS DISK with OS-64 13

Teleconputing 41

Test Printer 25

UPDATE MAGAZIbE

QL Articles and Subjects

ARCHIVE Tutorial 56

Address File Program 44

Arithmetic for Kids 64

Beginner Course 30

CABLE Column 56

CABLE ISSUE DISK/MDV CART 69, 72

copy MDV Cartridge 23, 31 HELPER, Super Basic Tool Kit 63

Initializing SPEED SCREEN 23

Initializing TK2_ 23

Microdrive Fprmatting 23, 30

PRINT Primer 32

QL Tips 23

QUILL, Configure printer 31

QUILL, File Saver 29

QUILL, LLISTing with 31

RAM EXTENSION 19

REFIELD, a Major Software 60

SCAN, an ARCHIVE Software 65

Sound Experimenter 18 TAX Software to beat Deadline 15

TELEOOMPUTIM]; 17, 41

TELE00MPOTIN3 with PACKET 42

TOOL KIT 2 28

OCrOBER 1988

HCW GOES IT, UPDATE??

UPDATE Magazine launches into the next four years of publishing with near 100% renewals of subscriptions, and a flood of new subscribers, (lost gratifying are the fnany favorable comments and good wishes received with the subscription renewals. Actually, subscribers more than trippled since the last issue. It is difficult to take score of QL users and TS-2068 users. Around 2/3 of the subscribers are OL owners, but half of them also own a TS-2068.

MAX DOS Versas the IBM MS DOS Versas QL DOS

In past writings I've kinda given the IBM PC a bit of criticisms, mainly to re-assure the TS-2068 and QL users that they really aren't missing much by not having a IBM Compatable machine. AND, we need to feel good about what we are doing! A letter came in from a subscriber who was one of the original designers of the IBM operating system. He ask for anonymity, so I will quote only half of his letter:

-Dear Bill, Enclosed please find my 1989 renewal. Unfortunately I do not run any of the disk systems that you support, however, the organization and the quality of the articles in Update are well worth the price. I have invested so much of myself into SPDOS, using many of the system components, that I cannot face even evaluating another system. I am, however, beginning to worry about equipment failures. If you hear of any MILLENNIA K disk systems available I would appreciate a call. I could also use a disk drive case with power supply for two 5.25" drives.

I was Pleased to note your reaction to MS DOS. In 1965 we were similarily concerned about OS/360 (si mi liar Philosophy) then being developed for the main frame family. Two others and I built the prototype virtual machine- operating system at IBM Cambridge Scientific Center.

INTEL has built a (8086) Virtual Machine Facility into their 80386 chip (Intel 231252-001) which now seems to be

UPDATE MAGAZINE

supported by VM/386, Perhaps when this is' expanded to use paging and allow VM/386 to run under VM/386 I may desert the 2068 for purely personal reasons. (Signature) "

To the writer, and others interested: Thanks for your comments. The CUYAHOGA VALLEY SOFTWARE WORKS, 615 School Ave, Cuyahoga Falls, (DH ^221, is a group of users and programmers using SPDOS and the Millennia K Disk system. The address given is that of Thomas Simon, one of the leaders of the group. This group has developed SPDOS on disk to load into and operate with the TS-2068 Oliger Disk System. SPDOS loads to RAM and is co-resident with the Oliger DOS, providing two disk formats and a "combined" DOS Tool Kit language structure, much more powerful than either DOS.

The nice part for Oliger Disk owners is that no additional hardware is needed. All they need to do is order the SPDOS Disk ($29.95 from address given) .

The nice part for the Millennia K SPDOS users is that the Oliger disk system provides a new "hardware home" .for SPDOS, where all of their existing software disks can be loaded and used in an even more capable environment than that of Millennia K.

So Friend, dont give up the ship. Just add the Oliger Disk, which is less expensive than an IBM controller card, and you will continue to be comfortable using SPDOS. Also I appreciate your nice comments and your agreement with the position I take on MS-DOS. There are not too many who are willing to "buck the tide" and tell it like it is, in the face of the "MS DOS Compatability fraud" that the industry has F>erpet rated upon the public. People actually develop an inferiority complex over not having a "IBM Compatable" computer! By the way- why dont you do some articles for UPDATE? We could benefit form your expertise. The next subject broadens upon this discussion.

MAX DOS: (Reference article 1n UPDATE, July 88 issue for background) . I have continued to use the Oliger DOS and

UPDATE ^MGAZI^E

OCTOBER 1988

OCTOBER 1988

Larken DOS together, and have experimented with stacking SPDOS "on top of both", THREE Disk Operating systems together. Actually the Larken DOS and SPDOS have many of the same functions. So there is not a great difference in the capabilities of "Stacked 01 iger/ Larken" and "Stacked 01 iger /SPDOS", so we could dub the two "MAX DOS L" and "MAX DOS S"

So, I will continue to discuss MAX DOS as the combo of "01 iger DOS Hardware interface", and the "LARKEN LKDOS Dock Cartridge". I have been operating with this combination of hardware for the past several months, hardly ever bothering to remove the cartridge or the 01 iger B board. A couple of months ago I received a "loaner B board" from John 01 iger. This one has a "EPROM OFF" switch, which my earlier board did not have. The significance of this added switch in the MAX DOS environment is that the LARKEN NMI functions will work when the OLIGER EPROM is switched OFF. BUT, to use the OLIGER NMI functions, you must remove the LKDOS Cartridge. Now we need to convince Larry Kenny to give us a little switch modification to his LKDOS cart to do the same, in order to allow the OLIGER NMI functions to work as well.

Otherwise, MAX DOS is indeed a very powerful DOS, despite the minor NMI clash

Now I dont want this to sound like criticism, so will lead in with with compliments. The LKDOS EXm BASIC functions are SUPER! AND, so are the 01 i ger Extra Bas i c f unct i ons . When operating in the MAX DOS environment, one can use ALL of BOTH system's extra basic tool kit functions. The nice part is that the LKDOS functions are speeded up by the 01 iger system's faster disk operation. This extra speed is most not i cable when popping in screens from disk, MERGING in program segments, bringing in data files from disk and saving data to disk.

The OPTIMUM disk drive situation is TWO drives. One drive is used for DISCRETE 01 iger DOS use, and the other is for DISCRETE LKDOS use. Each are "assigned their drive number" by either programming in software or by direct commands. EXAMPLE: LET/d=0 would assign drive zero as an OLIGER DISK. AND-

UPDATE MAGAZI^E

PRINT m-.QO TO 1 - would assign disk 1 as a LKDOS disk. From then on, the system "remembers", and a LKDOS disk command automatically accesses DRIVE 1, or a 01 iger DISK command will access disk zero.

But that sounds like we have two separate disk systems, which we have-. We can load and operate disks that have been produced by anyone's Larken or 01 iger system. And, we can Format and prepare disks in either Larken or 01 iger disk formats. BUT, we also have a COMBINED SYSTEM. Programs may contain any combination of DOS commands. Boot a screen in from the 01 iger disk, or save a file to the Larken disk. Programs that contain BOTH DOS DISK commands may be SAVED to either disk. AND, the operator does not even need to think about which disk will be operating. A Disk Command in the software will automatically use the proper disk, as designated by the previous LET/d- and the PRINT #4: GO TO.

MAX DOS OF^ens up tremendous power for programmers to use, employing all of the command functions of two disk operating systems in one or more programs to command two disk drives. The software can be controlling up to nearly 2 mega bytes of disk capacity (2 80 track drives) . Good planning can result in "programs in one disk and Data in the other disk" and keeping the program disk write protected. SO- whether MAX DOS is Larken DOS, or SPDOS- combined with the Oliser system, it is one tremendous Disk Operating System. All we need is for more TS-2068 users to discover this.

THE QL DOS

The SINCLAIR QL DOS is excellent. Nobody needs to feel inferior about using the QL. I look at it this way. How many IBM's have you seen that have a pair of additional fast tape drives? It is made even more powerful by the BIG Tool kit functions available in ROM cartridges, TRUMP CARD, and SANDY BOARD. Disk Drive works with the QL with nothing more than a Controller card, same as any other system, but it is less expensive than any other. Memory expansion is also less expensive. Do we need IBM Compatability?

UPDATE NAGAZI^E

5

OCTOBER 1988

TS-2068 and SINCLAIR QL

ISSUE DISKS and MICO DRIVE DUBBING

The Issue Disk program for the TS-2068 will be carried on for support of the QL users, but with a small difference. TS-2068 programs and utilities given in the UPDATE pages are actual listings given for those who want to try keying in the listings. Some are quite long and keying in may not be very practical. Yet they are there to try. QL utilities will be listed for key-in also. But the software programs for the QL are generally just too long for practical key in projects and the listings would take up too much page space. These long QL programs will be written up as "Mini Manuals" in UPDATE. Although, this issue has one complete (but short) QL software "Mail Merge" that will be listed as a key in project. So, whether the QL programs are listed or not will be determined by their program length.

The ISSUE DISK for the TS-2068 programs will include all of the software and utilities of a given issue. The QL Issue Disk will be variable, and will include at least one major software and the utilities given in the pages of the current issue. Sometimes there will be two issue disks for the QL users in one magazine issue^ It just depertds upon the program len^t and applications of the software.

PRICING: All Issue Disks for both computers will be priced at $20,00. This is an increase of $4.00 over past TS-2068 disk price because UPDATE was not breaking even at $16.00 each. UPDATE supplies the disks, does the recordings, pays the mailing expenses, and shares half of the proceeds of issue disk sales with the authors of the programs. It really is a non-profit situation for the magazine and the authors don't realize more than a token payment for their support of us all.

MICRO DRIVE ISSUE Recordings: Due to the higher price of the cartridges and their scarcity, UPDATE will provide Issue Dubbing service. Those who want the programs and utilities may send in a BIRMATM^ MEiV Gai'tridge ami it will t«e returned with the Issue programs recorded. "Formatted" is emphasised because if the

user formats the cartridge first, he is assured that the cart will take the programs and there will be no mail delays. The price for MDV dubbing will be the same, $20.00 per named Issue Disk.

UNCONDITIONAL GUARANTEE: Subscribers may be sure that these programs on disk or mdv are worth the price or more. If not not completely satisfied, the user may keep the disk or cartridge and just ask for full refund. Sometimes a software program may require more documentation than UPDATE can accommodate in the issue pages. PT^ER documentation and the mailing of paper is expensive, and the author may need to charge extra for an extensive manual . These instances will be announced. Documentation within a disk or micro drive is a much better method, where text can be illustrated with screen examples, and the text sent to a printer.

COPYRIGHTS

Unless specifically stated, all programs presented in UPDATE magazine are the property of the individual authors and are protected by copyright. The authors give their limited permission for publication in UPDATE Magazine and for the distribution of recorded copies to the purchasers of the Issue Disk series. No other sale or transfer of these programs are authorized by anyone or any other publication. Some Programs and utilities may be donated to public domain by specific statements made by the author within the text of the programs presented in the magazine. In the absence of such statements, the programs are privil edged.

MICRO DRIVE V/S DISK: Both mediums are excellent. A huge software may be recorded on disk, but to use micro drive, such a program would need to be broken down into several individual segments, as is the four PSION sof wares. By the same token, an un-expanded QL can run large programs that are broken down in "boot in segments". Most large programs presented in UPDATE will have two .versions, one for disk and another for micro drive. All programs presented will work on standard QL computers, but some may have annexes to expand into extra memory.

UPDATE MAGAZIl^

6

OCrOBER 1988

OCTOBER 1988

UPDATE MAGAZIISE

QL SUPPORT IN THIS ISSUE

Remember that UPDATE questionare? Well, a tabulation reveals much about the QL user's equipment and desires. About 60% of present user have un-adomed QL computers- no memor/ expansion, and micro drive only as a storage device. Ihe other 40% have disk and extra memory. Of the group, about 70% say that they need beginner level programming information, tips, and utilities to use. The 30% minority ask for more sophisticated information about disk drive, trump card tool kit programming, more advanced software, conversion of IBM MS DOS software, and other hi brow stuff. UPDATE will try to accommodate all. This issue begins a feature article titled,. "THE QL BEGINNER COURSE". This series will go on "forever". I guarantee that it will because I'm the author. If you'll follow this series you will learn how to program the QL, and how to get the most out of the four PSION Softwares. You'll learn it as I learn it, because I am a novice on the QL. But better stay up with each issue or you'll get behind! I'm a mean and lean TS-2068 programmer and learning the QL will come naturally. So, start with me in this issue and progress with me.

MEET some QL Programmers

Bill Cable, Wood and Wind Computing, RR-2 Box 92, Cornish, NH 03745 (tel 603 675 2218) . I lead right off with a plug! This is because I want you to know Bill. I want you to know all of our supporters, dealers, and publishers. Bill Cable is one of them extraordinary programmers who specializes. Bill is a QL dealer who developed a customer base of businesses, selling QL computers to medium and small business people, and then supportir^ them with custom software. Needless to say, his feet were cut from beneath when Sinclair stopped prxDduction and support of the QL. I am sure that all QL users will encourage Bill Cable to turn his programming efforts to support the users. This issue brings in

one of Bill's outstanding softwares, titled "REFIELD". This software is designed to augument the PSION ARCHIVE to make it infinitely more flexible and powerful. REFIELD is presented in versions for both Floppy disk and for Micro Drive, and will occupy one of the two October

Issue Disks. REFIELD will also be offered for Micro Drive Dubbing. See the last page of this issue for details.

NE)Cr, another well known author and programmer has invaded the QL Group. Bob Hariiung has been a regular writer and programmer for UPDATE since it's first issue, but doing TS-2068 articles. Bob continues to write and program for the TB-2068 while producing for the QL as well. Thats kinda like alternating between both seats of a bicycle built for two while its rolling downhill. Now get this! Bob's "QL ADDRESS FILE" software, given in this issue, is designed so that it works in three different computers, the QL, the TS-2068, and with Beta Basic in the Spectrum. QL Address File is designed as a simple program that works independently, and is an excellent one to tackle as a key-in project. Whatever, this one will also be offered on disk and for micro drive dubbing. See the last page for ordering information.

BOB DIGGS KV3Q, a HAM Radio Operator, has been tackling the QL and its problems associated with Telecomputing, only on a little different tack, with PACKET. This gave me a chance to open up the subject, "Telecomputing". Hope others join in to cover Telecomputing in detail.

Finally, several re-prints of QL articles from the various Sinclair User Clubs are given in this issue. One of the very best paths to learning computers is to join a User Club, and participate. This way, one meets folks who have like interests in computing. Friendships are formed and telephone numbers exchanged so that help is but a few feet away at your telephone. Some travel over a hundred miles one way to attend User Group Club meetings and benefit greatly from the association. The idea is to form a "special interest group" of QL users within the special interest Sinclair Club. Then you get together and exchange infomation and tips, swap public domain software, and copy programs from the club library. This issue brings information about several live wire clubs, and samples some of their newletter articles. If there is not a club listed near to your home, call me and I'll put you in touch with one.

UPDATE MAGAZIbE

7

OCTOBER 1988

SINCUS PROGRAMS

Time Designs did the Timex Sinclair users an excellent service by producing an up to date listing of all Sinclair Timex Clubs, listing all Club publications, and rating them on a scale of from 1 downward. SINCUS NEWS, 1229 Rhodes Road, Jol-nson City, NY 13790 copped FIRST PLACE. Subscription is $8.00 per year (underpriced). SINCUS provides more service to both members and non members than just a good newsletter. See clips below.

SINCUS OFFERENSS;

RENEW or Subscribe to SINCUS NEWS for $8 per year. Send in a Mailing label of either UPDATE, Time Designs, or Syncware news and receive and extra issue of Sincus News FREE, added to your subscription. (Offer ends 12-31-88)

SINCUS TAPE/DISK LIBRARY: Write for details (An OUISIANDItG BARGAIhJ- UPDATE RECOMMENDS I ed)

SINCUS "Computus Interruptus"- a 63 page programming manual by Wes Brzozowski. (UPDATE rates this as EXCELLENT) Comes in two forms- a paper manual for $10 member or $12 non member of SINCUS. or, a disk in 40 or 80 track Oliger or Larken Format- $5 member, or $6 non men±)er of Sincus.

SINCUS CLONE:- TS-2068 tape copier- $6 for tape and documentation.

The SEP/Od issue of SINCUS NEWS is in and contains some very interesting stuffin. The Editor gave UPDATE MAGAZItE some very appreciated praise, for which I thank him for profusely. BUT- he didn't get everything rightl He said tliat UPDATE is "virtually a one man show". Actually, about 75% of the red meat pages in UPDATE is contributed by GUEST WRITERS. (Count uml) The Editor does a few new utilities and rambles on in editorials to give the UPDATE its personality.

Without the generous participation of expert writers, UPDATE would be just a little nothing newsletter. The editor realizes that some folks just don't like OPINIONS expressed in editorials, so pages are piled on to make up for editorial verbosity. So, Paul, Thanks, but stand corrected. UPDATE is a "participating" magazine, and owes its reputation to the writers of fine articles, programs, and utilities.

The North American Sinclair Society

Now to slip out of the third person: Paul Hill, editor of Sincus News, has some darn good ideas about consolodation of publishing efforts into ONE MONTHLY Magazine which would enconpass all existing publications and all Qub Newsletters. It's a good idea, Paul. What is lacking is "Management Control", so that such a publication would not become a "Sinclair publishing monopoly", setting advertising rates up to unfair prices, and reducing page (red meat) content down to minimal in order to make higher profits. But still, it is a good idea to pursue, I would invision a Sinclair Timex publication that would be managed and controlled "by the user group".

WHAT USER GROUP? There is no organized user group. ENTER "The North American Sinclair Society", or some such named organization. The Florida Groups coined "SNUG" which everyone has trouble breaking down into prose. But WHATEVER, we need a PARENT ORGANIZATION of Sinclair Timex user groups of North America. ONLY When such a parent group is formed can there be concerted effort to do things for the good of all. This, I believe is where all of the present User Group officials should be working and coordinating. A North American Group wont be formed without such coordination amongst the existing strong clubs.

I cannot form a North American Group. Neither can Tim Woods, or the other publishers. We do not represent anyone. But, we stand by to lend our support. You present officials of Clubs DO represent people. Why dont you establish direct coordination between Clubs and form the North American Group? Vote in a management board of officers who will operate as a Senate to form up the charter and by-laws. Use the existing publications as tools for publicity membership drive, and COMMIT your owi club ment)ers en-mass to become mendbers of the North American Group.

THEN, wlien the North American Group is fully formed and has establised a sense of directions, it will be time to explore the idea of a Single Publication, of ample size, to become the voice of Sinclair Timex Conputing in North America. Membership in the Parent Group should carry with it a subscription to the Group publication. UPDATE Magazine will cooperate if the interests of the subscribers are guaranteed to be fulfilled. So there you are. A gauntlet has been thrown to the Officials of our current Sinclair Timex Qute. Who will accept tlie challange and assume leadership for

coordination? Its your move now.

8

UPDATE. MAGAZIhE

OCTOBER T988

OCrCBSR 19 BB

JPDATE MAGAZI.MB

EARL V DUNNINGTON 4356 KING THEODORE DR. BOYNTON BCH. , FL 33436 PHONE .4^7732-6219

A SCREEEIM COPY 1 IM RUL.L. COLOR AMD MORE!

A REVIEW BY EARL DUNNINGTON

John McNichael has done it again! That is improvecJ the capability of our 2068* s by developing software that will make a fuU color or black and white screen COPYi when used with his interface* the OKIMATE 20 color printer* atid the Okimate Caminadare Plug and Print nodule.

He has also developed two other pro-* grams for this hardware. A Patch for Jack Dohnay's MSCRIPT revisions V5/V5.2 and a machine code OK I -DRIVER program that supports the LLIST and LPRINT commands. Each program is on a separate tape and were * 8.95 each.

The Screen Copy program requires that the screen be saved on tape with the SAVE "name" SCREEN* command or the equivalent SAVE "name" CODE 163B4i6912 command. The options allow you to specify color or black and whitet small or large sizev the horizontal position on the paper, and the number of copies to be made. After the specified number of copies has been madei you can again enter your choice of options and either use the same screen or load a new one. The small size produces a screen copy 1.55" by 1.25". The large size is 3.15" by 2.55". Approximately 30 copies can be made with each Color Ribbon - ($ 5.65) using the large size.

The black and white screen copy using the black ribbon is much darker than that produced by the 2040 printer. Howeveri there is no shading for the different colors like that produced by Zebra's Z~PRINT 80 or like a color screen viewed on a green screen monitor. Due to this the color copy is a vast improvement, even though a large block of paper color only characters reproduces somewhat unevenly, the colors being slightly darker along the horizontal Juncture of each character line with another. The individual pixels are not apparent to the naked eye. For testing, I used the third color screen from Knighted Computers "NISHT GUNNER" (c) Digital Integration. It has the following colorst white, black, green, yellow, blue, cyan, and red. I consider the rendition of the ink colors, excellent. The instructions are

also excellent.

As I do not have Jack Dohany's revised versions of MSCRIPT, I can not comment on the Patch program, other than the instructions seem very complete.

Thti OKI-DRIVER program is strictly machine code. It loads in starting at address 64874 and id 494 bytes in length* The program is compatable with the Larken DOS V3 and the Larken 256K RAM DISK. It is also compatable with the Zebra FDD 3000 with TOS. As written the code is not re- locatable and therefor is not compatable with the Zebra OS-64 cartridge or any other program using two display files. In addition to supporting LLIST and LPRINT there are options for sending printer control codes with support for LPRINT only, switch the character transposition off, and switch backand forth from the big printer to the 2040. If the 2040 is also connected you can always use COPY. The options and switches are made using RAND USR commands. There are eight 2068 character codes that will print as Commadore characters*

92 Always

95 Always

96 "A 1 nays

123 Alirays

124 In printer control code mode

125 Always

126 In printer control code mode

127 Always

The instructions for using the program are excellent and quite complete. The utility of the program would be greatly enhanced by fronting the code with a BASIC loader and code mover program to adjust the internal Jumps and the calls to any location desired.

The McMichael interface emulates a Commadore serial port. It was originally developed for use with the 2068 and the Commadore four color pen 1520 plotter. The interface can be purchased as bare board ($14), a kit with all parts ($20), or assembled ($30). I ordered the kit. As I do not have the Oliger expansion board, I also

9

riPDATF MAfiAZTNF.

OCTOBER 1988

OCTOBER 1988

UPDATE MAGAZINE

ordered the edge connector ($4.95). The documentation is excellent and I had no difficulty in assembly. Do not worry if you think you may have a solder bridge between pins 8 and 9 of U3. They are supposed to be connected.

The OK I MATE 20 ($136) is an SO column "State of the Art"i square 24 pint NLCl» dot matrixi thermal color printer. It uses color or black thermal ribbon cassettes. Thermal paper without a ribbon cassette can also be used (4-80 foot rolls $16). The footprint is about 13" x 7" and is about 2" high. A tractor is built in for paper with sprocket holes. Single sheets can also be used. A serrated plastic edge is built in for tearing roll thermal paper. The pr inthead is removable for cleaning or re- placement ($21.95) by the owner. The over- all quality of construction appears to be excellent and it is very quiet when print- ing. There are printer control codes for draft qualityi character size (Picat Elitei Finei double width) « Italicsi Super and Subscripts* underliningi reverse printingi form feedi carriage returni line spacingi starting position^ skip over perforationsj and graphic modes.

The printer documentation, registra- tion formt a color ribbon cassette* a black ribbon cassettet computer paper i a order form for suppliesi and the plug in printer module are all contained in the Okimate Commadore Plug and PrinT package ($79.95). Dip switches in the module allow you to use different international character sets.

I consider thisi for the price (total about $270) one of the best full size printer systems available for the 2068. It could be improved by a color screen program that would produce a printout twice the present large size. The prices quoted are approximate.

The OKIIiATE 20 and the Commadore Plug and Print module can be purchased at TOYS R USi Service tlerchandisei and Sears. Some mail order computer supply houses also carry them. Check the ads in Commadore magazinesi Compute, and the Computer Shopper.

Send a legal size SASE to:

John McMichael, 1710 Palmer Dr., Laramie

WY 82070

for an order form and price list. If you enclose one dollar he will also send a sample color screen copy.

UPDATE MAGAZINE

1 NIGHT 1

1 GUNNER

''6 BY ;g

)0 (|> DIQITfiL IHTEORRTION 1983

NIGHT GUNNER IS LORDING

Editor's note: 7Wo screen copies were supplied, one a B&ff and another in full color. These are reproduced below if full size. Unfortunate a B&W copy cannot do Justice to the color screen so I will describe it. The large print "NIGHT GUNNER' is in Cyanide on a bright red background. The smaller print below is white, as is the fancy border. The two bombers and ships below are in bright yellow on a blue background. The knight with pointed rapier is sketched in white. "Night gunner is loading" is black print with green backgrxjund. The colors and contrast are vivid, about what you would see on screen, but with with no gaps between drawn pixel lines. Focus is sharper than a screen image. "NIGHT GUNNER' stands out on its background in a way that looks three dimensional. This is the same size screen copy as we are used to with other softwares. I would suspect that if the printer could be put into an expanded mode that the print out would cover a larger area, as does other screen dumps. Only one gripe and thats against Digital Integration,- "mat respectable Air Force paints their aircraft YELLOff?'

10

OdCBER 1988

UPDATE MAGAZINE

THE ROUND UP

AN UPDATE PR0GRAMP1IN3 TUTCRIAL

This is a program designed for UPDATE to demonstrate several abilities of dealing with numbers. FIRST, the "INT" function "ROUNDS DCWN" figures. All businesses do the opposite, ROUNDING UP to the nearest cent. This can make a busy department store quite a few dollars during a day's ope^tion.

Next, PRINT USIN3 is a RON routine used with some computers to "Format a Column of Figures". Mr. Sinclair left PRINT USIN3 out of his Sinclair Basic ROM. But anything that a ROM routine can do can also be done by programming in RAM. Here we use a little routine that simulates a PRINT USIN3 function to print the dollar sign, then print a column of figures with decimal points aligned. Also, Zeroes are added when necessary.

The use of INT (INTEGER) in math calculations to assign the resultant to a variable causes errors. The error is only in the assignment to the variable. The "Floating Point Calculation" has the right value "in there somewhere", but a small fraction is lost when INT is used in a calculation. EXAMPLE: try this group of direct commands: <IJST a- 1.0954><tJET b=INT a> <IJST c=INr ( 100000* (a-b)) > <PRINT c>. Floating point calc drops a tiny fraction that can be troublesome. LINE number 9710 uses a litae "floating point k factor" of .0001 and then adds .005 for "rounding up" to the nearest cent.

Line 9712 adds a whole number if a round-up changes 99 cents to $1.00. Then the integer number and the decimal fraction are assigned to a$ and b$ for printing. This is because the TS-2068 prints decimal numbers as "0.4", "0.25", which is not convenient to print directly. The "SIR$" function transfers a numeric value into a literal value to place in a string. Try this EXAMPLE: <I£T a=12> <LET a$=SIR$ aXFRINT a$>. Amazing, eh? Now lets go the opposite way: <IET a$="386"><I£T a=VAL a$><PRINT a>. Stupendous! ! Mess around this way with SIR$ and VAL, and you'll get good at using numbers in both sinple variables and in string variables.

Next, line 9718 does a bit of "String Slicing". Some of the odd presentations of

fractions may result in B$ being ".020". To just present "cents", we chop off ths last "0". Lets try that separately now: <LET b$=".020><PRINr b$( TO 3) >. Or: <£JET b$=b${ TO 3) XPRINT b$>. Try several other examples like: <LET b$="I LOVE THIS"><PRINr b$><IJST b$=b$( TO 6) XPRINT B$>.

Next, line 9720 "sums" the figures, but only IF x=l. In the beginning we LET x=0. So, each input figure is summed as they are typed in. When we want to present the sum, we type "s" instead of a number. Back at line 9700, the input of "s" instead of a number gives us an error (unless variable s has been assigned a number). The error trips the first ON ERR GO TO 9800. Then at line 9800, the ERR is RESET, a line is drawn, and a dollar mark is printed. Then the GO TO 9710 processes the SUM to be printed.

Finally, line 9770 prints the figures, with all decimals aligned at your TAB setting. A$ carries the WHOLE dollar value and B$ carries the CENT value. Then line 9780 stops if the SUM has printed (x«l), or line 9790 returns to pick up the next input . number. ONE MCRE line needs to be

discussed. LItE 9700 has a second <0N ERR GO TO 9706>, which is the next line in the program. "STOP" creates the error so that the ON ERR programming is cancelled (no open ON ERR to mess you up later), I

Now thats a lot of programming functions in a few short BASIC lines, and likely less memory is used than if Sinclair had put the routines in ROM and given us a PRINT USIN3 syntax to use. And, because it is in BASIC programming in RAM, we can alter it as needed to tailor the routine to our needs. There are many ways you can modify this utility to use as a SUB-ROUTI^E in your programs. Change PRINT to LFRINT in line 9790 to put it on paper. But if you just want a "Column Adder", use it the way it is.

' 9680>REM [ THE ROUNEHUP ] [ Summing of Columns ] [ PSBUDO PRINT USIN3 ] 9690 CLS : LET x=0: LET t=0: LET tb«25:

REM [ variables are "t=Total. tb=tab. x=switch that turns on by ERROR for totalling. ]

9691

UPDATE MAGAZI^E

11

OCTCBER 1988

OCTOBER 1988

9692 REM [ Lines through 9700 may be eliminated. Then the input to the routine would be numbers assigned to varable a.

9694 REM [ The Routine end is line 9780. Change line 9780 to RETURN for Sub-routine use.

9697 REM

9700 ON ERR GO TO 9800: INPUT "K ey in NuiriDer- or ""s"" for SUM

"tat ON ERR GO TO 9706: STOP 9706 ON ERR RESET s IF t=0 THEN PRINT TAB tb-5;"$"; 9710 LET b^IMT a: LETT c^INT (100 *(a-b+.0001+.005)): LET d«c/100 9712 IP c>99 THEN LET b«bfl: LEI

c=0: LET b$a''.00'' 9714 IF c>=0 AND c<10 THEN LET b $=".0"+SIK$ c

9716 IP c>9 THEN LET b$*".''+SIR$ cf"0"

9718 LET a$=STR$ b: IF LEN b$>3

THEN LET b$*b$( TO 3)

9720 IP x=0 IHBN LET t*t+b+(c/10

0)

9770 PRINT TAB tb-LEN a$ya$;b$ 9780 IF x^l THEN LET x«0: STOP 9790 00 TO 9700

9800 ON ERR RESET : PRINT TAB tb

-4;" "'TAB tb-6;"$";.: LET

x=l: LET a«t: 00 TO 9710

;azine

UPDATE October 1988 Sinclair Z88

Ihis is really a CLUB Issue of UPDATE

If the reader has concluded that UPDATE is plaggerizing and stealing articles for the various Club newsletters, then the objective is missed completely. The reason for the selected re-prints is to give samples of the excellent material that is produced in these excellent club publications. So, you get two benefits from these club articles. First, you get the good articles to digest. Second, you get a chance to savor the personality of the clubs and the quality to expect in club publications. Then, of course, you get the address to use to JOIN the club or Subscribe to their newsletter. Actually UPDATE has a baric of excellent NEW articles about the TS-2068 and the QL, enough to fill at least the next five issues. Ihe Sinclair user groups need an influx of new members to spark new life and direction. Especially, the clubs need QL and TS-2068 members to join and form a special interest group within the existing Sinclair special interest Club. This is UPDATE"S way of helping to round up new members of the Sinclair User Clubs. Unfortunately, space does not permit the introduction of all clubs in one issue, tut we'll get rountuit in future issues.

*** THE SINCLAIR Z88 "lap top" OOMPUTEK ***

So far as I can tell, there are only praise and enthusiasm ceding from the owners of the Sinclair Z88. Frankly, I dont like the term "lap top", as it seems to have a connotation of "tinker toy" which demeans the extraordinary capabilities of the Z68. Lap tops come in many varities of both size and price. Last week I looked at a Mitchubitchi lap top which comes in at a measly $4999.99 unit price. Then there are earlier lap tops which didn't sell like hot cakes and are now priced below

$500.00. (Read "not designed to user needs") .

We have several subscribers to UPDATE who already have the and I f^P^^.^^^^^^^^^^;^^^ be many more on December 26. Why not, the Z88 will fit into a Christmas stocking! Mike Fink, a s^ib^^ a Z88 Dealer, has just about finished a new "Z88 Instructional Manual" which wil

no T Mirt Mike Fink is an enthusiastic Z88 Dealer, so we cannot exactly call him un-biased. UPdJ?E w^c^ef ^ ;m%S?is^^^ the Sinclair Z88 FH^ AN OWNO^ ONLY. We

to know fro. the ho^s^'s mcxith mor^ alxxxt this new Sinclair pr^uct whethe^^^^ isworth its price, and an evaluation of its operation. Only an owner who has operated the Z88 for seveS^ntte can prxwide such a comprehensive review. How about you Z88 owners telling us about this new computer?

(Mike Fink, 355 if. 39th St., NY, NT 10018-1401 )

12

UHDATE MAGAZItE

OCrCBER 1988

OCTOBER 1988

UPDATE MAGAZINE

LETTERS: Just had to shoM you. this one (reduced 50%).

AAAAAAAAAAAAAAAAAA

1

1

i 1

i

1

i 1

YOU

MONACOIj^

}n t, Urtttr If ST I. 5m U.

Sill9

§ W<nJl /riyU^ l/Ti^

30c

i 9-

USING THE OS <£>-£h CARTRIDGE WITH TOS

At no time should the TOS copyright notice remain displayed) otherwise you are not properly booted up.

BOOTING UP

1. With the computer and drives off» insert OS-64 cartridge in the 2068 car- tridge port.

2. Turn on computer. The screen will clear and then display the OS-64 copyright notices.

3. Power up the drives and then insert the TOS DEMO disk in DRIVE A. The drive light will flicker as the disk is read. The OS-64 copyright notice will remain display- ed.

4. When the light stops flickering) type in the CAT* command and press ENTER.

You are now booted up in TOS with a 64 column screen. The DICE game must be revised for a 64 column screen.

REBOOTING

1. With a TOS disk only in drive A) while pressing and holding the red reset button on the drivesi pressand release the grey reset button on the interface.

2. Release the red button after the screen clears and the OS-64 copyright appears on the screen.

3. The drive light will flicker as the disk is read.

4. When the drive light stops flicker- ing, type in CAT* command and press ENTER.

TO TURN OFF THE SYSTEM

1. Remove disks from both drives.

2. Turn off the disk drive -power

3. Then and only then turn off the computer, otherwise you may damage either the disks or the drives.

EARL V DUNNINGTON 4356 KING THEODORE DR. BOYNTON BCH. , FL 33436 PHONE 305-732-6219

Hen

13

UPDATE MAGAZItE OCTCBER 1988

OCTOBER 1988

UPDATE MAGAZINE

<0N ERR> Programming

A person whom I'd never heard of sent me a cassette, saying that it contained an important program that "hangs up every time it is loaded". I loaded the program and sure enough it did hang up. A touch of the NME button on the Oliger DOS board gave me "O.K" at the screen bottom. Then LIST put the listing on screen where I discovered <QN ERR QONriNUE> in the first program line. I EDITed the line and removed the ON ERR, then found a subscript error in a following program line. The moral of this story is that if you use <0N ERR OOMriNUE> you'd better have every conceivable error eliminated. I returned the cassette with the ON ERR removed and the program re-saved, with expanations, never to hear from my pen pal again- no thanks, no nuttings. AND, I paid the postage. The morale of that story is, if you ask someone to do something for you and he does it, you should thank him.

The TS-2068 "Remembers ON ERR" and the line number in an ON ERR statement "well after" the program line that contains the <0N ERR GO T0> statement has been executed. Then the first error condition forces the abandonment of sequential line read, and the line that is designated in the ON ERR statement is executed. Therefore, if you use <0N ERR GO TO line>, it is best to terminate the ON EE?R "whether an error exists or not". Oie DOS (AEROO FD-68) will carry forward a ON ERR condition when a new Basic Program is loaded without a computer reset. This can cause the next program loaded to give you an unpleasant suprise.

ON EE?R programming can let the programmer do many things that cannot be achieved by any other means. But it is not good programming technique to leave a ON ERR condition dangling. 1*11 give a couple of examples that can be modified and used in different ways. First, the cure for the FD-68 programs that may be loaded during a ON ERR condition in a preceeding program.

5 REM ** RESET a ON ERR 10 ON ERR GO TO 9000: STOP 20 STOP : REM **Line to begin

your programming.

9000 ON ERR RESET : GO TO 20

Let your auto run line be line 10. The

ON ERR changes any existing ON ERR programming to line 9000, and then the STOP forces line 9000 to execute, where the ON ERR is cleared with RESET. Then your first real programming can begin at line 20.

The next illustration is more complex. Here we use ON ERR almost as we would use <IF IHEN>. Say you need to present on screen the "status of a data base" contained in a character array "0$()", A subscript error would occur if 0$ were not dimensioned. Then you may want to know the actual Dimension of 0$ array. Then you may also want to know the last "cell of 0$" that contains data (not empty spaces). We will use ON ERR within counters to do that in the following subroutine.

5 REM ** Use ON ERR to find the Dimension of a CHR$ Array.

10 LET a=500: FOR n=l TO a: ON ERR GO TO 9000: LET b=LEN o$(n) : NEXT n

20 CLS : STOP : REM **Line to begin your Basic programming. 9000 ON ERR REOT : IF n<2 THEN PRINT "0$ is not Dimensioned." 9005 IF n>2 THEN PRINT "The Dime nsion of 0$ is> "; FLASH 1;"0$(" ;n-l7")""

9010 IF n>l THEN FOR n=l TO n-1: ON ERR GO TO 9020: IF 0$(n)(l) = " " THEN STOP 9015 NEXT n

9020 ON ERR RESET : IF n=l THEN PRINT "0$ has no data": STOP 9025 ON ERR RESETT : IF n>l THEN PRINT "The last cell of 0$ that has Data is "; FLASH 1;"0$("? n-1;")"

9030 BEEP 3,16: LET n=a: GO TO 2 0

Each of this routine's actions to check the status of 0$ serves the same purpose as an <IF THEN>, except that <IF THEN> cannot be used because it could result in a subscript error. So ON EE^l allows us to check the status of a data base "whether the data base exists or not". It is inportant to note that at the end of the <0N ERR> Subroutine, the <0N ERR> condition is cleared (RE^). Then any subsequent error will be reported as normal with a "report code" at the screen

UPDATE MAGAZINE

14

OCTCBER 1988

ocrcBi

bottom.

Lets do one more that is simpler. This time we will check the status of a simple string content (A$) . A subscript error will occur if A$ has not been initialized in this example. <10 PRINT "Jhe Data Base is LEU A$;" bytes" >. "Die ON ERR routine would be:

10 ON ERR GO TO 9000: PRINT "T he Data Base is ";LEN a$;" bytes ,"i ON ERR GO TO 9010: SIDP

20 STOP : REM * The next line. 9000 ON ERR RESET : CLS : LET a$ «""s GO TO 10

9010 ON ERR RESET s 00 TO 20

If A$ lias not been initialized, the ON ERR trips to line 9000. But if A$ has daU tlie LENgth of A$ is reported and the second ON ERR designates a new line to GO TO if an eccoc exists. Then SLX)P triggers the GO TO 9010. In either case <CN ERR RESEn:> clears tlie CN ERR progranuning. It might be worth noting tliat <0N ERR RESET> clears the error condi tion.

But, <CN ERR RESBr> is ignored if the ecror condition has already been cleared. Tliere is no adverse effect if <CN ERR RESErr> is encountered. The follow on programming in tlie line is executed whether or not the RESET actually reset an error or not.

McBrine Computer Products

LlFi far the JS206S v. 2.0 - See John Conway's revolu- tionary pattern-generating qaie for yourself! 3 tiies as If^^ fSo^V" original; includes 24 x 32, 48 x 64, and now 76 X 128 in one prograi, plus saving b loading and an iiprovBd keyboard routine $9.95

POHEK fRIHJ - The ultiiate in support for your Epson- cojipatibli printer Kith Aerco, Tasaan, or AiJ parallel interface. Featurefi: lOOZ correct LLISTings t Accurate aspect-ratio b/n screen duips in 2 sizes and two resolu- tions (192 X 256 and 64-col., or 192 x 512) I Text-only screen duips (both resolutions) for speed I Print to !??2.7.^^Il^^''^"P^■'^'■iven print spooler t TOTALLY RELOC- ATABLE! t Specify interface and printer. (Kill custoiize for your printeri send print code data.) $7.93

mn 512 - Horks in both 192 x 256 and 192 x 512, b/n only. Draw («/ OVER or INVERSE) t Line t Box $ Square I Circle t Invert t Block invert I Block erase I Merge screens 3 ways t Rotate (scroll) screen in 8 directions, a pixel at a tiae t Flip left/right or up/down t Mirror 4 ways I Convert back and forth between 32-col. and 64- col. lodes in several ways t Use joystick or keyboard t Screen duips froi POWER PRINT....... ....$9.95

^mRmLS - Reikill t Header reader I Renuiber (with GO TO's and -SUB's) t Variable duip I Prograi tracer t Finder (find string in BASIC prograi) t All RELOCATABLE except tracer, partly relocatable $9.95

Postage paid on all orders $ Check or Money Order

SEND LSASE FOR FREE CATALOG!

McBrine Coiputer Products 514 S. Jackson St. t Salisbury, NC 28144

CORNUCOPIA

Gr. Myth, a, horn of tho goat that suckled Zeus: it would become full of whatever its owner wanted

Getcha magnifyin glasses out! This issue ^^ill bring some announcements about Software that is available. Now oont fuss about the small print. update is ooin this as a public service and trying to get as many in thar as possible while making the print clear nuff to spy glass up. the main thing is to send a sase to the folks and get back more info than we can put jn

A LITTLE COLUMN. - ED.

SOFTWARE FOR THE QL

It is time to start thinking about an ugly- word, "TAXES". "But" you say, "this is only October". Wal, the next issue of UPDATE may be too late to start worrying. ITiis is an unpleasant way of introducing you to a DEALER of SPECIALIZED SOFTWARE for the QL.

Peter Hale, of EMSOFF has announced the 1988 version of "TAX-I-QL", which has a template for your PSION ABASCUS Software. The TAX-I-OL program produces most of the IRS form schedules that you need, plus ccanmon forms and worksheets. Your taxes are c<»nputed from input data on the proper forms. A 16 page manual guides you through the task of inputing data to compute your or someone else's taxes.

Other EMSOFF titles are "MAILBAG", an address data base, "QLAND_LCM)" . which completely manages up to 99 property rental units and produces the required IRS Schedule E. Another is "TRU£rr_HJND" to manage your investments.

All EMSOFF softwares require 256K of RAM extension and are available on 80 track Floppy for $19.95. or Micro Drive Cart for $21.95. Write for catalog: EMSOFT, PO Box 8763, Boston, MA 02114-8763 (tel 617 889 0830) .

T7PDATT5; mnj\7,TW,

15.

CX3XBER 1988

OCTOBER 1988

UPDATE MAGAZINE

ARCHIVE MASTER

ARCHIVE Databaa* im a poHarful, flaMibl* and unlqu* prograa that Has auppltad as a 'bonua' with ■oat n«H QL conputvr ayataaa. HoHavar, dua to It'a coaplaxltlty and lack of conplata docuMntatton, ft in parhapa th* most ■isundaratood OL prograi*. . . that la, up until noH. Entar tha nwM book, ARCHIVE MASTER. tram Exacutiva Uorkahop. ARCHIVE HASTER axploraa all of th* Innar work Inge of ARCHIVE, and containa tips It tricks to halp you naka ARCHIVE an avan mora powarful tool -for par'aonal uaa and buainaaa. Conplata procaduraa ara

includad to sat up an Invantory prograa, a Cuatomar/Supp 1 lar ftia, an Accounta Racatvabla/Involclng prograa, a Mall List Managar, and auch aora! ARCHIVE MASTER la suppllad Nlth a durabia thraa ring blndar, and prlcad at •44.99 (plus 43 SMI. Ordar your copy froa: RMS ENTERPRISES 1419 1/2 7th Straat Dragon City, OR 97049 1903) 693-7484

software for the CQl^

CATALOG

APPLICATIOHS SOFTWARE far the QL

MAILBAG Address database yau won't believe. 256K+

TAX-I-QL Spreadsheet for IRS 384K+

QLAND_LORD Manages up to 99 units and does Scbed E (.mi«(i> S56K+

TRUSTFUND Tracks Investments and net worth (Soon> 256K+

Agents for ZX/TS SlrlusWare 4K Word processor with TS 2040 lowercase printer driver

PROMISE LAND ELECTRONICS Dan Elliott, Oumer

Servicing computerized electronic equipment

COMPUTE»« / MODULES / PRIMTERS / HOMITORS

Sinclair QL TS-2068 TS-LSOO TS-1000

16K Ram Pack ZX-81 Hanotaeh Modulaa

Commodore 64 VIC-20 PLUS-4 C-16

Coleco ADAM TI-99/4A Comaodore 128

REPAIRS / UPGRADES / ASSEMBLIMG / TESTIMO

Write tor pcicest

Dan Elliott Route I, Box 117 Cabool, MO 65689

KEEP IN TOUCH

Mith

a_l_IMK ! The Ultimate QL Terminal

US*19.9S * 3.00 shipping Cspecify mediumJ

Meta Media Productions 726~Uest 17th Vancouver BC Canada V5Z 1T9

Orders, Catalogues and Dealer Info.- Estate ManaxemBat Services

P.O. Box 8763, Boston. HA 02H4-8763 C617) 889-O830

THE Z88 UNDER 2 LBS.

A Computer Without Compromise

'Jj -j j j .J J J -J ^ J J O vJ

oj "nJ tJ \d \d 'yJ 'oJ ''-J oJ'W':^ ''-i. ''. U

I U .J cj ,J .J .J .J J .

rm laptop* compmmlta on dItplBf »iMi RAM eapmclty to Behl»*» porlaoillly, tnd m to aqual* prtea iWlfi poirar. On ZBS a panonal eompular which makat no A CMOS-laehnology eompular with lha powar to addrati 4 Mbyia» of mamory Aeompularwnhawork-fraa<lltplayoltllnaaol80eharaelan,anLCDtenan

n( tloraga A computer with adnncad word-proce»ilng, spraadtheat - amy dala-managamant tottwara t>ull1-lr\ complalaly sail contalnad, which givat you up to 10 houn actlna baltarlat, yat which talki and lltlant to your IBM * A eompular with a lull-slza kayboarri, In a packaga lass than the slia of an 8H« 1 1. with a total weight ol lass than 2 lbs Tha 288. A eompular without compromlsa.

Z-88 Compulw PCtoZ-asUnkup

32KRAM

3ZKEPBOM

128K RAM

«28KEPROM RS 232 LEAD

45 00 3995 . 3995 8995 89 95 1995

SERIAL lo PARALLEL I/I t/2 MEO RAM

DAT ABASE S/W

CARRVINOCASE 2-88 MAGAZINE X-MOOEMS/W

$ 45 95 359 95 I199S

SHARP'S, INC.

UPDATE MAGAZIbE

16

OCTOBER 1988

UPDATE MAGAmfJ

ZX-APPEAL was named *2 BEST CLUB publication by Time Designs panel. See re-print articles in this issue. ed.

The Vant»uver Sinclair Users Group lias been In existence since 1982. We are « suppoH group for Uie owners and users of all SINCLAIR and TIMEX computers.

Pres:-GerdBi«unung PH«(604) 931-5509

V/Pres:- Glenn Read

Sec- Harvey Taylor

Treas. & N/L Editor- Rod Humphreys

Our membership dues are only SlS.OO/year and may be senl lo the Treasuren

Rod I lumphreys

2006 Highview Place

Port Moody, B.C. V3H 1N5

Members of VSUG receive a montldy issue of ZXAppeal - our newsletter.

ZXAppeal accepts advertising. Our ••PREPAID** rales are:

$10.00 -full page $800- 1/2 page $5.00 -1/4 page

ZXAppeal ia distributed lo approx 30 other SINCLAIR User Groups throughout North America as Well as overseas via the NETWORK. NETWORK correspondence may be directed to the Editor at the above address.

Copyright of all articles appearing In ZXAppeal is retained by . the author with the understanding that other T/S User Groups may mnlnt any artide appearing In ZXAppeal provided credit Is given to the author and VSUG.

Rcprinlcd from the May/88 issue of the Nile-Time News - the N/L of the Chicago Area T/S Users Group

TELECOMMUNICATIONS ON THE QL By flichael nitchell (Reprinted froi QZX)

The Ql for lU its pover ind yersitility is liaited in teleconaunictting it m baud without « hirdvare link betveen the serial port and the aodei. The folloving prograi vhich appeared in the Data Expansion or the Dallas/Fort Vorth group will get you on line to a TNC or a telephone at 399 (or even 1299) baud.

1 REflark 306/1269 baud teriinal

2 REHark R1KE_T£RB

3 REnark Developed by

4 RENark Hichael llitchell

5 RERark attribution requested

S REKark Sindairniaex User firoup 7 REHirk Boston Coaputer Society

ie« VINOOV 465,264,6,9

165 BORDER 1,9,7: LB=127

119 CIS: POKE 1(397(,2S5: CLSI9

129 PRlNTf 9.. 'Choose Baud: H<1299. L«399

139 IF IHKEY$(-l)=='h'TH£N BAUD 1206: ELSE BAVO 399

140 CLSI9: 0PENIS,SER2i

156 PRINTI0,, 75=^1'. •ALT*C=*C'.'-6=flELL' 160 REPEAT TERN

170 TERniNAL: PRINTI6, .•ExitT(y/n)' 180 IF INKEY$(-U"'r THEN EXIT tera 139 END REPtera 299 CLOSEfS

295 PRlHTI9,.'Re-run/«uit? (r/q)'

219 IF IKKEYf(-n«'R' THEM RUN: ELSE STOP

229 OEFine PROCedure teriinal

239 REPeat key loop

246 a<00E(INj(EYI(l5,9))S&LB

250 IF a=13 THEN PRINT

269 IF a»7 THEN BEEP 2999,15

279 IF>3I THEN PRINT CHRI(a)

289 b-CODE(INKEYI)

299 IF bs248 THEN EXIT key.loop

300 IF b=255 THEN b=9

319 IF b=9 THEN NEXT key.loop

329 IF b«I9 THEN b=l3

339 IF b=298 THEN b=7

349 PRINTIS, CHRI(b);

359 END REPeat key.loop

369 RETurn

379- END OEFine lerainal Save as HlKE.TERM.bas

UPDATE MAGAZI^E

17

(XTOBER 1988

OCTOBER 1988

Reprinted from ZX-APP:

^

UPDATE MAGAZINE

Sound Experimentor

Rob Miles

Unlike most home computers the QL has a very limited noise making capability. What there is can only be dragged out by using the enigmatic BEEP

command. This has 8 arguments, all of which are obscure. The only way to produce something vaguely melodic is by trial and error. The following quickie allows you to do exactly this.

100 REMark »♦«•* QL User -Beep eKperiment 110 REMark Rob Miles 1985

120 duration«=5000s pi tch«100s pi tch_2«0! Qrad_.M«0: gra d_y«0; wrap«0j f U2zy*=0: rando(n«0 130 REPeat sounder 140 CLS

150 set "Duration (-32768. . 32767) duration, 2

160 set "Pitch <0. . 255) ?", pitch, 4

170 set "Pitch^2 <0. .255) ?",pitch 2,6

180 set "Grad_x C-32768..15) ?",grad.x,8

190 set "Gradlv (-8.. 7) 7",grad.v,10

200 set "Wrap (0.. 32767) 7", wrap, 12

210 set "Fuzzy (0. . 15) fuzzy, 14

220 set "Random (0. . 15) random , 16

2?0 AT i8,0«PRINT "Beep " j dur at i on ; " ^ " s pi tch ; " , " ; p

i tch^2i " , "sgrad.x: ••,"5grad_y; ••,";wrap; fuzzy; " ,

" t random

240 BEEP duration, pi tch, pi tch_2,grad_x ,gr«d_ytwrap

, fuzzy, random

250 dum*«INK:EY* (-1)

260 END REPeat sounder

270 DEFme PROCedure set (name* , var ,posi tion) 280 LOCal buf*

290 AT posi tion,0:PRINT name*;" "fvar 300 AT posi t ion ,0: PRINT namef; ' 310 INPUT buf*

320 IF buf*<>"" THEN var»buf* 330 AT posi t ion, Os PRINT name^s' 340 END DEFine set

! var :

Easel Print

D Duncan

The following 7 liner shows exactly how to use the graphics

dump provided with EASEL. All you need is an EPSON compatible printer and the EASEL cartridge in mdv2.

120 MODE 8 1 PAPER 2: CLS 130 FOR n»l TO 150

140 INK 7:FILL 1:CIRCLE n,50,20, .5,-n/2

150 INK 2jF1LL 0:CIRCLE n , 50,20, . 5,-n/2

160 NEXT n

170 REMark Dump to Epson printer

180 a=RESPR(1024) rLBYTES mdv2_gprint.prt , a

190 CALL a: OPEN «3,serl:LIST #3: CLOSE #3

UPDATE MAGAZINE

18

OCrCBER 1988

OCTOBER 1988

QL RAM extension

UPDATE MAGAZINE

Re-print from ZX-APPEAL

Sinclair's QL has as standard a 128 K RAM. which sounds like a lot in com- parison with most 64 K machines. Unfortunately, the software writers, in the knowledge that there is more than enough memory, have been rather wasteful in their work, so that at the end of the day. there is not all that much more in the QL than in the 64 K machines. So, you need more memory. . .

The accompanying circuit is an appli- cation of the TMS4500A as RAM extension for the 68CX)8. This chip can drive a maximum of 128 K dynamic RAM and provides virtually

everything: multiplexing of the

address lines. RAS. CAS, and REFRESH.

The memory ICs are 64 K x 1 (128 or 256 refresh are both permitted) and have a speed of better than 150 ns. Since the QL uses a clock frequency of 7.5 MHz rather than the normal 8 MHz, such a RAM can run without wait cycles. An 8 MHz CPU that regularly has to carry out a wait cycle is appreciably slower than a 7.5 MHz type!

The 68000 family is provided with a data acknowledge input. As with other processors, the CPU places addresses and data onto the bus and indicates the validity with an address strobe and data strobe respectively. It continues to do so until the memory sends a DTACK signal. The present extension generates this signal with the aid of the LS156. Normally, this acknowledgment is given almost immediately, but it may happen that the 4500 is in the middle of a refresh. In that case, the CPU has to wait, which is arranged via the ready output (pin 2).

To prevent the QL waiting forever when an address is read that has no memory, the DTACK is generated internally: this must, however, be disabled for addresses where the RAM extension is located, and for- tunately this can be done easily via DSMC. By making this logic high as quickly as possible, the internal DTACK is cancelled. If you cannot get the 2N2905 transis- tor, you may use a BS250, in which case resistor /?, can be omitted and

should be replaced by a wire link. The circuit as shown is for the 128 K version. It is also possible to omit the eight RAMs connected to RAS1 and make a 64 K extension. Input A of the LS138 must then be connected to A,6 and pin 11 Instead of pin 13 must be used as CS".

There is no 5 V supply available on the connector, but there is a 9 V line. This can be reduced to 5 V by a standard 7805. The current drawn depends on the types of RAM and will be 200. ..300 mA. It is important to decouple the supply lines properly: each RAM IC and the 4500 require a 100 n capacitor!

1 .5

n

, IC2 IC3

UFOfflTE HAGAZI^G

19

OCTCBER 1988

UPDATE MAGAZIbE

Re-print from ZX-APPEAL

by David Hashdr

i

o

CI. o

I

PL, 1

The Truiip Card is sisply the lost useful single addition you can gel for the Sinclair QL. It coiibines a disk interface. 768 kilobyte RAtl expansion, Toolkit 11 for SuperBASIC extensions, a screen ducp, static and dynanic raidisks and a dynanic printer buffer. Vhen you consider that even the lovest cost S12 Kb RAK expansion and a disk interface vill cost at least $259. and Toolkit II costs $70, the Trunp Card is a bargain at $309.35. The entire unit only sticks out about three inches fros the expansion port side of the QL, so it's conpact. I got Bine fro« Curry Conputer in 6iendale, Arizona.

The disk interface is pretty standard fare. It will allow you to store infomation on any coaibination of forty and eighty track drives, single sided or double sided, 5 1/4* or 3 1/2*. The interface is fairly intelligent in that it vill pick up on vhat foraat the disk vas created In autoaatically. For exaiple, if you have a SO track, 5 1/4' double sided drive, the interface vill autoaaiically read fros a 46 track, single sided disk. Of course, you can't Hake a single sided drive read froa a double sided disk, or put a 3 1/2' floppy in a 5 1/4' drive since the interface can't change the linitations of your disk drives. But if you have an 80 track 5 1/4" double sided drive, you'll be able to read any disk vith the exception of 3 1/2" disks. The interface is only able to support tvo floppy disk drives. That's its only shortcoiing as far as I'l concerned.

The 768 Kb RAh expansion saxes out the QL. Added to the 128 Kb that are built into the QL, you have a whopping 896 Kb of m. (Vhile the 68008 CPU can address 1 Kb of RAh, 128 Kb of neiory in the QL are reserved for device addresses and ROKs.) You'll have rooi to run any prograi that has ever been vritlen for the QL - probably several copies of the prograa. This can be very helpful on a aultitasking aachine like the QL. You'll also have plenty of rooa for raadisks too.

The raadisking capabilities of the Truap' Card are really neat. The raadisks coae in tvo varieties, static and dynaaic. The difference is that the static raadisk has to be foraatted, alaost like a sicrodrive cartridge, and the dynaaic raadisk can be created by just using the device naae. For exaaple. to create a static raadisk vith Ivo hundred, S12 byte blocks of space, just enter:

FORttAT RAni.200

A 160 Kb section of aeaory vill be set aside for use by the aachine to use just like a aicrodrive or floppy disk, but vill be located in fast RAN. To create a file in dynaaic raa. it's just as siaple as using the device's naae. To copy a file to

raadisk raa3_ just enter:

COPY dev.fi lenaae to RAff3.fi lenaae

A bit of aeaory vill be set aside in RAH as raaS.filenaae. It via grov only Urge enough to hold the flle(s) that have been send to raa3.. The difference betveen the static and the dynaaic raadisks is that the dynaaic raadisks are aore likely to fragaent the aeaory of the QL. If the aeaory becoies sufficiently fragaented. it can degrade the perforiance of the

aachine because the operating systea vill have to scrounge around to find blocks of aeaory. Up to eight raadisks can used vith the Truap Card. One other neat feature of the raadiw is that it can aake a very fast iaage of everything on a licrodrive. It vill copy' everything on the aicrodrive in just about fifteen seconds.

One of ay favorite features of the Truap Card is its printer buffer. It's a snap to use and can really save tiae. In its siaplest fora, you just use the device naae 'PRT' instead of 'SER*. «hat happens is that vhatever you are sending to the printer is sent in its entirety to a buffer in RAH. The QL then sends bytes to the printer as a background task. The advantage to this is that you can return alaost iaaediately to an editing session if you send a file to 'PRT* froa The Editor or Quill. If you send a file to 'SER' froa an editor, you aust vait until the printer has finished printing before you can continue editing. Several files can be sent to the printer buffer and they will be sent in the proper order. There is a aethod of changing the device that you want to have the 'PRT' device use. Unless you have a parallel interface that doesn't use the serial port, it's hardly likely that you'll change it.

The printer duap is pretty good. It supports about any Epson dot aatrix printer plus a fev other printers including the Brother HR4, Olivetti JPlOl, Seikosha 6P-ieOA, 6P-2501{, ind 6P-700A, and the Canon PJ1080A, You can specify vhat section of the screen to copy, and there Is a provision for using a •hotkey* to copy anyscreen froa any prograa that you light bis running. There's also docuaentation on hov to open a printer device and get a printer duap froa prograas vritten in near any conputer language - not just SuperBASIC. I've tried it fro» 'C and it does vork.

Toolkit II is a collection of SuperBASIC extensions. Soae of thea are auch aore useful than others, but on the vhole,. they are very vorthvhile. To ae, soae of Toolkit's aosl useful coaaands are 'ed', a screen based SuperBASIC editor; *vcopy'. a file copier that allovs the use of wildcards; 'vstat', a vildcard directory coaaand that also provides the file size and last update tiae of files; 'splf. another printer buffer or rather 'spooler* that vorks great vhen used vith 'prt'; and an assortaent of job control coaaands that allov the user to aonltor. change the status of, and reaove jobs that are the In the QL. Toolkit II allovs the use of default directories, has clock features Including alari ciock(s). has laproved SuperBASIC error handling, peralts the user to define 'hotkeys', altkey/ single key coabinations to enter large strings or coaaonly used coniands, and has an easy vay to repeat of the last coaaand typed. Soae of the aore obscure coaaands deal vith netvorking, direct unbuffered access to the various i/o devices, and aeaory aanageaent coaaands. All In all, Its a pretty iapresslve array of extensions to SuperBASIC. Once you start using the Toolkit II coiaands. you'll never vani to use a lachine vithout thea. An additional benefit of having Toolkit II fitted on the Truap Card is that it leaves the ROH cartridge slot on the back of the QL free for other ROKs.

Vhen you consider the features that the Truip Card offers. ' feel that it is an unbeatable coablnatlon.

2.0

UPDATE MAGAZINE

OCTCBER 1988

Bob Hartung, 2416 N. Co. Line, Huntertown, IN 46748

Since the final additions have been iuade to SAFE DOS, I have had several requests to write a "do-all* disk raan- ageraent program that includes all these features, plus the file- indexing provided by DOS_DEX and AUTO-DEK. It seemed to rae to be more practical to call these file- indexing routines and the disk-verify routine frao the initial <LI3AD> menu and from the MULTIJI^^GER menu than to integrate them all into one program.

To make it possible to utilize only one set of data for both DOS.DEX and AUTOlOEX, the original DOS.DEX was re- vised to save DATA c^O arrays instead of the entire

routine with variables. This in turn required finding a way to preserve current variables whenever a new file directory was installed by the machine code routine. I utilized the UD6 file for this, eg: POKE USR 'D and PEEK USR 'd* which saves several bytes compared to using the usual PEEK/POKE syntax. The ujiderlined 'O* must be en- tered in GRAPHIC mode but not the lower-case "d*.

Some have wondered why the fast FOR/NEXT loop was not used in these routines. Actually, because of the various key-stroke tests and item-numbering very little gain in display speed is obtained by this, but for anyone who is interested, the eighth REH byte may be changed to a 14 to allow for a LET m=SGf^ PI definition before the DIM ci mi M78',m '20"). An easy way to do this with the original D0S_DEX listing is to insert a line 6 STOP. Key RUN, then POKE (a47),14. Remove line 6, make the m definition between CLEAR and DIM ciO and revise all the m loops.

Note that this fast FOR/NEXT definition is NOT provided in the revised DOS_DEX listing given below. To move the REM statement to line 0 if you are starting with the original listing, POKE 26711,0. (Refer to April UPDATE for poking the machine code to a REM line from scratch.) As given, the listing provides for a two-drive system, 0 and 1, at lines 1 and 522, which may be changed if you prefer to designate other drives. Omit these drive designations if you have a single-drive system.

After the ERASE function appeared for SDOS v2.52, I found that the CHR$ 229 ' RESTORE ' test I had used in the original AUTO-DEX, MERLDISK, and fttRKJIOVE listings would not work after an ERASE had been used on a disk. Upon checking with John Qliger, I learned that a CHR$ 128 in the first byte of the first unused file di- rectory is what must be looked for. So, in all the ori- ginal listings, wherever ' RESTORE ' appears the respec- tive lines should be changed to IF CODE c*<n)) WL '127" ... or IF CODE c$(k)> VAL •127'... or IF CODE cf<M)> VAL •127* or IF CODE ciim)> VAL •127*....

UPDATE MAGAZINE

The MULTIJiANAGER listing does not utilize the fast FOR/ NEXT loop either, so when entering the listing be sure that the eighth byte of the line I REM is an S and not a 14 as described previously if you are starting with a copy of the DOS_DD': machine code in line 1 REH. The program prompts should be self-explanatory— I HOPE! Note the warning given in the SDOS User Manual <p. 37a in the final edition) that the NOME / conwand to transfer an entire disk must be used only with identical drives, otherwise the MARK_MWE method is the only safe way to do it. The MULTIJW*^6ER menu assumes that DOS-DEX resides in file zero and that AUTO_DEX and MERLDISK are on the same disk, preferably with AUTO-DEX in file 1.

These routines are available on an UPDATE issue disk.

TUO-DRIVE DOSLDEX WITH DATA-SAME

8 REM STEP ?»K\?? FOR ! &? CLOSE #

1 POKE USR "D"»SfiN PI J LET /(HiOT PI

2 £Lm I DIM c$(m ■178',VAL *2»')'. LET t=UAL MS"? LET s;=S6N Pi! LET w=5*s! LET o=NOT Pis LET #:PEEK USR '

d"

5 LET a=yAL "PEEK 236354PEEK 23636»25645" s LET c=INT (a/m '256'). POKE WL '23549* ,m M95": POKE m "235 5B*,a-(cm •256")! POKE m ■2355r,C! LH f i=USR m. "23549"! LET pow=W! LET co1=WL '9't LET nit=cf(WL '178" , TO m. 'U')

28 LET a«=""! DIM Hm. '6",w)! LET ff(tf)=" DATA n*! LET f$<IMT PI)=" DATA LET f$<w+w)=*CODE *! LET f$(^^ L •5")=-ABS LET f$(WL '6-)=m "

388 as : PRINT AT o,o|* Diskjf|d-s;"! "inljlfoj'DOSDEX d8/dl:""Key! NEXT CAT SWE LOAD (Dl'jd

488 LET f=S! LET c=INT (fi/VAL "18"): LET dif=INT ((fi/ MAL •18"-c)«MAL 'IB'^m. '.4")! LET loop=m '17"! ON ER R 60 TO m "788"

418 LET q*="|>'! LET it=5i IF loop>=fi THEN LET loop=fi! 60 TO WL "425"

415 FOR i=5 TO C! FOR hfo TO loop! PRIKT AT row+m,t;a$j AT row4n,t-LEN STR$ itjit;" ';c$(it, TO t)j* ■;f$(CODE c $(it,WAL '11")^)! LH it=it*s: NEXT m! 80 SUB m. "588" ! NEXT i! FOR i=s4s TO m "19': PRINT AT i,t|a$! NE)(T i ! IF NOT dif THEN 60 TO ^JAL "418"

425 IF f THEN FOR ra=o TO dif-s! PRINT AT rowtf8,t ja$}AT row4n,t-LEN STR$ itjit;" "jcfdt, TO t);' ••,«(CODE c$<i t,m "ID+s): LET it=it*5! NEXT n: IF loop>=f i im LE T f=o

427 IF NOT f THB^ LET it=fi+s 438 60 SUB m "588'! 60 TO m "418" 588 FOR L=o TO n-S! PRINT AT row+L,col-w;" INVERSE 5f">'! IF qfO" THEN FOR a=5 TO PItPIi NEXT a! LET ql="

518 Ln a«=INKEY$! IF a^" THEN LH q<='p"! 60 TO m •518"

528 IF CODE a<=MAL MS" THEN 60 TO m. '688"

.1

OCrCBER 1988

OCTCBER 1988

UPDATE MAGAZINE

522 IF a*='C' THEN LET /d=S! OPEN lw,-P*: CAT ! CLOSE I W! LET /{t=o: 60 TO w

524 IF a^^'L" OR a*="r im LOAD /STR* d DATA c$(): LE T nP^cimi M78*, TO ^AL 'U')i LET *=CODE c^(VAL 'l??' ): LET fi=CODE c$<VAL '\?7%t4)i GO TO m "388"

526 IF a^'S" THEN LET d=d+5! POKE USR 'O^.d: LET c%m L M?7-,5)=CHR* d! LET cf(m "177',w)=CHR$ i'li SAME //S TR$ (d-s) DATA ciOs 60 TO w

528 IF a«='N' THEN INPUT " INPUT NEXT i';d: POKE USR "D ■,d! 60 TO w

538 PRINT AT row4L,col-tt;" *: NEXT li LET a$=" •s RETURN

688 ON ERR RESET i CLS : LET pos^it-tiiL: LET d$=c$<pos, TO t)! LET a=CODE c$(po5,t45): IF NOT a THEN LOAD /dl 618 IF a=5 THm LOAD /d$ DATA nO 628 IF a=w THEN LOAD /dl DATA niO 638 IF a=INT PI THEN LOAD /mm 648 IF a=w4w THEN LOAD /d$ABS 658 IF a=^L '5" THB< LOAD /d$^L 788 ON ERR RESEf i PRINT flNGT PI; FLASH SGN PI|' FILE N or FOUND PAUSE ^ "188": 60 TO SGN PI

MULTIJWmOER

1 REM STEP ?»K\?? FOR ! &? CLOSE ii

2 ON ERR RESET 5 CLEAR s DIM c*(WL •I78-,yAL ■28') : LET s=SGN PI J DIM ni$(m '177', s): LET i=m. M": LCT t= m MB': LET cfNOT Pis LH a^"j INK m PAPER oj

BORDER o: CLS

5 PRINT TAB tjmTHW*WER'"TAB f |M - Mark/move i i1es';TAB f;"2 - Move ALL f i]es';TAB ^;"3 - Re-nane file s'lTAB f|M - Re-nane dislC;TAB - ERASE file5"}TAB i\'6 - MERLDISK'jTAB i\'7 - DOSlDEX'jTAB f j'8 - AUTOE X'lTAB i\'9 ' SWE MULTIJ16R";TAB - LPRINT CAT 'i P AUSE o: LET opt=CODE INKEY$-48! IF opt)9 THB< 60 TO 5

18 IF opt=6 THEN LOAD /'VERLDISK"

15 IF opt=7 im LOAD

28 IF opt=8 THEN LOAD /'AUTCDEX"

25 IF opt=9 THEN CLB^R ! SWE /"MULTIJ1BR' LINE 2; 60 TO 2

38 IF opi»o THS« INPUT "Printer ON, then key ENTER "ja $! LET /p=oj Om I2,"P"! CAT : CLOSE #2j LET /p=t! 60 T 0 2

35 DIM mm '6\sH)i LET m%H)=' DATA n"j LET f$< INT PI)=" DATA %'i LET «(m M")='CODE ": LET Hm. " 5")='ABS LH iimi •6')=m "

48 INPUT "No. oi SOURCE A^ive (8-3): "isource'-No. of DESTIh*^TION drive (8-3): ^dest: IF 50urce=dest OR sourc e)3 OR dest)3 THB4 GO TO 48

45 LET 5$="P1ace source disk in DRIVE "iSTR* source*' & target disk in DRIVE ■♦STR$ dests LET k$="KEY BITER T

0

58 PRINT llo;s$|" Key any CHRI TO CAT source d

isk or key BfTER TO NOT CAT ■■: LET /(*=50urce: PAUSE o: I F CODE INKEY$<>m '13' THEN OPEN 12, 'P': CAT : CLOSE 82

68 IF opt=l OR opt=2 THB^ INPUT ": PRINT AT o.tj'FILE -M(WE%«8i' FORTWT target disk (drive I'jdestj') y/n?"

1 PAUSE o: IF INKEY$="y" THBI INPUT " INPUT FORTttT t t itie to arrow" ;a*: LET /d=dest! FORTttT /iii LET /c^sourc

e: OPEN I2,"P": D^T : CLOSE i}2: PAUSE 388

65 IF opt=2 THEN INPUT 'Key ENTER for DEFAULT t (track s) OR enter no. of tracks to move: "it^: IF t$(>"" THEN LET /t=^L \ii MOVE /: LET /t=83i 60 TO 2: RBI Make t re-set def inition=default

78 IF opt=2 THe< INPUT (5$'k$)j" MOVE ALL FILES LET /(J=50urce: MOVE /: GO TO 2

75 IF opt=5 THEN CLS : PRINT AT 19,o|*Mark ONLY last f ile to ERASE andrepeat for any others Key 7 to

proceed": PAUSE o: IF INKEY$<)"7" THB4 60 TO 2

88 CLS 5 IF opt=5 THBi PRINT AT 28,s|"Key M to auto-fia rk ALL files": PAUSE o! LH a^INKETt: IF a$="M" im FO R HFS TO 177: IF CODE c$(ffl))m "127" THBI 60 TO 98

85 IF opt=5 ^D a1="M" THBi LET n$<ffl)=" "j NEXT ni 60 TO 98

98 as : PRINT Ho; "Key: SPACE to nark CKR$ to review8 t 0 revise "m*(" MOVE " opt=l)4("RE-WME" m opt=3) *(• ERASE opi^S)

188 PRINT AT 28,s,,: LET a$=""j DRAU INK sjVAL "255",0! DRAW INK 5;o,m "175": ORAU INK sjVAL "-255", o.- dm I NK s;o,m "-175"

288 LET a=UAL "PEEK 236354PEEK 23636»25645" : LH c=INT (a>^L "256"). POKE UAL "23549" ,m "195" s POKE m "235 58",a-(c«ML "256")j POKE m. "2355r,C! LET f i=USR "^L "23549"! LET row=s45: LET co!=WL "9": LET n^c$(VAL "17 8", TO VAL "16")

218 IF opt=4 THB< PRINT AT t,f j-RE-f^VIE DISK in drive 8 •;source: INPUT "OLD disk name: •|(ni)"NEW disk nane: " \bii LET /d^source: RESTORE /b$: 60 TO 2

388 IF nam ni)=' " THB^ LET n$=n$( TO LEN ni-s): 60 TO m. "388"

328 PRINT AT o,VAL •16"-(LB< ni/m. "2"); OVER s; INK V AL "5-}n$jAT o,m "8"} OVER sj" "j PAPER

0

485 LET L=0! LET f=S! LET c=INT (fi/VAL "IB"): LET dif= INT «fiym ■18"-c)m •18"4WL ".4")! LET loop=WL "1 7"

418 LEI q*='p»: LET it=S! IF Ioop)=fi THBi LET loop=fi: 60 TO VAL "425"

415 FOR i=5 TO CJ FOR n=o TO loop: PRINT AT row4ro,t-f ;a $}AT row*ii,t-Lei STR$ itjit}n$(it);c$(it, TO t)j" '|f$(C ODE ci(it,VAL 'U'hDi LET it=it*S! HBCJ m 60 SUB m "588"! NE)a i: FOR i=s*s TO m "19": PRINT AT i,t-f ja*:

NE)a i: IF NOT dif THB^ 60 TO VAL "418"

425 IF f IHm FOR iifo TO dif-S! PRINT AT row+iB,t-f |a$jA T ro«+n,t-LB< STR» it5it|n$(it)jc$(it, TO t)j" •jf$(CODE

c$(it,VAL "11")+1)! LET it=itts! HBC\ nt IF loop>=fi TH m LET f=o

427 IF NOT f THBI LET it=fi*s

438 60 SUB MAL "588"! 60 TO VAL "418"

588 FOR L=o TO ra-S! PRINT AT raw+L,col| IWERSE sj">"! IF qiO"" IHBi FOR a=s TO PlfPI: NEXT a: LET q^""

518 LET a*=INKEYf: IF a$="" THB< LET q$="p": 60 TO VWL "518"

512 IF a^'8' im LET !i*(it-fHL)=" ": PRINT AT row4L,c ohSGN PIj" "

515 IF a<=" " THBi LET ni(it-fi4L)=" ": PRINT AT row+L,c oHSGN PI|' "

528 IF al=CHR$ MAL "13" THBi 60 TO m "558"

UHDATE MAGAZINE

22

CXTCBER 1988

531 PRINT AT row+L.col-s-s;' "! NEXT L: LET a«='

mm

558 TO 688«(optsl)4798»<opi-3}«8ee«(opt»S) ($88 BORDER m ■7'! PAPER INK o! CLS J INPlfT (

54)'(K«)}'5tapt MOVE "lai! aS ! PRINT FLASH sj" MOVING! DO NOT STOP till end 681 FOR ft=5 TO m "177*

692 IF CODE dmmi '\2?' THEN 60 TO m '67V <i85 PRINT AT t,t|'Fi1es "jh

618 LET d<=rt(M, TO t)j LET a=CODE c$<M,m 'll'): IF N

OT a AND ii$<M)=' ' THEN MOVE /d$ TO dest <J15 IF a=5 m ii*<M)=' ' im MOVE m DATA TO dest 428 IF a=WL '2" m ni«(M)=* THEN MOVE /d$ DATA $ TO

dest

638 IF a=INT PI AND i$<M)=* THEN MOVE /d»COOE TO dest 648 IF *=MAL M- AND iil(M)=- ' THB< MOVE /d<ABS TO dest 658 IF a=MAL '5' mf> ii*<M)=" THEN MOVE /dWWL TO dest 668 NEXT H

678 PRINT AT o,o,,AT t,tj FLASH I5' MOVE OVER *! INPUT <W)}' NEXT MOVE 7 FOR MB^U 'laf: IF a<=" THB< P APER 0: BORDER 0: INK 7: DIN ii«(177,s): 80 TO 98

688 RliN

788 REM Re-nane files

782 LET o$='01d name: 't LCT nl='New nane: ' 785 FOR HFl TO 178

788 IF CODE c$(M)>WAL "127* im 60 TO 9999

718 LET d$«c$<M, TO t): LET i=CODE rt(M,WL Mr): IF N

OT a AND ii$(M)=" ' im INPUT (o*}d$)'(n$)jW: RESTORE /

d$TO

715 IF a«s AND ii»(M)«" ' THB< INPUT (o»jdi)'<ni)jtj$: RE STORE /d$ DATA TO b$

728 IF a=5H AND iii<M)=* THEN INPUT (o$jd*)'(n*) jl>*! RESTORE /d$ DATA $ TO b$

738 IF a=INT PI AND ii$(M)=" THEN INPUT <o$jd$)'<n$)|b %i RESTORE /d$COOE TO W

748 IF a=WL '4" fHO nr$(M)=' ' THEN INPUT (of |d»)'(n$)} b$! RESTORE /d<ABS TO b$

758 IF a=WL "5" AND fi*(M)=' ' THEN INPUT (o$jd$)'(n$)j \Ai RESTORE /mi TO \A 768 NEXT M 778 60 TO 9999 888 RBI Erase files 882 FOR m TO 178

885 IF CODE rt<M)m '127" THEN 60 TO 9999 818 LET d$=c$<M, TO t): LET a=CODE rt(M,UAL Ml')! IF N OT a AND iii(M)»' ' im EIMSE /di 815 IF a^s AND ii«(N)»- THB4 EIMSE /d$ DATA 828 IF a=s4s AND irt<M)=» ' THEN EIWSE m DATA 838 IF a=INT PI AND ii$<M)=" ' THBI EiWSE /d$CODE 848 IF a=MAL '4' AND ii*<M)=- im EMSE /dIABS 858 IF ir^l '5" AND n«(M)»- ' THBI EMSE /dm 868 NEXT M

9999 GAT : PAUSE 588: 60 TO 2

>DATE MAGAZINE

A Conglomeration of QL TIPS MUCHODAT

A crazy title for a crazy situation. This is a little tip on FORMATTING MICRO DRIVE CARTRIDGES. While formatting a bunch of carts just received in the mail there were two that just wouldn't take a format. First, did you know tJiat a title isn't necessary to format a mdv cart? format mdvl_ ENTER will do it. I never could see much value to a title that one never sees anyway. Anyway, after using a short title "dta", as: < format mdvl_dta > I had formatted 8 carts and t:here were two that were cranky. I tried about 5 formats on each to no avail. Now that exercise took about 2 hours of fooling around. Then I said, "just one more time". This time I whacked in: format mdvl_muchodat ENTER. Lo and behold, the cartridge formatted perfectly! So I tried the other cranky one, with: format mdvl__muchodat . It formatted too! Now ain't that a crazy one! There is more. After that trick, I dug up tJiree more mdv carts that I couldn't format before and had stashed away. Two of the three formatted with muchodat as a title. There is something fishy bout this! Maybe theres something about a long title which makes the thing format? Beats me! But tihere's the tip for what it's worth.

INITIALIZING TRUMP AND SPEED SCREEN IN BOOT PROGRAMS

Right now I'm gonna discuss HOW TO EASILY MAKE YOUR MICRO mVJE OR DISK DRIVE BOCT PROGRAMS INITIALIZE THE IRUMP CARD. If you dont have Trump, this won't be a dunnin you no good unless you just want to read about it.

The Trump Card has a lot of additional Super Basic Tools to work for us. One is a routine to copy a WHOLE mdv cart, all programs instead of just one at a time. This can save about 30 minutes of copying single files. First though, lets ramble a bit.

When we first turn on the computer it can see all of that additional RAM in the Trump card, but it dont know nothing about the new Super Basic commands that the Trump has tucked away in its own ROM chips. Hie whole bunch of Trump Card tools must be initialized once. Then after doing that, from then on all of the extra basic functions are available for use.

These Trump utilities must be initialized by a direct command of: IK2_EXT ENTER. Now if you allow the auto boot in of a program

UPDATE MAGAZINE

23

OGTOBER 1988

OCTOBER 1988

UPDATE MAGAZINE

from either Micro Drive or Disk Drive, you may not be given the opportunity to enter the 1K2JXT command. Some programs just wont let you break in to do that.

So, the thing to do is to modify the boot program so that the first program line contains the command: TK2_E)Gr.

Now if you also have SPEED SCREEN, you should also add its initialization command. That would be: < WZJEXT: _SPEED 2 >. Then the BOOT program that has these commands in the first line of programming should be re-saved. After this, every time you load that particular mdv cart (or disk) , the Trump utilities will be initialized and the Speed Screen will be turned on.

Now you can go ahead and TRY to do that but RE-SAVING the boot program will give you a report at the bottom "already exists". So lets be a showin how to dun it- next in 1,2,3, order:

1. RESET the QL "without a mdv cart" installed, then hit Fl.

2. Install a write enable tab on the QLVIP cartridge, and install it in mdvl.

3. Type; load mdvl_boot ENTER. The boot program will load but wont auto run.

4. Type; list ENTER.

5. Type; edit 1 ENTER. Now line 1 of the listing will appear at screen bottom. It will read; < 1 CLEAR >

6. lype onto the line to make it read; < 1 CLEAR :'IK2_EXT: _SPEED 2 > Then touch ENTER, and the line should appear, as above, in the listing.

7. Type: tk2_ext ENTER. This initializes the Trump Card so that the next step will work.

8. Type: save mdvl_boot ENTER. Ihls will execute one of the TRUMP routines to give a "SAVE OVER" an existing program In micro drive.

9. A prompt will appear. "CK to Overwrite? y/n?" Touch "y"

10. Now your new boot program replaces the boot program in the mdv cart, and the next time you use this cartridge the TRUMP and SPEED SCREEN are automatically initialized.

You can do the same procedure for each of your mdv cartridges. I advise that you make back up copies of all original mdv carts and do this modification on the Back Up copies.

Later, In another Issue, we will explore making a "Library BOOT Menu" utility to do the above Trump and Speed Screen initialization and then give a menu of MDVs or DISKs in your program library to select from.

COPY A CQMPLEIE MICRO DRIVE CARTRIDGE With TRUMP

QL Basic does not provide simple commands to COPY a complete mdv cartridge, only single files or programs. Later in this issue Bill Cable will present a utility to copy whole mdv cartridges WIIHOirr Trump card or Sandy board utilities. This procedure is for using the Trump or Sandy Super Tools which are dormant when you first turn on the QL.

First, reset the QL, and leave MDV 1 vacant. When Fl is pressed, you'll get the flashing cursor, which means that you can type in program lines, or do Direct commands. Now we will do the steps with a few direct commands to enter into the QL.

Flr^t though, INSTALL a formatted mdv cart In mdvl (with write enable tab instal led) . For safety sake, remove the write enable tab of the new qlwp boot cart that we just made (above), and we will copy it. Install it in mdv2.

Type In the following direct commands, one after another, using ENTER after each:

tk2_ext ENTER

wcopy mdv2_ TO mdvl_ ENTER

What happens next is a prompt with several choices. The prompt will read exactly as f ol lows :

MDV2_CL0NE TO MDV1_CL0NE Y/N/A/Q

Touch "A" for ALL, and the system takes

over and copies all files and programs from

mdvl to iidv2.

Back to Business with the C2L

CK, if everything has worked out, you now have two copies of your new QLWP program which has the modified boot program that comes up and initializes TRUMP Super Tool Kit, and SPEED ^3?EEN. These two cartridges are in the mlcrodrlves and youre QL is in the BASIC mode.

Now lets get the QUILL Word Processor up and running. Type: Irun mdvl_boot ENTER. Note that a while back we loaded the boot program to modify it by a command: < load mdvl_boot >, which just loaded in the boot program without letting It auto run. < Irun mdvl_boot > makes it load in and run. This time when the qlwp boot program loads in the TRUMP and SPEED SCREEW will be initialized. BUT, I am told that the QLWP program does not use TRUMP utilities. Never the less, you can use these procedures to modify boot programs that do use the TRUMP Super TcjoIs.

UPDATE Mi^SAZIbE

2.4

OCTOBER 1988

OCTOBER 1988

UPDATE MAGAZINE

655 N. W. Territorial Rd , Canby, OR 97013 July, 11 1988

TS-2068 UP-DATE 1317 Stratford Ave.

Panama City, FL 32404 Vv\.--*- s/->.— ^.^^^^-^^.^y-^ ^

Dear Bill:

Here are two articles for UP-DATE magazine. The one on using LPRINT CHR$ was based on an inquiry to John Oliger. I was having difficulty in conveniently using OUT 127 with lots of DATA in printer graphics. He suggested trying these two pokes which he hadn't used (he thought they should work). Well, they did the trick and now I can copy programs direct from source as far as LPRINT CHR$ is concerned. He suggested sending you the idea if it did work.

The second article is from a suggestion in an EPSON printer manual for duplicating DATA in printer graphics. Because the loop for repeating numbers is tied to the numbers produced by READ, the same loop can be used for several sets of repeating numbers. As an example, the DATA in line 90 can be extended from the 60 to 120 dots by duplicating what is there. Line 20 would be changed from "60" to "120". This should produce a line twice as long by duplicating the original, and just by making these 2 line changes.

Readers who have programmed in BASIC with the OLIGER printer driver use the LET/P=0 command to send data to their large printer. This command works fine for LPRINTing text and messages but not so good for printer codes. When a programmer wishes to use printer codes the accepted method is to go direct through port 127 by use of the OUT command. For reference see the OLIGER print driver manual and parts of Bill Jones's Smart Text program plus UP-DATE (Printer Programming, 1988)

There is a way that follows conventional programming methods such as LPRINT CHR$ n where "n" is a character code number, or using a series of CHR$s to make up a printer code such as'LPRINT CHR$ 27; CHR$ 52 (EPSON Italics ON). See your printer manual for codes used by your printer. Probably examples are also displayed in your manual.

According to John Oliger the procedure for using LPRINT

LPRINT CHR$ WITH OLIGER PRINTER DRIVER

UPDATE MAGAZINE

25

OCTCBER 1988

CXTCBER 1988

UPDATE MAGAZINE

CHR$ n is as follows: start with LET/P=0 and then make these 2 pokes, 23300,60 and 23001,3 in the immediate mode. Then program accordingly, possibly try examples from your printer manual. When RUN the programs should perform properly. This change will not permit LLIST to be used so just use LET/P=0 and make a LLIST. Make the pokes again to set up the program to RUN. What happens is that these two pokes turn off the BASIC TOKEN crunching .

If the reader's printer provides a HEX dump capability then a simple test of a printer driver is easily made. With LET/P=0, enter this one line program:

10 FOR N^O TO 255: LPRINT CHR$ N;:NEXT N

Set up the printer for HEX dump (see manual) and RUN. My printer puts 20 HEX numbers to a line, from 00 to FF, many incorrect. If the last line does not print just press the ON LINE button to empty the printer buffer. Now run the same test after the 2 pokes have been made. Now I get a perfect 00 to FF print-out.' This shows that the printer driver will correctly send all code numbers to the printer.

GRAPHICS PRINTER TRICK

Readers who have tried any extensive printer graphics programming (not a screen dump) probably got discouraged with the amount of data required to key in. Consider that a printed figure covering l"xl'» requires 60 head pin definitions per line and 9 lines are required, making 540 definitions. Remember that a space also must be defined.

Often there are repetative groups of code numbers of the same values. The following procedure will print those duplicate codes— in the DATA statement use negative numbers that denote the number of repeats and the next number is the code to be repeated. Then program the READ command to send negative numbers to a loop that prints the required number of duplicate codes, then returns to the next DATA number.

An example will illustrate this. Let's make a 1 pin line with up-turned ends 8 pins high, total length of 60 dots.

10 LPRINT

20 LET A$*CHR$ 27+»K"+CHR$ 60+CHR$ 0 30 LPRINT A$; 40 FOR X=l TO 60

50 READ N: IF N<0 THEN GO TO 100 60 LPRINT CHR$ N; 70 NEXT X

90 DATA 255,-58,1,255 100 READ R: FOR J=l TO -N 110 LPRINT CHR$ R; : NEXT J 120 LET X=X-N-1: GO TO 70

The reader must adapt this to the printer driver program being used and the printer code for standard density 60 dots per inch or similar. For Oliger systems do not use A$ as OUT 127, n must be used for LPRINT CHR$ n (delete line 30).

2.6

UPDiiTE M«3flZI^E OCTCBER 1988

CXTOBER 1988

UPDATE MAGAZINE

OTlie O Boston OCoriputer O Society

One Center Plaza Boston, MA 02108

^ ^

* BOSTOlSr OOMPXJT3SR SOO I ETY * t Heweletter of the BaSTUG (Sinclair/Tlnez User Group> «

* Vol 7 No 5 *

The Slnclair/Tinez leweletter is

the official publication of the Slnclalr/Tlmex User Group of the Boston Computer Society (BoSTUG).

Annual membership for New England residents Is S35.00 (otherwise S28.00> per year. Subscription to BCS/Update and one other news- letter Is Included without cost.

The newsletter has an exchange policy with Slnclalr/Tlmex User groups willing to reciprocate. Please forward exchange Issues to the editor pro tem. Peter Hale, P.O. Box 8763, Boston, MA 02114.

Unless copy written by the author, articles are in the public dom- ain. Attribution is requested.

BoSTUG is a sub gi'oup of the Boston Computer Society. BoSTUG produces this nice 18 page newsletter, which is heavily in support of the Sinclair QL and moderately in support of the TS-2068. "BCS/UPDATE' is a large Magazine published by BCS for its members and is not to be confused with UPDATE Magazine, our name deriving from "UPDATE COMPUTER SYSTEMS" , computer consultants.

Two articles from the BoSTUG Newsletter are re-printed to sample the quality and depth of coverage in this nice newsletter, ed.

2.7

UPDATE MASAZI^E

OCrCBER 1988

REPRINT FROM: BoSTUG Sinclair/Timex ABOUT TOOLKIT U

Are there any QL owners who if they don't have TK2, have not been strongly advised to get It?

Anyone who has keystroked COPY mdv2 fred to mdvl^fred a zillion times to backup media finds VCOPY worth the price alone.

Certainly, the Toolkit II manual Is a forbidding document. There Is no tutorial; Just a list of keyword extensions with limited and sometimes Incomplete direc- tions on their use.

There Is not even a clue as to where to get your feet wet, so a sampling of easy and Immediately useful keywords Is offered here.

Toolkit II extensions that are easy and that you will enjoy are: ALARM, CLOCK, DLIST, BX. EXTRAS, HV, FRBH^MEH, RENAME, SPL, SPLF, STAT, TK2_EXT, VIEW, VCOPY. VDIR. VMOH, VREN, VTV, and VST AT.

All can be explored from direct mode and you can't get In (much) trouble (except for difficulty understanding the manual).

But a lot of people are missing out on three excellent features incorporated In Tcxilklt II: ED, ALTKBY and last line recall.

Last line recall <ALT><BNTER> Is usually useful In direct mode In SuperBASIC. It recalls all char- acters since the last EUTER. Done several times In sequence, It recalls several lines at a time. Once recalled, lines can be edit- ed or reexecuted. It also works from Psion programs, as a quick and dirty copy, up to Psion's 22 character buffer limit.

ALTKBY is worth exploring. It is buried in the back of the manual in Section 21 and little is said about it. Essentially it permits writing macros. The syntax Is ALTKBY 'x*, where x is any one of the QL's character set. In the example, x is lower case.

BaSTUG Slnclalr/Tlmex lewsletter

UPDATE MAGAZINE

Newsletter

Everything after 'x*. and within the quotes happens when the com- bination <ALT><x> is pressed. if <ENTER:> Is desired for executing, the ALTKBY definition can end with ,** (comma and two single quotes), which is <.ENT£R>.

How to use ALTKEY is not concep- tually easy. One use Is ALTKE^Y •1', CHRS(240)&'lflpl_setup',". This line Is incorporated in my Quill -boot. The same disk also has the file 'setup^doc' on It.

Setup_doc is my style sheet for correspondence. It has my return address, the date and salutation position and no footer. I don't reorganize Quill's default page each time I write a letter; 1 press <ALT><1>.

Programmers assign ALTKBYs to oft used keywords (without an BNTER) to emulate single-stroke keywords papular in earlier Sinclair's. A boot with a batch of user defined ALTKBYs and a final line NBV Is run at the start of programming. HBV clears SuperBASIC memory (but not the ALTKBY definitions.)

Finally, there is ED that Invokes a full screen SuperBASIC editor. The cursor keys move the cursor over the full screen. They can be combined with ALT and SHIFT for special effects. It is easier to edit existing programs with Over- writing (SHIFT F4, as in Quill).

SuperBASIC programs often have a number of duplicate or near dup- licate lines. Editing a line number replicates the line at a new position and retains the old line. If slight modification is required, overwriting speeds any needed changes.

For fun, slip in ED as a line anywhere in a SuperBASIC program. Run it. Predictably, when the program reaches ED, it halts and goes into full screen edit mode. Mow press <ESC>. Vhat happens?

-Peter Hale

September/October 1988

OCTOBER 1988

REPRINT FROM: BoSTUG Sine lair/Timex Newsletter

QUILL FILfiSAVES

Mare than ance, my QL has mangled a long QullI document through poor disk or ralcrodrlve l/Q. Either I removed the cartridge before closing a file, or the QL tried to write part of the file to a non-existent track on the disk or the QL crashed. The result Is the sane - any attempt to reload the file Into Quill results In a Fiia i/Q Inccnplete error, dlsasterous If you forgot to periodically backup your work.

One such encounter farced me to take a deeper look at how Quill files are stared. I could do this with "BGEP', which reads a single byte from a file. Most disk systems and toolkits have this command.

I used BGET to print out the numeric value of every character In my partially-corrupted Quill file to learn Its structure and so recover at least part of It.

The most striking discovery was that Quill files use the Null character ICURSCO)] In place of Carriage Returns. I also noticed that a good portion of the QulXl file Is formatting Information, stored towards the end of the file. It Is mostly strange con- trol characters. All the text was present, but some formatting Information wais cut off during the Incomplete SAVE.

1 tried renaming the file with a _LIS extension and Importing that, but Quill didn't like the NUL's and stopped Importing the file at the first occurance of a NUL.

So I had to figure out a way to extract the 'text' portion of my document and re-wrlte It as straight ASCII. BPUT came to the rescue and the result Is the listing below. In a nutshell, the program reads a byte from the damaged file In channel ir5. If It Is a null, It's changed to a carriage return lCHR»(13)3j If a

control character (less than SPACE £CHR*<32^J but not CR>. It Is changed to a space. Otherwise, It Is a regular ASCII character and left as Is.

The now ASCII character is writ- ten to the new file in channeled. The character Is also printed to the screen so you can watch as It goes through the file. Then the loop repeats for the next character until there are no more characters to read. Vhat is left Is a plain text file which can be Imported Into Quill. I was able to recover a 15 page document this way, though It took about ten minutes to do so.

Hopefully you will never need to use this utility, but If you do, here It Is.

- Jim Rodlln

10 EEMark "Fllesaver" 20 REMark Corrupted Quill file 30 REHark recovery utility 40 REHark by Jim Rodlln

90 REMark Requires Toolkit 60 REMark commands BGET & BPUT dO REMark In the public domain 90 REMark Attribution requested

100 FLP^EXT: REMark or TK2_EXT enable extended command set

110 CLS

120 0PEN#5, "mdv2_MYFlLE_doc"

: REMark file to save 130 0PEH_NEV#6, "mdvl_BBS_lls"

: REMark output ASCII file 140 REPeat loop

150 BGET#5, a%: REMark get byte

and put In a% 160 IF a% «0 THEN LET a'/i =13

REMafk convert null to CR 165 REMark replace all control

chars with SPACE 170 IF a% <32 AND a% 013 THEN

LET a% =32 180 REMark print character to

screen for visual feedback 190 IF a% »13 THEN PRINT

: REMark Carriage Return 200 IF a% 013 THEN PRINT

CHRS(a'/&>: 210 BPUT#6, a%: REMark write

ASCII byte to _LIS file 220 END REPeat loop

BaSTUG Slnclalr/Tlmex Newsletter

UPDATE MAGAZINE

September/Octaber IQaa

OCrCBER 1988

OCTOBER 1988

UPDATE MAGAZI^E

By: Bill Jones

Here we gol Iteing a beginner myself with the QL, I am a bit intimidated by the thought of writing an instructional series. I hope that those of you who are better qualified will Koreckt my mistooks, and broaden upon the subjects covered. Then the subscribers will benefit from your inputs. So dont think that I will be offended by feed back that tells me when I'm wrong and gives more detail to the coverage. We want a interchange of prograiraning information. IF there are 8000 QL users/ THEN 4000 KNOW SOMETHING that I dont. THEN IF half contribute, it is . sure that at least 4000 will gain more knowledge. Thats what its all about.

This will be a continuing feature article. It will grow in complexity as the scribe's proficiency grows. Right now, the scribe has about 30-40 hours experience operating the QL, so it isn't likely that you'll find anything that is "above your head" in these first few episodes. In fact I am strevin and strovin to make the QLWP program zap this stuff in onto the paper. WHICH makes a good starting point. Lets get started now covering

HOW TO DO IT WITH QLWP

IF you have dug around as I have between the four sections in the back of the QL manual, you know that these books were not written in a 1, 2,3, sequence that lets you get right to it. I believe that, for this discussion, we should start with the printer itself. If you have a SERIAL printer, just connect the cable directly to the SER 1 or SER 2 port at the back of the QL. Lets use the SER 1 port. But if you have a PARALLEL printer you will need one of the Parallel interfaces connected between the printer and the QL SER 1 port. I was most successful by setting the printer to its start up initialization set up, ie, no margins set, no LINE FEED, no auto PAGE end, and ELITE 96 character lines, and 66 lines per page.. These are "dip switch" settings on the printer itself. Later we can come back to the printer switch setting if we need to. Generally, most users do not know enough about their printer, and there is a need to study the printer manual to know how to set it up for the best printing.

Now that we "think" that the printer is set up right, lets turn it off. Turn ON the QL and keep Micro drive #1 VACANT until the Fl Key has given you the blinking cursor. Then INSERT a blank MDV cart in either of the slots and FORMAT it. Now that may be a problem for the first time user. Most of the MDV carts in use are the ones that have had the "write enable" tab removed. If you are accustomed to using disk drives, the MDV cart is "write protected" by REMOVING the tab that covers the little triangular notch in the right hand edge of the cart "as you are looking down on the label". In order to FORMAT the MDV you need to cut a thin piece of tape to stick over the notch. I find that the best tape to use is a piece of Disk Write Protect tab, cut across with scissors to be just slightly thinner than the width of the shoulder of the MDV cartridge. This way, the tab is not rubbed off when it is inserted in the micro drive. Once the "write enable tab" is installed, the mdv cart will FORMAT, with the command: FORMAT mdvl__buwp Bu indicates that it will be a Back Up cartridge for QLWP. Format the mdv cart TWICE, using the same procedure. From what I'm told the mdv cart will be more reliable if it is formatted twice.

Next, we want to make a back up copy of the Word Processor cartridge. Do that by installing the original cart in mdvl and the one just formatted in mdv2. Type dir mdvl__ and touch ENTER. The directory of the master cart in mdvl will appear on screen. Then, using the directory as a guide, copy each file listed in the director/, using: COPY mdvl_name TO MDV2__ After all files have been copied stash away your master Word Processor cartridge for safe keeping.

Now we are ready to go to work. Now install your back up cart you just made into the MDVl slot. Next we will setup the software for your printer.

UPDATE MAGAZINE

30

OdCBER 1988

OCTOBER 1988

UPDATE MAGAZINE

Taking a little break from the details, the first page did print, so I'm becoiraning an expert fast! Well, not quite, as I really didn't want that page number and I dont know how to kill it. Anyway, for the most part it does prove that I've been the route that I'm about to tell you about, which is

HOW TO CONFIGURE FOR PRINTER

Now what we're gonna do is to CHANGE part of the QLWP software to make the word processor print with the type of printer that you use. Dont worry about making a mistake, as nothing you do will hurt the software, and besides, you are working with a back up copy. Your equipment status should be: NO micro drive cart installed A RESET QL, Fl touched to give the blinking cursor PRINTER OFF, When you have that status, then: INSTALL the QLWP back up cart in drive 1. Type; Irun ndvl_installj3as ENTER. Wait until the first menu comes on screen, and THEN: follow the prompts to select the PRINTER TYPE. Usually this is all that is required. But I had to be differenti I use a DAISY printer that has the Diablo corapa table command set. So, after quiting this install_bas program, the printer would kick up 6 lines before starting to print, print 3/4 of a page and then print the page number. Now tell me WHO wants that kind of a page of print? SO, back to <lrun mdvl_install_bas> again- and again- and again. Next day, I called ole Bill Cable and got straightened out. Now this mought help you too: "READ THE DURN QUILL SECTION"- all of iti The durn install_bas program was set up right after all. The problem was in my not understanding how to trapsy about in the WP menus to DESIGN the page. So, what I'm telling you is that the procedure of setting up for your printer should work out OK. When finished, what you have done is to bring up YOUR printer's command set as the one which will boot in when you use QLWP and select PRINT at the word processor menu. After you select your printer type, the mdv runs and re-records your printer set up so that it boots in for printing. Later, you can go back and Irun the install program again to set up for a different printer. Now that we have that done, lets create a document with the word processor program

WORKING WITH QLWP

Insert you back up copy of QLWP in mdvl, and RESET, When the QL has reset, Fl starts the program loading and you have time to pour a cupa while waiting. Now there isn't any point in draging this out, as the WP works very well with its menus ^ guide you. The important part is to use F3 to get the COMMAND menu and set up the page with D-Design and M-Margins. Likely you wont need to use H-Header, as this is a repeating header for every page. To do a single header, I find it best^Atype the header and back up with the arrow key to its start, then pad in spaces to center the header. Then run the cursor to the end of the header and use ENTER to shift to the next line. When ready to print, F3 again gets the COMMAND MENU, where P-PRINT will start the printing sequence. Nbw we will move on to another way to use the QLWP program for doing controlled LISTings of programs.

USE QLWP for LLISTings

Some folks never need a paper listing of software. But others need to do that quite often. One can get a LLIST in the direct mode (cursor flashing) by: <OPEN M/Serlc:BAUD 9600:LIST>. This makes LIST go to the printer. BUT- The listing splatters across the whole page, 96 characters wide if thats what the printer is set at. Most printers wont let you confine print with printer settings to less than 64 characters per line. I particularily need to LLIST at controllable line width for printing listings in UPDATE. So, back to the phone for answers. Ole Mark, at Sharps Inc. does more than just sell QL stuff. He's a programmer too, and -he told me how to do it with the QLWP software. Here it tis

Load the QLWP program with Fl. Then use F3 to get the Command menu. Punch 0-Other, then I-Import. Next, the prompt appears to key in a MDV file to load. Input <mdvljiame> and the next prompt asks for "by line?". Touch ENTER at this point and the program lines load into the Word Processor as a ASCII file.

UPDATE MAGAZINE

31

OCrCBER 1988

OCrCBER 1988

UPDATE MAGAZINE

After a short while the entire program listing will load into the Word Processor and the program lines will appear almost like you would see them in the Basic made. But the listing is TEXT/ and can be formatted as text. Hit F3 for the Oonroand wenu, then D-Design, then M-Margins/ and set the margins for whatever line length you want to print the program listing. Then F3 again to P-PRINT. Thats all there is to it! AND alia tine I was digging through the manual trying to find a RAM address to POKE to get shorter lines in a LLIST. This is a better way after all..

By the time the next issue rolls in maybe I will have learned a bit more to present in this QL BEGINNER COURSE. If you have things that you are bothered about with the QL, but are ashamed to ask, this is the forum for discussing them. I'll even let you remain anonymous. See you next issue 1

A QL PRINTING PRIMER

Here is a little tutorial for setting up the QL to print to paper "without a word processor". It does not do much but print un- formatted lines to the left margins as set at the printer. But, it will demonstrate how to make a printer print with simple programming. You can key the lines in and operate it with either RUN or GO 'ID 5. Line 10 gets the INPUT typing routine at line 200. Then when finished, ENTER executes the RETurn at line 220. Then line 20-28 presents a menu of options. When <1> PRINT is elected, the typing data is printed, and the program repeats to get the next typing burst.

The tutorial about "output to the printer" begins at line 50, which executes when <1> PRINT is elected. <0PEN #4,serlc> OPENS the CHANNEL to the printer "through Serial Port 1". Then the "baud rate" is set to 9600. Line 60 then uses <PRINT #4,a$> to print the data. <print "#4"> directs the print to the "channel that was opened". Look at the lines 70 and 80 which executes the other two print options, for "line space" and "LIST to Paper".

When <5> QUIT is elected, line 300 executes, and is important to note. When a CHANNEL has been OPENED, Channel #4 in this case, the channel should be CLOSED when finished. There are many CHANNELS to route the computer's tasks though. Each channel should be OPEN only for the task to be accomplished, and if the channel is not CLOSED afterward then the next task to be accomplished could be sent to the wrong OPEN channel.

The Print Tutor Listing

5 CLS 10 GO SUB 200

20 PRINT "Options :"\\"<1> Print the data"\

22 PRINT "<2> Line Space "\

24 PRINT "<3> INPUT New Data"\

26 PRINT "<4> LLIST"\

28 PRINT "<5> QUIT"\

30 INPUT a:CLS

40 IF a=3 THEN GO TO 10

50 OPEN #4,serlc:BAUD 9600

60 IF a=l THEN PRINT #4,a$

70 IF a=2 THEN PRINT #4,\

80 IF a=4 THEN LIST #4

90 IF a=5 THEN GO TO 300

100 CLS: GO TO 20

200 PRINT "Type the Data"\\

210 INPUT a$

220 CLS: RETURN

300 CLOSE #4: STOP 3.2

The programming at left could be condensed a lot by chaining the different programming commands using a colon between. For example, all of the lines from line 5 through 30 could be inclosed in one longer line of programming. I used extra lines in order to make the tutorial easier to decipher.

Also, the IF THEN conditionals used are in "simplese" basic syntax which the QL reacts to nicely. You can use almost all of the simple Basic syntax of the older computers with the QL, which makes it a very easy computer to adapt to. We will ease into Basic and Super Basic as this series continues.

UPDATE MAGAZINE

OCTCBER 1988

OCTOBER 1988

SINC-LINK

UPDATE MAGAZINE

Vol. 5 No. 4

JULY - AUGUST '88

SINC-LINK IS fl PUBLICATION OF THE TORONTO TIHEX-SINCLAIR USERS CLUB AND IS ISSUED 5 TIMES A YEAR. COPIES OF THE NEUSLETTER ARE $1.59 EACH FOR N0N-HEHBER5. CLUB HEMBERS RECEIUE A FREE COPY AS PART OF THE $28.08 ANNUAL HEHBERSHIP FEE.

NEUSLETTER5 ARE EXCHANGED, FREE OF CHARGE, yiTH OTHER TIHEX- SINCLAIR USER GROUPS.

ALL MflTERIRL 15 PUBLIC DOMPIN 9SS,.^"ii. REPRINTED- PLEASE

^"^S PUBLICm-ION AND THE AUTHOR IF YOU COPY MATERIAL.

HIGHLY RECOMMENDED!

The Toronto f Cf^NP^Dfk Sinclair User Club is one a-F the mast active clubs in North America. Tno a-F UPDATE' s best writers are mainstays a-F the Toronto Group, Bab Mitchell and George Chambers^ SINC LINK, the club newsletter, is an excel lent source oF i nFarmation. The Toronto User Group has many USA members and hie I came mare.

ONTARIO QL USERS TAKE NOTE! Jain the Club and Form a special interest group htithin this . Sinclair Special interest Club! Club membership and participation is the best route to tal<e For continuing to learn more about your computer. -ed.

De^r Bill I

•TORONTO TIMEX - SINCLAIR USERS CLUB- p. 0. Bos 7274 Sfn. A Toronto, Out., M5W 1X9

1 sa sorry for the delay. The heat is getting to me and I have been lax in ay duties. Enclosed is a little discription of our group as you asked for.

Our group is called Sinclair nHnaukee Users Qroup also called" SHUQ. He Nere established in 1993 and ttork ktith all forms of the Sinclair computers and their clones. He have 2X$0's, ZX$l's, TSJSOO's, 75206$' s. Spectrum's and Spectrum emulater's, and the QL. He are in contact ktith 22 other Users Qroups around the U.S. and Canada and snap newsletters Mith them.

He meet once a month on the second Hednesday of the month, our next meeting is July 13, 19$$. The place we meet is in Elm Qrove Hisconson, a suburb of Milktaukee, and called iferbrics' Inn, He chose them because of the hall size and centralized location.

Our membership fee is $15 for the individual or $20 for a family. This entitles you to library privileges, you must check them out in person, our net^sletter, you can pick this up at the meeting our supply us with SftSE's and I Nil I mail them to you. The newsletter has a subscription rate of $10 per year, this includes mailing.

UPDATE MAGAZI5E

33

OCTCBER 1988*

UPDATE MAGAZI5E

nSCRIPT VERSION S.3 FOR URKEN DOS SOnUARE REVIEU by Bob IlitchBlI 880814

My long-awaited copy of Version 5.3 of HSCRIPT by Jack Oohany finally arrived early in June of this year. Because I had told hin that I was using a non-standard, earlier version of the Larken DOS, he sent the progra* on cassettot to be on the safe side. 1 was delighted to find that a back-up on disk was readily Mde by selecting DISK on the nain wnu and then pressing B.

Docuaentation was on paper and the only other program on the cassette was the LCODES text which contains all the various codes that a wide printer would recognize. I understand that the disk version contains all the docuaentation as files.

The lain problem that I had had with ny earlier version ilSST was one of the printer dropping characters every now and then. This problei has been resolvedi I happy to report.

The cost to M for the nev version was US$2S which included $5 for Miling and handling. The prograt is so audi better than the earlier version that I was happy to pay the price.

Here are soae features of HSCRIPT (not necessarily in order of inportance) that eake the prograa quite attractive and ■ake M a convert!

1. Finding and Changing any string of up to 30 characters is siaple and very fast.

2. Headers and Footers (titles at the top and bottoii of each page of a docuoent) are easy to add.

3. rtoving, copyingi deleting, saving and loading blocks of text is fasti easy and very professionali with larkers used to identify the block to be worked on.

4. The cursor noves very fast across the page. There is also a tab feature that is very useful when developing tables and lists.

5. When aaking a back-up copyi it is optional to include the text as part of the back-ups ideal for aaking a version that includesi say. a letter head for page 1. If you want to uke a LARKEN AUTOSTART copy* this can be done fay using <CLEAR 4S0QO:RAND0nnE USR i02:RUN>. You have to CLEAR a higher address if you include any text in your save.

6. View Henory allows you to PEEK and POKE the contents of Mnaryl this starts at the LCOOE file which is handy if you want to inspect and change any printer control codes.

7. The naAB of the text you are working on appears on the bone eenu. I find this to be very useful particularly as I hop froe text to text fairly often. It let's ne know where I ai at the Mnent. The GIVE NAHE comand alloMS you to assign or change the naee of your text at any tiae.

a. There is an alternative fattened character set that takes reading the text on ay aonitor such easier. The use of different screen colours is restricted by the TS2Q68 hardware and I have settled on white ink on black paper as the best for M.

9. The disk catalogue in the selected drive can be added to the text in progress. The drive is selected by entering a nuaber froa 0 to 3 (iet 1 to 4 respectively). The LARKEN Raadisk is selected with <4> and this can be accoaaodated

easily by changing lines 131 and 132 in the BASIC with no addition to the BASIC length.

10. The new LARKEN Version 3 EPROM uses the token nSNE to call a file renaae routine and this was easily added to the hoae aenu by a few lines at line 220 in the BASIC. Hatch out for an out of aeaory report here. I bad to sacrifice lines 420 to 440 (VERIFYi which I seldoa use anyway) to nake rooa for this.

U. I like being able to put cooaent lines in the text to serve as reainders to ae and that won't appear in the printout. Tab settings are one exaaple as you have to reset these whenever they default to their noraal settings.

One thing that could be better: It's too easy to stutter in aore spaces than wanted when entering text. Hoveveri on right Justification! these extra spaces are not really noticed.

nSCRlPT is a totally different word processor froa TASUORD which I have used for soae tiae and which has its devotees. But there are so aany advantages to HSCRIPT that I have be^un to switch over to it for ay word processing tasks. Once you get used to the protocol and press the right keySf HSCRIPT is Just as easy to use as TASUORD and a lot aore rewarding. I recoaaend the purchase of HSCRIPT Version 5.3 and look forward to experiaenting with Version 6 when it coMS along. Hurry upi Jack! _ ,

3.4

UHDATE MAGAZIJE CXItXER 1988

REPRINT FROM SYNC LINK

2068

LARKEH RAMdlsk for the TS 2068 by George Chambers

Our last newslettar carried an article by Greg Lloyd, describing a RAMdIsk unit that he had recently obtained from Larken Electronics. I have recently purchased one of these units, and should like to tell something of my programming experiences Kith It.

Firstly, when 1 got It I could not figure out how to use It effectively. After all, while it can conUIn a total of 256K memory, mine only came equipped with 64K and there really Is a limit as to how many program one can hold with that. Which programs should I place on It. etc?

On top of that I already had a second drive on my system that seemed to be only used when I wanted to copy a program. Of what use was another bit of expensive memory. And It Is expensive, if compared to the memory capacity of a disk. A disk will hold 360K and costs about 65 cents. A 32K SRA/4 chip costs about $15. And the RANdlsk Is really a solid-state drive, not a memory expansion to your computer. That is to say, you still have only 38IC of memory in your computer to play with. The RAMdIsk memory is not bankswttched in to the computer: it It loaded Into the computer memory the same as from a conventional drive.

However, despite this unpromising prospect I have found a very fascinating application. What I have done Is to place 58 of my most useful utility files on a single disk (I call it my OMNIBUS disk), and Installed it In my second drive.

I then placed the several menus (the menu program listing in the Nov/Oee '87 Issue of this newsletter) required to access these files into the RAMdIsk. In the beginning I had one AUTOSTART (menu) program, and several other menu programs i.e. menu. 81, menu.B2, etcthat 1 called up from that AUTOSTART menu. I found that presently I had used 7 of the 12 available tracks on my RAMdIsk; horribly extravagant. (The RAMdIsk uses the same tracks format of the other drives)

It was then suggested to roe that I combine several menus into one program. This made sense, because as It was I was storing a program of about ISOO bytes onto a 5090-byte track. The other bytes, 3410 of them, were lost. I started combining menus onto a single program, and now I have 5 menu screens combined. More will follow. I use a menu option to move to the various menus.

(tost of the programs themselves are on the OMNIBUS disk, installed more or less permanently In the second drive, and are called up from the menus obtained from the RAMdIsk. Mhere a program is called up that resides on other than the OMNIBUS disk, the menu displays a request onscreen for that disk to be placed into the first drive, PAUSE'S until you indicate 'ready* by a keypress, then loads from that drive.

Larry Kenny has revised his DOS EPROM, yiy<ng a new connand which has proved very useful in this application. The format of this conmand is PRINT USR lOOt NEW (or PRINT f4s NEU). This provides a 'warm' AUTOSTART capability to the DOS.

I use It this way. I have modified many of my programs to provide an exit from the program. The exit normally would take you to a STOP command. To use this new OOS conmand I terminate a program to the following line sequence.

LINE 9000 PRINT f4t GOTO 4: PRINT 14: NEW

The 'GOTO 4* points the OOS toward the RAMdIsk and the *NEH* initiates an AUTOSTART routine in the RAMdIsk to bring up the 'menu' program. The effect Is to bring up the OMNIBUS disk menu at any time from within a program with a single keystroke. Note that this new command Is for all drives; it's use is not confined to the RAMdIsk.

This new OOS command also offers another interesting programming possibility. Invoking the 'PRINT #4: NEW* conmand will bring up an AUTOSTART program in the drive to which it is pointed. It does this without shutting down the computer. Thus, any M/C program presently In the computer (so long as it is not overwritten by the AUTOSTART program) remains in place awaitlno ute.

Larry advises that this command Is In Version 2 of his OOS EPRON. Before you all rush out and ask him for It, I suggest that you wait until he has had a chance to Incorporate some other features into the OOS, that he speaks of doing. Improvements to the printer driver, and changes to the NMI routine, I have heard; asnng others*

Now, I could hardly reconmend that everyone go out buy one of these RAMdIsks. But what I have found is that for those persons with two drives it certlanly maximises the use of the second drive. And It most assuredly reduces the number of keystrokes required to operate the Larken system, plus reducing the number of drive startups by possibly a half. And of course it is silent and speedy, when compared to a regular drivel

Newsletters need news! Write and tell us what you knowl

Anything (almost! ) will be printed

UH)ATE MAGAZI^E

SIHC-LINK 3 5

OCTCBER 1988

OCrCBER 1988

UPDATE MAGAZINE

REPRINT FROM SYNC LIN^^''^'^''^'^ ^ ''^^^^^ ^

OPEN 0, CLOSE Ih CHANNELS & STREAMS - A TUTORIAL

Let's delve into the mysster ious realm of channels and streams and those two odd tokens OPEN and CLOSE TliesB two commands are extremely powerful and have many uses and yet there is nothing at all about them in the TS2a68 User Manual except to say that * these and other commands like FORMAT, MOVE, CAT etc will be used with future peripherals" . Well, by now we know that many of these are indeed used with the disk drive interfaces. But, long before DOSs came along, it was apparent that OPEN # and CLOSE # did have a role to play with tlie basic machine. Much of this has to do with the opening and closing of channels and streams with respect to the TS2040- printer and the TS2068 keyboard and screen -

The TS2060 coimiiun i cates with peripheral devices with the aid of tl.e channel information area which lies between the system variables and the BASIC program. 1hiB area starts at address 26680 and ends at 26700, just short of- tho prograin area which starts, normally, at 26710. A sliurt program given in the listing beioiu will print out ail the information on channels and streams. Part of its output is shown below as Table 1 (with some explanatory notes)," the code has been divided into 5-byte blocks, , each block representing one channel.

TABLE

1 -

CI-IANNEL

•INFORMATION AREA

Address

CI -.an

Value

Notes

26680

l<

0

1st 2 bytes = ROM add. 128Qd

26689

Ij

'( 3 *256+0 ) 2 ROM PR I NT r au t i n e .

26690

14

2nd 2 bytes « ROM add.3a86d

26691

i2

( 12-X-256+14) a get input key.

26692*

75

Code for letter "K".

26693

S

0

Ist 2 bytes same as for "K".

26694

5

2nd 2 bytes « add. 4543 5

26695

191

26696

17

input routine called-

26697

83

Code for letter "S".

26698

R

231

This block is reserved for

26699

10

■use by the computer and

267Q0 .

191

.^ is. not available to the ,

26701

17

'.'user. . .

26702

82

Code for. letter "R".

26703

P

■.1st 2 bytes also point to

26704

5

128Qd: ROM Print routine.

36

UPDATE MAGAZIi^

(c)1988 Bob Mitchell Page # 1 of 5

OCrCBER 1988

OCTOBER 1988

UPDATE MAGAZINE

TUTORIAL (TB2068 & SPECTRUM)

REPRINT FROM SYNC LINK

267015 26706 26707

191 17 80

Input routine callE?d; (see explanation below). Code for letter "P".

26708

128

Stop byte.

When the TS2068 is switched on, 21 bytes are copied from address 4522d in the ROM to the channel info area where they may be altered by the user.

In the fourth block (Channel "P"), addresses 26703 and 26704 point to the ROM PRINT routine at 1280d (OSOOh). These are often changed to point elsewhere (eg. in the Aerco prcod^t they are changed to <5> and <251> respectively which equates to 64261 (the start of the prcode routine). Once these two bytes liave changed, all printing will go via Channel "P" to the <prcode> routine. To get back to the TS2040, these two bytes must be restored to <0> and <5> respectively.

In Spectrum these 21 start-up bytes are in ROM 555 Id

and are copied to the Spectruin channel info area which

resides at 2vl734 to 23754. Addresses 237^i9 and 23750 equate to 26703 and 26704 in tlie TS206B.

Summing up, each block represents a channel and

contains five bytes: the first two represent the

address of the called output routine (normally in the

ROM); bytes 3 and 4 represent the address of the

called input routine; finally, byte 5 is the code of the character representing the channel.

Channel "S" stands for "screen" and handles the output to the monitor or TV display. Channel "P" stands for the "printer" and liandles output to this peripheral. Channel "K" stands for the keyboard but handles both output and input; it inputs from the keyboard but also outputs to the lower part of the screen display.

When the PRINT command is used, the output goes through channel "S" to the main (upper) part of the screen. By careful use of the OPEN # command, the output can be made to go through any other channel.

Streams are associated with a specified channel and there are 16 streams available (0 to 15). Using the PRINT command normally sends the output through stream "2" to channel "S". To' make the PRINT command go to channel "P", it is only necessary to open stream 2 to channel "P". This is done by the command <OPEN #2,"P">. Note that this instruction has two arguments, the former first tells the computer wliich stream is

37

UPDATE MASAZIM:

(c)1988 Bob Mitchell Page # 2 of 5

OCTCBER 1988

REPRINT FROM SYNC LINK

TUTORIAL (TS2068 & SPECTRUM)

being altesred and the" latter identifies the single character of the channel to which the stream is to be directed.

If you type <0PE1M 4*2, "PV> then <PRINT " test " s PAUSE □>, the PAUSE 0 cammand prevents the input routine being called which would print an error report (bytes at addresses 26705 and 26706 call the ROM routine at address 4S43). Without the PAUSE 0, the printing would be iinmed lately erased.

At switch an, only four of the 16 streams are opened- Gtream 0 points to channel "K" Stream 1 points to channel "K" Stream 2 points to channel "S" Stream 3 points to channel "P"

When a stream has been opened to a different channel, it will continue to do what it has been directed to do until told otherwise. A channel may be closed by tlie command <CLOSE 4tn> where n is any number from to 15- Also, a channel may be closed by pointing the stream to its start up channel. For example, if stream 3 has been opened to channel "S", it may be closed by the command <CLOSE «3,"P". This example would send all LPRINT and LLIST commands to the screen until it is told to revert to normal. This is particularly useful to the programmer during the debugging process to look at the results of the LPRINT commands on the screen rather than waste printer paper.

When a stream has been opened to the printer, the edit line (lower screen area) is unaffected? in fact, any PRINT #0 or PRINT #1 commands will continue to display on the lower screen. Use of the hash symbol <#> fallowed by a <□> or <1> changes the print stream to the lower screen. PRINT, LIST, INPUT and INKEY* may all have their output affected this way 5 their default value is stream 2 (the upper screen)? that is to say, PRINT 4*2 is the sam^ as PRINT and PRINT #3 is the same as LPRINTi etc.

Type in the fallowing listing anytime you want to check channels and streams.

3 REM This program works in either TS2a6a .or Spectrum

"5 REM ===ss=sa"ss»=s==s==»"="='==»=**«='=

6 REM Use GO TO 10 for info on channels & streams.

7 REM Use GO TO 200 to PEEK

38

and save it? then use it the current status of

UPDATE MAGAZIbE

(c)19SS Bob Mitchell

OCTCBER 1988

REPRINT FROM SYNC LINK

,TUTORIAL (TS2068 «c SPECTRUM)

streafTi info in system variables. Use GO TO 220 to PEEK channel inPo area up to start of program area.

9 RFM sssssssssssssss3=3.-=!=sr=r3sss=r=:sssst=s==s

ID LET a«PEEK 23631-h256*PEEK 2 3632 s LET b-a

20 IF PEEK a=128 THEN GO TO 70 30 PRINT "CHANNEL " 5 CHR* (PEEK .(a+A) )

40 PRINT "Output Addresss" »PEE

K a+256*PEEK (a+l)

50 PRINT "Input Address^" ; PEEK ( a+2) •♦•256 H- PEEK <a+3) 60 PRINT ! LET a=a-H5 s GO TO 20 70 FOR a=23574 TO 23605 STEP 2 GO PRINT "Stream " ; ( a-^23574 ) /2

5 TAB J.o;

90 IF PEEK a+256*PEEK (a+l)«0

THEN PRINT "CLOSED"! NEXT a: STO

P

100 LET c=(PEEK a-H256*PEEK (a+1

))+b+3

110 PRINT "points to Channel "5 CHR* PEEK c! NEXT a 120 STOP

130 RANDOMIZE USR 100: SAVE " ch ans.Bl" LINE 10 140 STOP

200 FOR i=23568 TO 23605: PRINT

i , PEEK i : NEXT i 210 STOP

220 LET prag«PEEK 23635+256^PEE .K 23636

230 FOR i=b TO prog-i: PRINT i, PEEK i;TAE 20;CHR$ PEEK i AND PE EK i>«32 AND PEEK i<«90: NEXT i

s start of CHANS

from sys variables 5 last byte in table : channel letter

: output address

s input address.

: stream number. : closed channel

: channel letter

: Lark en SAVE routine

: addresses of

channels attached

to streams.; : start of prog area

: examines chan info area up to start of prog area

The FOR. ..NEXT loop in line 200 will display a copy of 38 bytes in the system variables area containing the address of channels attached to streams. Each stream holds two bytes which accounts for 32 bytes and the extra 6 are used by the internal editor and automatic listing routines. Each two bytes contains a relative displacement, from the byte before the channel info area, to the channel that is pointed to. A zero means that the stream is closed.

For Larken users, note the extensive use of OPEN in the extended BASIC commands available and particularly note that when any or all windows or large printer channels are opened, 38 bytes (total) of memory are

3.9

UHDATE MAGAZINE

(c)1988 Bob Mitchell Page # 4 of 5

OCTOBER 1988

OCTOBER 1988

UPDATE MAGAZINE

REPRINT FROM SYNC LINK TUTORIAL (TS2068 & SPECTRUM)

added to the channel information area- This changes the location of the start of the program area and can cause a raroblem if there is machine code in a REM statement in the first program line- (This problem can be avoided by PEEKING the start of the prog area and then using this value plus 5 as the call address for the machine code routine in the REM statement? eg? <LET K=PEEK 236354-256*PEEK 23636: LET x=x+5 s RANDOMIZE USR x> ) . In these 38 bytes which you can examine by using line 220 of the listing, you will find that new channels have been set up at the beginning of what was the start of the program area.

An interesting and illuminating exercise is suggested

for Larken users! .<LOAD "Chans, Bl">, ie, the listing above- .Open some of the Larken extended BASIC channelsi. '.Try <RANDOMIZE USR 100s OPEN #4,"dd">. .Then <PRINT IKts OPEN tt3,".w0">. ) These will -Then <PRINT 4t4! OPEN #6,''wl">. ) open three .Then <PRINT #4s OPEN #7,''w2">. ) windows. .Now use the listing above to look at' what has

happened. Try doing the same thing with the Spectruiri

emulator in place, if you have one-

1*11 leave the heavy thinking to you at this point. What I have written will pose some other questions and I look forward to someone else expanding on this theme in some future issue-

(c)19Q8 Bob Mitchell Page # 5 of 3

GQQQQQQQ

ZZZZZZZZZ

XX XX

*

QQQQQQQQQQ

ZZZZZZZZ

XX XX

QQ

QQ

ZZ

XX XX

*

QQ

QQ

ZZ

XXX

*

QQ

QQ

ZZ

XXX

QQ

QQ QQ

ZZ

XX XX

«

QQQQQQQQQQ

ZZZZZZZZ

XX XX

*

QQQQQQQQ

ZZZZZZZZZ

XX XX

*

QQ

*

*

The Journal Covering Amateur Radio & Sinclair Computers ZX-88; Micro-Ace; ZX81 ; T/S 1898, 1588, & 2868; QL Alex. F. 8urr, K5XY, Publisher 2825 0' Donne n Drive Las Cruces, New Mexico 88881

SUBSCRIPTION *15 PER YEAR. S^=tf^PLE ISSUE FOR SELF ADDRESSED STAMPED ENUELOPE WITH *8.45 POSTAGE.

UPDATE MAGAZItE ^ ^ OGTOBER 1988

TELEXXMPiniNG, WHERE WE STAND

By^ Bill Jones WEKffVJI

Back in 1948 Television came into the homes of America. Almost all people thought of TV as an adjunct of RADIO. Radio was THE INDl^TRY, and TV was thought of as a part of it. Of course, TV became its own industry. This bit of history is used to make the point that lELBOOMPirriNG is destined to become a giant industry of its own. Another illustration: If one looks down upon a ant bed, one sees much activity, bat all seem to be going in different unorganized directions. Telecomputing is kinda like that today. Telecomuting is now riding piggy back on two existing industries. Computers and Telephone. But a break-out is about to happen. Amateur Radio Operators are leading the way. Most think of "HAMS" as guys pecking away sending and receiving "di dah dits" and making not so funny interfering lines on TV screens.

But many HAMS now are operating computers and are involved in a form of Telecomputir^ called PACKET. Hie principle involved in Packet is the use of Radio and Computers to Conmunicate. Most of us are aware of Modem Communications with computers via telephone. I became acutely aware when I received a shocking telephone bill a month after getting my modem. PACKET bypasses the telephone, and provides direct computer link up via radio.

NO TELEPHONE BILLS!! But, as with any fledging industry, there are problems, and there are "turf fights". A&T wants the business and would like to confine TelecoDputing to the use of their telephone networlc. As more computers with modems come on line, local telephone organizations want to develop means of charging for service. The HAMS have a good thing going with Packet, but the Federal Communications Commission regulates Amateur Radio and confines their activities to "Hobby Use", no commerical operation allowed. Hams can operate with Packet, but ordinary folks who are not licensed radio operators cannot operate Packet. It's against the law.

During the latter five years of the 1980 's, the Computer population skyrocketed from less than 1% of homes having computers to more than 40* by 1988, and will be up to 80% before 1990. The natural progression is for families to take advantage of the computer's inherent ability to communicate with the surrounding World. To accomplish this step there must be a breaking out and away from the confines of the telephone industry and the Federal regulation of communications, which is now the most limiting factor. Of course, there must be an organized way to accommodate the tens of millions of people who will be using computers to communicate. Otherwise there would be chaos, everyone trying to communicate, but interfering with each other. This is the next step that must take place between Government and industry planners.

I would invision the decade of the 1990s bringing in a coordinated "starter plan" with Federal regulations licensing telecomputing via satellite, similiar to Packet, plus UHF repeater nets, and local cable service. As the industry builds, and commerical applications expand (profit potential), we will see the Television industry wanting to get into the act, and TV will become a valuable partner to Telecomputing. Each TV channel can accommodate quite a number of discrete side band channels for computer communications without interfering with their regular video programming. One could Just subscribe to the service and plug their computer modem into the TV set to receive a daily schedule of services.

In the meantime, awaiting the break through, and the concerted organization needed to thrust telecomputing into tens of millions of homes, a few intrepreneur HAMS are taking the forefront and developing Padcet. Bob Diggs is one of these leaders. His letter and article that follow reveal scxie technical problems being experienced and the level of current telecomputing technology with the Sinclair G9L., and all ccxaputers as well.. Read between the lines to discern Bob's personal dedicaticm to the advancement of telecomputing technology. The following sketch depicts vdiere the industry stands at present and the paths for expansion during the next 5-10 years.

UIOATE MAGAZItC

OCTCBER 1988

UPDATE MAGAZI^E

Bob Diggs, KV3Q North East, Maryland August 22, 1988

To: Bill Jones, WD4FJI Alex Burr, K5XY

Subject: QL on Packet

This memo is addressed to both of you so that you both will know what is going on here and can help me get some information to those HAMS who may be interested. I started a draft of an article for QZX vrtiich somehow got lost in a micro drive with a message saying, "file incomplete". I had made a print-out but didn't feel up to re-doing it because of hot weather and too many other things to do. Also, among the three of us, I dont think that Packet is all it's supposed to be. There is too much CPU (interference, ed) from re-trys of hams trying to download a bulletin board list of messages or nodes that it becomes too difficult to connect for a QUO (discrete two way interchange, ed) or to get a gang together for an unproto bull session. Never the less, I do use my QL for Packet, using MIKE_TE2?M almost all of the time. I am, however getting ahead of myself.

Alex, what started this memo was a note from Bill saying that he saw my interest in QL Packet in QZX and wanted to publish the details in UPDATE, a magazine that I am not familiar with because it has been a publication for the TS-2068, which I dont have. My Ham interest says to write for QZX, but my public spirit says to write for anyone who is interested because there are so few out there on oL Packet.

First, do I have anything new or worth publishing? Enclosed is a printout of what I lost in the file. Writing this stuff is new to me so I'd like to know if I'm on the right track. Second, I dont know the format to present this material for either publication. I belong to C.A.T.S. and each newsletter clearly states how articles should be prepared for publication.

Third, I hope that you can both use it, rather than have it go to one and not reach some guy or gal who could use it. I dont know much about computers and programs and such, but if I satrt the ball rolling, someone who knows more can make things better. So Bill, this is my answer to your card. I hope that it helps. Let me know if you are interested in what I started and I'll try to put it together.

Best regards. Bob Diggs, KV3Q

(Comment by the editor; Bob's address is left off to protect his privacy. Letters to him mailed to UPDATE will be forwarded. QZX is a monthly newsletter for Ham Radio operators. QZX, 2025 0' Donne U Drive, Las Cruces, NM 88001. Subscription is $15.00 per year. Those of you who are interested in more about Telecomputing and Packet are requested to send in an interest card. The amount of response will dictate the amount of future coverage. Bob's article follows.

PUrriNG THE QL TO PACXET Bob, KV3Q

As Alex noted in the June issue of QZX. I'm trying and can now say that I'm using my QL on Packet. It wasn't easy but I finally made It. A monitor was one mighty important item, in fact trying to do it without a monitor was a failure. My Packet activity is strictly 2 meters, using a MFJ-1270B TNC connected to SER 2. I have two programs on micro drive cartridge, QL TE3?M by Richard Moldovan, and MIKE_TEEM from the April issue of QZX. Each has a special use. Each has different problems and neither is canpletely satisfactory. However I am using my QL c»i Packet and it is there whenever I want it. SER 1 has my Citizen 120D printer, and SER 2 is Packet.

My old set up was either the T5-1000 or 1500, ALPHAOOM 32 and a OOMLINK II connected to the TNC. That was a very satisfactory set up indeed, which allowed me to dump the screens to the printer. This is scaiething that I cannot do with the QL.

Before leavir^ for South Africa 1 ordered a QL to be shipped to our Winter hone in Florida and when we got back in Jamary it was waiting. I went to the Winter Fest in Orlando and found that there was no one there vdio had any idea of what I was talking about when I brcxaght up Packet. Bit I did learn one important thing, and that is that the QJJG SER2 pin connections are not as printed. That turned out to be academic, because the standarxi SER cable that I bought there works OK when connected between SER2 and the MFJ TNC. It was suggested that QL-TEEM was a good program for a Modem and possibly might work with Packet, so I ordered it.

QL-TERM arrived soon after and v*iat a disiappointment v^n I tried to use it! I asdc the dealer if my problem could be because I was using a TV as a monitor. Of course, he couldn't answer that question. So, Packet went to the back burner vhile I concentrated upon finding a printer that I liked at a price that I could afford. In the meantime I was wondering if anyone was getting anywhere with using their QL

UPDATE MAGAZIte

CXITCBER 1988

on Packet. The US Postal service did not forward QZX or CIW, so there I was in a black hole, so to speak, and no way out. Then lo and behold, Michael Mitchell came through with a program in April QZX. Vflien I put the program on Micro Cartridge I learned that it needed a Monitor. By this time I had determined that a monitor was needed for general use anyway.

When I got the monitor on line, the first program to try was QL-TEKM. It woii<ed but there seemed to be a problem between the computer and the TNC. They couldn't seem to communicate without messing up some of the characters. The radio ccwununi cat ions over Packet seemed to go out and come back OK despite the garbage on screen. So, I tried the MIKB-TE{?M program only to see single letters scrolling up the left of the screen. I searched for the problem hut didn't find it until much later.

When using the TS-1000, the OOMLINK-II required a baud rate of 300, so I stuck with that until I discovered that by switching the TNC switch to 1200 baud the garbage on screen disiappeared.

At last I had a program working, but couldn't back space or erase in the normal way. The solution is to use CTRL H instead of the normal DELETE. Yet to be resolved is how to duplicate the screen to printer as I used to do, but that will come later, I hope. Another bother is that the CTRL S takes a while to stop the scroll, longer than the TS-1000 and most likely because of the baud rate.

Then it was back to MIKE_TE3?M. A intense study of the program listing revealed a missing in line 270 at the end of the line. That did it, but backspace reared its head again. A partial solution is to use CTBL H again, but the lack of cursor means that you are typing without reference. Now if I make an error, I use CJTRL X, which shows a "/" and scrolls to the next line. Hie advantage of NIKE_TE294 is that it loads fast. The disadvantges are, no screen dump to the printer and no flashing cursor. I then changed the window to have a program for TV use, and that works fine. Neither programs have macro keys.

So. that is \ihere 1 stand with using QL on Packet. It is working fairly well but there is still a long way to go. To summarize;

1. Use a Monitor or MIKE_TE3?M modified for TV Screen.

2. Ser2 port pins are: 1-ground, 2-Tx D, 3-Rx D. 4-EfrR, 5-CrS, 6-K3RND, 7H3RND, 8-blank, 9-T/2V

3. OL.TERM: Needs Monitor. 1200 baud. Must anticipate CTRL S or lose some screen. No screen dump. Erase and backspace with CTRL L. Can't go to QL programs when you Qait.

4. MIKE^TERM: Easy to load and use, but lacks cursor and screen dump. Use CTRL H to erase, but no cursor makes it hard to use. Use CTRL X to cancel line and start over again with new line. Be sure line 270 has a ";" at line end. Modify window if using TV. Can quit and load cL programs and vice versa, A good program. I use it daily to check my BBS,

I have i-ieed two other pixsgrams, QOCa^ and QLINK. without success. The copies that I am using could be at fault. I will try to learn

more about them and report when I make significant progress with these or the other programs. Bob, K3VQ

EJd, comments: Screen Dump to printer is supported by the special language contained in the PISON ARCHIVE software. This may be an avenue to pursue to link with the modem softwares. Qnoss talk between those using the OL within the telefrfione modem environment and Packet users should be fruitful. UPDATE will open up a channel for such cross talk in the pages, and will publish the names, addresses, and f^ne listings of those who have keen interest in Telcomputing, either via telephone or Packet, and who would like to establish direct communications with each other. Hopefully, we can have something useful in every issue of UPDATE about Telcomputing with the QL, the TS-2068, Via Telephone and ailletin Boards, via Packet, and via direct telephone between users. The extent of coverage will depend upon the amount of inputs from the readers, as there is little "in-house" expertise on this subject.

FORMAT OF UPDATE MAGAZINE

Back last year, UPDATE began with a couple of ideas that became too difficult to manage. One was Coloured page sections. The trouble with that is that paper suppliers have no standard colors. On month pink is rose and next month it. is some other shade. So, I abandoned that Idea.

Another plan was to have sections by major subject area. "Ihis worked out well for only a few major sections. Telecomputing, TS-2068 Extra Memory, Schematics, and The Electronics Data section. All other subjects seem to blend together.

Ihis October 1988 issue is the first issue to be printed by a commerical printer, and that makes it not to be feasable to continue with the colored page section idea. Ihe editor will avoid "skip continuations" of articles from an earlier page to a page that is deeper within the magazine. Ihis will allow those who want to file pages by subject area to do so.

3

UPDATE MAGAZINE

OCTCBER 1988

OCTCBER 1988

UPDATE MAGAZINE

A O.L. Address File

Bob Hartung, 2416 N. Co. Line Rd., HuntertoMn, IN 46748

Some like nxself who are neu kids on tlie block with the QL nay be looking -for info on getting started in QL SuperBasic programing. The QL User's Guide (QLUG) is something less than a nasterpiece of clarity, and most current publications seen to have moved on to more advanced topics, so, from the perspective of a rank beginner, here are a few 'QLues* I have stumbled onto so far. Assuming that not everyone has installed Toolkit II (TKT) or Trump Card, I will use only the syntax accepted by the unexpanded QL unless otherMise noted. Direct command entries will be indicated by <comnand> with a slash / between those keys to be pressed at the same time.

Since the best way of learning is usually by doing (there are exceptions such as learning what kinds of wild mushrooms are safe to eat!) I will give the listing for a SuperBasic program, then explain some of the whys and wherefores of it. A reader requested a mail list program, which seems a practical way of illustrating some points. Of course the ARCHIVE database SU bundled with the QL may be adapted for this but all its bells and whistles and whirring microdrives sometimes seem overkill for a simple mailing file and printout.

To make this into something for everyone, I will also try to use syntax that can most easily be translated by TS2068 <and Beta Basic) users, rather than exclusively- QL structures and commands that might be more elegant but less familiar. Purists who are bothered by my use of subroutines instead of structured procedures may easily replace the REH labels with DEFine PROCedure name, the RETurns with END DEFine, and the 60 SUBs with the respective procedure names. I ran into an anomaly, however, on the SORT routine when defined as a procedure in that it re-orders a file perfectly the first time but then seems to lose track of scne file items on subsequent calls. Til leave that as a challenge for a sharp T/S UPDATE reader to figure out!

The minimum essentials of a mailing list are to provide the means of entering, storing, retrieving, and printing out the files. It is also useful to have the means of re-ordering them alphabetically, usually by last names, selecting particular ones for display or printout, adding to the file, and editing or deleting. This program will do all these, albeit more slowly than a whiz-bang machine code or compiled one. To economize on page space a 56-column listing format was used instead of the 40-coluffin NODE 8 or the 64-column NODE 4. Now with all these disclaimers stated, let's get on with it.

For less pain and strain in entering the listing, <AUTO>

44

UPDATE MASAZI^E

supplies line numbers starting at 100 in increments of 10 or <Am'0 n) will start at line n in steps of 10. Use <CTRL/SPACE) to break out of AUTO. During entries of a new listing or when editing an old one, <AUTO 10) or in the same increments as the listing will automatically bring each line into edit mode and <BfTER) will scroll to the next. If <EDIT n) is used to bring down a specific line, then the up or down cursor keys may be used to scroll other lines into the edit window as long as Sfl"ER has not yet been keyed. Of course TKT users have the many conveniences of full-screen editing but for those who don't have TKT the QLUG doesn't go into much detail on how to use these normal EDIT functions to make life a bit easier.

I would suggest starting by entering line 1540 DEFine PROCedure svi DELETE MDMLaddrfile; SWE MDVLaddrf ile.- END DEFine sv. If you do not have the IKl FREEJ1EN command you might also want to add line 1550 DEFine PROCedure freememi PRINT PEEK-L(163856)-PEEK.L(163852) -1024s END DEFine freemem. Make the first save of this with SAUE MDMLaddrfile, or change all the addrfile names to BOOT if you want it to auto-load. Now whenever you want to make a save during entry of the listing all you need to do is key <sv). Enter <freemen) to show free memory remaining. Procedure and function definitions like these may be located anywhere and are transparent until called, i.e. processing passes right over them as it does for a DATA line.

Use RUN to initiate and key '9' from the menu to save the listing to mdvl. To set up an all-new file, key "O* and "y" at the ERASE prompt. 820 allows entry of 1, 2, 3, 4, or 5 for auto-entry of the respective titles (no space between number and first name). If 9 is the first character entered here then any other title or name may be keyed in letter-by-letter following the 9. ISTOPwill close the file and 60 SUB to the sort and re-order routine 20, otherwise inputs continue for last name, address, P.O., state & ZIP, and ID or phone no.

The state and ZIP entry may be skipped with just ENTER (N/L) if the P.O. entry was made with a number. 860 & 890-910 may be expanded to include more auto-entries of P.O., state, and ZIPs for frequently-occurring ones. To avoid confusion, use 1 ine- increments of 1 for this and wait until the entire listing has been entered and checked before using RENUi 10,10.

Printer control commands for font, margin, etc. may be set by your panel switches or a PRINT 17, command- sequence for your particular printer may be inserted at line 1300 after an OPEN I7,serl. Be sure to end this sequence with a CLOSE 17.

TV MODE 8 (40-colHmn display with two screens) is assumed so you may wish to adust some of the PRINT and

(XTCBER 1988

OCTOBER 1988

UPDATE MAGAZINE

10 sets black PAPER and white INK for the 112 nain display screen and white PAPER and black INK for the «0 editing window. This gives a crisper display on B&di TVs and conposite monochroie nonitors than the power-up colors. Just use 10 80 TO 510 here if you prefer to keep the original screens.

Note that in lines 130-200 you nay use apostrophes rather than quotation narks to define character-strings. The QL accepts either. The apostrophe is a little handier as it requires no SHIFT, but for clarity and of course for T/S translation the quotes should be used. The reverse slash \ used by the QL for a line feed corresponds to the apostrophe for the T/S. PAUSE without a given value is the sane as T/S PAUSE 0.

A little surprise for T/S users (that users of nany other conputers have had to reckon with all along) is that it cannot be taken for granted that dinensioning a nuneric array as DIM a(n) always sets every elenent to 0. Neither does DIM a$(n) set every string elenent to a space or CHR$(32). The DIM sets the string array elenents to CHR*(0), and then if LET a$<n)=" is used they becone spaces. If no key is depressed, CODEdNKEY)) also returns 0. This is the reason for the value-checks shown in 210, 610, and 810.

The IF-THEN structure of the QL allows nested test- statenents, with ELSE alternative conditions that are active when IF conditions are not net, as in 330 and 350. 350 could also have additional statements appended such as ELSE OPEN I7,scrj INK I7;7 (which sets scr INK to white or the color of your choice). The end of a particular set of IF-THEN-ELSE statenents is narked by an END IF to indicate that set of conditions no longer apply to what follows.

The SELect ON sequences in 370-430 and 630-740 nay be translated as IF-THEN statenents for the T/S. Beta Basic (B6) provides the ELSE function and also has an ON ccnnand that would require this change:

610 LET n$=INKEY$, if^L ffi$4l: IF n$»" im 60 TO 610

This allows lines 630-730 to be entered as only one line to use the BB ON function:

630 ON n: 80 TO 770: 60 TO 790: 60 TO 970: 110: 60 SUB 20: 80 TO 1210: 60 TO 1320: 60 TO 1420: 60 TO 1310: SAME •addrfile* LINE 10.

Lines 1330-1510 show how the QL sends and receives data to and fron devices such as nicrodrives, nodens, printers, networks, etc. For the T/S all this SAME and LOAD footwork can be replaced by the sinple connands SAME "nane" DATA f$() and LOAD "nane' DATA Hi), If LET f$(400, TO 3)=STR$ last is inserted before the data save, then LET last^^AL f$<400, TO 3) would re-define

the value of last after the loading of new data. (The QL has no MAL function.)

LISTIN6 2 gives a search routine for T/S users. When using it, the target-line to be searched is first narked by nunber, then any consecutive set of characters found at the very beginning of that line nay be used as a search-word. Either a hard-copy printout or screen display nay be selected. Line 350 could be changed to IF yl=*y' THEN OPEN 82, 'P' and nake 470 CLOSE 82 to direct the PRINT output of lines 380-460 to a printer or to the screen if y$='n'. IF-THEN statenents would then be substituted in 380-420, and the 17 onitted. In BB an ON connand-sequence could be used here if 360 is nade LET p=CODE f$(n)-48 so the number-sequence 1-9 is produced.

In BB the sort routine at 30-90 nay be replaced by the sinple connand: 30 SORT f$(l TO last)(21 TO 40) which will re-order 150 array elenents by last nanes in just over 1 second. The QL search routine would be replaced by the following in BB:

130 INPUT LPRINT y/n? "jy$

140 INPUT 'CHR* in search-word (INwild): "jc*

158 FOR n=l TO last

160 LET p$=fi(n)

170 IF INSTRIN6(l,p*,c$) THEN PRINT n'f$(n, TO 94)'f*( n,95 TO 114): IF y^'y' THEN 60 SUB 350

180 n

280 PRINT iiOi'SEARCH conplete": PAUSE 300: 60 TO 500

INARRAY would search the entire f* array but line 150 allows INSTRIN6 to search one array elenent at a tine. Most BB connands and functions allow sinilar savings in nenory-usage as well as processing tine which offsets to a great extent the linitations inposed by the 22K free nenory renaining with 66 in-residence. About 150 f ile-itens nay be handled by this progran using BB in a Spectrun-enulated TS206B.

In edit node, QfTER scrolls through the file itens. Entering "/.' will delete that iten, or if a nunber is entered then that line-iten nay be re-entered as desired. If nore than one line is to be changed the '6' repeat option nay be used at the end of the edit node sequence, or else it night be simpler to use "A' to delete that whole iten, then go to the 'Additional entries' node fron the nain nenu. Uhile entering new file itens, if $T0 is entered instead of an ID or phone no. then that entire file-iten nay be re-entered to correct an error, or else you can wait and use the 'List & edit node' fron the nain nenu.

Again BB has a nucb easier way of editing an entire array elenent at a tine by replacing lines 1000-1200 with sinply 1000 EDIT f$(n) and 1010 NE)(T n. The entire file iten is brought back into edit node for revisions

45

UPDATE MftSAZItE OCTCBER 1988

CXTCBER 1988

UPDATE MAGAZINE

by iioving the cursor up and down as well as horizontal Ix through it, just as when it was originally entered. Keying QITER scrolls through the -file.

The 'SAVE file" and 'LOAD file' modes require a cartridge in ndvi (or ndv2 with required changes in listing) so that the CAT routine nay list all -files already on the cartridge. This allows checlcing file nanes already in use to avoid overwriting any you wish to keep. Since I have TiCT installed which doesn't require the DELETE ndvLnanie be-fore saves, the very -first save you naKe of the listing (and the save of a file using a given nane for the first tine) nay require adding an optional procedure without the DELETE on unexpanded QLs to provide for such saves. If a save is being nade with the sane nane as an existing file without preceding it with the DELETE MCMLnane canand, TICT users receive a warning pronpt and the 'Y/N' option to abort or proceed.

I thinl( the remaining prograi REMarks and pronpts should be self-explanatory, but then Tn looking at it through different eyes than soneone seeing it for the very first tine, so feel free to bring any errors or unclear points to ny attention. For reply please enclose a SASE. I have written an all Beta Basic version of this program which will appear in a future SYNCUARE NEUS if all goes well.

It would serve a real need, I believe, if QL, T/S, and BB users would send in your own programing hints, especially those procedures and functions you have created, so they can be shared here in UPDATE with other users. And be sure to let Bill and his advertisers know you appreciate their support. As Rod Gowen of RHB ENTERPRISES, one of the very supportive surviving T/S venders, stated in recent correspondance with ne, 'Ue Sinclair users have to stick together!"

LISTIN6 1 - QL ADDRESS FILE

10 PAPER 0: PAPER i0;7: INK tlO;0: CLS: CLS iiO: 60 TO 510

20 REHark sort

30 LET HFlastj LET ssn

40 LET s=IMT(5/2)! IF s<l THEN RETurn

50 IF s/2=INT(s/2) THEN LET s=sM

60 FOR n=l TO n-s

70 in j=n

80 IF f$(j,21 TO 40))f$(j4s,21 TO 40) THEN LET x$=f*(j,l TO 115)! LET fi(j,l TO 115)=f$(j+s,l TO 115); LET f i(j*s,l TO 115)=x$! LET j=j-5: IF j)0 THEN 60 TO 80 90 END FOR n 100 60 TO 40 110 RBIark search 120 CLS

130 INPUT ' LPRINT y/n? 'jyf

140 INPUT 'CHR* in search-word (INwild)! 'jc^

150 FOR n=l TO last 4 ^

m LET p*=f$(n)

170 IF INSTRIN6(l,p^,c$) THEN PRINT n'ff(n, TO ?4)'f$<n,

95 TO 114): IF y*='y' THEN GO SUB 350 180 NE)(T n

190 PRINT ifOi'Search is complete* 5 PAUSE 300i GO TO 500 340 RBIark Printout subroutine selects printer or screen 350 IF y«='y' THEN OPEN I7,serl! ELSE OPEN Il7,5crj INK II

7,7! REMark Or INK n of your choice for scr m LET p»CODE(f$(n,l))

370 SELect ON p: REHark Alternative to IF-THEN sequence

380 =49! PRINT 117, 'Mr. & Mrs. 'j

390 =50! PRINT l7,"Mr. 'j

400 =51 ! PRINT 117, 'Mrs. ';

410 =52: PRINT l7,"Ms. 'i

420 =53! PRINT 117, 'Miss ';

430 m SELect

440 END IF

450 PRINT I7,f$(n,2 TO C00E(f*<n,115)))j' "jff(n,21 TO 4

Q)\f$(n,41 TO 65)\f$<n,66 TO 80)\f$(n,8I TO 94) 440 IF y4='n' THEN PRINT 17} f$<n,95 TO 114) 465 RBIark For labels insert PRINT »7,\\\ here for LFs 470 CLOSE 17 480 RETurn 490 RBIark Henu 500 CLS! CLS 10

510 PRINT '0 - Start ALL NBrffile"

520 PRINT M - Additional entries'

530 PRINT '2 - List 4 edit mode'

540 PRINT "3 - Search node"

550 PRINT '4 - Sort & re-order"

560 PRINT "5 - LPRINT"

570 PRINT '6 ' SWE file"

580 PRINT "7 - LOAD file'

590 PRINT "8 - Set printer'

600 PRINT "9 - Listing SWE"

610 LET n=CODE(INKEY$): IF n=0 THB4 60 TO 610

620 CLS

630 SELect

ONn

640

=48!

GO TO 770

650

=49!

GO TO 790

660

=50s

GO TO 970

670

=51 !

60 TO 110

680

=52!

60 SUB 20

690

=53!

GO TO 1210

700

=54!

GO TO 1320

710

=55 s

60 TO 1420

720

=56!

GO TO 1310

730

=57;

sv

740 mO SELect 750 60 TO 500

760 RBIark Initialize ALL NB4 file 770 INPUT IO;"CAUTI0N-EIMSE OLD FILE y/n? (Naxinun no. file5<400) 'jy$! IF y*="y" THB* DIM f$<400,l 15)!CLS 10! ELSE PRINT "FILE NOT EIWSED"! 60 TO 510 780 RBI Input to file 790 FOR n=l TO 400 800 LET p=0! RBIark p=zero

810 IF f^(n,l) <> CHR$<0) AND f*(n,l) O * ' f$(n,ll

UPDATE MAGAZII^l

CXTOBER 1988

0CTC8ER 1988

UPDATE MAGAZIUE

4) 0 "/,' THEN NEXT n

820 INPUT (n)\"$STOP IHr/Mrs 21r 3Hp5 4M5 SMiss op 9 the n title OP fipst nane LET H(n,\ TO 20)=p$} L ET «<n,115)=CHR$(LEN(p$))! IF p$=:"$STOP* THEN LET f$(n)="! LET Ia5t=n-I: GO SUB 20! 60 TO 500

830 IF C0DE(«(n,115))<2 THEN LET «(n,115)=CHR$<2)

840 INPUT 'Last nane '^$(0, 21 TO 40)

850 INPUT •Addres5*M$<n,41 TO 65)

860 INPin 'P.O. OP lAUB 2BUT SfKT'Midi, 66 TO 80)! IF i $<n,66)<='9' im LET p=I

870 INPUT 'State <2 chps42 spaces) & ZIP op N/L*\«<n,81 TO 94)

880 INPlfT 'ID OP phone no. (op ifo fop pe-entpy)"M*<n,9

5 TO 114)

890 IF f$(n,66)='r THEN LET «(n,66 TO 80)="Aubupn'! LE

T «(n,81 TO 94)=' IN 46706)" 900 IF «(n,66)='2' THEN LET «<n,66 TO 80)='Butlep'! LE

T «(n,81 TO 94)='IN 46721" 910 IF «(n,66)="3' THEN LET «(n,66 TO 80)='Hunteptflwn'

! LET «(n,81 TO 94)="IN 46748-nnnn" 920 IF p THEN PRINT f$(n,66 TO 94)\ 930 IF «<n,95 TO 97)=W THEN PRINT 'RE-ENTER"! 60 TO 820

940 END FOR n

950 LET iast=n-l: 60 SUB 20

960 60 TO 500

970 REMapk EDIT file

980 as 10: PRINT iO;"Kex B4TER to keep op 7, to delete ITEM NO. to EDIT"! LET z=8

990 FOR n=l TO last

1000 PRINT 'FILE 'jnMi'^'; f$(n,l TO 20)\2j"='|f$<21 TO 40)\3}'='}«(n,41 TO 65)\4|"='|«<n,66 TO 80)\55"='

|fi(n,81 TO 94)\65"='jfi(n,95 TO 114) 1010 INPUT irtj! IF n«$='r THEN PRINT 'DELETE!!': LET «<

n,I14)='X'! LET fi<n,2I TO 40)='zz2zzzzzzz': LET z=z

♦1

1020 IF C0DE(ii*)>37 THEN 60 SUB 1130

1030 PRINT

1040 END FOR n

1050 60 SUB 20

1060 LET x=1a5t

1070 FOR n=x-z TO x

1080 IF «(n,21 TO 30)='zzzzz222zz' THEN LET last^last-l

i LET «<n)="" 1090 END FOR n 1100 CLS

1110 as 10: INPUT lOi'Key B^TER to petupn to nenu op 6

to pepeat '} /$: IF y$ <>'6' im 60 TO 500 1120 60 TO 970 1130 PRINT "-LINE REVISION:"

1140 IF Bl="r THEN INPUT p$i LET «(n,l TO 20)=p$i LET f$(n,115)=CHR$(Lm(p$)): IF C0DE<^$(n,il5))<2 THEN L ET Wn,115)=CHRi<2)

1150 IF ii«="2' THEN INPUT «(n,21 TO 40)

1160 IF nr$='3' THEN INPUT f$(n,41 TO 65)

1170 IF fi$="4' THEN INPUT f$(n,66 TO 80)

1180 IF n$='5' THEN INPUT f$(n,81 TO 94)

1190 IF Bl='6' THEN INPUT f$(n,95 TO 114)

4 7

UPDATE MASAZINE

1200 RETupn

1210 REMapk LPRINT envelopes op labels 1220 INPUT "Continuous printout y/n? 'jy* 1230 FOR n=l TO last

1240 IF y$="n' THEN aS »0: INPUT IIO}<n)\<«(n,l TO 40)) \'KEY 5 TO SKIP OP ENTER ^op next '\nit IF n$="s" TH

mnw n

1250 LET p=CODE(f$<n,l)) 1260 OPEN il7,sepl 1270 60 SUB 370 1280 mH FOR n 1290 60 TO 500

1300 RBiapk Insept YOUR ppintep coniands here 1385 60 TO 500

1310 RQIapk Save-data pontine 1320 CAT

1330 INPUT HO; 'SAME file name? '\yii LET nl=:"iidvl." & y

$: REHapk Op use "ndvZ." hepe & at line 1430 1340 DELETE ii$ 1350 DPEN-NBJ i»7,n$ 1360 FOR n=l TO last 1370 PRINT «7,f*<n) 1380 END FOR n 1390 CLOSE 17 1400 CLS 10: 60 TO 500 1410 RBiapk Load-data poutlne 1420 CAT

1430 INPUT HOj'LOAD file name? 'jy$! LET »«="nid»L" & y$ 1440 DIM l$(400,115) 1450 OPEN-IN 17,11$ 1460 FOR n=l TO 400

1470 IF E0F(«7) THEN LET h5t=n-l: 60 TO 1510

1480 INPUT I7,f«<n)

1490 END FOR n

1500 LET Ust=:n-1

1510 CLOSE il7

1520 CLS «0: 60 TO 500

1530 DEFine PROCedupe CATs CLSiDIR MDVL: END DEFine CAT 1540 DEFine PROCedupe sv: DELETE MOVLaddpf ile: SAVE MDV

l.addpfile: END DEFine sv 1550 DEFine PROCedupe fpeenen: PRINT PEEia( 163856) -PEEK

.L(163852)-1024! END DEFine fpeenen: REMapk AIIcms

free nenopy to be displayed by keying-in fpeenen as

dipect conand op as a listing connand

LISTIN6 2 - T/S Search Routine

130 PRINT "KEY LINE NO. TO SEARCH:"\

140 PRINT '1 - Title no. & f ipst nane (1Mp/M

PS 2Mp 3Mps 4Ms SMiss)' 150 PRINT '2 - Last nane' 160 PRIffT '3 - Addpess' 170 PRINT "4 - P. 0. OP city' 180 PRINT '5 - State abbpew." 190 PRINT "6 - ZIP" 200 PRM "7 - ID code op phone' 210 LET n«=INKEY$: IF a^" THEN 60 TO 210

OCrCBER 1988

■upda:

220 INPUT "Leading chr-stt in item ■j(ii$)\c4

230 INPUT 'LPRM y/n? '\yi

240 PRINT lOj'fiNY KEY FOR NEXT'

250 LET 5l=l»<ii«='l')42H<ii$="2*)*41i(ii«='3")4W»(n«='4'

)+81 »<n<=*5' ) ♦84»<ii*='4' ) ♦95i<ni«='7' ) 260 LET 52=5l4LEN<cl)-l 270 FOR n=i TO last

280 IF c^f$(n,sl TO &2) THEN 60 SUB 340 290 PAUSE 300 PRINT 310 NEXT n

320 PRINT 'SEARCH conpleted"

330 as 10: INPUT 10; 'Key BfTER for nenu or 6 to repeat '; y*s IF y1='6' THEN CLS 10: 60 TO 110

33S 60 TO 490

Invitation to participate

ARTICLES and PROGRAMS SUBMISSION

UPDATE ENCOURAGES writers to submit articles, utilities and programs for publication. The FORMAT is very relaxed. Just pay attention to the width of the pages and allow about 3/4 inch top and bottom and make the left and right margins wide enough to accommodate a 3 hole punch that does not cut out some of the text. We have enlarge and reduction capability to adjust print to fit a page. Most important is legibility. Draft quality dot matrix does not reproduce well. FVint size preference is ELITE 12 characters per inch. Pica 10 characters per inch is a< also, but please NO condensed print. If an article has illustrations, tables, schematics, pictures, figures, thats alright. Just let us know how to organize them.

Some of the print in the articles of this issue is smaller than desired because the pages were reduced to provide margins, and some of the articles have quite a bit of wasted page space due to excessive margins. But if written text can be salvaged we will do that instead of re-typing it. Solid type that is clear but faded can be enhanced at UPDATE, but draft quality dot matrix cannot, espically that produced by the TS-2040. That is all the guidance to be given. Dont want to make it too tough to participate and scare you away. The users NEED the SHARING OF KNOWLEDGE.

TS-2068 PROGRAMS and UriLITIES

PROGRAMS to publish for the TS-2068 may be LLISTED in 32 chr lines, but that is not

necessary. Each program should be supplied on 40 or 80 track disk or cassette, Oliger, Larken, or Aerco FD-68 formats are fine. SPECTRUM programs should be capable of running in the TS-2068 that is equipped with the Spectrum ROM Switch. We ESPECIALLY need programs and utilities designed for use with DISK DRIVES.

SINCLAIR QL PROGRAMS and UTILITIES

QL Programs and utilities should be supplied on either 80 track floppy or micro drive. All programs must be usable with the UNEXPANDED QL. If programs are supplied on disk, a version should be recorded that will COPY TO MICRCDRIVE and operate from micro drive. Your letter should contain enough instructions about the disk or micro drive so that the editor can load and operate.

UPDAIE welcomes QL programs which have expansion capabilities to use with the QL that has RAM expansion, but such programs should also have a micro drive version which works with the un-expanded QL.

Exceptions to the above are utilities designed to be specifically for disk drive, micro drive. Trump or Sandy, or supporting utilities for other devices.

Ful 1 Fledged Software for the QL tends- to be too long for key in projects and these programs should be accompanied with an article designed as a "mini manual". QL Utilities and short softwares can be LISTED in the magazine as key in projects and the users will get much programming knowledge from an explanation of HOW the program works.

The QL and the TS-2068 GENERAL INTEREST ARTICLES

REVIEWS of new software and equipment are welcomed. UPDATE will provide enough space for canprehensive reviews.

PROGRAMMING: Ihis is what the users ask for most and is the most flexible. The users need programming informtion ranging from "one liner tips" to simple basic programming, to advanced programming. TS-2068 users are also eager for programming information about disk drive use. QL users are asking for Super Basic programming information, ranging from beginner level to such topics as networking between two QL's, telecommunications with modems, piping data between two computers, and conversions of MS-DOS programs for use with the QL. So, let the limits of your writing be the limits of your knowledge.

48

UPDATE MAGAZI^E

CXTQBER 1988

OCTOBER 1988

UPDATE MAGAZINE

TS-2068 EXIKA MEMORY RECAP

Back in January 88, UPDATE began a series about EXTRA MEMORY. The first objective was to explore the ways and means of using EXISTING Extra Memory Hardware. Briefly these hardware devices are: Hie Oliger EPROM cartridges for Dock Bank use: Ihe 32K non volatile memory cartridge for use in the Dock and XROM banks: The Aerco FD-68 Disk Controller which contains un-assigned extra Ram 64K blocks. Recently one more addition is the LARKEN Ram Disk cartridge.

Ihe existing TS-2068 allows us to use programming to enable the Dock and XROM banks of memory when RAM or EPROM is installed in these two banks. Ihere is no automatic way of using extra memory in the TS-2068, unless such auto usage is provided for by PROGRAMMING. So, the January UPDATE delved into the programming needed to use these existing devices, which generally had not been covered in sufficient detail for the devices to be widely accepted and used. This involved "collecting" pieces of data about programming from several sources and putting together a group of utilities to allow the user to move BASIC programs or utilities into the Dock or XROM banks and operate the programs. The UPDATE series on EXTRA Memory continued in tutorial form to include Operating programs in both HOME and DOCK banks and switching from one to the other at will. Then the Disk Drive was brought into the picture and utilities developed for Auto Booting programs into Ffome RAM. followed by AUTO MOVING the program into Dock bank, and then Auto Booting another basic program into Home Bank to operate two programs at will. This effectively magnifies the SIZE of programs that the TS-2068 is capable of handling and frees up the FREE MEMORY (ram) for an extraordinary increase in DATA handling capability (within RAM).

The above represents the TOTAL capability of the TS-2068, as it was manufactured, to utilize MEMORY. We cannot go beyond using the Dock and XROM banks without re-designing the TIMEX ROM. AND, it isn't easy for a user to get that far, because the user must learn programming to do it himself. The tutorials and utilities given in UPDATE were designed to allow a person who is interested in programming to learn how to do it, and for programmers to use to develop software to operate from Extra Memory.

UPDATE realizes that many users wont delve into the detailed study needed to become profficient in using Extra Memory, and that this series is of little interest to them. But there are some who are eager to extend their programming abilities. Then there is a small group of real hackers who want to go the limit and build onto the TS-2068. So, just as UPDATE plays to the novice programmers and to those who are interested in only using software, not constructing it, we also want to fill the needs of the intrepreneur and the expert.

ENTER CHARLES BOIHNER, to extend the series on Extra Memory "to the limit". This issue brings another detailed article by Charles. In addition to his extensive project to extend Memory Addressing, (diaries has given other building schematics. One is a Auxiliary Power Supply to power external add on devices, which most of us need to prevent TS-2068 overload. I have already burned out one TS-2068 due to overloaded it with add ons. Hopefully one of our hardware builders will pick up on this need and offer a power supply that plugs on to the external Buss of the 68 and power everything else that is tagged on. WE NEED THAT!

In this issue, Charles casually verifies the previous UPDATE information about Dock and XR(DM bank transfers, and with a snort of impatience, he proceeds to the sublime, leaving most of us in a fog of miscomprehension. But not really. If you really dig in and cross reference the Timex Tech manual, things come into focus. A good many are digging this and are asking for more. We have some real technocrats using the T5-2068!

Actually, if you will notice, Charles does not apply TITLES to his works, just branch headers. If I had to coin a title, I would use: "EN(3INEERING A Z80 BASED COMPUTER". Then I might add: ("Using the TS-2068 as a Starter") . His works go beyond the UPDATE series title of Extra Memory while he stretches the Z-80 CPU to it's limit. There's a guy in England who did something similiar, and his product is called "The Sinclair Z88". I don't know where Charles Bothner is taking us, but UPDATE will continue with his works until the end. If someone really wants to learn the practical aspects of computer engineering, address coding, assembly language, and the Z-80 CPU, this is a GREAT tutorial on all of that.

UPDATE MAGAZINE

.49

OCTCBER 1988

OCrCBER 1988

EXTRA MEMORY

UPDATE MAGAZINE EXTRA MEMORY

By: Charles Bothner

SEPT. 2, 1988

Bill Jones

TS-2068 UP-DATE

1317 Stratford Avenue

Panama City, FL 32404

Dear Bill,

First of all, I v/ould like to comment on your proposed use of both the HOME and DOCK banks for programs simultaneously. The switching between these banks by manipulating bit 7 of the ARSFLG variable ©23750 should work as you described. The only known problems in the use of the DOCK bank are those described in paragraphs 6.2 and 6.3.1 of the Timex technical manual and these deal with cartridges which only use machine code. (They are easily corrected by changing the byte @0930H in the EXROM from 40fl to 5.5EI and the two bytes ®38A0H and 38A4H in the home ROM to 60H and 40H respectively. ) I have not analyzed the DOCK bank access routines in detail up to this time because I have not had any problems using the DOCK bank for any of its normal stand-alone functions.

You mentioned power problems with the 2068 and I fiigree com- pletely that extra loading on the internal power supply should be kept at a minimum. I even went so far as to relo- cate my LKDOS controller board from the cartridge slot to one of the bus expansion boards at the rear of the computer so that it would be on the external power system. The only extra loading on the internal supply is the 2 chips which were added for proper EXROM address decoding and DOCK/EXROM disabling when an expansion bank is active as described in my last article.

My present bus expansion port plug-ins are lined up as follows :

1. RGB monitor interface and phoneme speech synthesizer. (The external power supply is now connected to this board. )

2. EXROM bank expansion for chunks 1^7.

3. LKDOS controller board.

4. Expansion bank controller board.

5. Port I/O buffer board with real time clock

6. LOOS disk port board

7. 16 channel A/D board.

8. Text-to-speech board.

9. Digitalker speech synthesizer board.

10. RS-232 interface board.

11. TS 2050 Modem interface.

12. AERCO printer interface.

(You can see that I have been experimenting with several different approaches to speech synthesis for computers. )

Now let me bring you up to date on my progress in developing the expansion bank hardware and software, I have completed

UPDATE MAGAZINE

50

OCTCBER 1988

CXnXDBER 1988

EXTRA MEMORY

UPDATE MAGAZIISE EXTRA MEMORY

By: Charles Bothner

the debugging of the KXROM initialisation rou bines. The original Titnex protocol was followed in all respects except for the deletion of the routines which reassigned expansion bank numbers according to their interrupt priorities. This v/as done for several reasons. First, the interrupt service routine address field which is stored in the SYSCON table for each expansion bank is never accessed by any of the ex- isting Timex ROM code. Seoondi there is no way of currently making use of interrupts from the expansion banks without changing the interrupt mode of the Z-80 processor and if a different interrupt mode were used and the HOME bank then made active, the system would crash. Third, it is unlikely that there would ever be so many expansion banks on line that polling would present an excessive time delay within system routines.

Before I go any further on the system debugging I will refer any interested readers to the excellent 5 part series of ar- ticles by V^es Brzozowski entitled "The Mystery of the Miss- ing 253" which appeared in Time Designs Magazine starting with the July/August, 1986 issue. These articles provide a good background description of the ROM routines. These ar- ticles actually got me started on the debugging of the sys- tem ROM's,

I completed the debugging of the initialization routines dealing with the ROM (or PROM) based expansion banks over a month ago but the RAM based banks v/ere more of a problem. The RAM based expansion bank initialization routine consists of testing each chunk in the bank for the presence of RAM by means of first writing a test byte, then reading it back and comparing the read back data with the original byte to see if RAM is actually present in that chunk. This test is repeated using two different bytes to verify that there ac- tually is RAM in the chunk and not an accidental match with random garbage read back from an unused address.

The original test routine in the EXROM blithely continued chunk by chunk until chunk 3 was enabled in the expansion bank without bothering to move the O.S.RAM routines from chunk 3 in the home barik to chunk 7 so the system crashed at this point. I added the necessary code to move the O.S.RAM routines to chunk 7 prior to testing chunk 3 in the RAM banks, but the systeim still crashed. The problem this time was that the routine in the EXROM which moves the O.S.RAM code makes use of data stored in the system variables area which have not been initialized at this point in the overall system initialization sequence. The addition of some code to temporarily initialize these variables solved that problem but we were not out of the woods yet. The system now ini- tialized properly and the SYSCON table was loaded with the correct type of data but the chunk map stored in SYSCON 02 for RAM banks did not show the proper status of chunks 2 and 3 for these banks. Subsequent testing of the write and read-

UPDATE MAGAZI^E

51

OCTOBER 1988

OCTCBER 1988

EXTRA MEMORY

UPDATE MAGAZINE EXTRA MEMORY

By: Charles Bothner

back memory in these RAM bank chunks indicated that the data was being written in correctly but was read back cor- rectly approximately 10% of the time. Apparently the SCLD chip in the computer v/as somehow insisting that the home bank should retain control of chunks 2 and 3 since both of these are used for screen display storage. (Chunk 3 is only used for extended display modes. ) Attempts to override this control by means of DI software instructions and also by setting bit 6 in port FF proved fruitless. Since the inter- nal architecture of the SCLD chip is unknown, I decided to try the same type of hardware override approach that Timex used when they added the U21 circuit to tristate tv/o of the address and data buffer chips (U5 and 09) when writing to the DOCK bank. The added circuit is shown on one of the enclosed .schematics. After adding this circuit which tris- tates the buffer chips whenever chunks 2 or 3 of either the EXROM bank or expansion banks are active, the SYSCON table was correctly loaded during the initialization sequence. A copy of the SYSCON table data is enclosed along with a brief description of the function of the entries in the table. The SYSCON 03 through 17 entries for the RAM banks is whatever garbage v/as in the chunk 0 RAM at power up. It is unused data for these banks.

I am also enclosing a schematic of a LKD display add-on for the expansion bank boards which I found to be very useful to show which chunk in each bank is currently active.

As promised in my last letter to you, I am enclosing an an- notated copy of the modified O.S.RAM routines. Most of the routines have either been corrected or entirely rewritten. The only routine which is not annotated is the DISPATCH routine which serves no useful purpose at the present time. This routine will be the only one which will be entirely deleted if I can come up with some useful routines which will help make use of the expansion banks transparent to the programmer working only in BASIC. This will be one of my next projects nov/ that the debugging of the original Timex code and associated hardware seems to be complete. I want to apologize for the handwritten annotation for this table but much of this was done during extensive business travelling over the past few months. Also enclosed is on updated FIX table for the O.S.RAM code which is used by the code which moves the RAM routines back and forth between chunks 3 and 7 in the home RAM.

During my analysis of the O.S.RAM routines, I originally thought that there was an error in the CALL BANK routine. This routine is used extensively by the tape I/O routines in the original Timex ROM's, but never with any parameters passed on the stack, either in or out. Detailed analysis of the CALL BANK routine indicated that it is correct as originally written, and the called routine is responsible for cleaning up the stack by deleting the passed parameters

UPDATE MAGAZINE

52

OCTOBER 1988

OCTOBER 1988

EXTRA MEMORY

UPDATE MAGAZINE EXTRA MEMORY

By: Charles Bothner

after the data has been used by the called routine.

Prior to calling a routine in an expansion bank with parameters passed to the routine, the following items have been stored on the stack in the order indicated:

1. Bytes containing the status of expansion banks. (One byte per bank containing the active chunk map. )

2. Two bytes containing the status of ports F4 and

B'F.

3. The addresK inside the CALL BANK routine which will be returned to at the completion of the execution of the code in the expansion bank.

4. The chunk mask and bank number of the called bank.

5. The number of parameters (bytes) to be outpub bo the called routine.

The stack poinber is left pointing to item 3 when the expan- sion bank is Jumped to. I am using the following routine in the expansion bank to recover the stack space utilised by the passed parameters while preserving all Z-80 registers:

Disable interrupts. Save return addr. in IX. Save HL( overwrite return address )

Save BC( overwrite chunk mask and bank number) Make HL=SP

Point to high byte of Hi of output parameters. Get high byte of » of output parameters. Point to low byte of of output parameters. Get low byte into C Assign new SP value. Save original DE value. Offset from SP to start of parameter list. Point HL to parameters. Destination address in bank RAM for storage of parameters .

Move the parameters from the stack to the RAM in the expansion bank. Restore DE data. Get of parameters back. Save DE again. Save AF.

Point DE to top address in stack where parameters

F3

DI

DDEl

POP IX

OrTCTl LIT

C5

PUSH BC

210000

LD HL,0

39

ADD HL,SP

2B

DEC HL

46

LD B, (HL)

2B

DEC HL

4E

LD C, (HL)

F9

LD SP.HL

D5

PUSH DE

110600

LD DE,6

19

ADD HL,DE

llOOCO

LD DE,C000

EDBO

LDIR

Dl

POP DE

01

POP BC

D5

PUSH DE

F5

PUSH AF

2B

DEC HL

E5

PUSH HL

I,

UH)ATE MAGAZIKE

OCTCBER 1988

OCTCBER 1988

EXTRA MEMORY

UPDATE MAGAZINE EXTRA MEMORY

By: Charles Bothner

Dl A7

ED42

POP DE AND A SBC HL,BC

010800 LD BC, 8 EDB8 LDDR

D5 El 23 F9 Fl Dl CI El

DDES

PUSH DE POP HL INC HL LD SP,HL POP AF POP DE POP BC POP HL PUSH IX

CDxxxx CALL xxxx

FB C9

EI RET

were stored. Clear carry, if set. Offset HL by number of parameter 1 ooat i ons . 8 bytes on stack to be moved .

Move the stored register data to recover the stack space previously occupied

by the parameters. Point SP to start of the stored register locations

Restore original register values.

Put the return address on the stack.

Call the routine in the expansion bank which makes use of the passed parameters .

Enable the interrupts. Return to the CALL BANK routine.

I have also developed a routine for loading parameters onto the stack within a called expansion bank routine when the calling routine requires parameters to be input rather than output to the called routine but I will save that for next time.

A brief explanation of the exparision bank hardware operation may be m order. The following refers to the schematics which were published in your last edition. UIO, Ull, and U18 on the expansion bank controller board are used to buffer the address and data lines which are not already buffered inside the 2068, U19 provides bidirectional buffering of the aata to and from the expansion banks. U21, U3, U4, and U7 provide the full port address decoding for either reads of or writes to ports FC and FD. The port FD read function is not utilised at the present time. U17 latches the 3 high or~ S^iii-^n MDT^? '^^^^ transmitted from the computer when a

port FD WRITE command is executed. The latched data is then decoded by U13 into a one-of-eight outputs for selection of tfte appropriate expansion bank port commands.

lu ^''t^l^Tf!^^ ^""^^^ "^^^ POJ^* FC will utilize

the latched U13 output to determine the function being executed For example, a read from expansion bank port 40H llll TK u "y^ble of the currently selected banks chunk mask. The bank was selected by sending the bank number to U2 via a write to port 80H. Ul decodes the output of U2 to

5 4

UPDATE MAGAZINE OCTCBER 1988

OCTOBER 1988

EXTRA MEMORY

EXTRA MEMORY

UPDATE M^SAZI^E

By: Charles Bothner

Gelect. one of the 15 possible banks. tJ15 is used to deselect all chunks in all expansion banks either during a power up reset or by writing a 0 to port COM. 014 is used as a con- trolled deselect of chunks common to all expansion banks v/hen a specific chunk is to be reassigned to a new bank. (This is done by the BANK ENABLE routine in the home bank RAM. ) The rest of the logic on the controller board is straightforv/ard combinatorial logic to select the required control functions .

Proceeding to the schematic for the individual expansion bank boards, v/e see that U6 is used for selection of the ap- propriate chunk selection when memory read/write is active. The memory chips on the board will only be enabled if the specific chunk was previously assigned to the bank. This is determined by the state of the rJ3, U4, U9, and UIO registers. They are clocked by a write to expansion bank port 40H of the required chunk mask which is presented to the D input pins of the registers. The clear pins are directly driven by the chunk deselect outputs of rjl4 on the controller board. Ul is used to determine the status of the bfiuik. Bit 2 is read back as a low to verify that a bank is really present when testing for banks during the system initialisation. Bit 3 is used (via U8) to determine whether any chunks in the system chunk mask are currently assigned to this bank. A low indicates that one or more chunks are active In this bank and a high read back indicates that no chunks are currently assigned to the bank. U12 is used to pull the BUSISO line low whenever a chunk in the bank is ac- tually being read or written to.

This is a quick summary of overall circuit operation. I'm sure there will be questions from your readers so we will try to ansv/er them in future articles. Now that the basic system hardv/are and software are in place, the big job remaining is to develop useful software for the ROM expan- sion banks and available space in the home bank to make use of the expanded memory. Some of your readers that are familiar with the home ROM code may be able to help out on this proect.

One last item for this time. I am enclosing a disk contain- ing the clock setting and reading routines for the circuit which was shown in the last article. You can list them out on whatever printer you prefer. Next time we will start out with a listing of the debugged home ROM code.

Hote: For those readers vho bive i need.

UPDUTE Kill supply the tm Missing iteas: s incerely,

1. Copy of disk eentioned. differ or Urken ^ ^ ^ . .

formt- $5.00 for postage and bdDdliRff. ^ *

2. 26 page code listing starting at SYSCOK 5EEi hex through 683F hex. - $8. 00. (ed. )

Charles G. (Chuck) Bothner

UPDATE MAGAZINE

55

OCTOBER 1988

OCTOBER 1988

UPDATE MAGAZINE

Ihe CABLE OOLUMN

This feature column, by Bill Cable, starts with this issue. Hiere are several excellent programs in this one episode. All of these programs will be consolodated on one ISSUE DISK and ISSUE MDV CART. There is just barely enough space on one mdv cart to contain them all. This probably sets the record as the largest offering of QL software in one disk or cartridge EVER, at anything near the price.. Bill describes each in the following articles. The first article explains a lot that most of us do not know about ARCHIVE, why we should use it, and how to use it. Ihen he gives us a tutorial on using ARCHIVE. The articles following are SOFTWARE programs that are for ANY QL computer, with or without expansion devices.

The second article brirKrs the software "REFIELD" and is a mini manual on what REFIELD does and how to use it.

The thirxi article brings another software "HELPEH" which is a set of TOOLKIT functions for any QL computer.

The fourth article brings another software "SCAN" which also gives the actual listing of the program, extensively documented with REMarks for those who would like to key in the program or learn its programming.

The fifth article is about a Math program for the kids which will be included in the "Cable Disk and MDV Cart".

Bill Cable : RJR 2 Box 92 : Cornish, BE 03745 : 603 675 2216

VII Y USE ARCHIVE ?

Bill Cable

This is an open letter to all QL users to urge you to use ARCHIVE, There are many new US QL users out there plus a lot of older ones who have virtually ignored the ARCHIVE database program supplied with the QL. Maybe you took a cursory look at it and decided because it doesn't have any immediate flashy screens and it has a large set of commands that have to be learned that it wasn't worth the effort. Although it is not real flashy at first, it can be made flashy, but that is not the point. It is a workhorse. It can manipulate and organize whatever information you put into a database with amazing speed and ease of effort. Unfortunately, even if you know the language you can't do much until you enter enough information to manipulate. So it does take an effort. But you can also purchase ready made archive programs. These programs are run within the ARCHIVE environment and provide specific services to the user. You may still have to enter the data but the programs make it as easy as possible. There are several address databases available and perhaps other software as well.

I would also like to urge more programmers to use this language for program development. It works very well for complex business systems and many other applications where QL users would be willing to pay for software.

Below I will give 12 reasons to use ARCHIVE. I hope this will convince some of you nonusers to explore it a little and see what a wonderful piece of software you got for nothing. Next, I will point out a few shortcomings of