oF SINCLAIR COMPUTERS
The Sinclair QL ~a 32 bit CPU Powerhouse!
& > THE 288 unper2 is.
A Computer Without Compromise
The TS-2068 Worktoxse
fd dd a E UPI 1
DATE Magazine 1317 Stratford Ave. Fanaa City FL 32404 I Tel 904 871 3556
NEws AnD NEw Propucts
A Christmas Wish for
[] SPECTERM—64(TS—4.1)
300/1200 Terminal Software for T/S2068 On JLO, AERCO, Larken disk or tape. Only $25.00 + $2.50 S&H
i] Z2-SI/0 Bare Boards RS-232c Serial Interface for T/S2068
With EREE 2050 card Only $24.50 + $2.50 S&H
OR BOTH FOR ONLY #50.00 inc. S&H
( Ourewe 48 commauous states, $6.50 St)
LARKEN Disk Hardware: [ ] LARKEN Disk Systen
Includes LARKEN Floppy Disk Interface, LKDOS (v3) Cartridge, Operating Manual and LKDOS Utiities’ Disk. Only $120.00 + $5.00 S&H
[ ] LADOS Cartridge for JLO
Specially configured LKDOS (v.3) Cartridge that works with your JLO SAFE Disk hardware. Includes Operating Manual and LKDOS Utilities’ Disk.
Oniy $65.00 + $3.50 S&H
[ ] LARKEN Randisk led. You can add up
No BAM chips are included to 256K to this Nonvolatile Ramdisk. Easy to use as a floppy disk with LKDOS,
Only $60.00 + $3.50 S&H
This
[] Tandon TM1G1-4 Quad Disk Drives
These disk drives are brand new in factory
sealed cartons. They are double sided,
double density, 96 tpi (quad), full height
drives. They are compatible with JLO, LKDOS, AERCO and QL disk systems.
$45.00 4+ $6.00 S&H
Buy 2, Get FREE Drive Cable!
Buy 3, Get 4th for Half Price!
Buy 4, Get One Disk Drive FREE!
{ ] Cable (2dr)..512.50+52.50 S&H Hayes Compatible MODEMS
{ J] Avatex 2400 (3/12/2400)....5179 For CP/M, IBM and other systems. For T/S2068 (w/ Z-SI/O) and QL.
{ ] Avatex 1200<P> (S00/P00).... 55 <P>ocket size for the Z68.
( ] Avatex 100<E> (300/100)... 565 Great for SPECTERM-64
Epson Compatible PRINTERS
{ ] Seikosha 1200A! (120/25)..$199 { ] Seikosha 180AI (100/20)..5169 { 2 Star NX1000 (144/34)....$229
All modems add $3.50 for S&H, all printers add $10.00 for S&H (Canada double S&H on all items).
is brought to you by:
Christmas Wish List Ed Grey Enterprises
P.O. Box #2186, Inglewood, CA 90305
Info >> 213-759-7406 << Order Call The Grey Matter BBS & REP/H (213-971-6260)
INDEX UPDATE OCTOBER 1988 ISSUE
General Information CLUBS Disk Libraries 4 Boston Computer Society
Y 27 Flea tarket ; 70 CCATS Portland, OR 25 Invitation to Writers 48 Milwaukee, WI TSUG 33 Issue Disks 6, 72 SINCUS, New York 8 rertiaactead User Group a eek canada SUG re 7 28e 12 Vancouver, Canada TSUG 17 Supply Support 15, 70-73 Writer's Format 43
ADVERTISING RATE SCHEDULE--— page 77
2X APPEAL 17 SINCUS NEWS 8 PLOTTER 25 BoSTUG 27 SINC-LINK 33
QUx 40, 17
UPDATE SOFTWARE LIBRARY-~----page 74
TS-2068 Articles and Subjects QL Articles and Subjects Align Decimals ll ARCHIVE Tutorial 56 Color Screens Copy 9 _ Address File Program 44 Disk Multi Mgr (Oliger) 21 Arithmetic for Kids 64 Extra Memory Recap 49 Beginner Course 30 Extra Memory, Charles Bothner 50 CABLE Column 56 Graphics LPRINT 25 CABLE ISSUE DISK/MDV CART 69, 72 Hex Printer Dump 25 COPY MDV Cartridge 23, 31 INfeger Function 11 HELPER, Super Basic Tool Kit 63 Interface for Color Copy 9 Initializing SPEED SCREEN 23 LPRINE CHR$ 25 Initializing TK2_ 23 MAX DOS 3 Stacked DOS's 2 Microdrive Formatting 23, 30 MSCRIPT for LKDOS 34 PRINT Primer 32 ON ERR Tutorial 14 QL Tips 23 OPEN}, CLOSE#, Streams 36 . QUILL, Configure printer 31 Ckimate 20 Printer 9 QUILL, File Saver 29 PRINT USING 11 QUILL, LLISTing with 31 Round Numbers UP ll RAM EXTENSION 19 TOS DISK with 0S-64 13 REFIELD, a Major Software 60 Telecomput ing 41 SCAN, an ARCHIVE Software 65 Test Printer ° 25 Sound Experimentor 18 TAX Software to beat Deadline 15 TELECOMPULTING 17, 41 TELECOMPUTING with PACKET 42
3 TOOL KIT 2 28 UPDATE MAGAZINE TRUMP: Card ocronet 1388
HOW 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. Most gratifying are the many 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~2088 users. Around 2/3 of the subscribers are QL 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 abit 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 cane in from a2 suoscriber 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 B11], 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 SPO0S, 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 03/360 (similiar Philosophy) then being developed for the
main frame family. Two others and I built the prototype virtual cperating system at IBM Cambridge Scientific Center.
(8086)
INTEL has built a Virtual
Machine Facility into thetr 80386 chip ©
(Intel 231252~001) which now seems to be
UPDATE MAGAZINE
machine -
supported by VM/386. Perhaps when this is’ expanded to use paging and allow YM/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 Falis, OH 44221, isa croup 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 00S, Providing two disk formats and 8 “combined” DOS Tool Kit Janguage structure, much more Powerful than either
The nice part for Oliger Disk owners is that no additional hardware is needed, All they need todo jis order the SPDOS Disk ($29.95 from address given).
The nice part for the Millennia K SPOOS users is that the Oliser disk system provides a new “hardware home" for SPOOS, 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 adi the Oliger Disk, which is less
expensive than an IBM controller card,
and you will continue to be comfortable using SPDOS. Aliso 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 perpetrated upon the public. People actually develop an infertority complex over not having a “18M 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 in UPDATE, July 88 issue for backround). I have continued to use the Oliger DOS and
4 OCTOBER 1988
OCTOBER 1988
armen
Larken 00S together, and have experimented with stacking SPDOS "on top of both", THREE Disk Operating systems together. Actually the Larken DOS and SPOOS have many of the same functions. So there is not a great difference in the capabilities of “Stacked Oliger/Larken" “and "Stacked Oliger/SPDOS", so we could dub the two "MAX DOS L" and "MAX DOS S*
So, I will continue to discuss MAX DOS as the como of “Oliger OOS 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 Oliger B board. A couple of months ago I received a "loaner B board" from John Oliger. This one has a “EPROM OFF" switch, which my earlier board did mot have. The significance of this added switch in_the MAX DOS environment is that the LARKEN NMI functions will work when the OLIGER EPROY is switched OFF. BUT, to use the QLIGER NMI functions, you must remove the LKDOS Cartridge. Now we need to convince Larry Kenny to give usa 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 00S is indeed a very Powerful DOS, despite the minor NMI clash « Now I dont want this to sound like criticism, sowill lead in with with
compliments. The LKDOS EXTRA BASIC functions are SUPER! AND, so are the Oliger Extra Basic functions. 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 OQliger system's faster disk operation. This extra speed is most noticable when popping in screens from disk, MERGING in program seoments, bringing in data files from disk and saving data to disk.
The OPTIMUM disk drive situation is TWO drives. me drive is used for DISCRETE Oliger DOS use, and the other is for DISCRETE LKDOS use. Each are “assigned their drive number" by either Programing in software or by direct commands. EXAMPLE: LET/d=0 would assign drive zero as an OLIGER DISK. AND-
UPDATE MAGAZINE
UPDATE MAGAZINE TT a
PRINT #4:GO TO 1 - would assion disk i as a LKDOS disk. From then on, the system “remembers”, and a LKDOS disk command automatically accesses DRIVE 1, or a Oliger 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 Lerken or Oliger system. And, we can Format and Prepare disks in either Larken or Oliger disk formats. BUT, we also have a COMBINED SYSTEM. Programs may contain ary combination of DOS commands. Boot a screen in from the Oliger 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 sutomatically use the proper disk, as designated by the previous LET/d= and the PRINT #4:GO TO.
MAX DOS opens up tremendous Power for Programmers to use, employing all of the comand 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 00S, or SPDOS- combined with the Oliger system, it is one tremendous Disk Operating Systen. All we need is for more TS-2068 users to discover this.
THE Q& DOS
The SINCLAIR QL. DOS jis excellent. Nobody needs to feel inferior about using the Q@. 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 Orive works with the QL with nothing more than a Controller card, same es any other system, but it is less expensive than any other. Memory expansion is also less expensive. Do we need IBM Compatability?
3 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 depetids upon the program lenght 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, amd shares half of the proceeds of issue disk sales with the authors of the programs. It really isa 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 FORMATTED MOV cartridge and it will be returned with the Issue programs recorded. "Formatted" is emphasised because if the
UPDATE MAGAZINE
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. PAPER 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 priviledged.
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 sofwares. 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.
OCTOBER 1988
OCTOBER 1988
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-adorned QL computers— no memory expansion, and micro drive only as a storage device.: The 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 supporting them with custom software. Needless to say, his feet were cut from beneath when Sinclair stopped production and support of the QL. I om sure that all QOL 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
UPDATE MAGAZINE
UPDATE MAGAZINE
Issue Disks. REFIELD will also be offered for Micro Drive Dubbing. See the last page of this issue for details.
NEXT, another well known author and programmer has invaded the QL Group. Bob Hartung 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 TS-2068 while producing for the QL as well. Thats kinda like alternating between both seats of a bicycle built for two while its rolling down hill. 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 fron 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 information 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.
OCTOBER 1988
we
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 fron 1 downward. SINCUS NEWS, 1229 Rhodes Road, Jomson 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 OFFERINGS:
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 OUTSTANDING BARGAIN- UPDATE RECOMMENDS! 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 member of Sincus.
SINCUS CLONE:- TS-2068 tape copier- $6 for tape and documentation.
The SEP/OCT issue of SINCUS NEWS is in and contains some very interesting stuffin. The Editor gave UPDATE MAGAZING some very appreciated praise, for which I thank him for profusely. BUT- he didn't get everything right! He said that UPDATE is “virtually a one man show", Actually, about 75% of the red meat pages in UPDATE is contributed by GUEST WRITERS. (Count umi) 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.
UPDATE MAGAZINE
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 encompass all existing publications and all Club Newsletters. Tt'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 "Lhe North American Sinclair Society", or soma 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.
TI 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 ina 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 own club members en-mass to become members of the North American Group,
THEN, when 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 Computing 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 throm to the Officials of our current Sinclair Timex Clubs. Who will accept the challange and assume leadership for coordination? Its your move now.
OCTOBER 1988
OCTOBER 1980
JPDATE MAGAZINE
EARL V DUNNINGTON 4356 KING THEODORE DR. BOYNTON BCH.) FL 33436
PHONE .487732-6219
® SCREEN COPY IN FULL COLOR AND MORE! !
A REVIEW BY EARL DUNNINGTON
John McMichael has done it again! That is improved the capability of our 2048's by developing software that will make a full color or black and white screen COPY) when used with his interface, the OKIMATE 20 color printer, and the Okimate Commadore Plug and Print module.
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 OKI-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 lhe screen be saved on tare with the SAVE “nane” SCREENS command or the equivalent SAVE “name” CODE 16384,6712 command. The options allow you to specify color or black and white, small or large size, the horizontal position on the paper, and the number of copies to be made. After the specified number of copies has been made, you can again enter your choice of options and either use the sawe 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”.
(3 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. However there is no shading for the different colors like that produced by Zebra’s Z-PRINT @0 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 black 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 "NIGHT GUNNER" (c) Digital
- Integration. It has the following colors: whitey black, greeny yellow, blue, cyany and red. I consider the rendition of the ink colors, excellent. The instructions are
UPDATR MAGAZT NF
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.
Thd OKI-DRIVER program is strictly machine code. It loads in starting at address 64974 and is 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 nat re~ locatable and therefor is not compatable with the Zebra 0S-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 onlus 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 “Always 123 ‘Always’
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 dumps 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
OCTOBER 1988
OCTOBER 1988
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 OKIMATE 20 ($136) is an 80 column "State of the Art", square 24 pin, NLQy dot matrix, 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 printhead is removable for cleaning or re~ placement ($21,995) by the quner. 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 quality, character size (Pica, Elite, Fine, double width), Italics, Super and Subscripts, underlining, reverse printing, form feed, carriage return, line spacing, starting position, skip over perforations, and graphic modes.
The printer documentation, registra~ tion form, a color ribbon cassette, a black ribbon cassette, computer paper, a order form for supplies, and the plug in printer wodule 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.
T consider this, 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 OKIMATE 20 and the Conmmadore Plug and Print module can be purchased at TOYS R US; Service Merchandise, and Sears. Some mail order computer supply houses also carry them. Check the ads in Commadore magazines, Compute, and the Computer Shopper.
Send a legal size SASE to!
John McMichael; 1710 Palmer Dr.y 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
UPDATE MAGAZINE
probetetareteretatelolatonitetetetetetstatetetetetetsteteteteteel 8 = - NIGHT | io x > a _ GUNNER | & a S BY 2 % Red. SWIFT x e @ CIGITAL INTEGRATION 19a x
a
Se, teeny NIGHT GUNNER IS LOADING
inn : is SUtet: pene fo: © DtSttAL tNTEGRAT ION 1883.
Ssbon
Editar's note: Two screen copies were supplied, one @ B&W and another in full color. These are reproduced below if full size. Unfortunate a BSW copy cannot do Justice to the color screen so I will describe it. The darge print “NIGHT GUNNER’ is in Cyanide on a bright red background. The smaller print below is white, as ig 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 background. The colors and contrast are vivid, about what you would see on screen, but with with no gaps between dram pixel dines. Focus is sharper than a screen image. "NIGHT GUNNER" stands out on its background in a way that Jooks 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 darger area, as does other screen dumps. Only one gripe and thats against Digital Integration; "What respectable Air Force paints their aircraft YELLOW?"
10 OCTOBER 1988
VALUBEK L988
THE ROUND UP AN UPDATE PROGRAMMING TUTCRIAL
This is a program designed for UPDATE to demonstrate several abilities of dealing with numbers. FIRST, the "INI" function "ROUNDS DOWN" 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 opeation.
Next, PRIN USING is a ROM routine used with some computers to "Format a Column of Figures". Mr. Sinclair left PRINT USING out o£ 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 USING function to print the dollar sign, then print a column of figures with decimal points aligned. Also, Zerces are added when necessary.
The use of INP (INTEGER) in math calculations to assign the resultant toa 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 ina calculation. EXAMPLE: try this group of direct commands: <LET a= 1.0954><LET b=INT a> <LET c=INE (100000*(a-b)) > <PRINI c>. Floating point calc drops a tiny fraction that can be troublesome. LINE number 9710 uses a little "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 ina string. Try this EXAMPLE: <LET a=12> <LET a$=SIR$
a><PRINI a$>. Amazing, eh? Now lets go the Opposite way: <LET a$="386"><LET a=VAL aS><PRINT a>. Stupendous!! Mess around
this way with SIR$ and VAL, and you'll get good at using numbers in both simple variables and in string variables.
line 9718 does a bit of “String
Next, Some of the odd presentations of
Slicing".
UPDATE MAGAZINE
UPDATE MAGAZINE
fractions may result in B$ being ".020". To just present "cents", we chop off the last "o", Lets try that separately now: <LET b$=".020><PRINT bS$( TO 3) >. Oc: <LET b$=b$( TO 3) ><PRINI b$>. Try several other examples likes <LET b$="I LOVE THIS"><PRINE b$><LET b$=b$( TO 6) ><PRINT BS>.
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. AS carries the WHOLE dollar value and B$ carries the CENT value. Then line 9780 stops if the SUM has printed (x=1), or line 9790 returns to pick up the next input . number. ONE MORE line needs to be discussed. LINE 9700 has a second <ON 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).
{
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 USING 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-ROUTINE in your programs. Change PRINT to LPRINT 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 ROUND-UP ] ( Summing of Columns } { PSEUDO PRINT USING ]
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
11 OCTOBER 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 Number- or ""s"" for SUM
";as ON ERR GO TO 9706: STOP
9706 ON ERR RESET : IF t=0 THEN
PRINT TAB tb-5;"$";
9710 LET b=INT a: LET c=INT (100
*(a-b+.0001+.005)}: LET d=c/100
9712 IF c>99 THEN LET b=btl: LET
c=0: LET b§=".00"
9714 IF ¢>=0 AND c<l0 THEN LET b
=". O"+SIRS c
9716 IF c>9 THEN LET b$="."+SIR$
cHto"
9718 LET a$=SIR$ b: IF LEN b$>3
THEN LET b$=b${ TO 3)
9720 IF x=0 THEN LET t=ttbt(c/10
0)
9770 PRINT TAB tb~LEN a$;a$;b$
9780 IF x=1 THEN LET x=0: STOP
9790 GO TO 9700
9800 ON ERR RESET : PRINT TAB tb
743" “TAB tbh-6;"$"7.2 LET
xel: LET a=ts: GO To 9710
$500.00.
UPDATE October 1988
Sinclair 268
This 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 ig 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 bark of excellent NEW articles about the TS-2068 and the QL, enough to fill at least the next five issues. The 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, but we'll get rountuit in future issues.
wwe THE SINCLAIR 288 "lap top" COMPUTER ***
So far as I can tell, there are only praise and enthusiasm coming from the owners of the Sinclair 28a. 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 265. Lap tops come-in many varities of both eize 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
(Read “not designed to user needs") .
We have several subscribers to UPDATE who already have the 288, and I suspect thet there will
be many more on December 26.
subscriber and a Z88 Dealer, has just about fini: become a best seller to the Z89 group. for this little and powerful computer. to load any software, even though you can if you wiah to”. ever need for normal business or home is already in the "It is not possible to
“Tt will print to any printer. 4 ! q “The spread sheet capabilities are fantastic and easy to use." ‘The
few keys". the 288. the nearest printer".
memory add ons can reach 3 mega bytes, plus any operates automatically".
built in EPROM which
whether the computer is on or off". 3 be changed without the computer memory losing any data".
Why not, the Z88 will fit intoa Christmas stocking! Mike Fink, a
ished a new "Z88 Instructional Manual" which will Now Mike has built up a real head of steam (enthusiasm) I'll Quote some of his sentences: "You will never need “All of the amg that you'll computer and available by the touch of a
design or build a better word processor than ia built into
Just pull the cable out of your pocket and plug into
ramber of insertable memory cards". "It has a “It holds data in memory forever, “It operates on inexpensive pen light batteries which can
“The 288 is truly the most versatile
combination of computer design, function, and portability, in the World at this time".
As I said, Mike Fink ie an enthusiastic 788 Dealer. 80 0 UPDATE welcomes and will publish a detailed review of the Sinclair
we cannot exactly call him un-biased. 788 FROM AN OWNER ONLY. We
need to know from the horse's mouth more about this new Sinclair product, whether it isa worth
its price, and an evaluation of its operat: y several months can provide such a comprehensive review.
about this new computer?
jon. Oniy an owner who has operated the Zd8 for How about you Z86 owners telling us
(Mike Fink, 365 ¥. 39th St., NY, NY 10018-1401 )
UPDATE MAGAZINE
12 OCTOBER 1988
OCTOBER 1988
UPDATE MAGAZINE
LETTERS: Just had to show you this one (reduced 50%).
oS
LENSE,
SEND ANOTHER
SPSPRERPPHPXPIPEPLEDP PI REEL DPE LP PEPER,
SESERPSPG IPLPIPLIPLD HELP HPLD IPN RPP HPP HPN IO DHE HE HP)
VSING THE 275-644
At no time should the TOS copyright notice remain displayed; otherwise you are not properly booted up.
ROOTING UP
1. With the computer and drives off, insert 05-64 cartridge in the 2068 car- tridge port.
2. Turn on computer. The screen will clear and then display the 05-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 44 column screen.
REBOOTING
1. With a TOS disk only in drive Ay while pressing and holding the red reset button on the drives, pressand release the grey reset button on the interface.
2. Release the red button after the screen clears and the 0S-64 copyright appears on the screen.
UPDATE MAGAZINE:
Seon BAL, : DQ anjoy radiny UPDATE
YEAR OF UPDATE
$15 ENCLOSED
CARTRIDGE WITH TOS
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 308-732-6219 ot
OCTOBER 1988
OCTOBER 1988
<ON 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 NMI button on the Oliger DOS board gave me "0.K" at the screen bottom. Then LIST put the listing on screen where I discovered <ON ERR CONTINUE> 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 <ON ERR CONTINUE> 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 <ON ERR GO TO> 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 <ON ERR GO TO line>, it is best to terminate the ON ERR "whether an error exists or not". One DOS (AERCO 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 ERR 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. I'll 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
14 UPDATE MAGAZINE
UPDATE MAGAZINE
ON 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,
ERR changes any existing ON ERR
The next illustration is more complex. Here we use ON ERR almost as we would use <IF THEN>. Say you need to present on screen the "status of a data base" contained ina character array "0$()". A subscript error would occur if O$ were not dimensioned. Then you may want to know the actual Dimension of O$ array. Then you may also want to know the last "cell of O$" 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=] 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 RESET : IF n<2 THEN PRINT "O$ is not Dimensioned." 9005 IF n>2 THEN PRINT "The Dime nsion of O$ is> "; FLASH 1;"0$(" pnm1;"yne 9010 IF n>l THEN FOR n=l TO n-1: ON ERR GO TO 9020: IF O$(n)(1)= "" THEN STOP 9015 NEXT n 9020 ON ERR RESET : IF n=] THEN PRINT "O$ has no data": STOP 9025 ON ERR RESET : IF n>1 THEN PRINT "The last cell of O$ 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 O$ 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 ERR allows us to check the status of a data base "whether the data base exists or not". It is important to note that at the end of the <ON ERR> Subroutine, the <ON ERR> condition is cleared (RESET). Then any subsequent error will be reported as normal with a "report code" at the screen
OCTOBER 1988
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 Ihe Data Base is "; LEN A$;" bytes">. The ON ERR routine would be:
10 ON ERR GO TO 9000: PRINT "T
be Data Base is ";LEN a$;" bytes POWER FRIAT “ate ultinate in Support for F our Epson= as : SLOP Compatible printer with Aerco, Tasaan, or Aed parallel +"t ON ERR GO TO 9010 interface, Featuress 1002 correct LLISTings t Recurate
20 STOP : REM * The next line. 9000 ON ERR RESET : CLS : LET a$ =""2 GO TO 10 9010 ON ERR RESET : GO TO 20
If A$ has not been initialized, the ON ERR trips to line 9000. But if A$ has data the LENgth of A$ is reported and the second ON ERR designates a new line to GO TO if an excor exists. Then SLOP triggers the GO TO 9010. In either case <ON ERR RESET> clears the ON ERR programming. It might be worth noting that <ON ERR RESE> clears the error condition.
But, <ON ERR RESEI> is ignored if the error condition has already been cleared. ‘There is no adverse effect if <ON ERR RESEI> is encountered. The follow on programming in the line is executed whether or not the RESET actually reset an error or not.
CORNUCOPIA
, Myth. a horn of the goat that suckled Besar it would become full of whatever its owner wante
GETCHA MAGNIFYIN GLASSES ouT! THIS ISSUE WILL BRING SOME ANNOUNCEMENTS ABOUT SOFTWARE THAT IS AVAILABLE, NOW DONT FUSS ABOUT THE SMALL PRINT. UPDATE IS DOIN THIS AS A PUBLIC SERVICE ANO 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 IN A LITTLE COLUMN, - ED.
15,
TIPNATR MAGAZ TNR,
McBrine Computer Products
LIFE for the 182068 v. 2.0 - See John Conway’ tionary pattern-generatin ! fast a8 our original; includes 24 x 96 x 128 in one program, plus saving improved keyboard routini
aspect-ratio b/w screen dumps in 2 sizes and two resolu- tions (192 x 256 and G4-col., or 192 x 512) ¢ Text-only screen duaps (both resolutions) for speed $ Print to peony § Interrupt-driven print spooler & TOTALLY RELOC- for your printers send print code data.! 95
RAW 512 ~ Works in both 192 x 256 and 192 x 512, b/w only. Draw (w/ OVER or Circle $ Invert $ Block screens 3 ways 8 Rotate a pixel at a tioe $ Flip 4 ways t Convert back and forth tol. sodes in several ays 4 Use joystick or keyboard & Screen duaps from POWER
SUPERTOOLS - Remkill # Header reader % 60 10's and -SUB’s) § Variable duap t Progra tracer t Finder (find string in BASIC prograa) & All RELOCATABLE except tracer, part!
TS2068 SOFTWARE!
5 revolu- ase for Yonsei 3 times as 2, 48x 64, and now
and an 9.95
& loadin
! 4 Specify interface and printer, (Will custosize
INVERSE) $ Line $ Box & Square & invert $ Block erase € Merge (scroll) screen in 8 directions, left/right or upidown % Mirror
etween S2-col. and 64~
RINTe sees IS
(with
Renuaber
y relocatable.s.sssesee
Postage paid on all orders $ Check or Honey Order SEND LSASE FOR FREE CATALOG!
NcBrine Coaputer Products 514 S. Jackson St. $ Salisbury, NC 28144
‘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. This is an unpleasant way of introducing you to a DEALER of SPECIALIZED SOFTWARE for the QL.
Peter Hale, of EMSOFT has announced the 1968 version of "TAX-I-QL", which has a template for your PSION ABASCUS Software. The TAX-I-QL program produces most of the IRS form schedules that you need, plus common forms and worksheets, Your taxes are computed 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 EMSOFT titles are “MAILBAG", an address data base, "QLAND_LORD", which completely manages up to 99 property rental units and produces the required IRS Schedule E. Another is "TRUST_FUND" to manage your investments.
All EMSOFT 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 9763, Boston, MA 02114-8763 (tel 617 689 0830).
OCTOBER 1988
UPDATE MAGAZINE
‘ARCHIVE Database 1s @ ponertul, flexible and unique program that wan suppiied am a “bonus" with mont new GL computer systens. : However, due to it's complexitity EMSOFT and lack of complete documentation, jerhape the most misunderstood software for the QL up until now.
from Executive Workshop. : ARCHIVE MASTER explores all of the SOFTWARE CATALOG
inner workings of ARCHIVE, and containg tips & tricks ta help
you make ARCHIVE an even mare APPLICATIONS SOFTWARE for the QL powerful tool for personal use and
Complete procedures are
to set up an Inventory MAILBAG Address database you won't program, a Customer/Suppiier #11 believe. 256K+ an Accounts Recetvable/Invoicing TAX-I-QL Spreadsheet for IRS 334K+
QLAND_LORD Manages up to 99 units and does Sched E (fgeh> 256K+ TRUST_PUND Tracks investments and net worth (Soon) 256K+
Order your copy from:
RNG ENTERPRISES sate renee acces Agents for ZX/TS SirtusWare
oreson City, OR 97045 4K Vord processor with (303) 655-7484 TS 2040 lowercase printer driver
Ordere, Catalogues and Dealer info: PROMISE LAND ELECTRONICS Dan Elliott, Owner
ite Management Se Bacon on, P.O, Box 8763, Boston, MA 02114-8763 (617) 889-0830
Servicing conputenszeo electronic equipment
| __ COMPUTERS / MODULES 7 PRINTERS / HONITORS
Ticinibyob? estas = caaisea’ “asin coleco ADA 11-99/44 comecdore 128 THE Z88 UNDER 2 LBS. REPAIRS / UPGRADES / NSSEMBLING / TESTING A Computer Without Compromise
Weite for prices: Dan Elliott Route |, Box 117 Cabool, MO 65689
Ph. (314) 739-1712 evenings, Sunday - Thuraday. Ph. (417) 469-4571 weekends.
od bd dl a ood a tad bad al “cad el etd tl tad Ob tad ed tab ed Md nd od wild “ed's vd a wd dd ed
* Where isptops compromise on diapity and RAM capacity fo achieve portapiity, and dethiops seem t
computer with the power to address 4 Mbytes of memory * A computer with 2 work-free dlepiay of 8 lines of 80charociers, an LCD creer ‘which outéates afl others, and # unique dynemi page mep on screen + A computer with told-statepermenentatomge * Acomputer with advanced word-processing. spreadsheet land Ingenious lime- and date-menagament softwere buill-n + A compuler whlch Is completely set! contained, which gives you up fo 20 hours active computing from justd AA Datleries, yet which elke and eters to your 18M + A computer with « lul-aize keyboerd, ine package lass than the size of an 8x11, witha fota! weight of fees than2 Ibe. + The ZB8, A
Computer without compromise,
2.88 Computer sr00 SERIALIOPARALLELUF $4595
Pete 2-08 iniwe “800 v2 mea. ane 8008
Eoxnant pes DATABASE SW 1998
3x EPROM nes CARRYING CASE 1985,
Q_LInNK - 126K RAM e895 (2-88 MAGAZINE 500
The Ultimate Qi Terminal ‘128K EPROM 9905 MODEM S/W 0995 5232 LEAD : 1995
US819.95 + 3.00 shipping S8SHIPPING ONZ-48 VISAMC Aceepled wind aurcharge C.O.D charge $2 25 here are any
Cspecify medium] questions, (ete fo call or wee
Hote Kedia, erosuetione SHARP'S, INC. =)
Route 10 Box 459 Vancouver BC Mechanicawta, VA 23111 41038 or meagre nariog
Canada VSZ 179 (808) 746-1564 Burchegeoncresteoos
UPDATE MAGAZINE 16 OCTOBER 1988
§S
a y e
VENCOUVer Simclsir : Uses Sour
was named #2 BEST CLUB
UPDATE MAGAZINE
YEAS
The Vancouver Sinctair Users Group hes been in exislence since 1982. We are a support group for the owners and users of all SINCLAIR end TIMEX computers.
Pres:-Gerd Breunung, PH#(604) 931-5509 ‘V/Pres:- Glenn Read
Sec- Harvey Taylor
‘Treas. & N/L Edltor- Rod Humphreys
Our membership dues are only $15.00/year and may be sent to
the Treasurer:
Rod Itumphreys 2006 Elighview Place Port Moody, B.C, V3H INS.
Members of VSUG receive « monthly Issue of ZXAppeal - our newsletter.
ZXAppeal accepts sdvertising. Our “PREPAID rates are: $10.00 — full page
$8.00—1/2 page $5.00 —1/4 page
ZX-APPEAL ZXAppeal ts dintributed to approx 30 other SINCLAIR User Fi = i Ee Groups throughout North Amerion 1s well as overseas via the publication by Time Designs NETWORK. NETWORK correspondence may be directed to the panel. See re-print articles in Bulltor at tha above addrees- i. 7 5 : Copyright of all aiticles appesiing in ZXAppeal is retained by - thas “ieee... ed Garrat de uchel ing at ate 1s Une Googe
aay peprint any axtiele appearing In ZXAppeal provided credit Is given to the suthor and VSUG.
Reprinted from the May/88 issue of the Nite-Time News - the N/L of the Chicago Area T/S Users Group
TELECOMMUNICATIONS ON THE QL By Michael Mitchell (Reprinted frou C21)
The QL for all its pover and versitility is linited in teleconaunicating at 360 baud vithout a hardware link betveen (he serial port and the nodes. The following progran which appeared in the Data Expansion or the Oallas/Fort Vorth group vill get you on Line to a TNC ot a telephone at 346 (or even
1200) baud.
1 RERark 3090/1200 baud terninal 205 PRINT#O,,"Re-runfQuil! (+/@)°
7 Retiark NIKE_TERA 21@) TF TNKEYS(-L)=**R® THEN RUR: ELSE STOP
9 Retark Qeveloped by 220 OEFine PROCedure terainal
4 Retark Hichael Mitebell 230 REPeat key_loop
§ Renark attribution requested 240 as CODECANKEYS(15, 0) )88L8
§ REMark SinclairéTisex User Group 250 IF aci3 THEN PRIAT
7 AEKark Boston Coaputer Society 260° IF as? TREN SEEP 2468, 18 180 WINDOW 465,204,6,8 27¢ FY) THEN PRINT CHRSCa) 105 BORDER 1,0,7: L8e1z7 280 b=CODECINKEY#) 118 CLS: POKE 169976, 255: cLste 296 IF b=248 THER EXIT key_loop 126 PRENTE®, "Choose Baud! Hel20¢, L=90¢ 306 IF be285 THEN D=@
aan : 310 TF bed THEN NEXT key loop
13@ IF INKEYS(-1)22*R" THEN BAUD 1208: ELSE BAVD 300 320 IF bel THEN b=13 i
14@ CLSRO: OPENNS, SERZi
PRINTED, ,“FS2QUITS, "ALT“C=°C","“G=BELL” 166 REPEAT TERA
17@ TEANIMAL; PRINTEO. 180 EF ENKEYS(-1)=
(58
230° IF e208 THEN be? 34¢ PRINTS, CHRSCD); 350 END RePeat key_loop 360 RETurn
378- EMD DEFine Lerniaat
Exit ty/nI* 'Y* THEN EXIT tere
190 END REPLera
266 CLOSERS
Save as NIEE_TERN bas
17
UPDATE MAGAZINE
OCTOBER 1988
OCTOBER 1988
Reprinted from ZX-APPEA
command. This has 8
| arguments, all of which are obscure. The only way to produce something vaguely melodic is by trial and error.
Sound Experimentor Rob Miles
Unlike most home computers the QLhas a very limited noise making capability. What there is can only be dragged out by The following quickie allows using the enigmatic BEEP you to do exactly this.
100 REMark ##*#* OL User -Beep experiment
110 REMark #***# Rob Miles 1985
120 duration=S000:pitch#100; pitch _2#0:grad_xevrgra d_y#0:wraped: fuzzy=O:random=s9
130 REPeat sounder
140 CLS 150) set 160 set 17 set 180 set 19) sek 200 set
“Duration 2?" duration,2
“Pitch (0..255) 7 “Pitch 2 (0..255) ?” "Grad_x i-32768..15) “Grad _y (-8..7) ?",grad v.10 “Wrap (0..32767) ?"“.wrap,12
210 set "Fuzzy (0..15) ?",fuzzy.14
B20 set "Random (0..15) ?",random,1&
230 AT 18,0:PRINT "Beep “s:duration:","spitcny"."sp itch _2:","sgrad_xi","s;grad_ys","swrap:","sfuzzys"y “srandom
240 BEEP duration,pitch,pitch_2,grad_x,grad_y,wrap yfuzzy,random
250 dum$sINeEYs (-1)
260 END REPeat sounder 270 DEFine PROCedure set 280 LOCal buf#
290 AT position,O:PRINT names;" "svar 300 AT position,O:PRINT names;" “5 SiO INPUT buts 320 ITF bufseo"" THEN varsbufs
(-32768..32767)
(name#,var position?)
“svars"
330 AT position,Oz:PRINT names”
340 END DEFine set
Easel Print an dump provided with EASEL. D Duncan All you need isan EPSON
The following 7 liner shows’
compatible printer and the
exactly how touse the graphics | EASEL cartridge in mdv2.
120 MODE 8: PAPER 2:CLS
130 FOR n=l TO 150 *
149 INK 7:FILL 2:CIRCLE n,50,20,.5,-n/2 150 INK 2:F1ILL O:CIRCLE n,50,20,.5,-n/2 160 NEXT n ;
170 REMark Dump to Epson printer
180 a=RESPR(1024):LBYTES mdv2_gprint_prt,a 19 CALL a: OPEN #3,serl:LIST #3:CLOSE #3
18 UPDATE MAGAZINE
UPDATE MAGAZINE
OCTOBER 1988
OCTOBER 1988
QL RAM extension
UPDATE MAGAZINE
Re-print from Z2X-APPEAL
Sinclair's QL has as standard a 128 K RAM, which sounds like a lot in com- parison with most 64K 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 68008. 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 8MHz CPU that regularly has to carry out a wait cycle is appreciably slower than a 7.5 MHz typel
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 DIACK 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 DIACK 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 8S250, in which case resistor A, can be omitted and
UPDATE MAGAZINE
FR, 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 Aig 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 a9 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!
eektor jly/august
!
EEECEZE gf
Eorer? a92e28
FEY = 6iC2 = 74LS74 Io KtCS « 74LSI2
OCTOBER 1988
Re-print from ZX-APPEAL
-the N/L of the Greater Cleveland Sinclair User Group
Reprinted from the Jan/Feb issue of The Ramtop
The Truap Card is siaply the most useful single addilion you caa get for the Sinclair QL. It combines a disk interface, 7628 kilobyte RAN expansion, Toolkit If for SuperBASIC extensions, a screen dump, static and dynanic randisks and a dynamic printer bulfer, When you consider that even the lowest cost $12 Kb RAN expansion and a disk interface will cost al least $25¢, and Toolkit 11 costs $70, the Truap Card is a bargain at $309.95. The entire unit only sticks oul about three inches from the expansion port side of the QL, so it’s compact. I got mine from Curry Computer in Glendale, Arizona.
The disk interface is pretty standard fare. It will allow you to store information on any combination of forty and eighty track drives, single sided or double sided, § 1/4" or 3 1/2”. The interface is fairly intelligent in that it will pick up on what format the disk was created in automatically. For example, if you have a 90 track, § 1/4" double sided drive, the interface will automatically read frou a 40 track, single sided disk. Of course, you can't wake 2 single sided drive read from a double sided disk, or pul a3 1/2" (loppy ina 5 1/4" drive since the inlerface can't change the liaitations of your disk drives. But if you have an 80 (rack $ 1/4" double sided drive, you'll be able to read any disk with the exception of 3 1/2" disks. The interface is only able to support lwo floppy disk drives. That's ils only shortconing as far as I'a concerned.
The 768 Kb RAN expansion maxes out the QL. Added to the 128 Kb that are built into the @L, you have a whopping 896 Kb of RAN. (While the 68¢68 CPU can address 1 Nb of RAM, 128 Kb of seaory in the QL are reserved for device addresses and ROMs.) You'll have rooa to run any prograa that has ever been written for the QL - probably several copies of the progras. This can be very helpful on a pultitasking machine like the QL. You'll also have plenty of room for raadisks too.
The randisking capabilities of the Trump Card are really neat. The raadisks cone in vo varieties, static and dynasic. The difference is that the static randisk has to be formatted, alaost like a nicrodrive cartridge, and the dynamic raadisk can be created by just using the device nase. For example, to create a static randisk with two hundred, $12 byte blocks of space, just enter:
FORMAT RANI 200
A100 Kb section of memory vill be set aside for use by the aathine to use just like a microdrive or floppy disk, but will be located in fast RAM, To create a file in dynamic ram, it's dust as sisple as using the device's nane. To copy a file to raedisk raa3_ just enter:
COPY dev filenane to RAN3_filenase
A bES of aenory will be set aside in RAM as ran3_filenase. it will grow only large enough to hold the f1le(s) that have been send to ram3_. The difference between the static and the dynamic randisks is that the dynanic raadisks are aore likely to fragnent the aenory of the Ql. If the menory becoses sufficiently fragmented, it can degrade the perforsance of the
UPDATE MAGAZINE
UPDATE MAGAZINE
The Trump Card
by David Hoshdr
aachine because the operating systen vill have to scrounge around to find blocks of neaory. Up to eight randisks can used with the Truap Card. One other neal feature of the raadis. is thab it can aake a very fast (age of everything on a aicrodrive. It vill copy everything on the sicrodrive in just about fifteen seconds.
One of ay favorite features of the Trump Card fs its printer buffer. [t's a snap to use and can reably save tine. fn its sinplest form, you just use the device naae "PRI instead of "SER". What happens is that whatever you are sending to the printer is sent in its entirety to a buffer in RAN. The Qt then sends bytes to the printer as a background task. The advantage to this is that you can return aluost inwediately to an editing session if you senda file to “PRI* from The Editor or Quill. If you send a file to “SER* from an editor, you aust walt uatll 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 nethod of changing the davice that you vant lo have the ‘PRI* 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 dump is pretty good. It supports about any Epson dot aatrix printer plus a few olher printers including the Brother HR4, Olivetti JPIOL, Selkosha GP-10A, GP-250K, and GP-700A, and the Canon P/1080A. You can specify what section of the screen te copy, and there Is a provision (or using a hotkey’ to copy any*sceeen from any prograa that you night be tuning. There's also documentation on hoy to open @ printer device and gel a printer dunp from prograas written in near any conputer Language ~ not just SuperASIC. I've tried it fron *C" and it does vork.
Toolkit [1 is a collection of SuperASIC extensions. Sone of then are such wore useful than others, but on the vhole, they are very vorthvhile. To ae, sone of Toolkit's aost useful commands are "ed", a screen based SuperBASIC editor; “vcopy’, @ file copier that allows the use of wildcards; ‘wstal’, a vildcard directory command that also provides the file size and last update tine of (Iles; “spl{*, another printer buffer or rather ‘spooler thal vorks greal when used vith “prt*; and an ascortnent of jeb control comnands shat allow the user to aonitor, change the stalus of, and remove jobs that are the in the QL. Toolkit IL allows the use of default directories, has clock features including alarm clock(s), has iaproved SuperBASIC error handling, peraits the user to define “hotkeys”, altkey/ single key combinations to enter large strings or commonly used conmands, and has an easy way to repeat of the last command typed. Soue of the sore obscure comeands deal vith networking, direct unbuffered access to the various i/o devices, and senory aanagesent conaands. Al in all, its a pretty fapressive array of extensions to SuperBASIC. Once you start using the Toolkit TI commands, you'll never want te use a sachine vithout thee. fn additional benefit of having Toolkit [1 fitted on the Truap Card is that it leaves the ROM cartridge slot on the back of the QL free for other A0Xs.
When you consider the features that the Trump Card offers, ~ feel that it {s an unbeatable conbination.
2.0
OCTOBER 1988
OCTOBER 1988
A MULTI_MANA
Bob Hartung, 2416 N. Co. Line, Huntertown, IN 46748
Since the final additions have been made to SAFE DOS, I have had several requests to write a "do-all" disk man- agement program that includes all these features, plus the file-indexing provided by DOS_DEX and AUTO_DEX. It seemed to me to be more practical to call these file- indexing routines and the disk-verity routine from the initial <LOAD) menu and from the MULTILMANAGER 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 AUTOLDEX, the original DOS_DEX was re- vised to save DATA c$() 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, 1 utilized the UDG file for this, eg: POKE USR "D and PEEK USR “d* which saves several bytes compared to using the usual PEEK/POKE syntax. The underlined "D* 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 REM byte may be changed to a 14 to allow for a LET m=SGN PI definition before the DIM c¢ (VAL "178",VAL "20"). An easy way to do this with the original DOS_DEX listing is to insert a line 6 STOP. Key RUN, then POKE (at7),i4. Remove line 6, make the m definition between CLEAR and DIM c$() 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 O 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, O 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 $00S v2.52, 1 found that the CHR$ 229 " RESTORE " test I had used in the original AUTO_DEX, VERI_DISK, and MARK_MOVE listings would not work after an ERASE had been used on a disk. Upon checking with John Oliger, I learned that a CHRS 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)) VAL "127" vee oP TF CODE c$¢k)) VAL "127"... or IF CODE c$(H)) VAL "127" or IF CODE c${m)) VAL "127"...
UPDATE MAGAZINE
ad
UPDATE MAGAZINE.
The MULTILMANAGER listing does not utilize the fast FOR/ NEXT loop either, so when entering the listing be sure that the eighth byte of the line L REM is an 8 and not @ 14 as described previously if you are starting with a copy of the DOS.DEX machine code in line 1 REM. 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 MOVE / command to transfer an entire disk must be used only with identical drives, otherwise the MARKMOVE method is the only safe way to do it. The MULTILMANAGER menu assumes that DOS_DEX resides in file zero and that AUTOLDEX and VERI_DISK are on the same disk, preferably with AUTO_DEX in file 1.
These routines are available on an UPDATE issue disk.
TWO-DRIVE DOS_DEX WITH DATA-SAVE
OREM STEP 2#K\?? FOR ! &? CLOSE #
1 POKE USR "D",SGN PIs LET /d-NOT PI
2 CLEAR : DIM c$(VAL "178" ,VAL "28": LET t=VAL "10": LET s=SGN Pl: LET wests: LET o-NOT Pl: LET d=PEEK USR * Pa
5 LET a=VAL "PEEK 23635+PEEK 23636%25445": LET c=INT (a/VAL "256"): POKE VAL "23549" ,VAL "195": POKE VAL "235 58" a-(caVAL °256"): POKE VAL "23551",c: LET 4i=USR VAL "23549": LET rowew: LET col=VAL "9": LET ng=c$(VAL "178" + 10 VAL '16")
26 LET at
+ DIM #$CVAL "6" ,w): LET #$(w)=" DATA a's
LET #$(INT PI)=" DATA 3": LET L 'S")="ABS ": LET #$(VAL "6 308 CLS
PRINT AT 0,0;" Disk#";d-s; + NEXT CAT SAVE LOAD (1)4"; ET c=INT (fiAAL "18"): ‘et difsINT (CFI VAL "18"-c) VAL "18"#VAL ".4"): LET loop=VAL "17": ON ER R GO TO VAL "700"
410 LET q$="p*: LET ites: IF loop)=fi THEN LET loop=ti:
60 TO VAL "425"
415 FOR i=s TO cs FOR n=o TD loop: PRINT AT rowtm, tya$; AT rowtm,t-LEN STRS itsity" "yc8Cit, TO ths" ";#S(CODE c $Cit,VAL "11")45): LET itsites: NEXT m: 60 SUB VAL "586" 2 NEXT is FOR i=s+s TO VAL "19": PRINT AT i, tja$s NEXT i + IF NOT dif THEN GO TO VAL "418"
425 IF £ THEN FOR m=o 10 dif-s: PRINT AT rowtm,t;a$jAT rowim, t-LEN STRE itjity" "gcSCit, TO tds" *p#S(CODE c¥(i t,VAL "J1")4s): LET itsittss NEXT m: IF loop)=#i THEN LE T #0
427 IF NOT ¢ THEN LET it=fits
438 60 SUB VAL "588": GO TO VAL "418°
300 FOR L=o TO m-s: PRINT AT row+L,col-w;" "; INVERSE 55°)" IF q$<)*" THEN FOR a=s 10 PItPI: NEXT a: LET q$="
518 LET a$=INKEY$: IF a$="" THEN LET q3="p* "318"
528 IF CODE a$=VAL "13" THEN 60 TO VAL "688"
ai to; *DOSDEX
260 10 VAL
OCTOBER 1988
OCTOBER 1988
522 IF a$="C* THEN LET /d=s: OPEN #w,"P*: CAT : CLOSE # w: LET /d0: 60 10 w
524 IF a$="L" OR a$="1" THEN LOAD /STR$ d DATA c$(): LE T nd=c$VAL "178", TO VAL 16"): LET d=CODE c$(VAL 7177" d+ LET fi=CODE c$(VAL "177" ,w): GO TO VAL "388"
526 IF a$=*S* THEN LET d=dés: POKE USR ‘D' yd: LET c#VA L '177",s)=CHRS ds LET c$(VAL "177" w)=CHRS fi: SAVE //S TR (d-s) DATA c$(): 60 TO w
528 IF a$="N* THEN INPUT * INPUT NEXT #*;d: POKE USR *D ".d: 60 10 w
538 PRINT AT row+L ,col-w;"
"RETURN
608 ON ERR RESET « CLS : LET pos=it-m+L: LET d$=c3(pos,
TO t): LET a=CODE c$(pos, tts): IF NOT a THEN LOAD /dt
618 IF a=s THEN LOAD /d$ DATA n()
626 IF a=w THEN LOAD /d$ DATA n$<)
638 IF a=INT PI THEN LOAD /d$CODE
648 IF a=wtw THEN LOAD /d$ABS
656 IF a=VAL *5* THEN LOAD /dSVAL
788 ON ERR RESET : PRINT SNOT PI; FLASH SGN PI;" FILE N OT FOUND ": PAUSE VAL "188": GO TO SON PI
“: NEXT L: LET a$="
MULTI_MANAGER
1 REM STEP 23K\?? FOR ! & CLOSE #
2: 0N ERR RESET : CLEAR : DIM c$(VAL "178",VAL 28"): LET s=SGN Pl: DIM m$(VAL "177",s): LET f=VAL '4": LET t= VAL '18": LET o-NOT PIs LET a$="": INK VAL "7": PAPER oz
BORDER o: CLS
3 PRINT TAB t;"NULTI-MANAGER*‘/TAB £;"1 - Mark/nove ¢ iles";TAB #;"2 - Move ALL files*;TAB #;"3 ~ Re-nane file S";TAB £;"4 - Re-nane disk";TAB 4;"5 - ERASE files" ;TAB 3° ~ VERI_DISK";TAB #;'7 - DOS.DEX";TAB #;"8 - AUTOLDE X";TAB £;"9 - SAVE MULTILMGR';TAB 4;°@ - LPRINT CAT *: P AUSE o: LET opt=CODE INKEY$-48: IF opt)? THEN GD 10 5
10 IF opt= THEN LOAD /"VERI_DISK"
15 IF opt=7 THEN LOAD
26 IF opt=8 THEN LOAD /*AUTO_DEX"
25 IF opt=9 THEN CLEAR : SAVE /*MULTILMGR" LINE 2: GO 102
38 IF opt=o THEN INPUT "Printer ON, then key ENTER ‘sa $: LET /p=o: OPEN #2,"P"; CAT : CLOSE #2: LET /p=t: 60 T 02
35 DIM #$(VAL "6" sts): LET £8(s4s)=" DATA n's LET £8¢ INT PID=" DATA $": LET f$(VAL "4")="CODE ": LET #$<VAL * S*)="ABS ": LET 4$(VAL *S")="VAL *
48 INPUT "No. of SOURCE drive (8-3): “ssource’"No. of DESTINATION drive (8-3): "jdest: IF source=dest OR sourc 2)3 OR dest)3 THEN GO TO 48
45 LET s#="Place source disk in DRIVE "+STR¢ sourcet® & target disk in DRIVE '+STR$ dest: LET kS="KEY ENTER T or
‘58 PRINT #ojst;" Key any CHR$ 10 CAT source d isk or Key ENTER TO NOT CAT ": LET /d=source: PAUSE o: 1 F CODE INKEY$<>VAL *13" THEN OPEN 42,'P"; CAT : CLOSE #2
60 IF opt=1 OR opt=2 THEN INPUT "*: PRINT AT 0, t;"FILE MOVE" #05" FORMAT target disk (drive #;dest;") — y/n?* + PAUSE o: IF INKEY$="y" THEN INPUT " INPUT FORMAT + ¢ itle to arras"ja$: LET /d=dest: FORMAT /a$: LET /cesourc
UPDATE MAGAZINE
22
UPDATE MAGAZINE
e: OPEN 42,"P": CAT : CLOSE #2: PAUSE 308 65 IF opt=2 THEN INPUT "Key ENTER for DEFAULT t (track
s) OR enter no. of tracks to moves ";t4: IF t$<>"* THEN LET /t=VAL t$: MOVE /: LET /t=83: GO TO 2: REN Make t re-set defini tion=default
70 IF opt=2 THEN INPUT (s$’k$);" MOVE ALL FILES "ja: LET /dsource: MOVE /: 60 T0 2
75 IF opt=5 THEN CLS : PRINT AT 19,03"Mark ONLY last # ile to ERASE andrepeat for any others -- Key 7 to
proceed": PAUSE o: IF INKEY$<)*7" THEN 60 TO 2
88 CLS + IF opt=s THEN PRINT AT 20,5;"Key N to auto-ma
TK ALL files": PAUSE o: LET a$=INKEY$: IF a$="N* THEN FO
R nes 10 177: IF CODE c$(m)VAL "127" THEN GO TO 98
85 IF opt=s AND a$="M" THEN LET md(m)=" ": NEXT mm: 60 70 98
98 CLS : PRINT Ho;"Key:SPACE to mark CHR$ to review® t @ revise "tk$+(" MOVE " AND opt=1)+(*RE-NANE™ AND opt=3) +¢" ERASE * AND opt=5)
168 PRINT AT 20,5,,: LET a$=""s DRAW INK s;VAL "255",0:
DRAW INK s30,VAL "175": DRAW INK s;VAL '-255",0: DRAW I NK 550,VAL "-175"
208 LET a=VAL "PEEK 23435+PEEK 23636%256¢5": LET c=INT CaMVAL °256"): POKE VAL "23549" ,VAL "195": POKE VAL "235 58*,a-(c#VAL "256"): POKE VAL °23551",c: LET fi5USR VAL "23549": LET rowests: LET col=VAL "9": LET n$=c$<VAL "17 8", TO VAL "16")
218 IF opt=4 THEN PRINT AT t,;"RE-NAME DISK in drive #
*ssource: INPUT "OLD disk name: "s<n¢)“*NEW disk name; ” sb$: LET /desource: RESTORE /b$: GO 10 2
300 IF n$(LEN n$)=" * THEN LET n$=n$¢ TO LEN n¢-s): 60 TO VAL "388"
320 PRINT AT 0,VAL '16"-(LEN n$/VAL '2"); OVER 5; INK V AL "5" y0$;AT o,VAL "8"; OVER 53" "5 PAPER
C)
405 LET L=o: LET f=s: LET c=INT (fiAAL 18"): LET dif= INT (Cfi/VAL "18"-c)3VAL "18"#VAL *.4"): LET loop=VAL "1 a
418 LET g$="p": LET ites: IF loopd=#i THEN LET loop=fi: G0 TO VAL *425"
415 FOR i=s 10 cz FOR mo TO loop: PRINT AT rowtm,t-f3a S;AT rowtm,t-LEN STRE it;itin$ (it) scSCit, TO tds" "3 #9(C ODE c$Cit,VAL "£1")41): LET itsitts: NEXT m: 60 SUB VAL "500": NEXT i: FOR i=sts TO VAL "19": PRINT AT i,t-f;a$: NEXT i: IF NOT dif THEN 60 70 VAL "418"
425 IF £ THEN FOR mo TO dif-s: PRINT AT rowim,t-¢ja$;A T rowtm,t-LEN STRS itzitim$(it) sc$Cit, TO ts" ";4$¢CODE C#Cit MAL "11")41)s LET iteitts: NEXT m: IF loop)=#i TH EN LET 450 427 IF NOT # THEN LET it=tits 436 60 SUB VAL "508": GO TO VAL "418"
388 FOR L=o TO m-s: PRINT AT rowtL,col; INVERSE s;">": IF q$(>"* THEN FOR a=s TO PItPI: NEXT a: LET q$=""
Si LET a$=INKEY$: IF a$="* THEN LET q$="p": GO TD VAL "sie"
512 IF at="8" THEN LET n$(it-m+L)=" 's PRINT AT rawiL,c ol4SGN PI;" *
S15 IF at=* * THEN LET n$(it-m#L)=" ‘2 PRINT AT row#L,c o+SGN PI;
520 IF a$=CHR$ VAL '13" THEN GO TO VAL "558"
OCTOBER 1988
": NEXT L: LET ag="
‘530 PRINT AT rowtL col-s-s3* "RETURN
558 GO TD 88#(opt=1)+786#( opt=3)+8883( opt=5)
686 BORDER VAL "7": PAPER VAL ‘7": INK o: CLS + INPUT ¢ 5$)/(k$) ;"start MOVE "ja$: CLS : PRINT FLASH s;" NOVING!
DO NOT STOP till end *
681 FOR M=s TO VAL "177"
602 IF CODE c$<M))VAL "127" THEN 60 TO VAL *678°
605 PRINT AT t,t;?File: "3a
618 LET dé=c$(M, 10 t): LET a=CODE c$(M,VAL 11"): IFN OT a AND m$<M)=" " THEN MOVE /d$ TO dest
615 IF a=s AND a$(M)=" " THEN MOVE /d$ DATA TO dest
628 IF a=VAL "2" AND n$(M)=" * THEN MOVE /d$ DATA $ TO dest
$38 IF asINT PI AND m$<(N)=" * THEN MOVE /dSCODE TO dest 648 1F a-VAL "4" AND m$(M)=" " THEN MOVE /d$ABS TO dest 650 IF a=VAL "5" AND m$(M)=" * THEN MOVE /dSVAL TO dest 668 NEXT M
676 PRINT AT 0,0,,AT t,t FLASH 15" MOVE OVER *: INPUT (h$);" NEXT MOVE '’" 7 FOR MENU "3a%: IF at="* THEN P APER o: BORDER o: INK 7: DIM m$(177,5): 60 10 98
688 RUN
708 REM Re-nane files
702 LET o$="0id name: *: LET n$="New name: "
785 FOR n=1 10 178
788 IF CODE c${M))VAL "127" THEN 60 TO 9999
716 LET dé=c$(H, TO t)s LET a=CODE c$(M,VAL "11"): IFN OT a AND a$(N)=" * THEN INPUT (o$;d$)’<n$) ;b$s RESTORE / d$ 10 bs
715 IF ass AND m$(M)=" " THEN INPUT (o$;d$)“(n$) sb$: RE STORE /d$ DATA TO b$
720 IF a=sts AND m$(M)=" * THEN INPUT (o$c$)/ (n$) bs RESTORE /d$ DATA $ TO b$
730 IF a=INT PI AND m${M)="_" THEN INPUT (0$;d$)/(n$) jb ‘4: RESTORE /d$CODE TO bs
748 IF a=VAL °4" AND a$(M)=" * THEN INPUT (od 36)’ (n$) 3 b$: RESTORE /d$ABS TO bs
758 IF a=VAL "5" AND n${M)=" © THEN INPUT (0%; d$)/(n$); b$: RESTORE /dSVAL TO bs
768 NEXT M
778 GO T0 9999
806 REM Erase files
802 FOR N=1 70 178
885 IF CODE c$<M))VAL "127" THEN 60 TO 9999
810 LET dS=cS(M, TD t): LET a=CODE c$(N,VAL "11"): IFN OT a AND n$(M)=" * THEN ERASE /d$
15 IF a=s AND n$(M)=" * THEN ERASE /d$ DATA
826 IF a=sts AND n$(M)=" * THEN ERASE /d$ DATA $
830 IF a=INT PI AND m$(M)=" * THEN ERASE /d$CODE
840 IF a=VAL "4" AND m$(M)=" * THEN ERASE /d$A8S
850 IF a=VAL "5" AND n$(M)=" * THEN ERASE /dSVAL
868 NEXT M 9999 CAT : PAUSE 500: GO TO 2
23 UPDATE 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 that a title isn't necessary to format a mdv cart? format mdvi_ 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 there 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 mdvi_muchodat ENTER. Lo and behold,
the cartridge formatted perfectly! So I tried the other cranky one, with: format mdvi_muchodat. It formatted too! Now ain't
that a crazy one! There is more. After that trick, I dug up three more miv 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 there'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 DRIVE OR DISK DRIVE BOOT PROGRAMS INITIALIZE THE TRUMP 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. The 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: TK2_EXT ENTER. Now if you allow the auto boot i
OCTOBER 1988
OCTOBER 1988
from either Micro Drive or Disk Drive, you may not be given the opportunity to enter the TK2_EXT 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_EXT.
Now if you also have SPEED SCREEN. you should also add its initialization command. That would be: < TK2_EXT: _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 jets be a showin how to dun it- next in 1,2,3, order:
1. RESET the QL installed, then hit Fi.
2. Install a write enable tab on the QLWP cartridge, and install it in mdvl.
3. Type; load mivl_boot ENTER. The boot program will load but wont auto run.
4, Type; list ENTER.
5. Type; edit 1 ENTER. listing will appear at screen bottom. read; < 1 CLEAR >
6. Type onto the line to make it read; < 1 CLEAR: TK2_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 mdvi_boot ENTER. ‘This will execute one of the TRUMP routines to give
“without a mdv cart"
Now line 1 of the It will
a "SAVE OVER" an existing program in micro drive.
9. A prompt will appear, "OK to Overwrite? y/n?" Touch "y"
10. Now your new boot program replaces the boot program in the mdv cart, andthe next time you use this cartridge the TRUMP and SPEED SCREEN are automatically initialized.
You can do the same procedure for each of your miv 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.
UPDATE MAGAZINE
UPDATE MAGAZINE
COPY A COMPLETE 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 WITHOUT 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 Fi 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.
First though, INSTALL a formatted mdv cart in mdvl (with write enable tab installed). 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
weopy mdv2_ TO mivl_ ENTER
What happens next is a prompt with several choices. The prompt will read exactly as follows:
MDV2_CLONE TO MDV1_CLONE Y/N/A/Q
Touch "A" for ALL, and the system takes over and copies all files and programs from mdivi to miv2.
Back to Business with the QL
OK, 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 SCREEN. These two cartridges are in the microdrives and youre QL is in the BASIC mode.
Now lets get the QUILL Word Processor up and running. Type: lrun mdvl_boot ENTER. Note that a while back we loaded the boot program to modify it by a command: < load mdvi_boot >, which just loaded in the boot program without letting it auto run. < lrun ndvi_boot > makes it load in and run. This time when the qlwp boot program loads in the TRUMP and SPEED SCREEN 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 Tools.
24
OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
655 N. W. Territorial Rd. Canby, OR 97013 July, 11 1988
Late y THE PLOTTER is the newsletter of the COATS User Group, located in OREGON, and is one of the better Club publications, due largely by the expert writing of Dick Wagner and Rad Gowen, both of wham are Sinclair Activists. Thanks Dick!
TS-2068 UP-DATE 1317 Stratford Ave. Panama City, FL 32404
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 fax 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.
Se £2 oi mere Pie 5 as SE SORES a a
Dick F. Wagner Editor, THE PLOTTER
LPRINT CHR$ WITH OLIGER PRINTER DRIVER
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
25 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
CHR$ n is as follows: start with LET/P=O 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 erunching.
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=0 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 1"x1" 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 AS=CHR$ 27+"K"+CHRS$ 60+CHR$ 0 30 LPRINT A$;
40 FOR X=1 TO 60
50 READ N: IF N<O THEN GO TO 100 60 LPRINT CHR$ N;
70 NEXT X
90 DATA 255,-58,1,255
100 READ R: FOR J=1 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).
26 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988
O'lhe ESN ompouter O Society
One Center Plaza Boston, MA 02108
UPDATE MAGAZINE
REPORT RARE Re OM RS eo rie rare ae PR eee ee ety ime eo ge vgie eon fe Pe
BOSTON COMPUTER SOCIETY x Hewsletter of the BoSTUG (Sinclair/Timex User Group) x
x x
Vol 7 No 5
The Sinclair/Tisexr Newsletter is the official publication of the Sinclair/Timex User Group of the Boston Computer Society (BoSTUG).
Annual membership for New England residents is $35.00 (otherwise $28.00) per year. Subscription to BCS/Update and one other news~ letter is included without cost.
The newsletter has an exchange policy with Sinclair/Timex User groups willing ta reciprocate. Please forward exchange issues to the editor pro tem, Peter Hale, P.O. Box 8763, Boston, MA 02114.
Unless copywritten by the author, articles are in the public dom- ain. Attribution is requested.
BoSTUG is a sub group of the Boston Computer Society.
produces this nice 18 page newsletter, QL and moderately in support of
the Sinclair
is not to be confused with UPDATE Magazine,
“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.
UPDATE MAGAZINE
27
BoSTUG
which is heavily in support of
t : the TS-2068. BCS/UPDATE" is a large Magazine published by BCS for its members and
our name deriving from
OCTOBER 1988
OCTOBER 1988
REPRINT FROM:
ABOUT TOOLKIT 11
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 mdvi_fred a zillion times to backup media finds WCOPY 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.
Thera 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 Il extensions that are easy and that you will enjay are: ALARM, CLOCK, DLIST, BX, EXTRAS, EW, FREE_MEM, RENAME, SPL, SPLF, STAT, TK2_EXT, VIEW, WCOPY, WDIR, WMON, WREN, WTV, and WSTAT.
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 Toolkit I1; ED,
ALTKEY and last line recall.
line recall <ALT><ENTER> is usually useful in direct mode tn SuperBASIC. It recalls all char— acters since the last ENTER. Done several times in sequence, it recalle 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 Peion's 22 character buffer limit.
Last
ALTKEY 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 ALTKEY ‘x’,’...." where x is any
one of the QL's character set. In the example, x is lower case.
BoSTUG Sinclair/Timex Newsletter
UPDATE MAGAZINE
BoSTUG Sinclair/Timex Newsletter
fiverything after ‘x’, and within
the quotes happens when the con- bination <ALT><x? is pressed, If
<BNTER>? is desired for executing,
the ALTKEY definition can end with ,** (comma and two single
quotes), which is <ENTER>.
How to use ALTKEY is not concep- tually easy. One use is ALTKEY ‘l', CHR$ (240)&'1lf1pi_setup’,''. This line is incorporated in my Quill ‘boot. The same disk alsa has the file ‘setup_doo’ 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 | write a letter; 1 press <ALT><1>.
Programmers assign ALTKEYs to oft used keywords (without an ENTER) to emulate single-stroke keywords popular in earlier Sinclair's. A beot with a batch of user defined ALTKEYs anda final line HEW is run at the start of programming. NEW clears SuperBASIC memory (but not the ALTKEY 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 ata 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, Now press <ESC>, What happens?
Peter Hale
September/Octaber 1988
28
UPDATE MAGAZINE
OCTOBER 1988
OCTOBER 1988
QUILL FILESAVER
More than once, my QL has mangled a long Quill document through poor disk or microdrive Ll/0. 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 same - any attempt to reload the file into Quill results in a File 1/0 Incomplete error, disasterous if you forgot to periodically backup your work.
One such encounter forced me to take a deeper look at how Quill files are stored. 1 could do this with “BGET", which reads a Single byte from a file. Most disk systems and taolkits have this command.
l_used BGET to print out the Qhumeric value of every character dn my partially-corrupted Quill file tao learn its structure and so recover at least part of it.
The most striking discovery was that Quill files use the Bull character ([CHR$(0)] in place of
Carriage Returns. I also noticed that a good portion of the Quill file is formatting information,
stored tawards the end of the file. It is mostly strange con- trol characters. All the text was
Present, but some formatting information was 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. Sa 1 had to figure out a way ta
extract the ‘text’ portion of my document and re-write 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 #5. If it is a null, it's changed to a carriage return [CHR$(13)]; 1f a
BoSTUG Sinclair/Timex Newsletter
UPDATE MAGAZINE
UPDATE MAGAZINE
REPRINT FROM: BoSTUG Sinclair/Timex Newsletter
contro) character ess than SPACE (CHR$(G2)] 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 ta the new file in channel#6. The character is also printed to the screen so you can watch as it goes through the file. Then the loop repeats ior the next character until there are no more characters to read. What is left is a plain text file which can be imported into Quill. 1 was able to recover a 15 page document this way, though it took about ten minutes ta do so.
Hopefully you will never need to use this utility, but if you do, here it is.
- Jim Rodlin 10 REMark "“Filesaver" 20 REMark Corrupted Quill file
30 REMark recovery utility 40 REMark by Jim Rodlin
50 REMark Requires Toolkit 60 REMark commands BGET & BPUT 80 REMark In the public domain 90 REMark Attribution requested 100 FLP_EXT: REMark or TK2_EXT
enable extended command set
110 CLS
120 OPEN#S, “mdv2_MYFILE_doc” : REMark file ta save
130 OPEN_NEW#6, "mdvi_BBS_1lis” + REMark output ASCII file
140 REFeat loop
150 =BGET#5, a%: REMark get byte and put in a%
160 IF a% =0 THEN LET a% =13 REMark convert null ta CR
165 REMark replace all control chars with SPACE
470) «OIF a% <G2 AND a% <>13 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% <713 THEN FRINT CHRS$ (a%);
210 BPUT#6, a%: REMark write ASCII byte to _LIS file
220 END REFeat loop
2.9 September/October 10988
OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
me fl een
By: Bill Jones
Here we go! Being a beginner myself with the QL, I ama 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 mre detail to the coverage. We want a interchange of programming 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 stuffin 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 a1, 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 directorj using: COPY mivl_name TO MDV2_ After all files have been copied stash away your master Word Processor cartridge for safe keeping.
Now we are readyto go to work. Now install your back up cart you just made into the MDV1 slot. Next we will setup the software for your printer.
30 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
Taking a little break from the details, the first page did print, so I'm becomming 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; drun mdvl_install_bas 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 different! I use a DAISY printer that has the Diablo compatable 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 it! 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 lrun 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 doa single header, I find it best!ype 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. Now 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 #4,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 O-Other, then I-Import. Next, the prompt appears to key ina MDV file to load. Input <mdvl_name> 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.
3 UPDATE MAGAZINE i OCTOBER 1988
OCTOBER 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 mode. But the listing is TEXT, and can be formatted as text. Hit F3 for the Command menu, 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 alla time 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 Iwill 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!
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 TO 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 <l> PRINT is elected. <OPEN #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. x
The Print Tutor Listing The programming at left could be
condensed a lot by chaining the 5 CLS different programing commands 10 G SUB 200 using a colon between. For 20 PRINT "Options:"\\"<l> Print the data"\ example, all of the lines from line 22 PRINT "<2> Line Space"\ 5 through 30 could be inclosed in 24 PRINT "<3> INPUT New Data"\ one longer line of programming. I 26 PRINT "<4> LLIST"\ used extra lines in order to make 28 PRINT "<5> QUIT"\ the tutorial easier to decipher. 30 INPUT a:CLS Also, the IF THEN conditionals 40 IF a=3 THEN GO TO 10 used are in "simplese" basic syntax 50 OPEN #4,serlc:BAUD 9600 which the QL reacts to nicely. You 60 IF a=] THEN PRINT #4,a$ can use almost all of the simple 70 IF a=2 THEN PRINT #4,\ Basic syntax of the older computers 80 IF a=4 THEN LIST #4 with the QL, which makes it a very 90 IF a=5 THEN GO TO 300 easy computer to adapt to. We will 100 CLS:GO TO 20 ease into QL Basic and Super Basic 200 PRINT "Type the Data"\\ as this series continues. 210 INPUT a$ 220 CLS:RETURN 300 CLOSE #4:STOP 3.2
UPDATE MAGAZINE OCTOBER 1988
UPDATE MAGAZINE
OCTOBER 1988
SINC - LINK Voi. 6 No.4 JULY ~ AUGUST ‘88
SINC-LINK 15 A PUBLICATION OF
icon ee HIGHLY RECOMMENDED!
C ; f
TERR, COPIES OF THE NEUSLETTER | user c1uo ie one af the most .5@ EACH FOR NON-MEMBERS, active clubs in North America.
CLUB MEMBERS RECEIVE A FREE COPY | [0.0% UPaaze’s best weitere are
AS PART OF THE $28.08 ANNUAL | 200 mitcnel! and George Chambers.
SINC LINK, the club newsletter HEHBERSHIP FEE. is an excellent source of information. The Toronto User Group has many USA members and
welcome more.
NEWSLETTERS ARE EXCHANGED, FREE ONTARIO GL USERS TAKE NOTE! OF CHARGE, WITH OTHER TINEX- | Join the Club and form a special
interest group ; : SINCLAIR USER GROUPS, Sinclair Gpecial interest Club! . Club membership and participation is the best route ta take for continuing to learn more about
your computer. -ed. au MATERIAL ae, PUBLIC COMAIN
TORONTO TIMEX - SINCLAIR USERS CLUB P.O. Box 7274 Stn. A Toronto, Ont., MSW IX9 Canedo
GDothER fiye Club Dear Bills =
Iam sorry for the delay. The heat is getting to me and I have been Lax in my duties. Enclosed is @ little discription of our group as you asked for. ely
Our group is called Sinclair Milwaukee Users Group also called SNUG. He were established in 1983 and work with all forms of the Sinclair computers and their clones. He have ZX80's, ZX81's, TS1500°s, TS2068's, Spectrun’s and Spectrum enulater’s, and the Ql. He are in contact with 22 other Users Groups around the U.S. and Canada and swap newsletters with thea,
He meet once a month on the second Hednesday of the month, our next meeting is July 13, 1988, The place we meet is in Elm Grove Hisconson, a suburb af Milwaukee, and called Yerbrics’ 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 newsletter, you can pick this up at the meeting our Supply us with SASE’s and I will mail them to you. The newsletter has a Sdbscription rate of #10
per year, this includes mailing.
Siachain (Ul WAUKEE , SER GhouP ~ A hive Biach §
Hope to see you at a meeting. Bill Heberlein, YP sHUuG, 5052 N. 91st Street, Milwaukee, HI 53225
3 . UPDATE MAGAZINE ee OCTOBER 1988
UPDATE MAGAZINE
HSCRIPT VERSION 5.3 FOR LARKEN DOS SOFTWARE REVIEW by Bob Mitchell
. e30g14 My long-awaited copy of Version 5.3 of MSCRIPT by Jack Dohany finally arrived early in June of this year. Because | had told him that [ was using a non-standard, earlier version of the Larken DOS; he sent the program on cassette, to be on the safe side. I was delighted to find that a back-up on disk was readily made by selecting DISK on the main menu and then pressing B.
Documentation 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 docunentation as tiles.
The main problem that I had had with ay earlier version MSST was one of the printer dropping characters every now and then. This problem has been resolved, I am happy to report.
The cost to se for the new version was US$25 which included $5 for mailing and handling. The program is so such better than the earlier version that I was happy to pay the price.
Here are sone features of MSCRIPT (not necessarily in order of importance) that make the program quite attractive and aake we a convert!
te Finding and Changing any string of up to 30 characters is simple and very fast. 2. Headers and Footers (titles at the top and bottoa of each page of a document) are easy to add.
3. Moving, copying, deleting, saving and loading blocks of text is fast, easy and very professional, with markers used to identify the block to be worked on.
4, The cursor moves very fast across the page. There is also a tab feature that is very useful when developing tables and lists.
5. When making a back-up copy, it is optional to include the text as part of the back-up! ideal for eaking a version that includes, say, a letter head for page 1. If you want to make a LAREN AUTOSTART copy) this can be done by using (CLEAR 4SD00!RANDONIZE USR 1C2sFUN>. You have to CLEAR a higher address if you include any text in your save. .
b. View Nemory allows you to PEEK and POKE the contents of memory} this starts at the LCODE file which is handy if you want to inspect and change any printer control codes.
7. The nape of the text you are working on appears on the home menu, I find this to be very usaful particularly as 1 hap from text to text fairly often. It let's ne know where J am at the sonent. The GIVE NAME command allows you to assign or change the name of your text at any tine.
8. There is an alternative fattened character set that makes reading the text on my aonitor auch easier. The use of different screen colours is restricted by the 752068 hardware and I have settled on white ink on black paper as the best for ne.
%. The disk catalogue in the selected drive can be added to the text in progress. The drive is selected by entering a nuaber from 0 to 3 (ie, 1 to 4 respectively). The LARKEN Randisk is selected with <4) and this can be accomodated 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 MOVE to call a file rename routine and this was easily added to the hone menu by a few lines at line 220 in the BASIC, Watch gut for an out of meory report here. I had to sacrifice lines 420 to 440 (VERIFY, which I seldom use anyway) to make rooa for this.
11. 1 like being able to put coment lines in the text to serve as reminders to ae and that won't 3 appear in the pelataite: Tab settings are one wanele a5 you have to resat these whenever they default to their normal settings.
One thing that could be better! It's too easy to stutter in rore spaces than wanted vhen entering text. iovevers on right Justification, these extra spaces are not really noticed.
HSCRIPT is a totally different word processor from TASWORD which I have used for some tine and which has its devotees. But there are so pany advantages to MSCRIPT that 1 have bequn to switch over to it for my word processing tasks. Once you gat used to the protocol and press the right keys, MSCRIPT is just as easy to use as TASWORD and a lot acre rewarding. I recommend the purchase of MSCRIPT Version 5.3 and look forward to experiaenting with Version & when it coaes along. Hurry upy Jack! 3h
UPDATE MAGAZINE OCTOBER 1988
REPRINT FROM SYNC LINK
UPDATE MAGAZINE
2068
LARKEN RAMdisk for the TS 2068 by George Chambers
Qur last newsletter carried an article by Greg Lloyd, describing a RAMdisk unit that he had recently obtained from Larken Electronics, 1 have recently purchased one of these units, and should 1ike to tell something of my prograsming expertences with it.
Firstly, when I got it I could not figure out how to use it effectively. After all, while it can contain a total of 256K memory, mine only came equipped with 64K and there really ts a limit as to how many program one can hold with that. Which programs should I place on it, ete?
On top of that I already had a second drive on my system that seemed to be only used when 1 wanted to copy @ program, Of what use was another bit of expensive memory. And it 1s expensive, 1f compared to the memory capacity of a disk. A disk will hold 360K and costs about 65 cents. A 32K SRAM chip costs about $15, And the RAMdisk is really a solid-state drive, not a memory expansion to your computer. That is to say, you still have oniy 38K of memory in your computer to play with, The RAMdisk memory {s not bankswitched in to the computer; it it loaded into the computer memory the same as from a conventional drive.
However, despite this unpromising prospect 1 have found a very fascinating application, What I have done {s to place 58 of my most useful utility files on a single disk (I call {t my OMNIBUS disk), and installed it in my second drive.
1 then placed the several menus (the menu program Misting in the Nov/Dec '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 {.@, menu.81, menu.B2, etc.,that | called up from that AUTOSTART menu. I found that presently 1 had used 7 of the 12 available tracks on my RAMdisk; horribly extravagant. (The RAMdIsk uses the same tracks formt of the other drives)
It was then suggested to me that I combine several menus into one program. This made sense, because as {t was I was storing a program of about 1500 bytes onto a 5090-byte track. The other bytes, 3410 of them, were lost. 1 started combining menus onto a single program, and now 1 have 5 manu screens combined. tore will follow, 1 use a menu option to move to the various menus.
Most of the programs themselves are on the OMNIBUS disk, installed more or jess permanently fn the second drive, and are called up from the menus obtained from the RAMdIsk. Where a program 4s 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.
SINC-LINK
UPDATE MAGAZINE
Larry Kenny has revised his 00S EPROM, yiv'ng a new command which has proved very useful in = this application. The format of this command is PRINT USR 100: NEW (or PRINT 443 NEW). This provides a ‘warm' AUTOSTART capability to the 00S.
Luse it this way. 1 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 00S command | terminate a program to the following line sequence.
LINE 9000 PRINT #4: GOTO 4: PRINT #4: NEW The ‘GOTO 4" points the 00S toward the RAMdisk and the “NEW 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 1s for all drives; it's use 1s not confined to the RAMI sk.
This new 00S command also offers another interesting programming possibility. Invoking the "PRINT #4: NEW* command will bring up an AUTOSTART program in the drive to which {t 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 awaiting use.
larry advises that this command is in Yersion 2 of his 00S EPROM. Sefore 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 00S, that he speaks of doing, Improvements to the printer driver, and changes to the NMI routine, [ have heard: among others,
Now, I could hardly reconmend that everyone go out. buy one of these RANdisks. Sut what I have found 1s that for those persons with two drives it certtanly 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 drive! sraneneenennten
Newsletters need news!
Write and tell us what you know! Anything (almost!)
will be printed
35 OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
REPRINT FROM SYNC LINEVVORIAL (TS2068 & SPECTRUM)
CHANNELS & STREAMS - A TUTORIAL
Sam Let’s delve into the mysterious realm of channels = and streams and those two odd tokens OPEN # and CLOSE i. These two comands are extremely powerful and have many uses and yet there is nothing at all about them in the TSZ0S8 User Manual except to say that “these and other comands 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 the basic machine. Much of this has to do with the opening and closing of channels and streams with respect to the TSZ2040- printer and the TS2068 keyboard and screen. :
The TSZ068 communicates with peripheral devices with the aid oF the channel information area which lies stween the system variables and the BASIC program, s area starts at address 24680 and ends at 267008, Just short of the program area which startsy normalluy at 26710. A shurt program given in the listing below will pring out all the information on channels and streams. Part af its output is shown below as Table 1 (with some explanatory notes); the code has been divided into S-byte blocks, , each block representing one channel. ;
TALE 1 — CHANNEL INFORMATION AREA Address Chan Value Notes
dst 2 bytes = ROM add.12 (Ou ‘ (5#2596+0) 2ROM PRINT routine. i Znd 2 bytes = ROM add. 3086d ‘ (L2e2964+14)3 get inpul key.
Code for lekter "KK"
26489 26690
24693 ist 2 bytes same as for "KK". 2O694
26695 2nd 2 bytes = add. 45433
26476 input routine called.
26597 Cude for letter "
26498 This bleck is reserved for BO679 use by the computer and
26700 sis, not available to the
26701 “user. : z
26702 Cove for’ letter
“1st 2 bytes also point to 1280d: ROM Print routine, 36 (c)1988 Bob Mitchell ‘ UPDATE MAGAZINE Page # 1 of 5 OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
TUTORIAL (TS2048 & SPECTRUM) REPRINT FROM SYNC LINK
26705 L9L Input routine called; 26706 17 (see explanation below) 26707 80 Code for letter "
When the TS2068 is switched an, 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 bl (Channel "P"), addresses 26703 and 26704 point to the ROM PRINT routine at 1280d (0500h). These are often changed to point elsewhere (eg. in the Aerco preode, they are changed to <5> and <251> respectively which equates to 64261 (the start of the prcode routine). Once these two bytes have been changed, all printing will go via Channel "P" to the <preade> routine. To get back to the TS2040, these two bytes must be restored to <O> and <5> respectively.
In Spectrum these 21 start-up bytes are in ROM 555id and are copied to the Spectrum channel info area which resides at 23734 to 23754. Addresses 23749 and 23750
equate to 26703 and 26704 in the TS2066.
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 handles output to this peripheral. Channel "K" stands for the keyboard but handles both output and inputy it inputs from the keyboard but also outputs to the lower part of the screen display.
When the PRINT comand 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 H#2y"P">. Note that this instruction has two arguments
the former first tells the computer which stream is
37
, (21988 Bob Mitchell } UPDATE MAGAZINE Page # 2 of 5 OCTOBER 1988 '
REPRINT FROM SYNC LINK TUTORIAL (TS2068 & SPECTRUM)
being altered and the’ latter identifies the single character of the channel to which the stream is to be directed.
If you type <OVEN #2,"P"> then <PRINT “test" tPAUSE OF, the PAUSE O command prevents the input routine being called which would print an error report (bytes at addresses 26703 and 26706 call the ROM routine at address 4543). Without the PAUSE 0, the printing would be immediately erased.
At switch on, only four of the 16 streams are opened. Stream O points to channel "K" Stream 1 points to channel "K* Stream 2 points to channel "S* Stream 3 points ta 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 clesed by the command <CLOSE #n>. where n is any number from O 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 tu 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 SH followed by a ¢0> or <1> changes the print stream to the lower screen. PRINT, LIST; INPUT and INKEY$ may all have their output affected this ways their default value is stream 2 (the upper screen); that is to Sadr PRINT #2 is the same as PRINT and PRINT #3 is the sane as LPRINT; etc. ;
Type in the following listing and save it} then use ait anytime you want toa check the current status of channels and streams.
3 REM This program works in either TSZ2068 or Spectrum 5 REM ssescesesseeecesesees
& REM Use GO TO 10 for info on channels & streams. 7 REM Use GO TO 200 to PEEK
: 38
UPDATE MAG er ad (61988 Bob Mitchell OCTOBER 1988 Psroe # tnt & $
OCTOBER 1988 UPDATE MAGAZINE
REPRINT FROM SYNC Link YTORTAL (TS2068 & SrEeT RUN
stream info in system variables. Use GO TO 220 to PEEK channel info area up to start of program area. 9 REM = Same 10 LET a=PEEK 23631+256*PEEK 2 tstart of CHANS 3632! LET bea from sys variables « 20 IF PEEK a=128 THEN GO TO 70 ast byte in table 30. PRINT "CHANNEL "“§CHR® (PEEK channel letter Lat4)) . AO PRINT "Output Address=";PEE foutput address K atQ5o#PEEK (atl) 7 50 PRINT “Input Address=";PEEK input address. Cat2)+2546"PEEK Cat3) i 60 PRINT ? LET aeatS? GO TO 20 70 FOR a=23574 TO 23605 STEP 2 QO PRINT "Stream "3(a723574)/2 tstream number. STAB 105 90 IF PEEK at256*PEEK (atl)=0 sclosed channel THEN PRINT "CLOSED": NEXT a? STO P
100 LET c=(PEEK atZS6*PEEK (atl channel letter V)+b4+3
110 PRINT "points to Channel CHR PEEK ct NEXT a
120 STOP
130 RANDOMIZE USR 100: SAVE "ch SLarken SAVE routine ans-Bi" LINE 10
140 STOP
200 FOR i=23568 TO 23605: PRINT ‘addresses of i,PEEK it NEXT i channels attached 210 STOP to streams.
220 LET prog=PEEK 23635+256*PEE ‘start of prog area K 23638 :
230 FOR i=b TO prog-ii PRINT i, texamines chan PEEK i;TAB 20;CHRS PEEK i AND PE info area up to EK i>=32 AND PEEK i¢=90: NEXT i 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 particularily note that when any or all windows or large printer channels are opened, 38 bytes (total) of memory are .
3.9
: (¢)1988 Bob Mitchell UPDATE MAGAZINE Page # 4 of 5 OCTOBER 1988
R-1988 UPDATE MAGAZINE
REPRINT FROM SYNC LINK TUTORIAL (TS2068 & SPECTRUM)
This changes
added to the channel information area, can
the location of the start of the program area and cause a problem 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: KLET x=PEEK 23635+256"PEEK 23436: LET xext51 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.Bi">,ie, the listing above.
.Open some of the Larken extended BASIC channels. .Try <RANDOMIZE USR 100! OPEN #4,"dd">.
«Then <PRINT #4: OPEN #5,"wO">. ) These will
«Then <PRINT #4! OPEN #6,"wi">. ) open three
«Then <PRINT #42 OPEN #7,"w2">. } windows.
wNow use the listing above to look at what has happened. Try doing the same thing with the Spectrum emulator in place, if you have one.
I?ll 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 i
in some future issue.
(¢)19G8 Bob Mitchell Page #5 of 5
FEIT IIIT III IEE
* * felrieletetelele} 222222222 XX xx * * eaaaaaeaaa 22222222 xX xx * * Qa aa Zz XX XX * * aa aq 2Z XXX * * aa ae zz xXx * * cele} aa aa Zz XX XX * * rieletrieteleicleley 22222222 XX xx * * feleleleieieleley 222222222 xX xx * * aa * * *
2H EHH HIE
The Journal Covering Amateur Radio & Sinclair Computers 2X-88; Micro-Ace; ZX81; T/S 1000, 150@, & 2068; QL Alex. F. Burr, KSXY, Publisher 2825 O’Donnell Drive Las Cruces, New Mexico $9661
SUBSCRIPTION $15 PER YEAR. SAMPLE ISSUE FOR SELF ADDRESSED STAMPED ENVELOPE WITH $6.45 POSTAGE. —— SSS UPDATE MAGAZINE 40 OCTOBER 1988
UPDATE MAGAZINE
TELECOMPUTING, WHERE WE STAND By Bill Jones WD4FJI
Back in 1948 Television came into the homes of America. Almost all people thought of TV as an adjunct of RADIO. Radio was THE INDUSIRY, 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 TELECOMPUTING is destined to become a giant industry of its own. Another illustration: If one looks down upon a ant bed, one sees much activity, but 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 "HANS" 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 Telecomputing called PACKET. The principle involved in Packet is the use of Radio and Computers to Communicate. 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". AST wants the business and would like to confine Telecomputing to the use of their telephone network. 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 1960's, the Computer population skyrocketed from less than 1% of homes having computers to more than 40% by 1968, and will be up to 60% 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 Packet. Bob Diggs is one of these leaders. His letter and article that follow reveal some technical problems being experienced and the level of current telecomputing technology with the Sinclair QL, and all computers as well.. Read between the lines to discern Bob's personal dedication to the advancement of telecomputing technology. The following sketch depicts where the industry stands at present and the paths for expansion during the next 5-10 years.
pseseUT
"1990 99S" EXPAAS Lia AE igo oe MIs Ex datnaaa Ap a CM
dese Bett one
18 BAD Lomaaste Paajermaray sauce AY
OCTOBER 1988
UPDATE MAGAZINE
Bob Diggs, KV3Q North East, Maryland August 22, 1988
To: Bill Jones, WD4FJI Alex Burr, KSXY
Subject: QL on Packet
This memo ig 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 which 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 todo. Also, among the three of us, I dont think that Packet is'all it's supposed to be. There is too much ORM (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 QLO (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_TERM 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 QL 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 satkt the ball rolling, someone who knows more can make things better. So Bill, this is my answer to 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 O'Donnell 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.
PUTTING THE QL TO PACKET Bob, KV3Q
As Alex noted in the June issue of QZX, I'm trying and can now say that I'm using ay 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 TERM by Richard Moldovan. and MIKE_TERM from the April issue of QZX. Each has a special use. Each has different problems and neither is completely satisfactory. However I am using my QL on 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 TS-1000 or 1500, ALPHACOM 32 and a COMLINK II connected to the TNC. That was a very satisfactory set up indeed, which allowed me to dump the screens to the eat This is something that I cannot do with
UPDATE MAGAZINE
Before leaving for South Africa I ordered a QL to be shipped to our Winter home in Florida and when we got back in January it was waiting. I went to the Winter Fest in Orlando and found that there was no one there who had any idea of what I was talking about when I brought up Packet. But I did learn one important thing, and that is that the QLUG SER2 pin connections are not as printed. That turned out to be academic, because the standard SER cable that I bought there works OK when connected between SER2 and the MFJ TNC. It
‘was suggested that QL-TERM was a good program for
a Modem and possibly might work with Packet, so I ordered it.
QU-TERM arrived soon after and what a disiappointment when I tried to use it! I ask the dealer if my problem could be because I was using a TV asa monitor. Of course, he couldn't answer that question. So, Packet went to the back burner while 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
OCTOBER 1988
on Packet. The US Postal service did not forward 2X or CIM, so there I was in a black hole. #0 to speak. and no way out. Then lo and behold, Michael Mitchell came through with a program in April QZX. When 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-TERM. It worked 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 communications over Packet seemed to go out and come back OK despite the garbage on screen. So. I tried the MIKE-TERM program only to see single letters scrolling up the left of the screen. JI searched for the problem but didn't find it until mich later.
When using the TS-1000, the COMLINK-IT required a baud rate of 300, so I stuck with that until I discovered that by switching the INC 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 CIRL 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 etop the scroll, longer than the TS-1000 and most likely because of the baud rate.
Then it was back to MIKE TERM. 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 CIRL H again, but the lack of cursor means that you are typing without reference. Now if I make an error, I use CTRL X, which shows a "/" and scrolls to the next line. The advantage of MIKE_TERM 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 where I 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_TERM modified for TV Screen.
2. Ser2 port ping are: I-ground, 21x D, 3=Rx D. 4=DIR, S=CTS. 6=GRND. 7=GRND. G=blank, 96T/2V
3. QU_TERM: Needs Monitor. 1200 baud. Must anticipate CTRL S or loge some screen. No screen dump. Erase and backspace with CTRL L. Can't go to QL programs when you Quit.
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 eure line 270 has a ";" at line end. Modify window if using TV. Can quit and load Qi programs and vice versa. A good program. I use it daily to check my BBS.
T have used two other programs, QOODE and
NK, without success. the copies that I am using could be at fault. I will try to learn
UPDATE MAGAZINE
more about them and report when I make significant progress with these or the other programs. Bob, K3¥Q2——
Ed, comments: Screen Dump to printer is supported by the special language contained in the PISON ARCHIVE software. This may be an avemie to pursue to link with the modem softwares. Cross talk between those uging the QL within the telephone modem environment ami 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 phone 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-2066, Via Telephone and Bulletin 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 i
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. This worked out well for only a few major sections, Telecomputing, TS-2068 Extra Menory, Schematics, and The Electronics Data section. All other subjects seem to blend together.
This 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. The editor will avoid "skip continuations" of articles from an earlier page to a page that is deeper within the magazine. This will allow those who want to file pages by subject area to do so.
43
OCTOBER 1988
OCTOBER 1988
& @L Address File Bob Hartung, 2416 N. Co. Line Rd., Huntertown, IN 46748
Sone like myself who are new Kids on the block with the GL may be looking for info on getting started in QL SuperBasic programming. The GL User’s Guide (@LUG) is something less than a masterpiece of clarity, and most current publications seem 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 I] CTKT) or Trump Card, I will use only the syntax accepted by the unexpanded GL unless otherwise noted. Direct conmand entries will be indicated by <command) with a slash / between those Keys to be pressed at the sane tine.
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. Areader requested a mail list program, which seems a practical way of illustrating sone points. Of course the ARCHIVE database SW 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, 1 will also try to use syntax that can most easily be translated by 782068 (and Beta Basic) users, rather than exclusively- GL 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 REM labels with DEFine PROCedure name, the RETurns with END DEFine, and the GO SUBs with the respective procedure nanes, 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 some file items on subsequent calls. I’11 leave that as a challenge for a sharp T/S UPOATE reader to figure out!
The mininum 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 celeting. This program will do all these, albeit more slowly than a whiz-bang machine code or conpiled one. To economize on Page space a Sé-colunn listing format was used instead of the 40-column MODE 8 or the é4-column MODE 4, Now with all these disclaimers stated, let’s get on with it.
For less pain and strain in entering the listing, (AUTO)
a
UPDATE MAGAZINE
UPDATE MAGAZINE
supplies line numbers starting at 100 in increments of 10 or (AUTO 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 (ENTER) 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 ENTER has not yet been Keyed. Of course TKT users have the many conveniences of full-screen editing but tor 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 sv: DELETE MDVI_addrfile: SAVE NDVI_addrfiles END DEFine su. 1# you do not have the TKT FREE_NEM command you might also want to add line 1550 DEFine PROCedure freenem: PRINT PEEK.L(163856)-PEEK_L( 163852) 71024: END DEFine freemem. Make the first save of this with SAVE MViaddrfile, or change all the addrfile names to BOUT 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 <freemem) to show free memory remaining. Procedure and function definitions Tike these may be located anywhere and are transparent until called, i.e. processing passes right over then -as it does for a DATA line.
Use RUN to initiate and key "9" from the menu to save the listing to mdvi. To set up an all-new file, key "0" and "y" at the ERASE pronpt. 820 allows entry of 1, 2, 3, 4, or 5 for auto-entry of the respective titles (no space between number and first name). 14 9 is the first character entered here then any other title or name may be Keyed in letter-by-leiter following the 9. $STOP will close the file and GO SUB to the sort and re-order routine 20, otherwise inputs continue for last name, address, P.0., state & ZIP, and 1D or phone no.
The state and ZIP entry may be skipped with just ENTER (VL) if the P.O. entry was made with a number. 860 & 890-910 may be expanded to include more auto-entries of P.0., state, and ZIPs for frequently-occurring ones. To avoid confusion, use line-increnents of 1 for this and wait until the entire listing has been entered and checked before using RENUM 10,10,
Printer control commands for font, margin, etc. may be set by your panel switches or a PRINT #7,comand- sequence for your particular printer may be inserted at line 1300 after an OPEN #7,seri. Be sure to end this sequence with a CLOSE 47,
TW MODE 8 (40-column display with two screens) is assumed so you may wish to adust sone of the PRINT and
OCTOBER 1988
OCTOBER 1988
10 sets black PAPER and white INK for the #2 main display screen and white PAPER and black INK for the #0 editing window. This gives a crisper display on B&W TVs and composite monochrome monitors than the power-up colors. Just use 10 G0 10 510 here if you prefer to Keep the original screens.
Note that in lines 130-200 you may use apostrophes rather than quotation marks 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 GL for a line feed corresponds to the apostrophe for the T/S. PAUSE without a given value is the same as T/S PAUSE 0.
A little surprise for 1/S users (that users of many other computers have had to reckon with all along) is that it cannot be taken for granted that dimensioning a numeric array as DIM a(n) always sets every element to 0. Neither does DIM a$(n) set every string element toa space or CHR$(32). The DIM sets the string array elements to CHRS(O), and then if LET a$(n)="* is used ‘they become spaces. If no Key is depressed, CODECINKEYS) also returns 0. This is the reason for the value-checks shown in 210, 610, and 910.
The IF-THEN structure of the GL allows nested test- statements, with ELSE alternative conditions that are active when IF conditions are not met, as in 330 and 350, 350 could also have additional statements appended such as ELSE OPEN #7,scr: INK #737 (which sets scr INK to white or the color of your choice). The end of a particular set of IF-THEN-ELSE statements is marked 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 may be translated as IF-THEN statements for the 1/S. Beta Basic (BB) provides the ELSE function and also has an ON command that would require this change:
610 LET n$=INKEY$, m-VAL m$+1; IF m$="" THEN 60 TO 610
This allows lines 630-730 to be entered as only one line to use the BB ON function:
$30 ON m: GO TO 770: GO TO 790: GO TO 970: 110: GO SUB 20: GO TO 1210: GO TO 1320: GD TO 1420: 60 T0 1310: SAVE “addrfile* LINE 10.
Lines 1330-1510 show how the QL sends and receives data to and fron devices such as microdrives, modens, printers, networks, etc. For the T/S all this SAVE and LOAD footwork can be replaced by the sinple commands SAVE "nane* DATA #$() and LOAD “name™ DATA #9(). If LET 4$(400, 10 3)=STR$ last is inserted before the data save, then LET last=VAL #$¢400, TO 3) would re-define
UPDATE MAGAZINE
45
UPDATE MAGAZINE
the value of Jast after the loading of new data. (The OL has no VAL function.)
LISTING 2 gives a search routine for T/$ users. When using it, the target-line to be searched is first marked by number, then any consecutive set of characters found at the very beginning of that line may be used as a search-word, Either a hard-copy printout or screen display may be selected. Line 350 could be changed to IF y$='y" THEN OPEN 2,"P* and make 470 CLOSE #2 to direct the PRINT output of lines 380-460 to a printer or to the screen if y$="n". IF-THEN statements would then be substituted in 380-420, and the #7 omitted. In BB an ON conmand-sequence could be used here if 360 is made LET paCODE #$(n)-48 so the number-sequence 1-9 is produced.
In BB the sort routine at 30-90 may be replaced by the simple command: 30 SORT #$(1 TO last)(21 TO 40) which will re-order 150 array elements by last names in just over 1 second. The QL search routine would be replaced by the following in BB:
130 INPUT * LPRINT y/n? ";y$
140 INPUT "CHR$ in search-word (#=wild):
150 FOR n=1 TO last
140 LET p$=#$(n)
170 IF INSTRING(1 ,p$,c$) THEN PRINT n’#$(n, TO 94)’ #3¢ my95 TO 114): IF ys="y* THEN 60 SUB 350
180 NEXT n
280 PRINT H0;"SEARCH conplete*: PAUSE 300: GO TO 500
"yes
INARRAY would search the entire #$ array but Tine 150 allows INSTRING to search one array element at a time. Nost BB commands and functions allow similar savings in menory-usage as well as processing time which offsets to a great extent the limitations imposed by the 22K free menory remaining with BB in-residence. About 150 4ile-items may be handled by this program using BB in a Spectrun-enulated 752068.
In edit mode, ENTER scrolls through the file items. Entering "Z” will delete that item, or if a number is entered then that line-iten may be re-entered as desired. If more than one line is to be changed the "6" repeat option may be used at the end of the edit mode sequence, or else it might be simpler to use "4" to delete that whole item, then go to the “Additional entries" mode from the main menu. While entering new file items, if $10 is entered instead of an 1D or phone no. then that entire file~item may be re-entered to correct an error, or else you can wait and use the "List & edit mode" fron the main menu.
Again BB has a much easier way of editing an entire array element at a tine by replacing lines 1000-1200 with simply 1000 EDIT #$(n) and 1010 NEXT n. The entire file item is brought back into edit mode for revisions
OCTOBER 1988
OCTOBER 1988
by moving the cursor up and down as well as horizontally through it, just as when it was originally entered. Keying ENTER scrolls through the file.
The "SAVE file* and ‘LOAD file’ modes require a cartridge in mdvi (or mdv2 with required changes in listing) so that the CAT routine may list all files already on the cartridge. This allows checking file nanes already in use to avoid overwriting any you wish to keep, Since I have TKT installed which doesn’t require the DELETE mdvi.name before saves, the very first save you make of the listing (and the save of a file using a given name for the first time) may require adding an optional procedure without the DELETE on unexpanded OLs to provide for such saves. Jf a save is being made with the same name as an existing file without preceding it with the DELETE MDVi.name command, TKT users receive a warning prompt and the *Y/N" option to abort or proceed.
I think the remaining program REMarks and pronpts should be self-explanatory, but then I’m looking at it through different eyes than someone seeing it for the very first time, so feel free to bring any errors or unclear points to ay attention. For reply please enclose a SASE. I have written an all Beta Basic version of this program which will appear in a future SYNCWARE NEWS if all goes well.
Tt would serve areal need, J believe, if QL, T/S, and BB users would send in your own programming 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 RNG ENTERPRISES, one of the very supportive surviving T/S venders, stated in recent correspondance with me, "We Sinclair users have to stick together!*
LISTING 1 - OL ADDRESS FILE
10 PAPER 0; PAPER #0;7; INK #0;0: CLS: CLS #0: 60 TO SiO
20 REMark sort
30 LET melast: LET som
40 LET ssINT(s/2); IF s<1 THEN RETurn
SO IF s/2=INT(s/2) THEN LET s=s#1
60 FOR n=1 10 m-s
70 LET jen
80 IF #$¢j,21 TO 40))4$¢j+5,21 TO 40) THEN LET x$=#$¢i,1 TO 115): LET #$(j,1 TO 115)=4$¢j4s,1 TO 115): LET $(jts,f TO 115)=1$: LET jej-st IF j20 THEN GO TO 80
90 END FOR n
100 60 10 40
110 REMark search
120 CLS
130 INPUT " LPRINT y/n? "33
140 INPUT "CHR$ in search-word (Hewild): "yet
150 FOR n=1 TO last
UPDATE MAGAZINE
UPDATE MAGAZINE
16D LET p$=#$(n)
170 IF INSTRING(1,p$,c$) THEN PRINT n’4$(n, TO 94)/48(n, 95 TO 114): IF ys=*y* THEN 60 SUB 350
180 NEXT n
190 PRINT #0;*Search is complete’: PAUSE 300: GO TO 500
340 REMark Printout subroutine selects printer or screen
350 IF y$="y* THEN OPEN #7,ser1: ELSE OPEN #7,scr: INK 4 7,73 REMark Or INK n of your choice for scr
340 LET p=CODE(#$<n,1))
370 SELect ON p: REMark Alternative to IF-THEN sequence
380) «=49; PRINT A7,"Mr. & Hrs. °;
390 =50: PRINT #7,"Mr. "3
400 =51: PRINT H7,"Mrs. ";
410 | =92: PRINT 47,"Ns. °;
420 =53: PRINT 7,"Miss *;
430 END SELect
440 END IF
450 PRINT 47,44(n,2 TO CODE(#$(n,115)));" "5#8(n,21 10 4 O)\#$(n,41 TO 65)\¥$(n,48 TO BOD\4$(n 81 TO 94)
460 IF y$="n" THEN PRINT 47; #$(n,95 TO 114)
465 REMark For labels insert PRINT 87,\\\ here for LFs
470 CLOSE 47
480 RETurn
490 REMark Menu
500 CLS: CLS KO
310 PRINT "O - Start ALL NEW file"
520 PRINT "1 - Additional entries"
530 PRINT "2 - List & edit mode*
‘540 PRINT “3 - Search mode”
550 PRINT "4 - Sort & re-order®
560 PRINT "S - LPRINT™
570 PRINT "6 - SAVE file™
580 PRINT "7 - LOAD file"
590 PRINT "8 - Set printer*
600 PRINT "9 ~ Listing SAVE"
610 LET m=CODECINKEY$): IF m=O THEN G0 TO 610
620 CLS
630 SELect (Na
640 =48; GO TO 770
650 =49: GD 70 790
660 =50: 60 TO 970
670 =5i: GO 10 110
680 =52: 60 SUB 20
690 =53: GO TO 1210
700) =54: 60 TO 1320
710 =55: GO 70 1420
720 -=56: GO TO 1310
730257: sv
740 END SELect
750 60 70 500
760 REMark Initialize ALL NEW file
7270 INPUT #0;"CAUTION--ERASE OLD FILE y/n? (Max ing
no. files(400) —";y$: IF y$="y" THEN DIM #$(400,1
15):CLS #0: ELSE PRINT "FILE NOT ERASED": 60 70 510
780 REM Input to file
790 FOR n=1 TO 400
800 LET p=0: RENark p=zero
810 IF #4(n,1) (> CHRSCO) AND #$(n,1) <>" * AND #$(n,f1
OCTOBER 1988
OCTOBER 1988
4) 4)" THEN NEXT
920 INPUT (n)\*$STOP INr/trs 2Mr 3Hrs 4s SMiss or 9 the n title or first name "\p$: LET #6{n,1 TO 202=p$: L ET #$(n,115)=CHRS<(LEN(p$)): IF p$="$STOP* THEN LET $n)="": LET Jast=n-1: 60 SUB 20: 60 70 500
830 IF CODEC#$(n,115)){2 THEN LET £$(n,115)=CHRS<2)
840 INPUT "Last name"\f$(n,21 TO 40)
850 INPUT "Address"\#$(n,41 10 65)
860 INPUT ‘P.O. or 1AUB 2BUT SHNT"\4$<n, 66 TO 80): IF f $(n,66)<="9" THEN LET p=1
870 INPUT *State (2 chrst2 spaces) & ZIP or N/L*\#S{n,81 TO 94)
880 INPUT "ID or phone no. (or $10 for re-entry) *\4$(n,? 5 70 114)
890 IF #4(n,66)=°1" THEN LET #$(n,66 TO 80)="Auburn®: LE T #4(n,81 TO 94)="IN 46706)"
900 IF #4(n,66)="2" THEN LET #$(n,46 TO 80)="Butler*: LE T 49(n,8% TO 94)="IN 46721"
P10 IF #$(n,66)="3" THEN LET 4$(n,66 TO 80)="Huntertown’ + LET #$(n,81 TO 94)="IN 46748-nnon*
920 IF p THEN PRINT #$<n,66 TO 94)\
930 IF 44(n,95 TO 97)="$T0" THEN PRINT "RE-ENTER": 60 TO 820
940 END FOR n
950 LET last=n-{: GO SUB 20
960 60 TO 500
970 REMark EDIT file
980 CLS #0: PRINT #O;"Key ENTER to keep or % to delete
TTEM NO. to EDIT": LET 2=8
990 FOR n=1 TO last
1000 PRINT *FILE "yn\1j"="; #$(n,1 TO 20)\23"=";4$¢21 TO 40)\35"5" 5#9(n,41 TO 65)\45"=" 591066 TO BO)\5; "=" 14$4n,81 TO 94)\6;"=";£$(n,95 TO 114)
1010 INPUT m$;: IF m$="%* THEN PRINT "DELETE! !*: LET #$¢
LET #$(n,21 TO 40)=*zzzzzz2zz2": LET 2=2
1020 IF CODE(a$))37 THEN 60 SUB 1130
1030 PRINT
1040 END FOR n
1050 GO SUB 20
1060 LET x=last
1070 FOR n=x-z TO x
1080 IF 4$(n,21 10 30)="zzzzzzzzzz" THEN LET last=last-1 : LET #$(n)="*
1090 END FOR n
1100 CLS
1110 CLS #0: INPUT 40;"Key ENTER to return to menu or 6 to repeat "; y$: IF y$ <)"6" THEN 60 TO 500
1120 60 10 970
1130 PRINT "-LINE REVISION:"
1140 IF m$="1" THEN INPUT p$: LET #$(n,1 10 20)=p$s LET #$¢ny115)=CHRS(LEN(p$)) 2 IF CODEC#9(n,115))<2 THEN L ET £$(n,115)=CHRS(2)
1150 IF m$="2" THEN INPUT #$(n,21 70 40)
1160 IF m$="3" THEN INPUT #$(n,41 10 65)
1170 IF m$="4" THEN INPUT #$(n,6é TO 80)
1180 IF m$="5" THEN INPUT £$(n,81 TO 94)
1190 IF n$="6" THEN INPUT £$(n,95 TO 114)
47 UPDATE MAGAZINE
UPDATE MAGAZINE
1200 RETurn
1210 REMark LPRINT envelopes or labels
1220 INPUT "Continuous printout y/n? "js
1230 FOR n=1 TO last
1240 IF y$="n* THEN CLS #0: INPUT RO3(n)\(49(n,1 10 40)) \TKEY 5 TO SKIP or ENTER for next "yn$: IF mg="s* TH EN NEXT n
1250 LET p=CODE(#$(n,1))
1260 OPEN #7,ser1
1270 60 SUB 370
1280 END FOR n
1290 60 TO 500
1300 REMark Insert YOUR printer commands here
1385 60 10 500
1310 REMark Save-data routine
1320 CAT
1330 INPUT WO; “SAVE file name? ";y$: LET m$="ndvi_" & y $: REMark Or use “mdv2." here & at line 1430
1340 DELETE ns
1350 OPENLNEW 87,0
1360 FOR n=1 TO last
1370 PRINT #7, #8{n)
1380 END FOR n
1390 CLOSE #7
1400 CLS #0: 60 TO 500
1410 REMark Load-data routine
1420 CAT
1430 INPUT H03"LOAD file name? ";y$: LET n$="ndvi_" & y$
1440 DIM #$( 400,115) ;
1450 OPENLIN 47,0%
1460 FOR n=i TO 400
1470 1F EOF(#7) THEN LET lasten-1: 60 TO 1510
1480 INPUT #7, #9(n)
1490 END FOR n
1500 LET last=n-!
1510 CLOSE #7
1520 CLS #0: 60 10 500
1530 DEFine PROCedure CAT: CLS:DIR MDVI.: END DEFine CAT
1540 DEFine PROCedure sv: DELETE NDVI_addrtile: SAVE NDV Liaddrfile: END DEFine sv
1550 DEFine PROCedure freemen: PRINT PEEKL(16385¢)-PEEK -L(163852)-1024: END DEFine freemem: REMark Allows free memory to be displayed by Keying-in freemem as direct command or as a listing command
LISTING 2 -- T/S Search Routine
130 PRINT "KEY LINE NO. TO SEARCH:*\ 140 PRINT "1 - Title no. & first name ts Mr Sirs 4s Miss)" 150 PRINT "2 - Last nane* 160 PRINT "3 - Address" 170 PRINT "4 - P. 0. or city* 180 PRINT "5 - State abbrev,* 190 PRINT "6 - ZIP" 200 PRINT *7 - 1D code or phone® 210 LET n$=INKEY$: IF m$="* THEN GO TO 210
CMP /t
OCTOBER 1988
220 INPUT “Leading chr-set in item ";<m$)\cd
230 INPUT *LPRINT y/n? “;y$
240 PRINT 80;"ANY KEY FOR NEXT
250 LET sh=1#(mt="1')4+219(m$="2")4418(n$s"3")4668(a9="4" 481m $="5" )4848(n9=" 4") +958(m9="7")
260 LET s2=si+LEN(c$)-1
270 FOR n=1 TO last
280 IF c#=4$(n,s1 TO s2) THEN GO SUB 340
290 PAUSE
300 PRINT
310 NET
320 PRINT "SEARCH completed”
390 CL$ #0: INPUT #0; "Key ENTER for menu or 4 to repeat *; ySs IF y$="6° THEN CLS #0: 60 70 110
335 GO T0 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. Print size preference is ELITE 12 characters per inch. Pica 10 characters per inch is OK 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 UTILITIES
PROGRAMS to publish for the TS-2068 may be LLISTED in 32 chr lines, but that is not
48
UPDATE MAGAZINE
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 nust be usable with the UNEXPANDED QL. If programs are supplied on disk, a version should be recorded that will - COPY TO MICRODRIVE 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.
UPDATE 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.
Full 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 comprehensive reviews.
PROGRAMMING: This 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.
OCTOBER 1988
OCTOBER 1988
TS-2068 EXTRA 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. Hriefly these hardware devices are: The Oliger EPROM cartridges for Dock Bank use: The 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.
The existing TS5-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, There 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 ami utilities developed for Auto Booting programs into Home 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 redesigning the TIMEX ROM. AND, it isn't easy fora 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 todo it, and for programmers to use to develop software to operate from Extra Memory.
UPDATE MAGAZINE
49
UPDATE MAGAZINE
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 asmall 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 ard the expert.
ENTER CHARLES BOTHNER, 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, Charles has given other building schematics. One is a Auxillary Power Supply to power external add on devices, which most of us need to prevent TS-2068 overload. T 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 &@ 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 XROM 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 TS-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: “ENGINEERING A 7Z6@ 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 2-80 CPU to it's limit. There's a guy in England who did something similiar, and his product is called "The Sinclair Zzeé8". I don't know where Charles Eothner 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 2-80 CPU, this is a GREAT tutorial on all of that.
OCTOBER 1988
UPDATE MAGAZINE | EXTRA MEMORY
OCTOBER 1988 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 would 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 Lhese deal with cartridges which only use machine code. (They are easily corrected by changing the byte @0930H in the EXROM from 40H to 55H and the two bytes @38A0H and 38A4H in the home ROM to GOH 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 agree 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. ‘he 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. LKDOS disk port board 7. 16 channel A/D board. 8B. 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
50 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
EXTRA MEMORY EXTRA MEMORY
By: Charles Bothner
the debugging of the EXROM initialization routines. The original Timex protocol was followed in all respects except for the deletion of the routines which reassigned expansion bank numbers according to their interrupt priorities. This was 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. Second, 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 Wes 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 were 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 0O.S.RAM routines from chunk 3 in the home bank to chunk 7 so the system crashed at this point. I added the necessary code to move the 0.S.RAM routines to chunk 7 prior to testing chunk 3 in the RAM banks, but the system still crashed. The problem this time was that the routine in the EXROM which moves the 0O,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-
51
UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
EXTRA MEMORY EXTRA MEMORY
By: Charles Bothner
back of 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 was 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 two of the address and data buffer chips (U5 and U9) 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 initialigation 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 was in the chunk O RAM at power up. It is unused data for these banks.
I am also enclosing a schematic of a LED 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 0.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 now 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 an updated FIX table for the 0.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 0O.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
52 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
EXTRA MEMORY 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 FF.
3. The address 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 to the called routine.
The stack pointer 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 utilized by the passed parameters while preserving all 2-80 registers:
¥3 DI Disable interrupts.
DDE1 POP Ix Save return addr. in IX.
E5 PUSH HL Save HL(overwrite return address)
C5 PUSH BC Save BC(overwrite chunk mask and bank number)
210000 LD HL,O Make HL=SP
39 ADD HL, SP
2B DEC HL Point to high byte of # of output parameters.
46 LD B, (HL) Get high byte of # of output parameters,
2B DEC HL Point to low byte of # of output parameters.
4E LD C, (HL) Get low byte into C
F9 LD SP, HL Assign new SP value.
D5 PUSH DE Save original DE value.
110600 LD DE,6 Offset from SP to start of parameter list.
19 ADD HL,DE Point HL to parameters.
1100CO LD DE, cooo Destination address in bank RAM for storage of Parameters.
EDBO LDIR Move the parameters from
the stack to the RAM in the expansion bank.
D1 POP DE Restore DE data.
C1 POP BC Get # of parameters back.
D5 PUSH DE Save DE again.
FS PUSH AF Save AF.
2B DEC HL Point DE to top address
ES PUSH HL in stack where parameters 53
UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
EXTRA MEMORY
EXTRA MEMORY
By: Charles Bothner
DL POP DE J were stored.
A7 AND A Clear carry, if set.
ED42 SBC HL,BC Offset HL by number of parameter locations.
010800 LD BC,8 8 bytes on stack to be moved.
EDB8 LDDR Move the stored register
data to recover the stack space previously occupied by the parameters.
DS PUSH DE Point SP to start of the
El POP HL stored register locations
23 INC HL
FQ LD SP, HL
Fl POP AF Restore original register
D1 POP DE values.
C1 POP BC
El POP HL
DDES PUSH IX Put the return address on the stack
CDxxxx CALL xxxx Call the routine in the
expansion bank which makes use of the passed
parameters. FB EI Enable the interrupts. c9 RET 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 ealling routine requires paraneters to be input rather than output to the called routine but I will save that for next time.
A brief explanation of the expansion bank hardware operation may be in order. The following refers to the schematics which were published in your last edition. U10, U11, 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 data 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 hot utilized at the present time, U17 latches the 3 high or- der data bits that are 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 the appropriate expansion bank port commands.
The subsequent write to or read from port FC will utilize the latched U13 output to determine the funetion being executed. For example, a read from expansion bank port 40H will be the low nybble of the currently selected banks chunk mask. The bank was selected by sending the bank number to U2 via a write to port BOH. U1 decodes the output of U2 to
54
UPDATE MAGAZINE OCTOBER 1988
UPDATE MAGAZINE EXTRA MEMORY
OCTOBER 1988 EXTRA MEMORY
By: Charles Bothner
select one of the 15 possible banks. U15 is used to deselect all chunks in all expansion banks either during a power up reset or by writing a 0 to port COH. Uid is used as a con- trolled deselect of chunks common to all expansion banks when 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 straightforward combinatorial logic to select the required control functions.
Proceeding to the schematic for the individual expansion bank boards, we 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 U3, U4, U9, and W10 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 014 on the controller board. Ul is used to determine the status of the bank. Bit 2 is read back as a low to verify that a bank is really present when testing for banks during the system initialization. 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 answer them in future articles. Now that the basic system hardware 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. be
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.
Note: For those readers who have a need, UPOATE will supply the tvo nissiag items: sincerely,
1. Copy of disk wentioned, Oliger or Larken forpat- $5.00 for postage and handling. Cc y Bethe, 2. 26 page code listing starting at SYSCON SEEA hex through 683F her.- $8.00. fed.) Charles G. (Chuck) Bothner
55 UPDATE MAGAZINE OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
The CABLE COLUMN
This feature column, by Bill Cable, starts with this issue. There 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 mv 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. Then 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 brings the software "REFIELD" and is a mini manual on what REFIELD does arxi how to use it.
The third article brings another software "HELPER" 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".
woop AND WIND COMPUTING
Bill Cable Cornish, HH 03745 : 603 675 2216
WHY 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 +o 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 1 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 ARCHIVE. After all, I don't claim it to be perfect. And last, I will give a mini ARCHIVE lesson for beginners which will include a single line of ARCHIVE commands which will calculate and
6 UPDATE MAGAZINE ? OCTOBER 1988
OCTOBER 1988 UPDATE MAGAZINE
print on the screen how many countries of the world have a population density less than the US and what their sum total population is, using the Gazet database provided on your database cartridge. Beat that, HyperCard! Maybe that will whet your appetite for extracting trivial information from Gazet.
12 Good Reasons To Use ARCHIVE
1. The price is right. That lonely cartridge is setting there covered with dust. All you need to do is open your manual, press <Fl> and you are on your way. The supplied database, Gazet, gives you some~ thing to play with. At the end of this letter you will find a mini ARCHIVE lessons for total beginers.
2. There is a great need for information handling. All of us could use more help in storing and