P DATE J

$4

95 April 1990

EXPLORING THE POWER

OF

SINCLAIR COMPUTERS

THE CAMBRIDGE Z88 Portable Power

M SINCLAIR TM TS-2068 Versatile Desk Topper

H3E SINCLAIR QL 32 Bit Power House

In this issue. . .

UPDATE CONTINUES WITH NEW PUBLISHER

QL OPERATING MS-DOS TS-2068 EXTRA MEMORY USING RAM DISK with TS-2068

PSION'S THREE NEW MOBIL CCMHMS nek zss poblicsticn ql-s text -s? PLUS- fflff ISSUE DISKS PGR BOIH THE SINCLAIR QL AND THE TS-2068

UPDATE MAGAZINE

1317 Stratford Ave. Panama City, FL 32404 904 871 3556

News and New Products

If you 1 ike your Sinclair

Don

chase your tail

O

Turn it a ± o lj n ^WSmMm^ and g-o t your tail over -to the Mi lwaukee Sinclair Expo

fisiisiiiiiratpitii

June 2nd 5: 3rd Banquet Friday Night June 1st

- SEIiMS, SOFTUBRE, HHIIIE, DDK ROB, SUP SHOP -

Loc«Uon - li| Hi I| " h) 18 * 194 H««k«h« HI

Satwrday June 2, 1998 uiil be the SNUG meeting Ticket! : in adv. Ait door

One Buy - 4.86 5.

Two dfljj- 7. Banquet -16.88

8.88

ww

Mies: 38" x 6' 25.88 each

If flying in call us, 414 353 4522. with flight info, for transportation. Hail your reservations to:

Expo Reservations, P.O. Box 181, Butler Wl 53225

2,

UPDATE CHANGES PUBLISHER

by Bill Jones

This announces that Frank Davis, 513 East Main Street, Peru, IN 46970 will be taking over as publisher of Update Magazine with the October 1990 issue. We hope that the subscribers will not notice any change in quality or depth of coverage except for the better. I am delighted that Update will be a survivor publication and will be published under such competent leadership as Frank Davis can provide. I will help Frank as much as he requests to keep Update an excellent publication.

Frank Davis is a long time user of both the TS-2068 and Sinclair QL. He has recently been involved as the SNUG Librarian for public domain software. Frank was a key person in organization of the 1988 Computer Fest at Indianapolis and has been the editor of a TSUG newsletter. In addition Frank is in close coordination with other SNUG officials in Indiana who will be at hand to assist in keeping Update Magazine a good publication.

For those of you who have articles to publish please keep on sending them in. I will turn over all un-published articles to Frank when the July issue is finished. I am looking forward to having more time to spend on programming and my sailing hobby. Also I promised to take the Wife on a cruise in the Virgin Isles.

The hints given in Update recently that I was about to quit publishing brought on many letters urging me on. That was enough to make me reach out to find someone to carry on the magazine. But how can one sell ice to Eskimoes, Confederate currency, an old treasure map, a sunken boat, or a non-profit magazine? But the effort paid off. Now we have another dedicated publisher to keep Update going, the first Sinclair Timex magazine to survive the quits. I urge all to give Frank Davis your support. Re-subscribe and try to bring in another Sinclair Timex user as a subscriber. There are many inactive S-T "owners who are not users". We need to find these folks and encouraged them to subscribe to Update and re-join this enthusiastic group. The subscribers really are an enthusiastic group having a convival spirit of friendship with a cannon interest.

Update is your magazine. There will be some complexion changes,, likely for the better. Each publisher injects his own personality into the pages. Since all Sinclar - Timex supporters are eccentric characters beyond help from couch analyists, Frank Davis will likely bring in a new set of egocentrics and incomprehensibles for you to enjoy. I quit with the hope that you are still trying to figure out whether or not I have any literary talents or am truly the curmudgeon that one of our subscribers suggested. My intent all along was to confuse while injecting humor and a bit of satire to twit the perfectionists who look for nits in the forest of verbs, pornouns, and infinitudes, and find many because Update is too poor to hire a proof reader. Its the beef that counts.

I also would like to remind everyone that Update Magazine is not a profit venture. The best that a publisher can hope to do is to avoid losing money. The best that I could do during the three years was to put aside enough funds to pay for the upkeep and entertainment on board the 200* yacht "White Star" as we plyed the seas between issues. (Now I'll tell you. The "White Star" is a 45 1 sailing yawl, built in 1936 at Bristol, Conn. It was our family vessel for 10 years and was given to a boy's club in 1968 when I was sent to serve my Country in Viet Nam. Sailing gave way to publishing three years ago and will be resumed with salty zest . )

A good gesture of support to your new publisher would be to send him your subscription renewal for 1991, which becomes due after the July issue is received. I wish Frank Davis and the subscribers to Update good tidings. -BJ-

3

UPDATE Gets a New Editor After July ;

In the January issue of UPDATE , it was announced that if no one could be found to carry on the publishing and editing of UPDATE magazine that it would be discontinued with the July issue (the last issue on the subscription year). Bill Jones was getting a bit burned out and wanted to spend more time at his other hobby, boating. It has been an excellent magazine and has a fairly steady subscriber base. The magazine had been twice offered to SNUG, but was not accepted at that time. At this time SNUG plans to continue with its own newsletter, of which the second issue is probably already sent out.

Veil the gauntlet was thrown down and it has been picked up, by Carol and Frank Davis of Peru, Indiana. After the July issue is sent out from Panama City, Florida, the magazine will be moved to Peru, Indiana. This means that all renewals of subscriptions will go to UPDATE Computer Systems, P.O. Box 1095, Peru, IN 46970. They will also, after the July issue is mailed, be handling all orders for program disks from the magazine. In the past this magazine has had near 100% renewal, and it is hoped this will be continued. Most of the magazine will remain pretty much the same, other than adding a column on Sinclair desktop publishing. We hope to retain all of the same writers and perhaps add a few. At this time all prices and policies remain the same. The price for a subscription is SIS. 00 U.S. The only change being looked at is that , with a postage rate hike likely in February 1991, we may have to increase postage for those subscribing overseas and in Canada by a dollar or two. It costs more to mail out of the country. All correspondence or questions on this should be directed to Frank Davis at P.O. Box 1095, Peru, IN 46970. Assisting the Davis family with this venture is their longtime friend, Eliad P. Vannum, who will be active in the editorial department. He will undoubtedly also get stuck with a lot of collating and stapling of the magazine.

For those who do not know Frank Davis and his wife Carol, allow me to say a few words. Remember the first Midwest Timex-Sinclair Computer Fest at Cincinnati, Ohio? He was the guy who got it all started and together with Jack Roberts and a committee of 11 more, put on that show. The next year he went on to produce the 2nd Midwest Timex-Sinclair Computer Fest in Indianapolis, Indiana. To this date, that was the largest and best attended Sinclair show on this side of the Atlantic. Those who attended the show the next year at Cleveland will have remembered he was one of the moderators for the large meeting for all attendees and that he presented a seminar on data exchange between the TS1000, TS2068 and the QL. For the last four years he has been the Editor of the ISTUG Newsletter, except for a few months that Mike Felerski had the helm. He was one of the original founders of the Indiana Sinclair-Timex Users Group, in which he is still very active. Presently, he is the Head Librarian for SNUG. In each and all of these endeavors, he has had the support of his wife, Carol, serving on all committees, proofreading, typing , etc.

Ve will look forward to having the full support of all subscribers, writers, programmers and Sinclair vendors. Thanks to Bill Jones for giving us another chance to serve the Timex and Sinclair users of North America.

4

PSION DEVELOPS 1SREE NEW OCMPUTERS

A new generation of MOBIL full capability Computers !

{To prvowwuncjL PSION, dsuop ike. "P" and 4ay, 'M.-aan' ).

PSION has been a leader in Software development since the first Personal computers were introduced by Sinclair. Some of PSION'S classic softwares are: View Calc and View File for the TS-1000, TS-2068 and Spectrum, Quill, Abacus, Archive, and Easel, for the Sinclair QL. PSION is an American Company based in Water town, Connecticut, and they are producing a new line of computers.

First came a PSION "Minature", a calculator size computer having full computing capability and the ability to transport files to and from IBM compatables.

M A M SERIES OF W (MW

Now PSION comes in with a new line of "MOBIL" Computers that have many new and attractive innovations. PSION coined the name "MOBIL COMPUTER" to better discribe the size and portability of this new group of computers. The terms "Portable" and "Personal" - had become meaningless applying to a wide range of computer sizes. Three new computers are designed to have FULL DESK TOP CAPABILITY.

PSION'S "Mobil" computers are the size of a loose leaf note book, measuring two inches thick and weighs 4 1/2 pounds. The three models have clam shell design to provide a full size screen that folds up to provide high resolution viewing with built-in graphics interface.

The three models of PSION Mobils are designated: MC-200, MC-400, and MC-600. The first two are designed with PSION'S own Operating System. The MC-600 is designed to use MS-DOS and all of the software used by the IBM compatable market.

Common Design Features

All three of the PSION Mobils employ the newest technology of "Flash Memory SoHd State Disk" (SSD). These SSD's are match book size Flash Memory cells that act in the same manner as disk drives, but have no moving parts. Each of the PSION Mobils have four SSD's built in.

The PSION Operating System is ROM BASED, meaning that no outside DOS utilities are required for operation.

ALL RAM MEMORY is held Non-Volatile by replacable AA batteries that last for up to 75 computer operating hours. In terms of normal

usage this translates into months of operation.

THE MC-200 - MC-400 Mobil Computers

These computers use the PSION Operating System and have an ensemble of BUILT-IN Softwares including, Word Processing, Personal and Business Data Base Management, Personal Diary, Full Function Calculator, and Terminal Software for Tel ecommuni cation.

The MC-200 and MC-400 have SPEECH PROCESSING. A built-in Microphone is used to input speech which is stored in memory. Speech processing includes its editing. Entrys to the built in software can be made by voice. Play back is also provided.

The MC-200 and MC-400 have a built-in "Touch Pad", a Mouse atop the keyboard. The Touch Pad is integrated with the built-in softwares to provide menu item high lighting for selections.

The MC-200 and MC-400 use the PSION "FAST LINK" to transport files to and from either IBM or Apple computers. Fast Link will be discussed more as the MC-600 Mobile is described.

THE MC-600 MS-DOS MOBIL COMPUTER

The MC-600 is designed for full comparability with the widely used IBM compatable systems. The MS-DOS 3.2 DOS is built-in to the MC-600 ROM. PSION is currently adapting its own Library of software into the SSD format. Transportability of MS-DOS disk files and programs is provided by a built-in PSION Communications Link. The built-in software links any MS-DOS computer via PSION's own "Fast Link", a serial interface that transfers data at a rate of 1.5 megabytes per second. Fast Link works with both IBM and Apple Computers.

Remember, PSION has been a full capability Software Enterprise since the beginning of the Microprocessor Computer industry. Their vast experience and library of software provide a combination that is unique in the Computer Design industry. Most Computer industries build their computers and depend upon outside software support of their systems. That PSION is converting their library of software for this new line of Mobils promises un-excelled software support of these computers for years to come .

While the PSION MC-600 uses MS-DOS which has wide software support, most new computers that have new Operating systems suffer from lack of software support. PSION's in-house software capability promises full software support of the MC-200 and MC-400 from their beginning. (See EMSOFT Ad for specs.) -BJ_

t 5'

To a hundred who wrote: The. Jamiasu/ iS6ue o4 Update, uas mailed on. Mustek. 4. Not anything to bo, jyvoud o4 4oa aujvl. Excuse,: My apple, cant began to titt just a4teA. Chxistmas, 4<Uut uflth. the. need Joa. Aemoval 04 a. colon pollup, then an angioplasty operation to restate, a. clogged OAteny, and then a. kidney pAoceduAe. to blast away a. boulden. All this took 32 day* in ye ole. hospital. I began to think that I 'd have to pat in a change 04 addAest, cand to the postal MAi/ijce. In the meantime about 100 letters uenjL A&cebied asking "Wheats my magazine?" [Whenes the be&4?). A dozen on so had $1S checks inside., the unite* thinking that penhap* he had 4ongotten to Aeneu. These checks uteAe. AetuAned as all uptiteAS ukao. cuAAent subscAJJbens. I'm back in the pink again now, *o dont tend JIoukas. Bat the biZis one. beginning to oaaJjjq, which may cause uKvtse pain than did the kidney Atone. I thank evenyone. ion the pleasantnies^ inclosed in the lettens. (No one -tent onions. )

HAROLD A.ROMER P.O.BOX 32 JOHNSON CITY.TENN.

37605-0032

I have for sale the following items:

- ZX80 -with power supply/manual

- TS1000 -with power supply/manual

- ZX81 -with power supply/manual

- ZX81 With klik keyboard-w/ps fc manual

- 16K memory<1016)

- 32K memory (Memotech)

- 64K Memory (Memotech)

- Hunter board W/4 chips

- Eprom pgmr(MAV) for ZX81/TS1000 2/2732

- 40 col ptr

- 32 col ptr (2040)

- Mannesmann Tally Spirit 80 Ptr.

- Memotech keybd/8 1-1000

- demo hardware/ 1000

- Carry case/81/1000

- 0S64 Cart-64col

- Modem for 81/1000/2068

- AERC0 ptr cable W/Tape

- Memotech ptr cable 81/1000

IT'S HERE!! QL TRIVIA-GLUE

HERE IS GREAT NEW COMBINATION GAME!

IN ONE GREAT PACKAGE! I

13 ROOKS - 13 WEAPONS - 13 SUSPECTS THAT'S OVER 2199 POSSIBLE OUTCOMES! AND NOW - OVER 75f TRIVIA QUESTIONS! QUESTIONS COVER EVERY CONCEIVABLE SUBJECT!

Also included, at no extra cost, your choice of FOOTBALL FORECASTER or LIFE EXPECTANCY FORECASTER (Specify which you would like when you order.)

WE THINK YOU'LL LIKE THIS ONE! OUR PRICE? ONLY *19-95 ♦fZph

AVAILABLE EXCLUSIVELY FROM: RMG ENTERPRISES

$25.00 ea 45.00 ea 35.00 40.00 15.00 ea 30.00 40.00 35.00 25.00 40.00 40.00 150.00 55.00 15.00 10.00 15.00 75.00 30.00 45.00

We carry ALL hardware and software ftnes for the Sinclair QL. We also carry the Z88.

WRITE FOR FREE CATALOG

Sharp's, Inc.

Rt. 10. Box 459 MechanksvlIJe, VA 23111 (804) 746-1664 or 730-9697

Compare the PSION MOBIL COMPUTER to any other portable computer now in production.

Dollar for Dollar, feature for feature, it can't be beat.

Model

MC-200 MC-400 MC-600

CPU

**** 80C86 16 bit CMOS ****

Speed (Mhz)

7.68 7.68

7.68

BIOS mfg

Phoenix Phoenix Phoenix

RAM Standard

128K 256K

768K

RAM Maximum

' 512K 512K

768K

Screen diag

10M 10"

10"

type (LCD)

SupTwist Retardation Film

protocol

CGA DCGA

DCGA

resolution

640x200 640x400 640x400

col x line

85 x 14 85 x 14

???

No. of Keys

69 69

79

Detach keybd

no no

no

Slots Stand

0 0

0

Prop

2 2

2

Battery type

8xAA Alk/Opt Rech NiCad Pax

life

75 hr 60 hr

40 hr

replace

yes yes '

yes

Ports Ser/Par

1/1 1/1

1/1

Video Port

no no

yes

ROM size

256K 256K

256K

Software

in ROM

GUI GUI

MS-DOS 3.2

Touch pad

yes yes

no

Floppy Stand

no no

no

Floppy Ext.

no no

1.44Mb 3.5"

Hard Disk

no no

no

RAM Disk

OK OR

1 Mb intern

Maximum

2 Mb 2 Mb

8 Mb

Slots

4 4

4

Fast serial

transfer

***** External Option *****

Modem

***** External Option *****

Microphone

yes yes

no

Speaker

yes yes

yes

Programing

language

OPL OPL

n/a

Dimension

*** 12.4" x 8.9"

x 1.9" ***

Weight (lbs)

4.3 4.3

4.3

Warranty

******** 12 months ********

Price

$1199 $1699

$2999

Call for current quote from

EMSoft Box 8763, Boston, MA 02114 (617) 889-0830

v

A New Z88 publication has surfaced. Z88 Fax News is propagated by Fax

line or mailed to subscribers who do not have FAX. One of the four pages of the issue received is duplicated below. Update Magazine presents this as NEWS ONLY and does not necessarily endorse the Z88 or Z88 FAX NEWS.

Z88 Fax News

February 1990

Publisher et al Curtis Claar

Facsimile Promo Productions

2342 Glendale Ave. Casper, Wyo. 82601 Fax or voice (307) 766-7026

Page Three

Cambridge N, America

Is cash a problem?

So is Cambridge North America broke or aren't they?

One CNA employee was quoted as saying, "We are very alive." Others agree.

But reports still keep com- ing in of financial dire straits. Some say CNA owes Cam- bridge UK more than $1 million. Others say CNA has bought more ads than it can afford. Some people say CNA is simply bankrupt.

As is often true in research- ing the records of a company, researching CNA has proved to be no less than confusing.

The search for the truth begins with CNA's name.

Marc Giguere of CNA said CNA is merely an assumed name for SSI Computer Sys- tems, Inc., a Delaware com- pany.

SSI is not to be confused with SCI. SCI is the company that makes the Z88 and IBM and Wang keyboards, he said.

Giguere said Diversified Foods owned New England Sales, Unicorn Transportation, and Cambridge North Amer- ica.

He said that 4-5 months ago, Diversified Foods was bought by the Bank of Boston and Cambridge North America subsequently separated from the conglomerate. He said see CNA page three

Z88s not just for little guys

It's small, but 'big' people still use it

The Z88 has always been considered by non-Z88ers to be powerless just because of its size. But several famous people have proven size isn't everything. Many people that are in the public eye are buying laptop computers and the choice for some has been the Z88.

Singer Mel Tonne, the jazz duo Tuck & Patti, comedian/magician Teller of Perm and Teller, and Anchorage Daily News Editor Howard Weaver are all in die ranks of those who own Z88s.

Mel Tomie uses a Z88 and it's said that he is currently writing a book on it that is using it, not about it. Cambridge North America has also reportedly approached him about a making a televsion commercial for them. It is still unknown what will come of this.

Tuck of Tuck & Patti, an internationally famous jazz duo, is said to be a real power user. Tuck has a 512K RAM card in the first two ports and several EPROMs to

use in the third. Tuck supposedly uses it all the time and takes it everywhere.

Teller, the silent half of Perm and Teller from New York City, surfaced on the Z88 BBS in Torrance, Calif. (BBS phone number: (213) 370-2754). Teller has a Z88, but not much else it certain after all, he is the quiet one. Penn and Teller, though, apparendy have been computer buffs for some time. At one time they or some real good fans .were running a Penn and Teller Fan Club BBS.

And even Howard Weaver, the editor of the Anchorage Daily News, uses a Z88. He lias written a few interesting programs for it and is considering buying Z88s for his reporters.

Z88 Fax News will keep its readers updated on famous Z88 owners. Watch for more articles on this subject in the next few months.

Curtis Claar

Welsh company sells linkup packages

The Music Suite Ltd. in Wales is now offering two linkup packages for the Z88.

They have been offering a hardware and software linkup package for the Atari ST for nearly two years now and last year they came out with one

for the Amiga. They have plans for a PC version as well.

The Music Suite is run by Adrian and Helen Wagner and Francis Monkman.

"It has always been our intention to fully support our software," Adrian said in a fax

letter last month. Because of this, they claim to offer more than simple dump programs.

According to advertising, the programs also route Z88 printer output to printers con- nected to the ST or the Amiga.

A review is forthcoming.

The Z88 and Telecommunications

by Dave Bennett

The Z88 is particularly well suited for communicating to modems and other computers. A serial port which communicates up to 38,400 baud, a VT52 terminal program and a dedicated file transfer utility are included with the stock Z88. The Z88 also weighs only 2 pounds and is easily transported right next to the device you want to communicate with.

My Z88 is mainly used to talk to a pocket modem and a QL. Z88 files are archived on a QL disk. I also occasionally communicate with PCs at work and other Z88s.

I have designed and built cables to communicate with the QL, PCs and other Z88s. I built the modem cable from recommended pinouts by Cambridge.

The QL cable is as follows:

xmodem on each machine. You set up one machine to send and one to receive. Then you start the transfer on both machines at the same time.

You can transfer ascii files without xmodem by various means but I prefer to use xmodem. It provides error checking in the transfer so you know the files are transfered OK. You can also transfer any type of file even machine language.

Z88 to PC and Z88 to Z88 transfers work similarly. On the PC I prefer to use PROCOMM. It is a powerful program and extremely easy to use. I would like to see it made available for the QL. For Z88 to Z88 transfers I am using Z88C0M on both machines.

The Z88 - PC and Z88 - Z88 cables are as follows:

Z88 DB9

PC DB25

QL SER2

2 3

3 2

i-4 4

!-5 ! 5

6 ! 6

7 i 7

! -8 ! 8

!-9 9

2 3 !-4 !-5

6 7 8

3 2

4-! •5-!

6-! 7 ! 8-!

20

I have tried several other designs for a Z88 - QL cable but have not found a cable that works as well for transfer ing files.

What I- use to transfer files are Q_Link for the QL and Z88C0M for the Z88. Q_Link is a shareware terminal program from Harvey Taylor. It includes CRC and Checksum xmodem as well as many other features. Z88C0M is a publicly available terminal

program from Phil Wheeler. It extends the built-in VT52 with checksum xmodem and some other features. Phil also operates the Z88 BBS in Los Angeles.

I basically connect the computers with the cable and run terminal programs which utilize

Z88 Z88

2 3

3 2

,-4 4-! !-5 5-!

6 6

7 7

8 9

9 8

There also is a variation on Z88C0M called Link by Dave Armstrong which turns the Z88 into

a mini BBS. There are no message facilities but you can transfer files. All typing is done at a remote computer. The Z88 just sits

8

there. It is similar to PRQCOMMs Host Mode. It works well connected to a computer in the same room. Modem -facilities were removed from this variation but you can connect to the modem and then switch to Link by hand. With this program you can transfer files with someone across town at a prearranged time. You could even transfer QL and 2068 files.

There also is another program available for the 288 called ZFU by Richard Haw. This is a utility which takes many files and archives them into one large file. In the process it compresses the files so the resulting large file is much smaller. You can archive all the files in all the ram devices of the Z88 into one file and just backup that one file to your QL or whatever.

The Z88 also works nicely with any Hayes compatible modem.

Here are the official modem pinouts from Cambridge:

Z88 Modem

2 2

3 3

7 7

5 20

8 20

9 20

The Z88 includes a built-in VT52 terminal emulator. It works quite nicely although you have to dial manually with Hayes AT commands. It is also easy to send and receive ascii files with just the built-in software. The built-in VTS2 also connects quite nicely to a VAX mini computer once you tell the VAX you have a VT52 with 8 lines.

But I like Xmodem. A terminal program was developed in England which provides xmodem. The disadvantages of this program are its high cost and it also adds its own protocol in place of the VT52. The built-in VT52 works ^much better.

Fortunately Z88C0M came out which provides xmodem but works in

concert with the built-in VT52. Z88C0M is also much cheaper. In most cases it is available for the cost of a download. Z88C0M can also autodial and autologon to five systems. It has a message upload feature for sending text files. All in all it is a great program.

The latest I heard was that Cambridge just came out with a VT100 terminal program. I have not heard too much about this. The VT100 can display graphics from a remote IBM or VAX. It moves the cursor around your screen on command from the remote system. I am not too sure how well this will work on the Z88 with its 8 line screen but it sounds interesting.

The Z88s portability and sheer connectivity to anything speaking RS232 make it a great little computer for telecommunications.

HARK m USEKS: (WHAT A NICE GUY!!)

Dear Bill, I have been trying to promote the Z88 for about two years. I have about 350K of Z88 programs and related QL programs that were downloaded from two main Z88 BBS: 703-968-9438, 213-370-2754, and GEnie.

I can put the files on a QL 720 sector disk or a IBM 360K disk. In the case of the IBM disk I will substitute some IBM programs instead of QL programs. See below:

Z88 Public Dcmain and Shareware Programs:

(Approx 350K of files)

Available on QL DSDD 720 sector disk or IBM 360K disk. The QL disk includes Z88 related QL programs. The IBM disk includes IBM related files.

PRICE: A dollar to pay for mailing, or two dollars to mail in a disk mailer.

David Bennett 329 R. Walton St. Lemoyne, PA 17043

9

THE SINCLAIR QL

( BITCH.' BITCH? AND DO NOTHING )

"My BlndtauUt. QL ±A wr-AeJtiaMtt. that I cannot get. a, ^imp&e. one, page, tetter done, utithout the. QL CAxuAing. The, cstath uMjatly happen* when the. AjepiLgeAatox. a* iannacz. klcJu on. " This complaint was received a year ago from a QL Subscriber. Still, almost every week I talk to a QL user who is still having such problems in varying degree. THERE IS NO EXCUSE FOR HAVING SUCH PROBLEMS ANY MORE! ! Read on—

March 17, 1990 Bill Jones,

The Q/L on which this letter is being composed has been modified per Dan Elliott's article. (July 1989) The lock up problems associated with the Q/L power supply plaque me no more. There is no longer a need to save text every few minutes. The only lock up experienced now is caused by conflicts between the software and the inputter.

The Coleco power supply is enclosed in a fabricated, black case, with openings for air flow and is now sitting on the floor providing cool uninterrupted power. This modification is not difficult, it's not expensive, and is highly recommended. Tell everyone to do it themselves or call Dan, but get it done!

My confidence in the Q/L is now such that I am in the process of putting together a disk drive system and saving for a Trump Card expansion. The microdrives work fine, usually, but I would prefer a faster, more reliable system.

Ha ! ! The furnace just came on and someone started the microwave and I am still input' in. To bring this to a close, I thank you and all who contribute to the cause of keeping the T/S computers working; the writers, programmers, and dealers.

sincerly, Elliott Repairs all Computers

KfiJ\ RR-1, Box 117 Specializes in repair

Donald R . Lnes Cabool , MO 65689 of QL and TS-2068

1900 sunvale Tel 417 469-4571 Power mods for both

olathe, ks 66062 (weekends)

, (ny Coleco Vs SfTs (WeA 71*- wpnfT&a*.)

Ed note: Need I say more? But I will. Some QL users get the downs because they are affected by the dis-respect from the Yuppies, the ridicule from the $5000 IBM users, the syndrome "I only paid $100 for it so it must not be very good", and the "Sinclair abandoned us syndrome". ANYTHING to bolster insecurity and lack of self esteem. But others are bragging that their QL does 10 times as much as the IBM AT. I guess that is the difference between the pessimist and the optimist. You know what I mean. The pessimist believes that the sky is falling upon him, while the optimist believes that the sky is rising with him in it. Me? I believe that when one has a problem he should fix it. When it is forecast to rain I leave my hat behind as I go fishing. On Sunday I believe that the preacher will soon quit talking. I'm always sure next months bills will be less, that Ed McMann will send me that million that he promises, and the Wife wont have a headache. Don, my QL is working fine too! But work on that interface conflict, and you'll overcome. -BJ_

10

Runinatioos Fran The QL Editor

WOOD AND WIND COMPUTING

There is a lot of interest among QL users about the PC world and MSDOS operating system. Its makes sense because the influence of PCs on personal computing is tremendous. Digital Precisions emulator, PC-CONQUEROR, makes it possible for any QL user with disk drives and memory expansion to turn their QL into a quasi PC. This is certainly a novel capability and has useful applications but be aware that the QL makes for a SLOW PC, The QL is a fine computer. With disk drives, memory expansion, or TRUMPCARD it can still hold its own against a PC. It is slower in many ways but has capabilities that most PCs do not. If you use your QL effectively you can still work as fast or faster on it than most PC users can on their computers. It can serve you well for years to come. Learning to use your QL effectively probably makes more sense than playing around with MSDOS on it. The purpose of UPDATE Magazine is to help you reach that maximum potential with your QL.

That said, I need to explain why we are giving so much coverage to MSDOS in this issue. It's definitely not because we feel that the QL is dead and we all need to swtich to MSDOS. It's because we want to provide information to our readers. There are many QL users who are curious about MSDOS and many others who work in both the QL and PC worlds. UPDATE needs to check out QL Software related to PCs such as : DISCOVER (allows QL PC disk compatility, $40), PC CONQUEROR (PC emulator and allows QL PC disk compatibility, $150??). PC software related to the QL include : PSION 's PC-POUR (PC versions of QUILL, ABACUS, EASEL, and ARCHIVE, $99) .

This issue is packed. Part III of David McCall's WINDOW DEFINING series focuses on SUPERBASIC procedures .

Peter Hale starts a 2 part series on TEXT87. Al feng clears the air about ROMs on the QL.

Bob Hartung shows how to set up an ARCHIVE address database.

Bill Jones shows us some QUILL printer driver tricks .

We have lots of coverage of PC CONQUEOR and MSDOS with articles by both Bob Hartung and Al Feng.

There are a couple of articles about the TS-2068 that the QL users may benefit from. One is about Dot Matrix printer drivers. The other is a Business Software for the TS-2068, done in Basic. This excellent program offers a challange to the QL users to clone it in Super Basic. The benefits will be worth the effort and the conversion should be good practice.

Finally, I explore the QL-PC connection through ARCHIVE by showing how I converted one of my ARCHIVE programs to work on a PC. And there is more.

Next issue David McCall will tie up his Window Defining series and we will have an Issue Disk of it. Peter Hale will continue his in depth description of TEXT87. More of Timothy Stoddard's TRUMP CARD Manual.

Don't forget about the 1990 Sinclair Computer Exposition in Milwaukee hosted by SMUG on the weekend on June 2&3. See You there.

21

Bill Cable : RR 3 Box 92 : Cornish, NH 03745

CABLE COLUMN

QL - ARCHIVE - PC

Databases are specialized programs for efficient handling of both text and numeric information on a computer. Anyone trying to put their computer to good use should be using a database in one form or another. As many of you know I am a great fan of the ARCHIVE database and programming language. I write commercial software with it. For handling information on a QL it has no peer for its capabilities. This is not to say that there is not a price to pay for using ARCHIVE. Either you have to learn how to use its programming language or you have to buy ARCHIVE programs. Other alternatives include buying FLASHBACK or write or buy database type programs written in SUPERBASIC or other languages.

In earlier issues of UPDATE I have tried to explain the basics of using ARCHIVE. Now that I see there is so much interest in MSDOS by QL users I want to push ARCHIVE from another angle. If you want to be able to do something useful on MSDOS computers then learn the ARCHIVE language on your QL. I have been aware that there is PC version of ARCHIVE. But until recently I have had very little experience on MSDOS machines (PCs). After tackling my first serious conversion attempt (making DBEasy work on a PC) I would say I am already close to being an expert with PC-ARCHIVE because the PC and QL versions are so similar. Almost all of the ARCHIVE I have learned on the QL can be transfered directly to the PC. DBEasy, my ARCHIVE database manager, is now available in both QL and PC versions (see my ad) . The importance of this QL-PC connection should not be minimized. Transporting software and experience from one computer to another is generally a very difficult process. If you take an elaborate SUPERBASIC program and try to convert it to run on a t PC using one of the PC BASIC languages, almost certainly you would have to make major changes to the code and a lot of learning to do as well. So learn the ARCHIVE language on your QL and you can apply what you have learned directly to a PC. You can transfer your databases and programs to a PC as well. And its not like ARCHIVE is an inferior language. I still maintain that it is one of the nicest languages around. Its a nice structured procedure oriented language with a built in editor and good error messages and handling. Its very much like SUPERBASIC without line numbers or bugs. And I have talked with people who are experienced with PC- ARCHIVE and other PC databases and they feel that ARCHIVE is a superior database for PCs. Just like the QL was/ is ignored by the masses, PC-ARCHIVE is ignored even though it is a fine database. And compared to the price of DBASE or PC database programs it is a bargain.

This Cable Column is going to describe how I went about converting my DBEasy program to the PC. This included purchasing a PC computer, the Amstrad PPC640 portable, and learning a little bit about using MSDOS. I will also give some statistics comparing DBEasy' s performance on the QL and on different PCs. We already have ARCHIVE for our QLs. For the PC you must purchase it as a package with QUILL, ABACUS, and EASEL called PC-FOUR. The price is about $99. It can be purchased from me (see my ad) or EMSOFT or RMG or Sharps. If you work en a PC it makes sense for you to have PC-FOUR because you

use the same programs on your QL. The PC versions also have extra features. It's pure folly to purchase PC-POUR to use soley with PC-CONQUEOR. The QL makes a poor PC.

Choosing a PC

Before I could do serious PC work I needed a PC computer. DBEasy swamps PC-CONQUEROR so I couldn't do the work on my QL with the emulator. Even if it worked, life is too short for its snails pace. The possible choices for a PC are limitless. They range from an XT type (8088 or 8086 processor) or an AT type (80286) or an 80386 machine with prices from $500 to $2000. My final choice was a portable by Amstrad, the PPC640. It is an XT type but the 8086 processor has a 16 bit data bus so it is almost as fast as an AT of similar clock speed (8 MHz) . It is too heavy to be a laptop but is totally portable and takes little space to set up. It will run from batteries or 12 volt DC (as in a car) or normal house current. I have my own home power system and the fact that it uses only 20 watts of power and I can run it on 12 volt DC were big pluses to me. I also liked it having a full size AT style keyboard. It has two 720k 3 1/2 inch drives. It has an LCD screen (no backlight) but will also plug into my Magnavox RGB monitor with CGA display. I use the same monitor with my QL. The PPC640 also has a built in 1200 baud modem with phone connector and is provided with software to run it. It has 2 serial ports and 1 parallel port. I bought it from UNDER-WARE Electronics (800-442-1408) as advertised in Computer Shopper for $700 plus $25 shipping. Although still available, it is no longer in production and was originally suppose to sell for something like $1200. There are also versions with one disk drive and no modem available for less. It comes with DOS 3.2. It has worked flawlessly for me and I recommend it. The keyboard action is not the best but works fine. The drives are quiet. The LCD screen needs good room lighting but is adequate. I have found it to be fast compared to my QL mostly because of much faster screen handling. There is suppose to be a 20 Meg portable hard drive available for $300 but I don't have it yet. It is certainly an inexpensive way to break into the PC market place. I have a comprehensive payables/ receivables package for home and small businesses written in QL -ARCHIVE that is almost ready for release. By converting it to PC-ARCHIVE, I have a package to sell locally to small businesses. Later if things go well I will consider getting a more versatile 386 machine. Have I abandoned my QL? No way! I consider QDOS a more flexible operating system than MSDOS and I like being able to multitask. I don't want to abandon SUPERBASIC with its excellent language for making quick programs wijbh very flexible graphics. Even if slower in some respects, I can still work faster on my QL because of its excellent features. In the future I will work on both the QL and PC machines. It is certainly nice to have the 4 PSION programs available on both.

The DBEasy Program

DBEasy is a front end database manager for ARCHIVE. It allows you to use most of ARCHIVE'S features without having to know anything about its language. It allows the user to create and manage all sorts of databases. It is a large complex program (55k on the QL and 56k on the PC) but very simple to use. As with any friendly software most of the development effort went into making clear and simple menus and displays. -

Transfering DBEasy to a PC

Now that I had a QL, a PC, ARCHIVE for both I next needed to transfer my QL files to the PC. There are at least 2 ways available. The best way is to use a QL software like DISCOVER or PC-CONQUEROR to copy them to a PC formated disk on the QL and take the disk to my PC. I couldn't do that because my QL has 5 1/4 drives and my PC has 3 1/2 drives. I have 3 1/2 drives on order for my QL from RMG to make life easier. So I had to use the serial ports on my QL and PC to transfer the files. I used the ccmnunication software, MIRROR II, on my Amstrad to conmunicate with my QL which had software so it emulated a VT-52 terminal. I had some trouble figuring out the cabling. Peter Hale provided the necessary expertise to finally get it working. After that it was simple. Only text (ASCII) files can be transferred. This means I have to have my ARCHIVE programs in _jprg form rather than _pro form. If you save a program in ARCHIVE with the SAVE "filename" ccmrand then it is saved in ASCII format (_prg). If you save it with the SAVE OBJECT "filename" comnand then it is saved in binary format (_pro) . Normally you keep large programs in binary format because they load faster but for transfering to the PC I had to put them all in ASCII files. Also my databases had to be in export (_exp) files (ASCII) rather than database (_dbf ) files for the same reason. Since screens (_scn) are not ASCII files I can't transfer then. I must reconstruct them with the ARCHIVE SEDIT canrand on my PC. After transferring I started PC-ARCHIVE, imported the databases, rebuilt my screens, started DBEasy and changed code where problems existed.

Sane differences between QL and PC ARCHIVE :

The most important difference for me is that there is no POSITION command and RECNUM() function in PC-ARCHIVE. I like to use those features to keep track of where I am in a database. If you use the FIND ccmrand it is nice to know how far you are in the file if you find something. ( They have been replaced in PC-ARCHIVE by a more powerful ordering and selecting process that allows you to keep 4 ordering and 1 selecting definitions at the same time and switch between them. This is a very powerful feature but my code doesn't take advantage of it yet. The BACKUP comnand works differently in the 2 versions. On the QL it is similar to a general file copy ccmrand but on the PC it only works on databases and does a record by record copy. In PC- ARCHIVE there is no FORMAT ccmrand. There is no RENAME command in QL- ARCHIVE. The PC-ARCHIVE has more complexities with paper and ink colors because mono and color monitors display differently. PC-ARCHIVE and the other PSION programs have a special task sequencing language (TSL) which can be used to control the program at startup. This allows me to have ARCHIVE and DBEasy start up automatically, something I can't do with QL- ARCHIVE. These are the major differences I have discovered when I tried to run DBEasy an the PC. The hardest part was dealing with all occurences of RECNUM() and POSITION in my code. I have worked out a display format on the QL which works surprising well on the PC so the DBEasy program looks exactly the same on the PC. Now that I know more about the differences I can plan ahead so conversions will be much easier. Since PC-ARCHIVE has more features than QL-ARCHIVE it will not be as easy to transfer back to the QL once I take advantage of those features.

12

DBEasy Performance Chart (time in seconds)

- Computer Type - - - - - DBEasy QL IBM PC PPC640 AT AT Task 7Mhz 4Mhz 8Mhz 10 MHz 20MHz

Load 69 Find 15 "xxx"

Step 58 10 records

Display 17 new page

Sum 13 Population

Order 13 by 'country'

94 57 48 10

17 11 9 2

50 19 12 8

20 7 5 2

9 4 2 1

18 9 7 1

Select 19 24 12 7 2

'Europe*

In the chart above I give elapsed time for DBEasy to do various tasks on a few different computers. I used my DBEasy program with the gazet database (155 countries of the world) modified for DBEasy. The time is in seconds. The 20 MHz AT used DBEasy from hard drive. On all the others it ran from disk drive. I must say that using DBEasy on the 20MHz machine was almost intimidating. You couldn't slow it down by doing anything. Some may be horrified to see how slow the QL is. But except for the tasks which require heavy screen work the QL gives very acceptable responses. And those that were slow like stepping through 10 records are adequate because you wouldn't be stepping through the records unless you wanted to read them and you need that much time for absorbing the information on the screen. Also notice that finding things in a database is most efficiently done by ordering and using locate if possible. Locate is fast and is pretty much independent of the database file size.

How do we judge the QLs performance against the other machines? L QL much slower in its screen handling. This is evident in QUILL and ARCHIVE. I tried SPEEDSCREEN and LIGHTNING but they didn't improve the times. Some programs still manage to give fast screens. The EDITOR and TEXT87 are examples. Also the QL was multitasking QUILL while DBEasy was being run. That didn't affect the speed of doing the tasks "because QUILL was sitting idle None of the other computers can multitask. None of the other computers can network either without expensive equipment. And the AT machines cost 2 to 5 tiroes as much as the QL. At some point I will try these same tasks on a THOR and pass on the results. It should be much closer to the AT machines. If you were to judge the QL purely on response tiroes it shows its age. If you judge it on overall features taking into account its powerful operating system, its cost, and how much you can accomplish with it then it still can hold its own against most PCs.

I have quite a group of QL Softwares and I'm developing more for both the QL and the IBM. All are priced low for what they do. I will list four of my newest. I invite you to call or write for a complete listing. Bill Cable.

HOOD AND HIND COMPUTING SOFWSRE PCR W QL and PC

is a group of SUPERBASIC and ARCHIVE programs (DIRLUX, FILEX, DBEasy) that will help organize all your

disks/microdrives so you can make sense out of them. It includes DIRlux which displays/prints directories is a column format and ahs a file finder. Also included is FILEX which makes a export file for ARCHIVE of your disks so you can make an instant database of all your files. You import the FILEX export file into ARCHIVE with DBEasy which is also included. DBEasy is an easy to use front end for ARCHIVE so you can make and manage all sorts of databases without knowing the first thing about ARCHIVE. DBEasy is also available separately and is described below. CHAOS BUSTERS is tied together through a Main Menu so you can do move around easily between the options. It is supplied with ample documentation plus extra software not described. If you already have DBEasy you can purchase CHAOS BUSTERS for $9.95. ($29.95 5 1/4 or 3 1/2 disk)

An ARCHIVE program that makes using ARCHIVE a snap. Everything is done from simple menus. You don't need to know any ARCHIVE comands but still have most of ARCHIVE'S power. It allows for the creation and managing of databases for all applications. You can easily switch any of your databases. ($21.95 on 5 1/4 or 3 1/2 disk, $24.95 on 2 micro)

PC Software for IBM ccnpatibles

PC-PCUR by PSION : The same QUILL, ABACUS, EASEL, and ARCHIVE that you use on your QL for the PC. They have more features than the QL version. They come on 5 1/4 360k disks with a thick manual and a tutor disk that make it easy to learn how to use them if you don't know already. I will include PS&sy free with any purchase of PC-FOUR. ($99 on 5 1/4 disks)

for those who aready have PC-ARCHIVE I offer DBEasy in a PC version. It works almost exactlty like the QL version and you can export QL DBEasy database to the PC and back. ($21.95 on 5 1/4 or 3 1/2 disks)

Order today or write for a list of all software avajjabje. ;

Hood and Hind Capting

(Bill Cable; RR-3 Box 92 Cornish, 1W 03745 603 675 2218

13

SETTING DP QUILL FOR PRINTERS

Seating up TYPEFACES ion, F4

Using "INSTALL BRS"

Vesklim , 3JLJLo*jaru/J

The "INSBSLLJBSS11 program in our PSION suite is used to do all of these jobs to make our printer do what we want it to do. INSTALL_BAS is used to revise our PRIMrERJDAf program in the PSION suite for use by the Quill, Easel, Archive, and Abacus softwares. So, how do we do it? Peter Hale gave one way to do it in the last issue of Update. This time we will do it in a simple fashion. If you had trouble with the procedures given in Peter's article, try this and when it works, go back to Peter's article for a more elaborate printer control set

*• FIRST A DEMOTION:

This and the above style is gotten by use of the F4 Key and "B for BOLD"

This style is gotten by use of the F4 Key and "U for Underline".

ThU Atylz. -U gotten, by ua*. o4 *no, F4 Kqjj and "H" 4 a* High, ScnApt" .

This style is gotten by use of the F4 Key and "L for Low Script"

Such CaiMnatioos (U tkM, three lines

demonstrate oaa. goibuv by uAUng ihe. F4_Kzn and repeated electives of "B, H, L, or U".

But what about this style of print that comes up as "standard" when PRINT is elected at the Quill Cormand menu? Well, the normal "Printer_dat" program puts you in "draft quality mode", while this style is "Letter Quality" mode.

OK. The illustrations are just to show that the quilt F-4 Key electives for TYPEFACE need not be for the print styles given to us in the PSION suite. In fact, each type of printer has its own typefaces that can be substituted for such PSIONi elnctives as "high Acsupti low script, and DOIQ . And, you can set in any style that you choose for these F4 electives.

The styles demonstrated are those that I elected to install in the Printer_Dat program for my KXP-1124 printer. Each user needs to decide what style is wanted and then proceed to change the Printer_dat program to his needs.

This is done by using the Printer Manual to find the Comrand Codes to "install" in the Printer Dat program. The "process of installing" is via the use of the "INSTALLJ3AS" program that is in your Quill disk (MDV)."

Now teU do W.

The electives given in the steps below are my own for my printer. Use your Printer Manual to substitute the command codes for the electives that you choose in each of the steps.

1. Leave FLP1 and MDV1 Empty and turn ON the QL. Then the Fl Key will put you in Super Basic.

2. We will use FLP commands but you can use MDV instead.

3. Remove the write protect tab on the floppy.

4. TYPE: LRUN FLP 1_INSTALL_BAS

5. When the Install_bas program loads you will need to: .,,-.»

a. elect the drive that your Quill disk

is in. _

b. elect the ser port that you use for your printer.

6. The "Current Printer_Dat program will be loaded and this begins the process of installing your own printer codes .

7. A list of different Printers will be presented.

8. Use the Down Arrow key to highlight "OTHER" .

9. Use the Right Arrow Key to erase OTHER and then type in the name of your printer.

10. Use the F2 Key to EDIT.

11. The printerjdat set-up will be displayed.

12. Use the down arrow key to elect each the following lines to edit. As each line is highlighted, use the right arrow key to erase the line (if needed). Then type in the new

Unea. PORT: Make this the Serial Port that you use for your printer.

b. BAUD RATE: Should be 9600.

c. PARITY: None.

d. LINES: 66

e. CHRS/LINE: 80 for Pica, 96 for Elite, or larger for other smaller styles of print that you want THIS Printer_Dat program to control .

f . CONTINUOUS FORMS: YES.

g. END OF LINE: CR,LF (carriage return and line feed).

Now we will begin to set in your SPECIAL PRINTER CODES to SET your desired functions.

h. PREAMBLE: This sets the printer when "PRINT" is elected with Quill °* one of the other PSION softwares. I chose to set the following (cammand codes for KXP-1124)

27,120,1,27,107,2 (This sets LETTER QUALITY and then Courier Font, and then ELITE STYLE).

Refer to step "e" above. For this ELITE style the CHRS/LINE setting is 96.

i. POST AMBLE: Here we want to assure that when PRINTING has been done, the FORM is fed up to the start of the next form. Insert:

FF,CR (Form Feed and Carriage Return)

j. BOLD ON: The Printer Codes for the Type

Style that you want the F4 Key to control : My choice was:

27,119.1/27,69,1 (the first three sets DOUBLE HIGH. The second three sets EMPHASISE MODE (double strike).)

k. BOLD OFF: Use the OFF codes for each of the ON codes used in j above. In my case the OFF Codes were: 27,119,0,27,70

1. UNDERLINE ON: My printer codes used for Underline ON was: 27,45,1. I decided that if I wanted to Underline something, I'd also shift into EMPHASISE MODE, 27,69,1. So the six commands are entered as: 27,45,1,27,69,1

m. Use the OFF codes for each of the ON codes in 1 above. (27,45,0,27,70)

n. HIGH SCRIPT ON: I decided to use my printer's Script font, which is gotten with the codes: 27,107,4.

o. The off codes for the above is to return to the Courier font, which is: 27,107,2

p. LOW SCRIPT ON: I decided to use my printer's ITALIC style and DOUBLE STRIKE, the command codes: 27,52,27,71

q. Off Codes for the above are: 27,53,27,72

r. This ends the Printer_Dat set-up, and none of the other lines were changed.

13. NOW WE NEED TO DO THREE MORE THINGS: I'LL STEP IT OUT A, B, C.

A. Run the cursor up to the NAME (first line) .

B. Touch F2 to SAVE. Your new Printer_Dat program will be SAVED to disk or mdv,

C. Touch F5 to INSTALL. Your PRINTER_DAT program will be Installed as the one to use when PRINT is elected by one of the PSION programs.

mi Wel 1 , I'll give you some of my illogical reasoning. I Uhs, to knap thAJig* vvwxj simple,. Instead of putting in a lot of special key codes, you'll now have ONE disk or mdv for ELITE STYLE. The F4 Keys are set up to give you the examples used in this article.

Next, REPEAT the steps given for setting up another Quill Disk for PICA 80 chrs/line, and still another for "another style". I set up my third disk for the nice MICRON 120 chrs/line that my KXP-1124 has. To do these two additional disks only required changing two lines, the line for CHRS/LINE and the Preamble line for the SET-UP UPON BOOT IN.

There are several reasons that I decided to use separate disks for the three styles. First, the PSION suite does not let you have different "DESIGN" for successive printed pages. Then, the different widths of print (Pica, Elite, Micron) mixed in printed lines would cause FORMAT inconsistancies. Even so, there is one slight problem with this Printer_dat. When using BOLD, the characters are DOUBLE HIGH. For

the best results BOLD should be used only for HEADERS, and for printing on the FIRST line of a separated paragraph. Otherwise when BOLD is used for more than one line there isn't any separation between the two lines.

YOU COULD SET UP LESS SPACING BETWEEN LINES

One could set up other PRINTER_DAT programs to use CONDENSED PRINT or SUPERSCRIPT for printing. These styles used for manuscript printing need shorter spacing between lines. Since I'm not a Lawyer and do not need to use "fine print" to hide legalese in contracts, I really do not need such small printing.

But if you do, you can use the PREAMBLE line to SET the Print style, then superscript, and THEN, SET the PRINTER LINE SPACING to something other than 1/8" line spacing, say 1/16" for superscript, or 5/64" for condensed. Those settings would give about 120, or 96 lines per page form, and a whale of a lot of data per page. Imagine, a print style of MICRON 120 chrs/line, then superscript, then 1/16" line spacing, 1/16", to give 120 lines per page, to give over 12000 characters per printed page! Or, Condensed 160 Chrs/line, superscript, 1/32" line spacing to give 240 lines per page, to give 40,000 characters per page! (My math could be

°"-> Sunrary

1. Every user should learn to use the INSTALL_BAS program to make tailored PRINTER_DAT set-ups that your printer is capable of supporting.

2. Once you do a simple new set-up with the Install_bas program, you'll remember how and you can always revise the _dat program to do whatever you want to do with your printer.

3. Each brand of printer has its own best print styles that should be taken advantage of with custom Printerjdat set-ups.,

4. While I cannot find much use for setting up different styles of print that have different character widths, it can be done. One can account for inconsistant line lengths of separated paragraphs, but mixed widths of print in the same line would be difficult to format. Also, the DESIGN FUNCTION would not provide consistant page length with Mixed styles and different printer line spacing.

5. A simple approach is to use different disks/mdvs for Print styles, with all styles on one disk's printer dat having the same character width.

6. If you DONT learn to use Install_bas, you will not have much lattitude of style selections. You will ALWAYS: Print in Draft Quality, Pica 80 Chr lines, and your F4 Typeface electives will be for superscript and subscript styles. These are fixed by the given Printer_dat program.

learn to use INSTALL_BAS. To do so just requires a little practice, and coordination with the printer manual. EnJoV! _BJ-

15

The following article, by David McCall, is second in a series. The first article was given in the October 1989 issue. The Program Listing given in this issue can be linked with that given in the Oct. issue. Or, the individual programs will work independant 1 y .

WINDOW DEFINING: A Program, part III

by David McCall

This is the next to last article for the window defining program. The first one described the machine language routine which was necessary to swap screens. The second one detailed the variety of functions needed and now the procedures will be discuss. After this series has been completed you should have a better understanding of SuperBASIC's functions and procedures and their variety of uses along with a better understanding of the value of using machine code to supplement a programs speed and versatility.

As in the previous articles indentation has been used throughout the writing of these procedures. Most of the procedures are straight forward but different techniques have been used to illustrate the power and versatility of SuperBASIC especially when ToolKit II is installed. Most of the procedures use the Toolkit's additional utilities, PRINT USING and CHAR INC. The procedures can be rewritten to avoid these routines if it is necessary.

Let's start off by describing the first procedure at line 4000. The procedure is called done and takes four parameters xX, y%, len%, and value%. The procedure prints the value% in a signed field of length, len%, at position x%,y% and clears the default value which was printed at x%+l,y%. This procedure is used after a value has been typed in to update the screen.

PRINT USING was used to ensure the number lined up properly and stayed within its allotted space. The PRINT USING function takes a string as its first para- meter, which describes how the successive parameters will be printed. In our case the string was made up of a SuperBASIC function FILL$ which creates a string of character of a desired length. A was concatenated before it to ensure there was room for the sign to be printed. For more information on the above functions read the Toolkit II manual section 13.1 and the SuperBASIC manual section KEYWORDS page 23.

The next procedures prin t lis t max chr , line 4050, and print_list_max_point line 4110, displays the maximum number of characters that can be displayed in the window (max_xc,maxyc) and the maximum point positions (max_xp,max_yp) , the graphics origin (xg»yg)> tne number of pixels which corresponds to the window height, and the midway point between the origin and the maximum point position. Arrows are printed after each value to indicate which direction it refers to. This has proved useful to clear up the confusion about which direction the x and y parameters refer to in different commands.

Remember rnaxxc, max_yc, max_xp, and max_yp are the functions written in the previous article. The global variables are:

scl = the SCALE of the window xg,yg - the graphics origin defined by the SCALE command scr_x,scr__y = the x and y dimension of the window brder = the BORDER width cxi,cyi = the number of pixels a character occupies in the x and y directions SWAP,swap2 = the machine language address to swap the command and defining windows, respectively xpO,ypO,sxO,syO = the position and size of the window being swapped cbl,cb2,cb3 = the color of the BORDER cpl,cp2,cp3 = the color of the PAPER cil,ci2,ci3 - the color of the INK

csw,csh = character size width and height

doit = the flag which indicates what to display in the definine window after a command

a_or_m = the flag which indicates whether the window is being moved or altered in size

16

The procedure that does most of the work is recalculate, line 4220. It tak -s care of erasing the old window, putting the new one back up, and updating the appropriate variables. Here we see the first use of the machine language routine which was loaded into the location pointed to by swap2. As you remember the para- meters for this routine are save/recall, origin, and size, see line 4230. If the save/recall position is one the previous screen is recalled which is the first thing that is done in this procedure. Next it checks to see if the window size is too big and adjusts if necessary. The new window is opened and set up. Next the origin and size for our machine language swap routine are recalculated, see part I of this series and lines 4310 to 4340. The screen is save under our new window and then the window is displayed.

The next two procedures displays information to the user. The first, results line 4400, displays all the relevant information about the current window, the defining window, that is being constructed. The second one, commands line 4690, prints a table of the commands that are available. Everything is labelled, placed and colored to ease in reading. An interesting approach has been used to print this information. One color of text is printed at a time and each time the ink color is change the cursor is repositioned at the top and the next mask is printed. This is accomplished by using OVER 1 and tends to save some memory by not repeatedly changing the INK color over and over again.

The display procedure, line 4790, is an added visual feature which as proved useful, in creating windows. It fills the current window with 'QL' or puts a hash at the graphics origin depending on the last command executed. This helps size the window when you want your characters to exactly fit the window or when you want the origin in a specific location. By looking at lines 4800 to 4870, we see that the SELect ON command was used instead of the IF-THEN-ELSE construct. This decision was made in part to show an alternative to the IF statements and to allow an easier change in the future if different displays are wanted after other commands .

Of course the window to display the information, the command window, needs to be created. This is accomplished in the procedure setup, line 4900. LOCal variables are used with same name as global ones. This allows us to keep the same descriptive variable names without changing the global values. The window para- meters are READ in through DATA lines, line 2 to 5. (NOTE, lines 8* to 13 are the initial values of the defining window and will be used in the main program.) This allows easier changes to the window without searching through the entire program to find where the window was defined. A RESTORE should always be used before READing any DATA because the line number from where the DATA will start to be READ is not reinitialed with the RUN command. The text MOVE «' or ALTER «T~Ts also displayed depending upon the value of a_or_m which will be set in the main program. Finally, the area of the screen which the command window will occupy is saved.

Last but not least, a procedure to print the title and author of the program is included, name line 5120. The extra underlined spaces are used to draw a line to separate the title from the rest of the command window and underline the author's name. In some cases UNDERlining or drawing a BLOCK for a straight line is faster and easier.

The line numbering used has been constructed to ensure that all the articles can be merged together without out conflict. In the final article the simple main program -will be discussed. The functions and procedures presented in this series is a basis to build and learn from. In some instances a better approach could have been used but the intent was to show several different ways to attack a problem. If you don't want to type in the listing an "Issue Disk" will be available.

LISTING A

1 : REMark Command window

2 DATA 301,211,0,0: REMark screen - height, width, x,y

3 DATA 0,0,0: REMark paper color, contrast, stipple

4 DATA 2,2,0: REMark ink color, contrast, stipple

5 DATA 2,0,12,10: REMark char size - wid th, height, x_inc,y_inc

6 :

7 : REMark Defining window

8 DATA 100,50,320,128: REMark screen - height, width, x,y

9 DATA 1,7,7,0: REMark border size, color, contrast, stipple

17

10 DATA 0,0,0: REMark paper color, contrast, stipple

11 DATA 2,2,0: REMark ink color, contrast, stipple

12 DATA 100,0,0: REMark scale, (x,y) graphics origin

13 DATA 2,0,12,10: REMark char size - width, height, x_inc,y_inc

14 :

4000 DEFine PROCedure done(x%,y%,len%, value) 4010 INK#3,4

4020 AT#3,x%,y%: PRINT US ING#3, '-'&FILL$( '#' ,len%) , value :AT#3,x%+l,y%

: PRINT#3 , FILL$ ( ' T, len%+l ) 4030 END DEFine done 4040 :

4050 DEFine PROCedure print_list_max_chr 4060 AT#3,8,13

4070 INK#3,4:PRINT_USING#3,'## tL' ,max_xc 4080 AT#3,9,13:PRINT_USING#3,,## 0',max_yc 4090 END DEFine print_list_max_chr 4100 :

4110 DEFine PROCedure print_list_max_point 4120 AT#3,8,13:

4130 INK#3,4:PRINT_USING#3, '-### & 1 ,max_xp 4140 AT#3,9,13:PRINT_USING#3, '-### fl' .max_yp 4150 AT#3 ,12,13: PRINT_USING#3 , ' -### & 1 , xg 4160 AT#3 ,13,13: PRINT USING#3 , ' -### % * , yg 4170 AT#3 , 16 , 12 : PRINT?3 , scry-2*brder-l

4180 PRINT_USING#3,'\ -##.## , -###.##' ,-(max_xp-xg)/2,-(max_yp-yg)/2 4190 name

4200 END DEFine print list max point

4210 : " ~

4220 DEFine PROCedure recalculate

4230 CALL swap2,l,xp0,yp0,sx0,sy0

4240 IF scr_x+xp>512 THEN scr_x=512-xp

4250 IF scr_y+yp>256 THEN scr_y=256-yp

4260 0PEN#4, ,scr_,&scr_x&'x'&scr_y&,a1&xp&,x,&yp

4270 PAPER#4,cpl,cp2,cp3:INK#4,cil,ci2,ci3

4280 SCALE#4 , scl , xg , yg

4290 CSIZE#4,csw,csh

4300 CHAR INC #4,cxi.cyi

4310 xpO=INT(xp/8-.5):IF xpO<0 THEN xpO=0

4320 sxO=INT(scr_x/8+.5)+2:IF xp0+sx0>64 THEN sx0=64-xp0

4330 ypO-yp-l:IF ypO<0 THEN ypO=0

4340 syO=scr_y+l:IF ypO+syO>512 THEN sy0=512-yp0

4350 CALL swap2,0,xpO,ypO,sxO,syO

4360 B0RDER#4, brder,cbl,cb2,cb3

4370 CLS#4

4380 END DEFine recalculate 4390 :

4400 DEFine PROCedure results 4410 0VER#3,1

4420 INK#3,4:PRINT#3,'scr_ x a x'

4430 PRIOT#3,' BORDER , .

4440 PRINT#3,' PAPER ,

4450 PRINT#3,' INK , ,'

4460 PRINT#3,* SCALE , * ,'

4470 PRINr#3,* CSIZE

4480 PRINT#3, 'CHAR^NC ,*;

4490 PRINT#3,\\'plot: max_x ='\TO 6;'max__y = \\T0 6; min_x = \TO 6; min_y - 4500 PRINI#3,\' print: max_x - '\T0 7: 'max_y 4510 PRINI#3 ,\ * pixel : max_x = * \K) 7 ; max_y = 1 4520 AT#3,0,0

4530 INK#3,7:PRINT_USING#3,' ######### ###V ,scr_x,scr_y,xp,yp

4540 PRINT_USING#3,' ## # # #V ,brder,cbl,cb2,cb3

4550 PRIOTJJSIN^,1 # # #\' ,cpl,cp2,cp3

4560 PRINT_USING#3,f # # #V ,cil,ci2,ci3

4570 PRINT_USING#3,' ###-### -###\' , scl, xg,yg

4580 PRINT_USING#3, ' ##\',csw,csh

4590 PRINT USING#3, 1 ## ##V ,cxi,cyi

4600 PRINT:USING#3,'\ -####.### «»\ -### UV

,max xp,max_yp

4610 PRINT USlNG#3,'\ -### <»\ ?l\ »xg»Yg

4620 PRINT~USING#3,'\ ## ti\ ## 4»\ »max_xc,max_yc

4630 PRINr~USING#3,»\ ### «A ### U\

, max_xpix , max ypix 4640 INK#3,2:UNDER#3,1

4650 AT#3 ,18,0: PRINT#3 , ' ' ;

18

4660 OVER#3,0:UNDER#3,0 4670 END DEFine results 4680 :

4690 DEFine PROCedure commands 4700 0VER#3,1

4710 INK#3,7:PRINT#3,' M'V A'V L'Y S'V I'Y P'V B»\ C'\' R\* A'V S'Y A'Y S'V MV^tj/VYSPC'V ' RTN'Y ESC' 4720 AT#3,0,0

4730 INK#3,4:PRINT#3,' ove\' lter'\' etter size'Y cale'X ' nk'\* aper'V order' V ommands\' esults'\ 1 bsolute position's' tep move'Y absolute size'\ ' tep alter \' ode'Y -moves screen or'\' alters size'\

' -redraws screen '\'&'

4740 AT#3,9,0

4750 INK#3, 2 : PRIOT#3, ' Ctrl' \' Ctrl '\' alt'V alt'\ 'ctrl'WWV EXITS' 4760 0VER#3,0 4770 END DEFine 4780 :

4790 DEFine PROCedure display

4800 SELect ON doit

4810 ON doit=l

4820 FOR i=l TO max_xc

4830 PRINT#4 , FILL$ ( ' QL ' , max_yc )

4840 END FOR i

4850 ON doit=2

4860 LI.NE#4, 5,0 TO -5,0:LINE #4,0,-5 TO 0,5

4870 END SELect

4880 END DEFine display 4890 :

4900 DEFine PROCedure setup

4910 LOCal scr x,scr^,xp,yp,cpl,cp2,cp3,cil,ci2,ci3,csw,csh,cxi,cyi

4920 RESTORE 4000

4930 READ scr_x,scr_y ,xp,yp

4940 READ cpl,cp2,cp3

4950 READ cil,ci2,ci3

4960 READ csw,csh,cxi,cyi

4970 IF scr_x+xp>512 THEN scr_x=512-xp

4980 IF scrjH-yp>256 THEN scr_j=256-yp

4990 0PEN#3 , ' con_ ' &scr_x& * x ' &scr_y& ' a* &xp& 1 x ' &yp& ' 10 '

5000 PAPER#3,cpl,cp2,cp3:INK#3,cil,ci2,ci3

5010 CSIZE#3,csw,csh

5020 CHAR_INC #3,cxi,cyi

5030 AT#3,0,0

5040 IF a_or_m THEN

5050 PRINT#3,*» MOVE « '

5060 ELSE

5070 PRINT#3,*» ALTER «'

5080 END IF

5090 CALL SWAP, 0,0, 0,38, 211 5100 END DEFine setup 5110 :

5120 DEFine PROCedure name 5130 " INK#3,4

5140 AT#3 ,19,6: PRINT#3 , * Wind Def * 5150 PRINT#3,'by '; 5160 INK#3,7

5170 PRINT#3,' David McCall »;

5180 INK#3,4

5190 PRIN^'aigsg*

5200 INK#3,2:UNDER#3,1:0VER#3,1

5210 AT#3 ,18,0: PRINT#3 , 1 ;

5220 AT#3 , 20 , 4 : PRINT#3 , ' ' ;

5230 UNDER#3,0:OVER#3,0

5240 END DEFine name

19

C3JL. SPREADSHEET MATR I X

Bob Har tung

1:

2!

3! EXPENSE ITEMS: 4!

5! Bus.niles 61 IRS mileage 7!Postage & fees

i H 1990

I I ! J FIWNC1AL REPORT

jan

C5*8.255 8 S

sun(C6:C8)

FEB

MAR

APR

MAY

JUN

JUL

AUG

SEP

OCT

NOV

8

8

8

8

8

8

8

8

8

8

8 8

8 8

8 8

8 8

8 8

8 8

8

8 8

8 8

8 8

sun(C14:C16) -

18! EXPENSE/MONTH 11!

12! INCOME SOURCES: 13!

H'.Uidget Co. 15IABC Specialties MS ... . 17!

18! INCOME/MONTH 19!

28! 1990 BEGINN1N6 BAL (enter constant) 21 !

225T0TAL INCOME 018

23!

24! CASH ON HAND C28+C22

WiTOTAL EXPENSES 018

27!

28! ENDING BALANCE C24-C24

29 1

After creating and saving a copy of the above Abacus (SS) matrix for a simple accounting format, only a few addi- tional steps are required to adapt it for any similar uses of your own. It is easier to center the heading in row 1 if it is done last so start at cell A3 after booting up SS. The default cell-width on boot-up is 10, but we will change this to 8 later on so most printers will do 144-column printouts of the full spreadsheet in one pass.

Text entries are made by keying ' as the very first character. Text entries made to one cell may span two cells as long as the second cell is empty. The closing is supplied by SS when ENTER is keyed. To avoid confusion, if you miss entering the opening it is best to key ESC and start over. Enter the monthly headings across row 3, and all the other labels. If the left-most labels in column A all fill the A cells they will retain a uniform left margin when a right-justify is used for text. Do not

enter the lines nor the formulas just yet as

printed out in the example or indicated by two - dashes.

When you have completed all the labeling with ENDING BALANCE as cell A28, continue adding empty cells by en- tering a single ' in column A for as many expense and income catagories as you intend to add, plus a few extras for any you may want to add later. The reason for this is that when additional rows are inserted anywhere above the final row in the matrix, anything in the last lines is overwritten, so nothing is lost if these are null cells.

Change the cell-width by keying F3, G for Grid, W for Width, 8 for the new column width, FROM A TO 0. Set text to right-justify by keying F3, J for Justify, ke? ENTER to change CELLS, ENTER for TEXT, R for Right, and range C3:028. Enter whatever heading you want to use in row 1.

We are ready now to start plugging in formulas and numbers. Move the cursor to C5 and enter 8 (zero). No opening quote 1 is used for numeric or formula entries. To repeat this across row 5 the ECHO command is used by keying F3, E for Echo, ENTER (for the cell on which the

ANNUAL DEC TOTALS

8 sum(C5:N5) 8

~ sum7c"i8~:N18)

8 sum(C14:N14)

8

8

sum(C18!N18) rows 7, 8,

cursor is resting), range C5:N5- Do this for

14, 15, 16. After entering ' as text in ceils C9 and

C17, use ECHO to repeat in ranges C9:0? and C17:017, respectively. If you will have 5-digit figures in the 0 column, you may want to use 8 dashes there for neatness.

Enter the formula as given in cell C6 and ECHO this in range Enter the formula as given in C18 and ECHO

this in range C1B:N18. Enter the formula as given in C18 and ECHO this in range C18-.N18. Enter the formula as given in 05 and ECHO this in range 05:08. Enter the formula as given in 014 and ECHO this in range 014:016. In cell 018 enter sum(C18:N18), in cell 018 enter sum(C18j N18), in cell C28 enter 8 or a beginning balance, in cell C22 enter

018, in cell 23 enter ' , in cell 24 enter C28+C22,

in cell 26 enter 018, in cell C27 enter , in cell

C28 enter C24-C26. CELL formats persist till changed.

Change all numbers to right-justify by keying F3, J for Justify, D to change defaults, N for numbers, R for Right. If any cells need to be moved right* after new entries, this may be done by the CELL mode of the Justify sequence, then specifying the range or just a single cell, eg: C8.

To create a two-place decimal format for aligning all monetary figures, key F3, U for Units, D for Default, D for Decimal, and two for number of places. For better clarity, any single cell or range of cells such as niUiqi may initially be set to a single 8 with CELL and 6ENERAL, then reset to two-place decimals as entries are made. For a window display, with cursor at CI key F3, W, V, ENTER.

With this matrix as given, a narrow carriage (letter- width) printer that has a condensed font of 17 c.p.i. will print the entire spreadsheet in one pass if the column- width is set to 144 by using the DESIGN command. If your printer will not do 144 characters per line or you wish to do printouts in a larger font, then the spreadsheet may be done in two or more segments, eg: key F3, P for Print, ENTER for display, N for grid only, range A1:J28 for the first segment, then repeat, using Kl:028 as the range.

The matrix we now have may be saved and used as the foundation for any spreadsheets that use this type format. To insert more rows into it, with the cursor, on the row following the- position where new rows are to be added, key F3, 6 for Grid, I for Insert, ENTER (or row number), and the number of rows to be inserted. ECHO any values or formulas as necessary. Any existing formulas are adjusted when rows are re-numbered by using Insert. Add null rows to the bottom of the matrix if necessary.

TS-2068 BUSINESS SOFW

AR1-9.B1

By: Jim Bretz, Pernam, MN.

Manages Customer Charge Accounts Pests new sales

Computes interest charges Posts payments to accounts Sums accounts balances Prints out Reports Prints out invoices

This comprehensive software proves that the TS-2068 is a mighty fine computer for running a business. The equilivant of this program in use throughout the World costs hundreds of dollars. Jim Bretz designed and uses this AR1-9 software to run his large Hardware business. Jim has versions of the software for both LKDOS and SPDOS (Millenia K DOS). The version given here is for LKDOS and the V-3 LKDOS Printer Driver in EPROM. However, any printer driver that supports TAB can be used. Also, the software requires the 64 column screen to be enabled. This can be via use of TASWIDE or the Zebra OS-64 Cartridge. If you are using LKDOS then TASWIDE would be appropriate. Incidentally if you dont have TASWIDE, which works great with LKDOS, you should spend a few bucks to get it (RMG Enterprises is a good source.).

If you are using a DOS other than LKDOS (or Cassette) , then as you key in the program just substitute the LOAD and SAVE commands for the storage medium that you use.

The Software programming is done entirely in BASIC which makes the operation very user friendly and adaptable for customizing to your special needs. In fact, it is so user friendly that only a few tips to get started need to be discussed. The Main Menu is given below:

ACCTS REC. Main Menu

1. ENTER NEW FILE

2. VIEW FILE

3. POST SLIPS'

4. COPY TO PAPER

5. REPORTS

6. NEW HEADER/CLOSING

7. EDIT LINE

8. CLOSE FILE/END DAY

9. SAVE DATA (BACK UP)

Key in the whole program and SAVE with a starting line of 9500. ( SAVE "AR1-9.B1" LINE 9500 ). Next SAVE a couple of dummy account files that will be needed. ( DIM a$(20,5,21): SAVE "01001a. A$"DATA a$() ).

And: ( DIM d$(20,24,20) : SAVE "01001d.A$" DATA d$() ).

These two character arrays saved to disk

will become durrmy files for the program to sense a need to establish new files.

The Auto Load program

After Saving the main program and the two dummy files, key in the LKDOS Autostart program. This Autostart program may need slight changes to initialize your own CPI interface with POKES to the LKDOS. Lines 30 and 40 assumes that you have SAVED the taswid Code via <SAVE "taswid. CI" CODE 63223,1492 > to the same disk as you saved the main program. Key in the Autostart program with your needed changes and Auto SAVE it by: < GO TO 60 >. Line 60 lowers RAM TOP to 300 bytes above the program length to conserve disk space. Then the Autostart Program itself will restore FREE Memory as it loads in (line #5) and sets RAM TOP to account for the taswid code load.

SOME MAIN PROGRAM TIPS

When the main program loads (via the Autostart program) it begins running at line #9500. Line #9530 prompts for input of DATE. The date must be SIX numbers as: 010190, which would represent the date of Janurary 1, 1990.

Then Line #9560 loads in the first account. In this case it is the dummy account that you saved with the name "01001a. A$". Then line #9565 loads in the second part of the account which you saved with the name "OlOOld.AS".

Then when these two files (dummys) are loaded, the Main Menu is presented.

Select <1> ENTER NEW FILE. Now here is a little quirk. The file number that you enter must be 7 characters in length and must conform closely to the dummy file name, which is only 6 characters in length. Files must begin with the first two digits "01" and the last two digits "la" through "lz". EXAMPLE: OlOOOlf would be accepted, but 020002a would not. A close examination of the program lines beginning, at line #410 will be helpful to understand the composition of the "account number" requirements.

Enter several new accounts and input dummy figures for sales by category. Then use the main menu to recall these accounts. After a bit of practice the organization scheme of the accounts will become familiar.

Since this is such a comprehensive software and does so many functions, there will be a feed back to answer the users questions. If you should have problems, send your questions to Update Magazine and they will be forwarded to Jim Bretz for his answers. Please include two Stamped envelopes, one a SASE. But lets not call Jim for problem answers as he is a business man who goes to work every day and needs his sleep.

This Business software is available as an Issue disk, ready to use for LKDOS.

21

VARIABLES

Am- -

-Val D$<X.Z»13 to 20)

Amt-

-Amount total Debit

Bal -

-Amount runing Balance

Crt-

-Amount total Credit

0

—Input for description menu

Des-

—Description Vai D$(x,z.ll to 12)

int-

-Amount total Interest

K

-Length of S$

Ln- -

—Line pOSlSClOu, rcu &jdo7 \ orvon /

Lb--

—Used in Lbi

Lbl -

—Over due Balance

P

—For/Next loop counter

Q

-For/Next loop counter, printer

s

-Used to Justify R$ and S$

T

-Terms flag

-Gross total Balance.

Tlbl

-Gross over due Balance

Tmi-

-Total months Interest added

Tint

-Gross total Interest

X— -

-Account number, Val X$<6 to 7>

z For/Next loop counter

1 REM Accounts Rec. T/S 2068 1986 Jim

Bretz

304 PRINT CHR$ 2

305 PRINT AT l,o;X$'A$(X,l)'A$(X,2)'A$(X,3)'A$(X,4, 1 TO 14);* ';A$(X,5,1 TO 2);'.';A$(X,5,3 TO 7)

307 IF A$(X,1,1 TO 4)=' ' THEN PRINT 'FILE NOT FOUND': PAUSE o: GO TO j5

309 RANDOMIZE USR 64300: PRINT CHR$ 3

310 PRINT AT l,48;'Sheet:';A$(x,5,12 TO 13);AT 2,49 ;'LSfflt:';A$(X,5,8 TO 9); V';A$(X,5,10 TO 11);AT 3,49 ;"Date:';g$;AT 4,48; 'Terse: ';T$( VAL A$(X,5,14))

320 PRINT AT 7-(z=16),o;'No! Date! Slip 'Descriptio n iCredit "Interest! Aaount ! Balance " 349 RETURN

352 LET S=VAL D$(x,z,13 TO 20)

354 LET k=9

355 LET r$=STR$ s: LET 1*L£N r$

360 IF L<2 THEN LET R$="0'+R$: LET L=2

365 DIM s$(k): LET s$(k-2)=".': LET s$(k-l TO k)=r$

(1-1 TO 1): LET s$( k-l+( k=l ) TO k-3)=r$(l TO 1-2): R

ETURN

400 REM leagel acct sub

410 INPUT 'ACCT. N0.';Y$: IF LEN Y$<>7 THEN GO TO 502

415 POKE 23658,0: LET x$=Y$: LET X*VAL X$(6 TO 7): IF x>20 THEN 60 TO 502

420 IF X${1 TO 2)<>C$(1 TO 2) THEN PRINT 'PLEASE I NSERT DISC NO. ';X$(1 TO 2)"AND TRY AGAIN.': PAUSE 0: GO TO 500

425 IF VAL x$(3 TO 5)>48 THEN GO TO 502

430 IF X$(3 T0-5)OC$(3 TO 5) THEN GO TO 450

440 RETURN

450 RANDOMIZE USR 100: SAVE c$+'a.A$' DATA a$( )

452 RANDOMIZE USR 100: SAVE c*+'d.A$' OATA d$( )

453 IF Z$>'7' THEN RETURN

454 RANDOMIZE USR 100: LOAD X$(l TO 5)+'a.A$" DATA a$()

456 RANDOMIZE USR 100: LOAD XS(1 TO 5)+'d.A$' DATA d*()

458 LET c$=x$( 1 TO 5) 499 RETURN

501 GO TO 505

502 BEEP .1,1: BEEP 1..1

505 BEEP .1,1: BEEP .1,5: BEEP .1,9

510 aS : PRINT 'ACCTS REC. MAIN MENU: ';AT 2,5; "1. ENTER NEW FILE', TAB 5; '2. VIEW FILE', TAB 5; '3. POST SLIPS' JAB 5; '4. COPY TO PAPER', TAB 5; '5. REPORTS', T

AB 5; '6. NEW HEADER/CLOSING', TAB 5; '7. EDIT LINE'JA B 5; '8. CLOSE FILE/END DAY '.TAB 5;'9. SAVE DATA (Bac k-Up)'

520 INPUT Z$: IF CODE Z$>48 AND CODE Z$<58 THEN : C LS : GO TO VAL Z$*1000 530 60 TO j6

549 CLEAR : RANDOMIZE USR 100: SAVE "AR1-9.81" LINE 9500

1000 as : FLASH 1: PRINT AT o ,9; "ENTER NEW FILE"": FLASH o: 60 SUB j4 1010 LET X=VAL X$(6 TO 7) 1020 IF CODE A$(X,1)<>32 THEN 60 TO 1900 1025 INPUT 'ACCT. NAME ';A$(X,l): PRINT A$(X,1) 1030 INPUT "St. ADDRESS" ;A$(X, 2): PRINT A$(X,2) 1032 INPUT 'RR or B0X';A$(X,3): PRINT A$(X,3) 1035 INPUT 'CITY';A$(X,4): PRINT A$(X,4) 1040 INPUT 'STATE, & ZIP";A$(X,5,1 TO 7): PRINT A$(X ,5,1 TO 7)

i050 POKE cap,8: INPUT ""IS THIS CORRECT Y/N ?:;Y$: I F Y$<>'Y' THEN as : PRINT 'ACCT NO. ";X: POKE cap, o: GO TO 1025

1110 as : PRINT "TERMS MENU:": PRINT AT 2,5; "1. ";T $(1)'TAB 5; "2. ";T$(2)'TAB 5,"3. ';T$(3)'TAB 5; '4. " ;T$(4)'TAB 5;"5. ';T$(5)

1120 INPUT A$(X,5,14): IF CODE A$(X,5,14)>48 AND COD

E A$(X,5,14)<54 THEN GO TO 1130

1125 BEEP .1,1: BEEP l,.l: GO TO 1110

1130 LET A$(x,5,12 TO 13)* '01'

1140 as : INPUT 'Date of LSnt.\A$(X,5,8 TO 11): PR

INT 'LSfflt: ';;A$(x,5,8 TO 9); V';A$(x,5,10 TO 11): L

ET D$(X,1,1 TO 4>A$(X,5,8 TO 11)

1145 LET D$(x,l,5 TO 10)=' 00': LET D$(x,l,ll TO 1

2>' 1"

1150 INPUT 'Enter beginning Balance';Y$: LET D$(x,l, 13 TO 20)=Y$: IF LEN Y$(l THEN GO TO 1150

1151 FOR z=l TO LEN Y$: IF CODE Y$(z)>57 THEN GO TO 1150

1152 IF CODE v$(z)<48 THEN GO TO 1150

1153 NEXT z

1155 INPUT 'Enter OVER DUE Balance' ;y$: LET a$(x,5,l 5 TO 21)=y$: IF LEN y$U THEN GO TO 1155

1156 FOR z=l TO LEN y$: IF CODE y$(z)>57 THEN GO TO 1155

1157 IF CODE y$(z)<48 THEN 60 TO 1155

1158 NEXT z

1159 LET Z=l: 60 SUB jl: LET aat=s: PRINT 'Balance F or. *;s$: IF s<=0 THEN LET D$(x,l,ll)='0': 60 TO 12 50

1160 IF S>0 THEN LET D$(x,l,ll)="r: INPUT "Enter b eginning Interest" ;Y$: LET D$(x,l,5 TO 10)=Y$: IF LE N y$<l THEN 60 TO 1160

1161 FOR z*l TO LEN y$: IF CODE y$(z)>57 THEN GO TO 1160

1162 IF CODE y$(z)<48 THEN 60 TO 1160

1163 NEXT Z

1164 LET z=l: LET s=VAL D$(x,l,5 TO 10): LET k=7: GO SUB j3: PRINT "Interest charge' ;s$

1170 LET s=s+ant: GO SUB j2: PRINT 'Total Due: $';S $

1250 PRINT AT 21 ,o; 'Press Any Key for MENU" "Press " "C" to Enter a new Acct.': POKE cap.o 1260 IF INKEYS=" THEN GO TO 1260 1265 IF INKEY$*'c' THEN 60 TO 1000 1275 60 TO j5

2,2

1900 PRINT "THIS ACCT ";A$(X,1 )'"IS IN USE,"'" DO YOU WISH TO DELETE ? Y/N": INPUT Y$: IF Y$<>"Y" TH EN GO TO 1270

1904 PRINT : PRINT "This File ? ";A$(X,1);",(Y/N)" : INPUT Y$: IF Y$='Y" THEN LET A$(X,1,1 TO 4)="

": FOR Z=l TO 24: LET D$(X,Z)=": NEXT Z: GO TO 505

1906 GO TO j6

2010 CLS : FLASH 1: PRINT AT 0,12; "VIEW FILE": FLA SH o

2015 GO SUB 3015

2505 POKE cap, 8: PAUSE o= IF INKEY$="R" THEN LET

Z=l: CLS : GO TO 3030

2510 GO TO 2000

2950 PAUSE o: GO TO 2000

3010 CLS : FLASH 1: PRINT AT o, 10; "POST SLIPS": FL ASH o

3015 LET Z=l 3020 GO SUB j4 3030 GO SUB jO

3045 POKE cap ,8: INPUT "Correcrt File Y/N";Y$

3048 IF Y$="Y" THEN GO TO 3050

3049 GO TO j6

3110 PRINT AT 8,z;z;TAB 3;D$(x,z,z TO 2);"/";D$(x,

z,3 TO 4); TAB 16; "Balance For.";

3120 IF VAL D$(x,z,13 TO 20)<0 THEN GO SUB jl: PR

INT AT 8,27;S$;TAB 55;S$: LET amt=0: LET bal=s: LE

T crt=ABS s: LET int=0: LET in=int: GO TO 3200

3130 LET S=VAL D$(x,z,5 TO 10): LET k=7: GO SUB j3

: PRINT AT 8,38;s$: LET int-s: LET in=int

3134 GO SUB jl: PRINT AT 8,45;s$;TAB 55;s$: LET am

t=s: LET bal=s: LET crt=0

3202 FOR z=2 TO 24

3205 IF z»16 THEN INPUT "scroll?" ;Y$: PRINT AT o, o;: FOR h=l TO 10: RANDOMIZE USR 2361: NEXT h: FOR h=l TO 7: PRINT *

": NEXT h: GO SUB

jO: PRINT AT ln-9,o;

3210 IF D$(x,Z,l)=" " THEN GO TO 3300

3215 LET des=VAL D$(x,z,ll TO 12)

3220 PRINT TAB l-(z>9);z;TAB 3;0$(x,z,l TO 2);"/";

D$(x,z,3 TO 4);TAB 9;D$(x,z,5 TO 10);TAB 16;I$(des

); : LET ln=24-PEEK 23689

3225 IF des<8 THEN GO SUB jl: PRINT TAB 45;s$;: L ET amt=amt+s: LET bal=bal+s: LET s=bal: GO SUB j2:

PRINT TAB 55;s$: NEXT z: GO TO 3400 3230 IF desUO THEN LET am=VAL D$(x,z,13 TO 20): GO SUB jl: PRINT AT ln,27;s$;: LET s=in: LET k=7: GO SUB j3: PRINT TAB 38;s$;: LET s=(am-s )*(am-s>=0 )■' LET in=(in-am)*(in-am)=0): GO SUB j2: PRINT AT ln,45;s$;: LET s=bal-s: GO SUB j3: PRINT TAB 55;s$ ;: LET bal=s: LET crt=crt+am: NEXT z: GO TO 3400 3250 GO SUB jl: PRINT TAB 36;s$;: LET in=in+s: LET

int=int+s: LET s=bal: GO SUB j2: PRINT TAB 55;s$; : NEXT z: GO TO 3400

3300 IF z$="2" THEN GO TO 3400

3301 INPUT "Enter Slip No.";D$(X,Z,5 TO 10): IF D$ (X,Z,5 TO 10)=" " THEN GO TO 3400

3308 LET D$(X,Z,1 TO 4 )=B$

3310 ON ERR GO TO 3310: INPUT " Enter Sale Code" "(press ""0"" for Help)";D

3312 FOR y=l TO 10 STEP 2

3313 IF (D<=10)*(D>0)=1 THEN LET D$(X,Z,11 TO 12) =STR$ D: ON ERR RESET : GO TO 3320

3316 INPUT ;(y);".";(I$(y)),(y+l);".";(I$(y+l));D

3317 NEXT y: GO TO 3310

3320 INPUT "Enter $ Amount" ;Y$: LET D$(X,Z,13 TO 2 0)=Y$

3330 IF (LEN Y$>1)*(LEN Y$<9)=0 THEN GO TO 3320 3335 FOR y=l TO LEN Y$

3340 IF (CODE Y$(y)<58)*(C0DE Y$(y))44)=0 THEN GO TO 3320 3345 NEXT y: GO TO 3215

3410 PRINT 'TAB 18; "Totals" ; : LET ln=24-PEEK 23689

3415 LET s=crt: GO SUB j3: PRINT TAB 27;s$; 3420 LET s=int: GO SUB j3: PRINT AT ln,36;s$; 3425 LET s=amt: GO SUB j3: PRINT AT ln,45;s$; 3430 LET s=crt-int: LET s=amt-s: GO SUB j3: PRINT TAB 55;s$;

3440 LET D$(x,l,ll)="l": IF bal<=0 THEN LET D$(x, 1,11 )="0"

3450 IF z>24 THEN FLASH 1: PRINT "FULL PAGE, PLEA

SE COPY TO PAPER AND CLEAR WORK SHEET": FLASH

0: PAUSE o: GO TO j5

3500 IF z$="2" THEN GO TO 2500

3950 PAUSE o: GO TO 3000

4004 GO TO 4500

4005 LET Z=l 4010 GO SUB j4

4015 IF 1$=*2" THEN : IF (D$(x,l,ll)="0")+(a$(x,5, 14)='5')>0 THEN RETURN

4016 IF A$(x,l,l TO 4)=" " THEN RETURN

4020 LPRINT ' »

4021 LPRINT h$(l)

4022 LPRINT h$(2)

4023 LPRINT h$(3)

4024 LPRINT h$(4)

4025 LPRINT

4030 LET ch=93: LPRINT """TAB 10;X$'TAB 10;A$(X ,1)'TAB 10;A$(X,2)'TAB 10;A$(X,3)'TAB 10;A$(X,4,1 TO 14);", ";A$(X,5,1 TO 2);V;A$(X,5,3 TO 7)"" 4035 LPRINT "Sheet:";A$(x,5,12 TO 13 ) , aLSnt : " ; A$( X ,5,8 TO 9);"/";A$(X,5,10 TO ll),"Date:";B$(l TO 2) ;"/";B$(3 TO 4);7";B$(5 TO 6),*Terms:";T$(VAL A$( X,5,14))

4040 FOR y=0 TO 66: LPRINT "_";: NEXT y: LPRINT 4045 LPRINT CHR$ 91; "No.* Date* Slip *Description *Credit *Interest* Amount * Balance ";CHR$ ch 4050 REM

4102 IF A$(x,5,15 TO 21)=" ' THEN LET A$(x,

5,15)="0"

4104 LET lbl=VAL A$(x,5,15 TO 21)

4105 LET Z=l: LPRINT CHR$ 91;" 1";

4110 LPRINT TAB 5;D$(x,z,z TO 2);"/";D$(x,z,3 TO 4 );TAB 18; "Balance For.";

4120 IF VAL D$(x,z,13 TO 20)<0 THEN GO SUB jl: LP RINT TAB 29;$$; TAB 57;S$;CHR$ 93: LET amt=0: LET b al=s: LET crt=ABS s: LET int=0: LET in=int: GO TO 4200

4130 LET s=VAL D$(x,z,5 TO 10): LET k=7: GO SUB j3 : LPRINT TAB 40;s$;: LET int=s: LET in=int 4134 LET k=9: GO SUB jl: LPRINT TAB 47;s$;TAB 57 ;s $;CHR$ 93: LET amt=s: LET bal=s: LET crt=0 4202 FOR z=2 TO 24

4204 LET f$=STR$ (VAL b$(l TO 2)+(VAL d$(x,z-l,l T 0 2)>VAL b$(l TO 2))*12)

4206 IF VAL f$-VAL d$(x,z-l,l TO 2)>=VAL a$(x,5,14 ) THEN LET lbl=bal: LET a$(x,5,15 TO 21)=STR$ Ibl

4210 IF D$( x ,Z,1 )=" * THEN GO TO 4400 4215 LET des=VAL D$(x,z,ll TO 12) 4220 LPRINT CHR$ 91;TAB 2-( z>9 );z;TAB 5;D$(x,z,l T 0 2);V;D$(x,Z,3 TO 4);TAB ll;D$(x,z,5 TO 10);TAB 18;l$(des);

!,3

4225 IF des<8 THEN SO SUB jl: LPRINT TAB 47;s$;: LE T amt=arat+s: LET bal=bal+s: LET s=bal: GO SUB j2: LP RINT TAB 57;s$;CHR$ ch: GO SUB 4960: NEXT z: GO TO 4 400

4230 IF des<10 THEN LET am=VAL D$(x,z,13 TO 20): GO SUB jl: LPRINT TAB 29;s$;: LET s=in: LET k=7: GO SU

B j3: LPRINT TAB 40;s$;: LET s=(am-s)*(am-s>=0): LET in=(in-am)*(in-am>=0): GO SUB j2: LPRINT TAB 47;s$;

: LET s=bal-s: GO SUB j3: LPRINT TAB 57;s$;CHR$ ch:

LET bal=s: LET crt=crt+am: GO SUB 4950: NEXT z: GO T

0 4400

4250 GO SUB jl: LPRINT TAB 38;s$;: LET in=in+s: LET

int=int+s: LET s=bal: GO SUB j2: LPRINT TAB 57;s$;CH

R$ ch: GO SUB 4960: NEXT z

4410 LPRINT 'TAB 20; "Totals';

4415 LET s=crt: GO SUB j3: LPRINT TAB 29;s$;

4420 LET s=int: GO SUB j3: LPRINT TAB 38;s$;

4425 LET s=amt: GO SUB j3: LPRINT TAB 47;s$;

4430 LET s=crt-int: LET s=amt-s: GO SUB j3: LPRINT T

AB 57;s$

4432 IF lbl<0 THEN LET lbl=0

4433 LET s=lbl: GO SUB j3: LPRINT 'OVER DUE Balance of ';s$

4434 RANDOMIZE USR 100: POKE 16090,63: LPRINT »V$": RANDOMIZE USR 100: POKE 16090,79

4436 IF VAL 1$<3 THEN LET A$(x,5,8 TO 11)=B$ 4438 FOR m=(z+31) TO 64: LPRINT : NEXT n 4460 RETURN

4500 REM

4501 POKE cap.o: CLS : FLASH 1: PRINT AT 0,9; "LPRINT FILE*: FLASH o

4505 LET lbl*0

4510 PRINT AT 3 ,o; 'OPTIONS: ""1. Print (1) stateien t '"2. Print Block of statements '"3. Print (1) F ile Copy ""4. COPY and CLEAR Page* 4520 INPUT 'Enter Option' ;1$: IF LEN ISOI THEN GO TO j5

4525 IF (CODE 1$>48)*(C0DE 1$<53)<>1 THEN GO TO 452 0

4530 PRINT '"Option Selected No.";l$

4540 IF 1$*V THEN GO SUB 4005: GO TO 4500

4545 IF l$-'2" THEN GO TO 4600

4550 IF 1$='3' THEN LPRINT """': GO SUB j4: GO S

UB 4030: GO TO 4500

4555 IF 1$='4' THEN LPRINT ' : GO SUB j4: GO SU

8 4030: PRINT "New Paper Please': PAUSE o: GO SUB 4 018: FOR z=l TO 24: LET D$(x,z)=": NEXT z: LET 0$(x ,1,1 TO 4)=B$(1 TO- 4): LET D$(x,l,5 TO 10)=STR$ in: LET D$(x,l,13 TO 20)=STR$ bal: LET A$(x,5,12 TO 13)= STR$ (VAL A$(x,5,12 TO 13)+1)

4556 LET a$(x,5,15 TO 21)=STR$ lbl 4558 LPRINT

4560 GO TO 4500

4610 INPUT 'Starting Acct. No.';X$: IF LEN X$<>7 THE N GO TO j6 4620 GO SUB 420

4625 FOR x=l TO 20: LET x$(6 TO 7)="0"+STR$ x: IF x>

9 THEN LET x$(6 TO 7)=STR$ x

4630 GO SUB 4015: LET A$(x,5,15 TO 2l)=STR$ lbl: NEX T x: PRINT 'Block No.";x$(l TO 5);' Complete": PAUSE o: GO TO 4500 4950 LET lbl=lbl-ara

4960 LET lb=2-(a$(x,5,14)="l'): LET lb=VAL B$(l TO 2 )-lb: IF lb>=VAL D$(x,z,l TO 2) THEN LET lbl*bal: L ET A$(x,5,15 TO 21)=STM lbl

4961 RETURN 5000 GO TO 5500

5016 LET int=0: LET bal=0: LET lbl=0: LET z=l

5019 IF (l$='l")*(n$='n")*(d$(x,l,ll)='0")=l THEN R ETURN

5020 IF A$(x,l,l TO 4)=' " THEN RETURN 5030 LET lbl=VAL A$(x,5,15 TO 21)

5120 IF VAL D$(x,z,13 TO 20)<0 THEN LET s=VAL D$(x, z, 13 TO 20): LET amt=0: LET bal=s: LET crt=s: LET in t=0: LET in=int: GO TO 5200

5130 LET s=VAL D$(x,z,5 TO 10): LET int=s: LET in=in t

5134 LET s=VAL D$(x,z,13 TO 20): LET amt=s: LET bal=

s: LET crt=0

5202 FOR z=2 TO 24

5204 LET f$=STR$ (VAL b$(l TO 2)+(VAL d$(x,z-l,l TO 2)>VAL b$(l TO 2))*12)

5206 IF VAL f$-VAL d$(x,z-l,l TO 2)>=VAL a$(x,5,14)

THEN LET lbl=bal : LET a$(x,5,15 TO 21)=STR$ lbl

5210 IF D$(x,z,l)=" ' THEN GO TO 5400

5215 LET des=VAL D$(x,z,U TO 12)

5225 IF des(8 THEN LET s=VAL D$(x,z,13 TO 20): LET

ant=amt+s: LET bal=bal+s: LET s=bal: GO SUB 5960: NE

XT z: GO TO 5400

5230 IF des<10 THEN LET ara=VAL D$(x,z,13 TO 20): LE T s=in: LET s=(am-s)*(am-s>=0): LET in=(in-ara)*(in-a a>=0): LET s=bal-s: LET bal=s: LET crt=crt+am: GO SU 8 5950: NEXT z: GO TO 5400

5250 GO SUB jl: LET int=int+s: GO SUB 5960: NEXT z

5405 IF 1$="2" THEN GO TO 5735

5410 LPRINT x$;' ";a$(x,l);

5415 LET s=crt: GO SUB j3: LPRINT TAB 30;s$;

5420 LET s=int: GO SUB j3: LPRINT TAB 40;s$;

5425 LET s=amt: GO SUB j3: LPRINT TAB 50;s$;

5430 LET s=crt-int: LET s=amt-s: GO SUB j3: LPRINT T

AB 60;s$;

5432 IF lbKO THEN LET lbl=0

5433 LET s-lbl: GO SUB j3: LPRINT TAB 70;s$ 5460 RETURN

5501 LET K=9: POKE cap,o: CLS : FLASH 1: PRINT AT o, 12; 'REPORTS': FLASH o

5510 PRINT AT 3, o; 'OPTIONS: " "1. LPRINT Summery"" 2.';'Interest Calc?"

5520 INPUT 'Enter Option" ;1$: IF LEN 1$ 01 THEN GO TO j5

5525 IF (CODE 1$>48)*(C0DE 1$<53)<>1 THEN GO TO 552 0

5530 PRINT ""Option Selected No.';l$

5540 IF 1$*T THEN INPUT "Print $.00 Balance Accts

.(Y/N)';n$: GO TO 5600

5550 IF 1$='2' THEN GO TO 5700

5601 LET Tint=0: LET Tbal=0: LET Tlbl=0

5605 LPRINT 'Summery of Accounts" , "Date: ";g$": LPRI NT TAB 2;'No.';TAB 17;'NAME';

5606 IF 1$='2' THEN LPRINT TAB 34; "Line",: GO TO 56 08

5607 LPRINT TAB 33; 'CREDIT';

5608 LPRINT TAB 41; "INTEREST"; TAB 53; "AMOUNT"; TAB 62 ; "BALANCE"; TAB 71; "OVER DUE": FOR y=0 TO 79: LPRINT '-';: NEXT y: LPRINT

5610 INPUT "Starting Acct. No.";X$: IF LEN X$<)7 THE N GO TO j6

5615 GO SUB 420: PRINT "Summery of Accounts: "x$;" TO ";

2,4

5620 INPUT "Ending Acct. No.";P$: IF LEN P$<)7 THE N GO TO j6

5621 PRINT P$: FOR p=VAL X$(4 TO 5) TO VAL P$(4 TO 5): LET x$(4 TO 5)="0"+STR$ p: IF p>9 THEN LET X

$(4 TO 5)=STR$ p 5623 60 SUB 420

5625 FOR x=l TO 20: LET x$(6 TO 7)="0"+STR$ x: IF x>9 THEN LET x$(6 TO 7)=STR$ x 5630 GO SUB 5015

5635 LET Tint=Tint+int: LET Tbal=Tbal+bal: LET Tib l=Tlbl+lbl

5640 IF INKEY$=" STOP " THEN GO TO 5690

5650 NEXT x= NEXT p

5660 LPRINT 'TAB 17; 'TOTALS";

5670 IF 1$="2" THEN GO TO 5800

5692 LET s=Tint: GO SUB j3: LPRINT TAB 40;s$;

5694 LET s=Tbal: GO SUB j3: LPRINT TAB 60;s$;

5695 LET s=Tlbl: GO SUB j3 = LPRINT TAB 70;s$;

5696 LPRINT 5699 GO TO 5500

5705 LET n$="n": LET TMI=0: INPUT "Enter Annual In terest Rate";y$: LET irt=( VAL y$/12)*.01 5720 GO TO 5600

5735 IF lbl<=0 THEN LET lbl=0: LET int=0: LET bal =0: RETURN

5736 IF A$(x,5,14)="5" THEN LET lbl=0: LET int=0: LET bal=0: RETURN

5740 LPRINT x$;* ";a$(x,l );TAB 35;z; 5745 LET s=int: GO SUB j3: LPRINT TAB 40;s$; 5750 LET s=INT (lbl*irt): GO SUB j3: LPRINT TAB 50 ;s$;: LET TMI=TMI+INT (lbl*irt) 5755 LET s=crt-int: LET s=amt-s: GO SUB j3: LPRINT TAB 60;s$;

5760 LET s«lbl: GO SUB j3: LPRINT TAB 70;s$ 5770 LET d$(x,z,l TO 4)=b$: LET d$(x,z,U TO 12)=" 10": LET d$(x,z,13 TO 20)=STR$ INT (lbl*irt) 5780 RETURN

5800 LET S=TMI: GO SUB j3: LPRINT TAB 50;s$ 5810 LPRINT "INTEREST RATE = ";irt;" per Nth." 5899 GO TO 5500 5950 LET lbl=lbl-ara

5960 LET lb=2-(a$(x,5,14)='l"): LET lb=VAL B$(l TO 2)-lb: IF lb>=VAL D$(x,z,l TO 2) THEN LET lbl=ba

1: LET A$(x,5,15 TO )=STR$ lbl

5961 RETURN

6000 CLS : FLASH 1: PRINT AT o, 8; "STATEMENT HEADER "": FLASH o

6005 PRINT ""1. Enter HEADER" "2. Enter CLOSING" '""OPTION ?": PAUSE o

6010 IF INKEY$="2" THEN GO TO 6500

6011 IF INKEY$="1* THEN GO TO 6050

6012 IF INKEY$="" THEN GO TO j5

6013 GO TO 6010

6050 PRINT "Enter Statement Header"": INPUT VLOA D From Tape? (y/n)";y$: IF y$=*y" THEN LOAD 'head er" DATA h$( )

6065 FOR z=l TO 4: INPUT "Header Line ";STR$ z;h$( z): PRINT h$(z): NEXT z

6085 POKE cap,o: INPUT " SAVE TO Tape? (y/n)";y$: IF y$="y" THEN SAVE "header" DATA h$( ) 6099 PAUSE o: GO TO j5

6510 PRINT "Enter new Statment closing lines" 6520 INPUT V$

6530 PRINT "NEW Statement Closing": RANDOMIZE US R 64300: PRINT CHR$ 3: PRINT V$: PRINT CHR$ 2 6540 PAUSE o: GO TO j5

7002 CLS : PRINT "Edit File Menu: ";TAB 5;"1. Chan ge Name/Address"; TAB 5; "2. Change Line Entry" 7004 IF INKEY$="1" THEN GO TO 7500 7006 IF INKEY$="2" THEN GO TO 7010 7008 GO TO 7004

7010 CLS : PRINT AT o,26;" Edit File " 7020 GO SUB j4 7030 GO SUB jO

7045 POKE cap, 8: INPUT "Correcrt File Y/N";Y$

7048 IF Y$="Y" THEN GO TO 7050

7049 GO TO j6

7050 ON ERR GO TO j6: INPUT "enter Line No. to be changed ";z: ON ERR RESET : IF z>24 THEN GO TO

J6

7055 IF z<2 THEN GO TO 502 7100 LET edit=0

7205 PRINT ""Current Line No/;

7210 IF D$(x,z,l)=" " THEN GO TO j6

7215 LET des=VAL D$(x,z,ll TO 12)

7220 PRINT TAB l-(z>9);z;TA8 3;D$(x,z,l TO 2);"/";

D$(x,z,3 TO 4);TAB 9;D$(x,z,5 TO 10);TAB 16;I$(des

);: LET ln=24-PEEK 23689

7225 IF des(8 THEN GO SUB jl: PRINT TAB 45;s$;: G 0 TO 7260

7230 IF des<10 THEN LET am=VAL D$(x,z,13 TO 20): GO SUB jl: PRINT AT ln,27;s$;: GO TO 7260 7250 LET k=7: GO SUB jl: PRINT TAB 36;s$; 7260 IF edit=l THEN GO TO 7400 7265 LET edit=l

7275 PRINT ""Enter New Line No.";

7301 INPUT "Enter Date of slip ";e$: IF e$<>"" THE

N : LET D$(x,z,l TO 4)=e$

7305 INPUT "Enter Slip No.";e$: IF e$<)"" THEN : L ET D$(X,Z,5 TO 10)=e$

7310 INPUT Enter Sale Code" "(press "0"" for He lp)";e$: IF e$="" THEN GO TO 7320

7311 ON ERR GO TO 7310: LET D=VAL e$: ON ERR RES ET

7312 FOR y=l TO 10 STEP 2

7313 IF (D<=10)*(D>0)=1 THEN LET D$(X,Z,11 TO 12) =STR$ D: ON ERR RESET : GO TO 7320

7316 INPUT ;(y);".";(l$(y)),(y+l);".";(l$(y+i));D

7317 NEXT y: GO TO 7310

7320 INPUT "Enter $ Amount" ;Y$: IF Y$="" THEN GO TO 7215

7325 LET D$(x,z,13 TO 20)=Y$

7330 IF (LEN Y$>1)*(LEN Y$<9)=0 THEN GO TO 7320

7335 FOR y=l TO LEN Y$

7340 IF (CODE Y$(y)<58)*(C0DE Y$(y)>44)=0 THEN GO TO 7320

7345 NEXT y: GO TO 7215

7400 PAUSE o: GO TO j5

7510 CLS : PRINT AT o,10;' Edit Name "

7520 GO SUB j4

7530 GO SUB jO

7540 POKE cap ,8: INPUT "Correct File Y/N ";Y$ 7550 IF Y$<)"Y" THEN GO TO j6 7560 LET X=VAL X$(6 TO 7)

7625 INPUT "ACCT. NAME ";e$: IF e$<) "" THEN LET A $(X,l)=e$

7626 PRINT A$(X,1)

7630 INPUT "St. ADDRESS ";e$: IF e$<>"" THEN LET A $(X,2)=e$

7631 PRINT A$(X,2)

7632 INPUT 'RR or BOX";e$: IF e$<> "* THEN LET A$( X,3)=e$

7632 INPUT "RR or B0X';e$: IF ef<>" THEN LET A$(X, 3)=e$

7633 PRINT A$(X,3)

7635 INPUT 'CITY";e$: IF e$<>"" THEN LET A$(X,4)=e$

7636 PRINT A$(X,4)

7640 INPUT 'STATE, & ZIP';e$: IF e$<>"" THEN LET A$ (X,5,l TO 8)=e$

7641 PRINT A$(X,5,1 TO 8)

7650 POKE cap,8: INPUT 'IS THIS CORRECT Y/N ?';Y$: I F Y$='N" THEN CLS : PRINT 'ACCT NO. ';X: POKE cap.o : GO TO 7610

7660 INPUT 'Change TERMS Y/N ? ';y$: IF y$0'Y' THEN 60 TO 7800

7710 aS : PRINT "TERMS MENU:': PRINT AT 2,5;' 1. ";T $(1)*TAB 5;'2. ";T$(2)'TAB 5;'3. ';T$(3)*TAB 5;'4. ' ;T$(4)'TAB 5; '5. ";T$(5)

7720 INPUT A$(X,5,14): IF COOE A$(X,5,14)>48 AND COD E A$(X,5,14)<54 THEN GO TO 7730 7725 BEEP .1,1: BEEP 1..1: GO TO 7710 7810 GO TO j5

8000 REM close The 8010 GO SUB 450

8050 CLEAR : RESTORE : RESET : GO TO 9500 9000 REM save data 9005 GO SUB 450

9010 CLS : FLASH 1: PRINT AT 0,10;' SAVE DATA ': FLA SH 0

9015 PRINT '"Please have formated DISK Ready' 9020 PRINT "Place SOURCE disk in DRIVE 2'" DES TINATION disk in DRIVE 1'" "Press ENTER when READY' : PAUSE 0

9100 FOR Z=l TO 48

9110 LET c$*'0100'+STR$ z: IF z>9 THEN LET c$*"010" +STR$ z

9120 RANDOMIZE USR 100: GO TO 1

9125 RANDOMIZE USR 100: LOAD c$+'a.A$' DATA a$( )

9126 RANDOMIZE USR 100: LOAD c$+"d.A$" DATA d$( ) 9130 RANDOMIZE USR 100: GO TO 0

9135 RANDOMIZE USR 100: SAVE c$+'a.A$' DATA a$( )

9136 RANDOMIZE USR 100: SAVE c$+'d.A$" DATA d$( ) 9140 NEXT z

9150 GO TO j5

9500 REM

9501 DIM I$(10,ll): FOR Z=l TO 10: READ a$: LET I$(Z >a$: NEXT Z

9502 DATA 'Merchandise' , 'Plumb/Heat' , 'Photo Fin. ' , 'A ppliance" , 'Furniture' , "Labor ' , 'ServiceCall ' , 'Credit" ,'Rec.on Acct", "Interest*

9503 DATA 'NET 30', 'NET 60', 'NET 90", 'NET 120' , 'NONE

9504 DIM T$(5,8): FOR Z*l TO 5: READ a$: LET T$(Z)=a $: NEXT z

9515 LET x=20: LET CAP=23658: LET j0=300: LET jl=350 : LET j2=354: LET j3=355: LET j4=400: LET j5»500: LE T j6*502: LET o=0

9520 DIM A$(X,5,21): DIM 0$(X,24,20) 9525 DIM h$(4,80)

9530 INPUT 'TODAYS DATE ? M/0/Y';8$ 9535 IF LEN b$<>6 THEN GO TO 9530 9540 LET g$=b$(l TO 2)+7"*b$(3 TO 4)+7"*b$(5 TO 6)

9550 LET C$= "01001" 9552 DIM V$(192) 9555 LET E$=' '

9558 REM

9560 RANDOMIZE USR 100: LOAD "01001a.A$" DATA a$( ) 9565 RANDOMIZE USR 100: LOAD "OlOOld.AS" DATA d$( ) 9575 GO TO j5

9599 STOP

9600 PRINT ' STOP this will erase all files": PAUSE 0

9610 DIM A$(20,5,21): DIM D$(20,24,20)

9620 FOR x=l TO 48

9625 LET x$='0100'+STR$ x

9628 IF x>9 THEN LET x$="010'+STR$ x

9630 RANDOMIZE USR 100: SAVE x$+'a.A$" DATA a$( )

9635 RANDOMIZE USR 100: SAVE x$+"d.A$" DATA d$( )

9640 NEXT x

9650 STOP

LKDOS Auto Load Program

To Auto SAVE, type: GO TO 60., Then touch "d".

5 CLEAR VAL "63222" 10 REM LKdos AR loader

20 PAPER NOT PI: BORDER NOT PI: INK VAL "7": CLS

22 LET ml=VAL '100': PRINT AT VAL "9", NOT PI ; 'Does Printer need Line Feed? <1> Yes <2> No": PAUSE N OT Pi: LET z*NOT (CODE INKEY$-VAL "49"): RANDOMIZE U SR ml: OPEN #VAL "3","lp": RANDOMIZE USR ml: POKE VA L '16096', NOT PI: RANDOMIZE USR ml: POKE VAL '16092' ,(z*VAL '10'): CLS : INPUT "Enter Printer's Max Line length ';z: RANDOMIZE USR ml: POKE 16090, z: INPUT ' Enter Left Margin" ;z: RANDOMIZE USR ml: POKE VAL "16 094',(z-VAL '1" AND z>NOT PI M VAL '0' AND z(NOT NOT PI): PRINT AT VAL '8', NOT PI; 'Turn Printer ON, ENTE R': PAUSE NOT PI: CLS : LPRINT

30 RANDOMIZE USR ml: LOAD 'taswid.Cl'CODE

40 RANDOMIZE USR VAL '64300'

50 RANDOMIZE USR ml: LOAD 'AR1-9.B1'

60 LET Z=VAL "65367"- FREE +VAL "300": POKE VAL "2 3731\z/VAL '256': POKE VAL ' 23730 ",z-( INT z/VAL '25 6")*VAL "256": RANDOMIZE USR VAL "102": GO TO 5

NOTES:

1 . Whan, the. matin pxjognam Z6 keyed in, SAVE AJt (tilth a. title. o4 "AR1-9.81:

2. T%U> 4o4twaA&. Jt&Qul*&6 a. 64 caiwm diAptay 44JU,. You, wJtt need zith&i the, ZebxiL OS-64 coAtxAdge, ox. the, TASUZ code. <L6 AuppLLed In the, TASUJI coquette. Either o4 theAA. ujoxh, ufith zWxeA. SPVOS on, LKDOS, bat to UL6e. the, OS-64 utith LKDOS the. modification, given, in the, LKDOS rmnual (to Mach an EPRQM) i* nexqjLlxed.

***t*t**4M***m«****t***«*****«*t**********4

* OTHER OSES POR THE T/S 2168 LARREN RAHDISR * *t*titi*i*ittttt*ttt*tt*i*tttti*t*ttttittttttt

LARRY CRAHPORD 357 REYNOLDS RD LONDON ONT CANADA N6K 2P8

BACKGROUND

The LARREN RAMDISK banks are all napped into the DOCK bank of the 2168 even though the board is plugged into the back expansion slot. Consequently, it is possible to load any of the RAMDISK banks with data for a database or spreadsheet. This means that up to 256K more information can be handled and increases the usefulness of the "old workhorse" dramatically. It is also possible to load a DOCK bank with code which simulates a BASIC cartridge (AROS) and to run that code as a BASIC or m/c program. This is what cartridges do.

LARREN BANK SWITCHING

Pirst of all, the 2068's RAM is organised into 8 chunks of 8K each. Normally, with Display Pile 1 in use, the bottom two contain ROM and the next one the system variables and ROM routines which are moved to RAH on power-up. These 3 chunks should not be disturbed.

The LARREN RAMDISR board uses the top 4 chunks (4 to 7) to make up a bank. A bank is made active by switching off the HOME RAH chunks 4 to 7 and turning on one of the RAMDISK banks. The active bank is actually treated as a DOCK bank. Thus the RAHDISR board holds up to 8 DOCK banks which can be selected from the keyboard.

HOW?

Which chunks are active in HOME and which active in DOCK is controlled by the Horizontal Select Register (HSR) located in PORT 244 (P4 hex). The individual bits which make up the byte in the port determine in which bank the corresponding chunk will be active. A xero bit means. the chunk is in HOHE. Since we want to use the top 4 chunks in DOCK, we will load the HSR with llUMff binary (244 decimal). Thus <OUT 244,240> activates the DOCK bank.

WHICH DOCK BANK?

LARKEN uses PORT 7 to select the one- to be activated. The second page of the LARKEN RAMDISK notes gives the code numbers corresponding to the banks: Bank ABCDEPGH

Code 7 3 5 16 2 4 1 Thus <OUT 7,7> will select bank A. Purther, LARREN uses bit 6 of PORT 7 to control the WRITE- PROTECT

circuitry of the RAHDISK board. A xero in bit 6 puts the bank in the READ-only mode. To be able to load data into the bank, we must add 1100090 binary (64 decimal) to the bank code number. Therefore, <OUT 244,240: OUT 7,71> will permit us to put data into DOCK bank A.

WHAT CAN BE PUT INTO IT?

Strictly code. I use two of the banks to hold records for a database program. It switches the banks in or out as needed to add records or to sort them.

The code, however, can be in the form of an AROS cartridge and therefore be used to hold a BASIC program.

HOW TO SAVE THE RAMDISK BANK

Any data read into the bank would destroy the existing data. To preserve the RAMDISK, enter the following: OUT 244,240: OUT 7,7 :RANDOHIZE USR 100: SAVE "RAHDSK.C1" CODE 32768,32768. The contents of bank A will now be safely on floppy and we can mess around with the bank as much as we want. The DOCK bank, however, is still active and needs to be turned off.

HOW TO GET BACK TO NORMAL

The commands <0UT 244,0: OUT 7,0> will do the job. With a lero in the HSR via PORT 244, all bits are zeros and all chunks of RAM will be active in HOHE. The xero to PORT 7 will turn, return to bank H which has a code of zero. This is the normal condition for RAMDISK.

BANK H - A SPECIAL CASE

When the computer is turned on or NEWed, it checks the DOCK to see if an AROS is present. If one is, it is automatically activated. A simulated AROS loaded into this bank will run if the <NEW> key is pressed. If the power supply is turned off, the code in the bank will be lost even if the battery backup is connected. If you want a permanent AROS in bank zero, install an EPROM containing the utility in the H bank socket. I have HOT-Z in the bank and a switch in the line running from pin 1 of the 74145 to pin 20 of the H RAH chip. Without the switch, HOT-Z would run every time the computer was booted.

HOW TO RESTORE THE RAMDISK BANK

<OUT 244,240: OUT 7,71: LOAD "RAHDSK.Cl"CODE> will put the RAHDISK bank A back in the RAH chip. Don't forget to <OUT 244, 0>

SIMULATING AN AROS CARTRIDGE

An AROS cartridge must have 8 "overhead" bytes

starting at 32768 (8009 hex) to give the computer

the information it needs to run the BASIC program.

See page 119 of the Tech Manual.

For our demo we will POKE into bank A the

following bytes: 1,2,8,128,15, 1,1,0.

The first 1 indicates that this is a BASIC

"cartridge".

The 2 signals AROS as opposed to LROS, a Language cartridge.

The 8 and 128 form the beginning address of the BASIC program (low byte first). In this case the BASIC will be at 84256*128=32776 or 8008 hex. The 15 (00001111 bin) means that chunks 4 to 7 will be active in the DOCK bank. This is exactly opposite to the format for the HSR. The second 1 denotes an Autostart for the program. The two teros reserve no bytes for m/c variables. The BASIC program will be loaded as code starting at 32776.

CREATING AN AROS

1. Save RAMD1SK bank A as described earlier and then key in OUT 244,0 2. Key in 10 CLS: PRINT "OK": STOP 20 OUT 244,240: OUT 7,71 30 RESTORE: FOR X= 62768 TO 32775:

READ T: PORE X,Y: NEXT X 40 DATA 1,2,8,128,15,1,0,0 50 OUT 244,0

3. 8 AVE as "test.Bl"

4. SAVE as "test.Cl"CODE PEEK 23635+256*23636,1000 The peeks simply find the address of the start of the BASIC program. It is moved up 50 bytes if the large printer is active. The 1000 is an arbitrary number large enough to be sure that all of the program is saved.

5. Now <GOTO 20>. This will put the "overhead bytes" for the AROS in place.

6. Key in OUT 244,240: LOAD "test.Cl"CODE: OUT 244 ,0. This will put the BASIC program into the "cartridge".

7. Press <NEH> key. This activates the AROS and Line 10 of the program should run.

8. If you saved a RAHD1SK bank earlier, load it back in.

RUNNING AN AROS (BASIC IN DOCK)

If DOCK bank n contains an AROS, then <OUT 7, be: NEH> will RUN it (be is the LARKEN code for bank n). It's that simple.

STORING AN AROS

If the bank is in Drive 4, then keep the AROS on floppy and load it in when you need it.

RUNNING AROS FROH DOCK AND BASIC IN HOME

Programs can exist in both banks and either one can be RUN. Which one is active depends on the contents of the aros flag at 23750. A mo at this address will allow the HOME bank program to be run. A 128 there activates the DOCK program. A program in DOCK cannot be listed nor can it be edited. So if you attempt to enter a line and can't, you know that you are in DOCK and must return to HOME.

Steps to run both:

1. Boot the DOCK program with <OUT 7, be: NEH>. This MUST be done first to let the computer know that an AROS is present.

2. Key in POKE 23750,0 to activate HOME bank.

3. Load in the BASIC program.

4. POKE 23750 with 0 or 128 depending on the bank wanted and then RUN or GOTO the appropriate line number.

SUMMING UP

The ability to use the RAMDISK banks for other purposes expands the usefulness of the 2068 dramatically. Data that could not be handled by the unexpanded machine can now be dealt with easily.

Huge BASIC programs can be broken down into segments, stored in DOCK banks, and called into action as needed by a short controlling program. This would leave most of HOME RAM free for the storage of data.

Expansion of the 2068 makes economic sense too, removing some of the pressure to move on to a bigger machine that can't be tinkered with. What we need now is a mess of programs that exploit this potential.

For starters, George Chambers has two of mine. One is a database and the other a HOME/ DOCK program handler. Ask him for them.

Explore and enjoy! Larry C

If the code is to be left in a DOCK bank and maintained with the battery backup, it should not be in a bank that was formatted as a RAMDISK bank.

2.8

A T/S 2868 UTILITY TO PUT BASIC PROGRAMS INTO THE LARKEIf RAMDISK BANKS

DONATED TO THE PUBLIC DOMAIN BY LARRY CRAWFORD 357 REYNOLDS RD LONDON ONT CANADA N6K 2P8 (519) 657-9119 27 JAN 90

**************************************************

BACKGROUND

The LARKEN RAMDISK banks are all mapped into the DOCK bank of the 2068 even though the board is plugged into the back expansion slot. Consequently, it is possible to load any of- the RAMDISK banks with code which simulates a BASIC cartridge {an AROS) and to run that code as a BASIC program. This suite of programs will allow you to create your own simulated cartridges in the RAMDISK memory chips. A program running from DOCK leaves the HOME bank free to hold another program and/or data. Refer to Bill Jones' EXTRA MEMORY PROGRAMMING article in Update Magazine for some of the implications of working in DOCK bank.

See tlc(t,ASrxc£s FEATURES (?a}c 33

1. Allows a choice of any of the 8 RAMDISK banks.

2. SAVEs the chosen RAMDISK bank to floppy automatically.

3. Hill RUN a program in DOCK or HOME bank.

4. Allows a BASIC program to be MERGED into HOME bank or a new program to be keyed in.

5. Hill move a program from HOME bank into DOCK.

6. SAVEs the program in HOME as a BASIC program and the one in DOCK as cartridge code.

7. Reloads the- saved RAMDISK bank after these SAVEs have been completed thus restoring the computer to its original condition.

8. Uses no variables internally except for the string variable Z$ so will not normally interfere with the operation of a BASIC program MERGEd with it.

GETTING STARTED

Type in listing 1 ("maker. Bl") and GO TO 9999 to save it.

GO TO 100 to create and save ,fmove20 j.Cl". This step need be done only once for each disk to be used.

Type in listing 2 ("loader. B1M) and GO TO 9999 to save it. This is the program to be RUN when a new AROS is to be created or programs are to be run in both HOME and DOCK banks.

Type in listing 3 ("PRGMV.B3") . Save as "PRGMV.B3" and as a code file: < RANDOMIZE USR 100: SAVE "CORE.Cl"CODE PEEK 23635+ PEEK 23636, 3000>. The two PEEKs find the beginning of the BASIC program. This is necessary since LARKEN moves (prog) up 50 bytes if the large printer is activated. The 3000 is an arbitrary number large enough to be sure that all of the program has been saved.

USING THE PROGAMS (A TUTORIAL)

1. Since the RAMDISK banks will be used, the HRITE PROTECT switch must be in the OFF position.

2. The floppy disk must have its protect sticker removed.

3. Since both the RAMDISK and floppy disks will be messed with, it is prudent to make copies of each before using the program.

4. LOAD "loader. Bl". You will be asked which bank is to be used.

Enter <1> for bank "A", <2> for "B", etc. Use <1> for a trial run.

There will be a great whirring and clanking for a few seconds while it saves the RAMDISK bank you chose, loads in the matching DOCK bank and a short m/c routine.

The screen will flicker, simulating a crash, and then some more whirring while the BASIC controller program is merged into HOME bank. Finally, a menu in black ink on cyan paper will inform you which DOCK bank you are in and give you the choice of going to HOME bank or running a program in DOCK.

The whole process is quite scary.

9. All features are MENU driven for ease of use. 5. If you choose to RUN in DOCK, the same menu

will appear since the only program resident is the

10. The screen and ink colours change when you BASIC controller program (PRGMV.B3). change banks so that you will know which bank is

active. This information is important because you 6. The other option will reveal the BASIC cannot LIST or EDIT lines if you are in the DOCK. controller listed in white ink on blue paper.

2.9

Since the program was just HERGEd into the HOME

bank, it will not autorun.

Use <GOTO 9999> to bring up the menu.

7. The menu will give you 4 options: 1: RUN, 2: MERGE, 3: MOVE to DOCK, and 4: SAVE & RESTORE.

8. Try option 1. You will be asked which bank you want to RUN in. Either choice at this time will come up with the menu for the bank chosen with the appropriate ink and paper colours.

After going to DOCK and returning to HOME, use <GOTO 9999> again to return to the menu.

9. Now try the option 2 to merge a program into HOME bank.

A CAT will be performed and you will be prompted

to enter the name of the program.

The program to be merged must not include lines

above 9990 or it will destroy the controller

program and you will lose control.

If the program uses the TIMEX printer, it should

make a USR call to 2613 to clear the printer

buffer before any printing is done and should

reload "mov20 j.C3"CODE after using the printer.

Try wtest.BlM. This is a one line PRINT program at

line It.

10. Return to the menu and choose the RUN option. Choose DOCK and note that its menu comes up again because the test program has not been moved into DOCK yet.

11. Return to HOME and call up the menu.

This time choose to RUN in HOME. The test program will run and print an "OK" message.

12. Return to the menu and choose the MOVE option. A prompt will tell you to hit a key to return to menu.

13. Now RUN in DOCK and see the test program running.

Use <GOTO 9990> to get to the DOCK menu.

14. Return to HOME and delete the print line.

15. RUN in both banks and note that the test program still works in DOCK.

16. Now move the program to DOCK and RUN in both banks again.

The test program has been removed from DOCK. (This program should be removed before using the last option of saving the DOCK program)

17. Put a line somewhere. Por example, <1 REM> will do nicely.

The SAVE option deletes lines 1 to 9990 and there must be something to delete.

30

Choose option 4 of the HOME menu.

The program in the HOME bank will be saved as

MHOMEn.BlM where n is the chosen bank.

The DOCK bank will be saved as MDOCKn.ClMCODE

32768,1. where 1 is the length of the file in

DOCK.

The RAMDISK bank MRDBNKn.ClM will be loaded, thus restoring RAMDISK to its original state. But the RAMDISK bank is still switched on and a program loaded in now would overwrite the data in the bank.

You will be prompted to switch off the power supply before doing anything else with the computer.

18. Now switch on and try RAMDISK. It should work normally.

************************************************** USING IOUR AROS

Assume that you have moved a BASIC program "XX.Bl" into bank 7 and want to keep it there to be run at any time.

Bank 7 cannot be formatted as a RAMDISK bank in drive 4.

The AROS was saved as "D0CK7.C1M when you created it. Change the name to HXXAR.C7M and put it into bank 7 as follows:

<OUT 244,240: OUT 7,68: RANDOMIZE USR 100: LOAD

HXXAR.C7"C0DE> <OUT 244,0: OUT7,0>

The program will stay in the bank as long as the

battery backup is in place.

To run the AROS: <OUT 7,4: NEW>. It's that simple.

The bank can be used for other programs since the

code resident in bank 7 will be saved when the new

BANK7.C1 is created with the package and will be

restored when the process is finished.

Thus any number of programs can be run in the one

bank as long as each is given a distinctive name

and is loaded into the bank as required.

File MXXAR.C7H would have to reloaded if it is

desired to have it resident in the bank.

************************************************** LISTING 1 (maker.Bl)

5 REM TO CREATE THE CODEUTILITT Hmov20j.C 3" WHICH SWITCHES FROM DOCK TO HOME BANK AMD MOVE S A PROGRAM FROM HOME TO DOCK,<GOTO 100> LARR I CRAWFORD 20 JAN 90

20 PRINT AT 10,4;MTHIS PROGRAM WILL FORMAT"; AT 11,9;"A RAMDISK BANK"; AT 13,4;"WH1CH BANK WILL BE USED?";AT 14,12;"(1 TO 8)": INPUT B: LET B$="735 16240": LET LRBNK=CODE B$(B)U6

30 RANDOMIZE USR 100: LOAD "CORE.crcODE 32780: RESTORE 30: FOR X=32768 TO 32779: READ I: POKE X pi: NEXT X: DATA 1,2,12,128,15,1,0,0,B,LKBNK,184, 11: RANDOMIZE USR 100: SAVE "DOCK"*STR$ Bt\Cl"CO DE 32768,3000

41 STOP

100 RESTORE 111: POR X=23296 TO 23334: READ Y: P ORE X,Y: NEXT X: DATA 175,050,198,092,195,040 ,014 ,237,091,083,092,042,089,092,205,069,023,017,012, 128,175,211,244,126,245,062,240,211,244,241,018,0 35,019,011,120,177,032,238,201

110 RANDOMIZE USR 100: SAVE "mov20j.C3"CODE 2329 6,39: STOP

9999 RANDOMIZE USR 100: SAVE "maker. Bl" LINE 1 LISTING 2 (loader. Bl)

10 CLEAR 65367: PRINT AT 10,0;"THIS PROGRAM HIL L MOVE A BASIC"'" PROGRAM INTO A RAMDISK BANK""*

HHICH BANK HILL BE USED?"'" (1 TO 8)":

INPUT B: LET B$-"73516240": LET LKBNK=CODE B$(B)+ 16

20 OUT 244,240: OUT 7,LRBNK: RANDOMIZE USR 100: SAVE HRDBNR"+STR$ B+".C1"C0DE 32768,32768: RAN DO MIZE USR 100: LOAD "DOCR"+STR$ B+".Cl"CODE : OUT 244,0: NEW

9999 RANDOMIZE USR 100: SAVE "loader. Bl" LINE 1

LISTING 3 (PRGMV.B3)

10 REM DO NOT DELETE THIS LINE

9991 PORE 26664, (PEEK 26664)+l: GO TO 9997+(PEEK 26664>1)+(PEER 23750=0)

9992 CLS : PRINT AT 10,0;"RUN PROGRAM IN"M"1: HO ME BANK" ""2: DOCK BANK"' '"CHOOSE": PAUSE 0: POKE 23750, 128*(INKEY$="2"): BORDER 1+(IHKEY$="2")*4: PAPER 1+(INKEY$="2")*4: INK (INKEY$="1")*7: GO TO

0

9993 CLS : RANDOMIZE USR 100: CAT "",: INPUT "ENT ER NAME OF PGM TO BE MERGED ";Z$: RANDOMIZE USR 100: MERGE Z$: GO TO 9999

9994 CLS : RANDOMIZE USR 100: PORE 26662, (PEER 23 641+256*PEEK 23642)-(PEEK 23635+256*PEER 23636)+! 4: RANDOMIZE USR 23303: PRINT AT 10,0;"THIS PROGR AM IS NOW IN BOTH DOCKAND HOME BANKS"" "AND YOU A RE IN THE HOME BANK"' '"PRESS ANY REY FOR MENU": P AUSE 0: CL

S : GO TO 9999

9995 RANDOMIZE USR 100: SAVE "HOMEH+STR$ PEER 266 60+". Bl": DELETE 1,9990: OUT 244,240: OUT 7, PEEK 26661: RANDOMIZE USR 100: SAVE "DOCR"+STR$ PEEK 2 6660+".Cl"CODE 32768, PEEK 26662+256*PEER 26663: R ANDOMIZE USR 100: LOAD "RDBNR"+STR$ PEEK 26660+". Cl"CODE :

OUT 244,0: OUT 7,8: CLS : PRINT AT 10,0;"HOME, DO CK BANKS HAVE BEEN SAVED" ""RAMDISK BANK HAS BEEN RESTORED" ""SWITCH OFF POWER SUPPLY BEFORE" ""LO ADING ANOTHER PROGRAM": STOP

9996 BORDER 1: PAPER 1: INK 7: CLS : RANDOMIZE US R 23296

9997 RANDOMIZE USR 100: LOAD "mov20 j . C3"CODE : OU T 244,240: POKE 26660, PEEK 32776: PORE 26661, PEEK

32777: POKE 26662, PEEK 32778: PORE 26663, PEER 32 779: OUT 244,0: RANDOMIZE USR 100: MERGE "PRGMV.B

9998 BORDER 5: PAPER .5: INR 0: CLS : PRINT AT 10, 0;"YOU ARE NOW IN DOCR BAHR ";PEER 26660 ""YOUR C HOICES ARE"""1: SWITCH TO HOME BANK" ""2: RUN A PROGRAM IN DOCK BANK" ""ENTER CHOICE ": PAUSE 0: GO TO 9996*(INKEY$="1")

9999 OUT 244,0: CLS : PRINT AT 9,7;"YOUR CHOICES ARE"""1: OPERATE A PGM IN EITHER BANK" ""2: MERG E A PGM TO HOME BANK" ""3: MOVE THIS PGM TO DOCK BANR"""4: SAVE HOME & DOCK BANKS ";PEEK 26660;" AND"'" RESTORE RAMDISK BANK"" '"ENTER CHOIC E": PAUSE

0: GO TO 9991+CODE INKEY$-48 **************************************************

DOCUMENTATION FOR THE PROGRAMS THAT MAKE UP THE T/S 2068 UTILITY TO PUT BASIC PROGRAMS INTO THE LARKEN RAMDISK BANKS

DONATED TO THE PUBLIC DOMAIN BY LARRY CRAWFORD 357 REYNOLDS RD LONDON ONT CANADA N6K 2P8 (519) 657-9119 27 JAN 90

**************************************************

For background and theory refer to the tutorial Tasword file "tutor. CT" on this disk.

A RAMDISK bank is one of the RAM chips on the LARKEN RAMDISK board.

A DOCK bank is one of these chips used without being fomatted into drive 4. An AROS is a DOCK bank file that contains "overhead bytes" and a BASIC program.

************************************************** "maker.Bl"

This short program is really two programs in one. Lines 20 and 30 will create a code file which, when loaded into a DOCK bank, simulates a BASIC AROS cartridge. Lines 100 and 110 create the 39 byte m/c program which is called to switch from DOCK to HOME bank and to move a BASIC program from HOME to DOCK bank.

LINE 20

Prompts for the bank to be used as an AROS. This

number is assigned to variable B.

RAMDISK banks are identified as A, B, C,...,H. We

will use the sequence 1, 2, 3, ...,8 instead.

This will help distinguish between the lettered

RAMDISR banks and the numbered DOCR banks.

A string variable, B$, is assigned the set of

integers which are the RAMDISR bank code numbers.

The appropriate number is sliced out of the

string, adjusted to turn off the write-protect

feature, then assigned to the variable LRBNR.

LINE 30

Loads in a previously prepared code program. More

on that later. POKES the "overhead bytes'* for the AROS into the first eight addresses in the bank. Then pokes the bank number and the bank code number into the next two. The last two bytes are the number of bytes to be saved as code. The two numbers in the DATA statement represent 3190, an arbitrary number large enough to include all the data.

Then the file is saved as "DOCKb.cr, where b is the bank number.

A file of this format must be stored on the disk before the utility can be used.

LINE 100

POKES the following m/c program into the beginning of the printer buffer: 23296 XOR A

LD (AROS FLAG), A Switches to HOME bank> JP 3624 decimal <the entry point to BASIC in R0M>

23303 LD DE, (prog) LD HL, (el in) CALL 5957 decimal

LD DE, 32780 dec.

loop XOR A

OUT (244), A

LD A, (HL) PUSH AF LD A, 240 dec. OUT (244), A

POP AF LD (DE),A INC HL INC DE DEC BC LD A,B OR C

JR NZ,loop RET

<"differenceM subroutine in ROM. Loads BC with difference between HL and DE. Loads HL with (prog)>

<where the BASIC pgm is

to be moved> <load A with xero> <all chunks of RAH in

HOME bank active> <get byte of BASIC pgm> <store byte>

< chunks 4 to 7 active in DOCK bank>

<get byte of BASIC pgm> <put byte in DOCK bank>

<increase both pointers> <decrease counter)

<loop until counter is 0>

LINE 110

The 39 bytes are saved as Mmov20j.Cl" ready to be

loaded later when needed.

Lines 100 and 110 need only be used once.

v

tttttttttt*ttt*t*tt*tt*t*tt*tt*tttttttttt*t*tttttt

"loader .81"

This is the program that is run to actually use the utility.

32

LINE 10

Prompts for the bank number, B, and calculates the value for RDBNK.

LINE 20

Switches on the chosen bank and saves the resident RAMDISK data.

Loads in the matching DOCK bank AROS.

Switches on all chunks of HOME bank, leaving the

DOCK bank selected.

t********t*********t******e**t*t*tttt*et*«tttt**t*

"PRGMV.B3" and "CORE.C1"

Both are the same program: one saved as BASIC and the other as a code file. Between them they are the controllers for loading and running BASIC programs in ROME and DOCK banks. The code version is resident in the AROS and runs when the computer is NEWed by the loader program.

LINE 10

This is a dummy line needed if no other program is merged into HOME bank. The SAVE option deletes lines 1 to 9990. Therefore, there must be at least one line in that range.

LINE 9991

Address 26664 that is peeked, incremented, and poked, is located in an unused corner of RAH. It has a value of zero on startup and is used here as a flag to indicate whether or not this is the first run of the program.

If this is the first run, PEEK 26664 will not be

greater than 1 and PEEK 23750 will not equal zero

(we're in DOCK now so 23750 holds 128). Thus the

GOTO will be to 9997+0+0.

If this is not the first run and we're in DOCK,

the GOTO will be to 9997+1+0.

If we're in HOME bank, GOTO 9997+1+1.

LINE 9997

This line is used only on startup. First the m/c routines are loaded into the printer buffer. The top 4 chunks of HOME bank are switched off. Then the bank number, bank code number, and number of bytes of code in the AROS are all poked into the comer of RAM next to our flag. These parameters must be accessible no matter which bank is in use.

Finally, the ROME bank is restored to its full size and the BASIC controller, "PRGHV.B3" is merged into place.

LIRE 9998

Sets the paper and border to cyan and ink to black. These colors inform you that the computer is operating in DOCK bank. A menu is displayed giving you the option of going to HOME bank or running a program in DOCK.

If the choice is to goto HOME then the GOTO will be to 9996*1. If not, GOTO 9996*8; thus effectively running the program in DOCK.

LINE 9996

Sets the paper and border to blue and ink to white.

These colors inform you that the computer is operating in HOME bank.

The bank-switching routine at 23296 is called and control will now be in HOME bank. The resident program will not run automatically but must be activated with a GOTO to the appropriate line number.

GOTO 9999 will always bring up the menu in HOME. LINE 9999

The HOME menu. First, the HOME bank is switched in and the 4 choices displayed. PEEK 26660 in the SAVE option is the bank number. The GOTO line is simply 9991+ the choice number. If the first option is selected, control is passed to line 9992.

LINE 9992

A new menu is displayed giving the option of

running the program in HOME or DOCK banks.

The POKE to 23750 is either 0 or 128 depending on

the bank chosen. The operative bank is determined

by the value stared in 23750.

Similarly, the border, paper, and ink colors are

set by the Boolean logic in each of the

statements.

The GOTO 0 effectively runs the program in the selected bank.

LINE 9993

Activated by the MERGE option of the menu.

It does a CAT and prompts for the name of the

program to be merged.

MERGES that program and returns to the menu. LINE 994

Called by the MOVE option of the menu. Whatever program is resident in HOME will be placed into the AROS.

First, the number of bytes between (el in) and

(prog) is found and 14 bytes added to allow for

the "overhead" bytes of the AROS and our

parameters. This number is double poked into

26662, replacing the previous length stored. (He

had poked in 3000 originally. Remember?)

The m/c at 23303 is then called to do the actual

move then a message is displayed to inform you

that the move has taken place.

The menu is then called up once more.

LINE 9995

The SAVE option. Lots of activity here.

First, the program in HOME is saved under the name

"HOMEb.Bl" where b is the bank number. Then lines 1 to 9990 are deleted to be sure that line 9995 is not in a chunk of RAM that will get switched off.

Next, chunks 4 to 7 are switched off for MOME bank

and the write-protect turned off in DOCK.

The number of bytes to be saved is PEEKed from

26662 and 26663 and the AROS saved as "DOCKb.ClH.

The RAMDISK bank that was saved at the beginning

is put back in place by LOAD "RDBNKb.Cl".

A message is displayed to be sure that the

computer is completely back to normal by switching

off the power supply before using it with another

program.

**************************************************

"CORE. CI"

The controller program "PRGMV.B3" saved as code. After PRGMV.B3 is typed in, it is saved as MC0RE.C1"C0DE PEER 23635+ PEEK 23636, 3000.

**************************************************

VARIABLES USED BY THE UTILITY IN AROS IN RAM MEANING

32776 26660 active bank number

32777 26661 LARKEN bank code

32778,9 26662,3 length of code file in AROS

26664 flag for first run of pgm **************************************************

Rlz{-ER tree's

These two articles In this issue is the wrap-up on the subject of Extra Memory- There are many more articles in the back issues of Update and the total of these form a complete reference on Extra Memory, both f ran the Programing and the hardware standpoints. These articles will be referenced by Update Magazine issue dates below.

Oct 87- Jan 88-- Extra mam programing .

Mod of TS-IOOO Ram.

15-2068 whole schematic.

Ext Buss pin diagram. Apr 88— System Variables.

MOVE PROG - Program. Jul 88— DOS- 64 f Bankswitching.

First of Chuck Bothner's

series on RAM EXPANSICtf. Oct 88-- Larken Ram Disk.

Extra memory recap.

Chuck Bothner's second

art on RAM ECTEHSIOH. Jan 89 LKD03 OFF Switch. Jul 89— FD-68 Update (bkswitch). Oct 89 Larry Crawford's first

Ex Memory article. Jan 90— Two articles in this

33

WIDJUP (Bill Pederson, 1120 Merrifield S.E., Grand Rapids, MI 49507) has sane interesting facta on PRINTERS and DRIVERS that are applicable to all Caqputers. His CRD DISCS are for the TS-2068 LKD06 Sjstm. Write for iafonaation.

DOT MATRIX PRINTER DRIVER

The VIDJUP Co. graphic priater driver far 9 and 24 pia printers is a very flexible tool. It was designed to do VIIDOVS. These windows refer to the printed page, not the screen.

A window can be napped to the screen in aany ways. Sooe can lead to confusion. If it happens to be a screen dunp, it's easy to forget that it is the printer which is being mapped to the screen— not the opposite. All windows are espty until written to by programs.

Artwork programs write graphics to the screen, or to a file which can be displayed. For computers with lots of memory the files might be priater page images, often compressed, giving the program DESKTOP capability.

Host art and font programs for the TS2068 are screen oriented. That is where mapping becomes important. The priater window can be mapped to the sane location that the artwork program uses.

The artwork program now appears to be writing to the printer.

When the printer window is small enough to fit on the screen, it is possible to have "Vhat you see is what you get." More properly, "You can almost see what you are going to get.

At best, you may still have distortions. WYSIWYG is a catchy phrase, but it is still an idealistic view that can't be met using any common monitor, unless dedicated for special use.

It is not wrong to want to see what your printed output will be like. That Is a valid human engineering goal, though not always necessary. Good programs provide a "PBBYIBW function, often backed up" with "FAT BIT" managing editors.

When a priater window is too large to be displayed across the screen, it can be divided into pieces which can. An example is displaying a *J0x8 dot printer window on four consecutive screen lines with some space left unused at the end of the fourth line.

This is nice for graphic mode word processing.

There are 11 pokes necessary to set up a window and map it to the screen. An application might use many windows, so some way to make this easier is required. One way is to set up an array with the most frequently used windows predefined.

The array JS<20,11) is used in WIDJUP programs. That for CADtfi is shown below. Heferences to a checkerboard apply to a DBHO " " for GIAPHOIY. a utility for developing windows for applications like DESKTOP-

J*E.A» VIITDOW DATA ARRAY Scrt^n Comer TYP5 Print torgin Char LF/CR Lwe *»J«

cSSn Sc« C3K Passes A IJ* W Fjj* *f »$ i Serf. f^.JHjW }}•» 2 0 ? « 4i 40 32 2 2 J I ul^Tirm SKlfbcth)

19 0 % \ * 3 * t t i«s 1 960 dot pass 12'bcthi

S 0 32 * J J 2 22 I 192 I 9?0 dot pass M(ooUj) .

$ 0 64 « \ X V* ? 0 5 208 0 ChtcktrtSrt top Ieft;9 pin)

7 0 0 | } ^ ?} * 24 $ IS3 0 Checkerboard Up rift

9 1 0 9 I l\ tZ{ 5 208 « Checkerboard white left

9 0 8 | } 4J 4 i ,J 5 is! 0 Checkerboard thiU right

tO I 8 | I ,J 5? f o 5 208 0 Checkerboard, b ack left

11 0 M 8 f « *} \ ?J l fs| $ Checke^oa< blK* rirt

12 I |i | \ A is t"5 S 208 0 Checkerboard, bettw .t*t

13 0 163 ! f 42 ? ? >i e 0 ChtrtertoaM Mtt» ".jM

32 32 H 32 0 3x ?* 8 £ J2 32 9?*E

15 92 :2 J2 32 32 3^. J. h i= i; 22 $W£

5 32 32 22 12 32 « £ g § g -|

19 32 32 22 32 3t £ g g g g j. m 34

SS $ i S « S 8 § S 6 32 SPARE

PHI ITER VIIDOV PARAXETERS

Kargin Dots. . These are blank dots which need not be napped to the screen. They may be margin, column gap, etc.

Chars Vide.. There are eight dots needed per character shown on the screen, but each screen dot may be copied to the printer a selected number of times.

Total Dots.. The total of margin and multiplied char dots.

LF/CS. . Vindaw termination nay require one or bath codes

to allow concatenation, or cause a new line. This parameter specifies the number of codes Issued.

Line Feeds.. The number of minimum line feeds to be taken at the end of the window. This can be 0.

Prt Passes.. The number of times a single window is repeated to make a larger one. This is how dumps are done.

Graph MODE. . The printer graphic mode to be used for this window. 24 pin printers do not have mode 5, but support 24 pin graphics. These added modes are not supported by this driver.

SCEEEI PARAXETERS

Scrn Column. . Column 0 to 31 as usual. (Start location) Scrn Scan. . Scan 0 to 195, from top down. (Start location) Chars Vide. . From 1 to 120 (less for GORILLA BAJAIA, more for wide carriage printers). Vrap-around is active.

Characters printed multiple wide reduce this. TYPE CODE. . This byte contains width, height and video mode specifications.

BIT 6... Double wide.

BIT 5... Toggle for DJPILE2. .

BIT 4... 64 wide video' mode.

BIT 3. . . Single high. (BIT 2=0)

BIT 2. . . Double high. (BIT 3=0)

BITS 7,1,0... lot used.

Designers of printers cater to wants and needs of users even when those are based on less than full knowledge of how things work. The ideal of VYSIVYG has been one of these. Several of the graphics modes have been provided to achieve this for CRTs and displays of specific types, including TS2068.

The designers also provided for more enlightened users, though not always with compatibility with older methods in mind.

Dot-for-dot square printing is lode 5 for 9 pin printers, but Rode 0 for many 24 pin printers.

Some displays emulate a printed page. 24 pin printers were the next advancement to obtain letter quality printing in many font styles that people wanted. This expanded graphics performance as well.

This new graphics capacity is only partly compatible with the older printers. As mentioned, lode 5 was lost (though a IEARLT equivalent mode is available). 9 pin mode is lost as well.

This was acceptable because very few existing printer drivers called far these, and IEARLT was close enough to satisfy most. The impact on existing software was minimal. It is in the area of maximum utilization of graphics that there is little common ground.

Existing programs making maximum use of graphics are generally available only for other computers that use custom drivers.

CAD#2 has a driver for OLIVETTI PR2300 ink Jet printer.

(1/216- line feed) CAD#3 has a driver for BPSOI 9 Pin printers and compatibles.

( 1/216" line feed) CAD#4 has a driver for STAR 9 Pin printers and compatibles.

(JUQAA" ltae feed) (Being updated) CAD#5 has a driver for EPSOI 24 Pin printers and compatibles.

( 1/180" line- feed) (lot available yet)

These programs differ because graphic files are unique to each printer, and that requires special routines far generation. Data files, however, are completely transportable between them.

(01969,1990 The VIDJOT Co. VJP

text 87 samci Quill other virtues, this lets you have 10% more

IPsutrt I characters to a line with no deterioration in

readibility.

Peter Hale, P.O. Box 8763, Boston, MA 02114

With right justification all spacing is micro- Unless you have been on the moon for the past two kerned. No double spaces to pad things out. years you have at least heard of text1', the new It's almost like a type-set book, and the printer word processor for the Sinclair QL and Thor. behaves the same way.

Whatever objections there are to Quill - its snail-like movement around a file and its occassional lockups - its price is right and most of us have learned to live with its 'features'.

DEFINITION; A feature is a bug that has been around so long that everyone has learned to live with it and takes pride in knowing how to avoid it.

This article, and the ones that follow, compare Quill and text11 while at the same time provide a tutorial for using text*7.

WHY text"?

First of all, text17 is a WYSIWYG (What You See Is What You Get) word processor with many of the functions found in good editor programs and a lot of other goodies besides.

In truth, there may be more bells and whistles than the casual writer may want, but as a word processor it has features and is capable of work that is impossible on any other wordprocessor for any other computer.

A Brief List of the Major Goodies:

First and foremost, it doesn't ever lockup.

The cursor is faster than in Quill and erasing or moving blocks is swift like a bunny rabbit.

Virtually every printer font and enhancement can be shown on the screen in a different text color or screen font. Italic is. italic, condensed is. condensed, double-wide is double-wide, and it can be red, green or white. You choose. Justification and word wrap are automatic and take into account different pitches (characters per inch) of text.

The default font is proportional: an V ■•takes up less horizontal screen space than an V 7nuong

All files are in RAM. Unlike Quill, which wants to hog all available memory, it permits limits to be set on the memory to be used. Then, up to the memory available, text17 sets a limit. However, except in its minimal configuration, it needs memory expansion.

Up to four columns of text can be printed on a single page in a single pass of the printhead. (It does not show that way on the screen - you see just one column at a time.)

A Quill _doc file can be imported to text17 and carry with it all typefaces, tabs and margin settings, converting them to the appearance set in the program.

If you so desire, text17 can convert the QL to a Dworak keyboard or set any key to type any character in the QL character set or any other character you choose to create. However, its up to you to mark the keys themselves.

With auxiliary files (at extra cost) screen dumps are possible and a wide range of new fonts can be designed for special effects. There is even a laser printer driver specific to text17.

A Brief List of Major Differences:

The first is also the first one under Goodies.

The next difference is that text17 has no Help, as does Quill, through the Fl key. (Pressing Fl in text17 will activate the spelling checker.)

A third difference is that the Redraw screen key is F4, not SHIFT F5 as in Quill.

Two other differences have to do with the cursor: When the cursor control moves more than one character, as with Shift Right arrow, it seeks out the position to the left of the first space

3.6

encountered; Quill seeks out the position to the right.

The other cursor difference is that it acquires its font enhancements from the character to its right; Quill picks up enhancements from the character to the left of the cursor.

The final major difference is that there is no overwrite function in text87. The reason is fairly simple, text17 can display varying sizes of font on the screen. If the current screen font is double-wide, what happens when trying to overwrite in a condensed font?

Although disconcerting at first for a person accustomed to Quill, the new standard is not that hii'J to come to terms with.

USING text*7

If you are spoiled by the simplicity of using Quill straight out of the box, you may feel frustrated in getting up and going with text17.

Before starting text17 for the first time, it is necessary to select the correct printer driver from the dozens of files for a wide range of dot matrix and daisy wheel printers. The one that applies to your printer must be copied to a file called driver_P87. Henceforeward, whenever text17 is loaded, this file is automatically accessed and the standards of a particular printer modify the program. {Once running you may access other driver files by name to change printers.)

Thus it is not necessary to read a printer_dat file each time a document is printed. Each printer driver includes all possible translate functions. Any character in the QL character set" that is present somewhere in the printer's ROM can be used without having to run install_bas and be restricted to ten translate options.

You must write your own boot. The manual has a sample boot, but you may want to expand an it, particularly to define ALTKEYs.

After loading, which takes a bit longer than Quill, press CTRL C. text17 is EXECed, not EXEC_Wed. There are no file handling features as in Quill. This is partly to concentrate on important features of word processing, and partly

because so many users now have toolkits or Taskmaster or whateever that handle files far better than Quill does and it doesn't make sense to reinvent the wheel, (text17 multi-tasks just fine under QRAM or Taskmaster.)

Some function keys are similar to those used in Quill. F2 shows the cursor status and the current Ruler. It toggles as in Quill. F3 enters the command mode and a main menu is always presented at the foot of the screen.

There are a few familiar commands: Goto, Print, Search, and Zap are ones you already know.

There is Files, but its purpose is very different. No load, save, margin, tabs, justify, footer, header, design, etc., but the functions are all there together with many others.

GOTO goes to the top or the bottom of the text, or to a page number, as well as first page, next page and top of current page, and also goes to a document line number - and boy does it get whereever it is going fast! (Using line numbers is tricky because you have to know where you are going in order to get there.)

PRINT is more complex than in Quill, but it's also more versatile. It will print a selected range of pages but also a selected range of lines. When printing text, the current cursor position is the default line numbef for the first line to be printed.

This command also defines headers and footers (which can be multi-lined), and the printout can be right justified even though the on-screen text is not.

Among other neat features is the option to print alternate pages. Why? You might want to print on both sides of a sheet of paper, but have the text sequential. Or perhaps page numbering needs to be at the outer edge of a page, and would require a different footer and/or header for even numbered pages than for odd numbered pages.

SEARCH has the features found both in Search and in Replace in Quill and it's a lot faster. Unlike Quill, which starts at the beginning of a file, text17 searches from the current cursor position. There's an option for Global replace-

3.7

merit, but because of its inherent dangers, it's is only offered after the first replacement. Search is case specific, meaning it ignores 'HELLO' if you ask it to search for 'Hello'. text17 remembers the prior search and/or replace string so that you may recall it and edit it to search for a modified string.

ZAP has both the document Zapping function in Quill, and the Quit, and goes through the same verification as does Quill.

FILES is different from Files in Quill. It handles load, save, merge, import or export. File names are not restricted to 8 characters as they are in Quill. They may be of any length and can include other characters not permitted in Quill including the underbar.

Saving and loading assume a _T87 extension and file names are always in capitals on the disk directory. Save is not as polite as in Quill. It does not ask permission to overwrite a file of the same name. It just does it.

Merging inserts a _T87 document at the cursor, as in Quill, but also adds any Rulers not already in the document to the table of Rulers.

There's the choice to Export in ASCII (like Printing a J is file from Quill -but making necessary conversions for Tabs) or text17 format with the extension _L87 (its primary purpose is to move text between documents.)

If a block of text has been highlit, only the block will be exported; otherwise, the whole document will be exported.

(As an aside, the rapid movement of the cursor in text17 makes block definition seem about ten million times faster than in Quill, so it gets to be very handy.)

Import offers text*7 or ASCII or. Quill format. The first two options insert the imported file at the cursor position. The Quill import loads a Quill jioc file as new text, and preserves all Quill highlights, converting them to the visual form used by text17. Tabs and end of paragraph markers are retained, if desired. All- import functions are very quick indeed.

CURSOR CONTROL in text*7 has capabilities much as in Quill, but does a lot more. It adds the ALT key for greater versatility. SHIFT and an Up or Down cursor key move 10 lines, not just a paragraph. Add ALT key and it moves 40 lines.

SHIFT with a Left or Right cursor key sends the cursor to the start of the next space, not after it, as in Quill, but you catch on fast.

ALT plus a Left or Right cursor key takes the cursor to the start or end of the current line.

Deleting is like Quill, except that the ALT key is used with the Left and Right cursor key to remove whole lines.

As with Quill, there is a separate command to delete blocks of text.

RULERs are not found in Quill, text11 includes Margin, Tab, Justify and some Design features in one command called Ruler, but there is a learning curve to get the hang of using rulers.

The Ruler command in the main menu is used to edit and select rulers. On power up there is one default ruler (Ruler 0). Multiple rulers can be created and a selected ruler can be inserted at any point in a document. Any ruler can be copied then edited into a new ruler up to 11.5" wide.

The special feature of the Ruler Command is that its parameters are all in absolute units of length (tenths of an inch or. millimetres) rather than columns, as in Quill. This means that text can be formatted according to the printer pitch chosen for printing a specific character or characters .

On screen, several pitches can be mixed without effecting the layout. Thus, if the selected printer font is double-wide, text17 knows to display only half as many characters per line as with 10 pitch pica and 10% more characters will show on a line with proportional spacing. This is what is meant by WYSIWYG .

The ruler tells the truth. Occassional ly, a combination of screen fonts may force a line outside the limits of the right margin. Do not dismay, text17 knows what it is doing and what gets sent to the printer is what you want sent.

3.8

Rulers are saved with a document and it's vise to have a special file with a number of favorite rulers to load when starting a new document.

Each ruler carries a range of information:

Justification: right or left. (Actually, the choice is to justify or ignore, on the grounds that justify means right justification.) There's no Center Justification; use Center Tab instead.

Line spacing: the space between lines can be adjusted to fractions of an inch. The default is 1/6 of an inch (12/72 or 30/180, depending on the printer) but can be modified to your heart's content. Thus it is possible to have double spaced text mixed with single spaced text, depending on the selected ruler.

Margins: left, right and indent. Indent defaults to left margin, but may be designated as to the right where the first left tab is located if it is automated from a special indent feature in the Mode command. The Indent mark itself is exclusively for setting Indent to the left of the left margin to create a hanging paragraph.

Selection: only one ruler at a time is active under the cursor. A ruler is selected as an option from the Ruler command. (The current ruler is shown when the F2 key is toggled on.) The selected ruler is inserted at the cursor when SHIFT F5 is pressed.

Tab stops: left, right, center and decimal.

Enough already!

The next article in this series will explore block handling and the numerous features in" text11 that make screen presentation truely revolutionary.

This article has been prepared on text1 1 mostly in 15 pitch type. Note the use of micro-kerning.

You may order text**, version 3.01, from Software 87, 33 Savernake Rd., London, NW3 2JU United Kingdom for £60. It includes Qtyp as an integrated spelling checker with English, French and German dictionaries. It is also available in the USA for $94.95 from EMSoft, P.O. Box 8763, Boston, MA 02114-8763 (617) 889-0830.

EMS o f t

Software for the QL that works hard

Now has in-stock the very best true WYSIWYG QL word-processor: text87 V3.00 with spell check and several new features. (includes 1 hr USA help 1 ine) .

Tax-time means TAX-l-QL/89

RECIPE

INVENTORY TRUST_FUND QLAND_LORD MAILBAG DBTutor DBProgs CDIR/BOOTS

_dbf _dbf _dbf _dbf _dbf _dbf _dbf SBas

$94.95

$24. 95 $14. 95

$9. 95 $24.95 $24.95 $24.95 $24. 95 $19. 95

$9. 95

On 5.25" DD or QD disks. On 3.5" or mi crocartr i dge add $2.00.

FREE CATALOGUE

EMSof t

P.O. Box 8763 Boston MA 02114 (617)889-0830

fig " ~

Two tough things to find' for your Time* ot Sinclair ZX/TS computer

SOLID INFORMATION & GOOD CONNECTORS

YOU KNOW WHERE TO GET THE BEST INFO FOR YOUR ZX/TS --SYNTAX, SQ, & THE FOYT BOOK CHECK IT OUT— ASK ANYONE- THEN GET ' EM ALL FOR

JUST $19.95 plus $10 s&H

BUS CONNECTOR & EXTENDER & HOUSING

LIKE A PRINTER CONNECTOR

Keyed Connector, Extender PC Board PLUS Molded Black Plastic Housing Fits: ZX80 & 81 TS1000 & 1500 PC8300

ZX/TS SUBSET OF SPECTRUM & 2068

Pkg of 3, ONLY $13.95 plus $2 S&H SAVE Buy 2, get a FREE one

9 for $26.95 + $6 S&H SAVE

EMS, Box 8763, Boston, MA 02114-8763 617-089-0830 VISA & MC Add 4% "

39

3

TS-2068 Programming In the Abstract

THE STACK: The manipulation of the STACK comes under the heading of "where only fools dare tread". But aren't we brave? Look at it this way, "you cannot hurt anything by trying, so why not?". AND, we might be enlightened. Key in the following little program and SAVE it. Then we'll traipsie through the stack a bit.

10 FOR H=25088 TO 24833 STEP -1

30 PRINT n;"="; PEEK n;: NEXT n

60 PRINT "RETURN Line="; PEEK 25083+256*PEEK 25084

•"Statement t="; PEEK 25085

70 STOP: GO SUB 90

90 STOP

OK. First off, we will look at what we can and cannot do with the Stack in BASIC. Timex intended the stack to be "hidden from the user". But a small tydbyte of information is given in the user manual, page 255. Take a minute to look at the sketch in figure C-l. The little program given above PEEKS this area. The Stack is the TS-2068' s exclusive "library" of "pending things to do". If <G0 SUB> is used in a program line, the LINE NUMBER is factored into a 16 bit word and that word is stored on the stack at address 25083 and 25084. Then the "next statement number" in the line after the GO SUB is stored in address 25085.

In our little program, the GO SUB is in line 170, statement 2. So, if allowed to execute, the number 70 would be stored in address 25083. Zero would be stored in 25084, and 3 would be put in adr 25085. Check this out by RUNNING the program. As the program runs the contents of the Stack addresses will be printed to screen. Somewhere at around address 25000, a train of zeroes will print. These Zeroes tell us the "FREE MEMORY" spaces of the stack. As more and more "library" items are placed on the stack there will be few Zeroes in the train. These "TS-2068 Library items" are put on the stack to be used, and once used they are erased. All of this is done by the internal management utilities in the TS^-2068 ROM. BUT, we can have a little influence on things.

When the program runs the first time, a report will be given. This "RETURN LINE I and Statement Nbr." will be inaccurate. This is because there is no RETURN placed on the stack at address 25083, 25084, and 25085. So, ignore the report on the first run. The program will STOP at line 170. When it does, type CONT ENTER. Then

another STOP will occur at line 90. This time DONT do anything for now. Now lets look at what we did.

We have introduced a "piece of JUNK" on the stack, because we did not use <RETURN> after the <GO SUB>. But in this case we do it intentionally in order to see the RETURN in the Stack. After the STOP at line 190, type GO TO 10 ENTER. Write down the numbers given for address 25083, 25084, and 25085, during the first screen full of numbers. Then let the numbers scroll to the end. At the end report the line 170 will be reported, with statement number 3. So, we have captured the <GO SUB that is on the stack>. AND the STOP again occurs at line 170.

Now lets work a bit with 16 bit numbers. First add LINE I 2000 to the program, add: 2000 STOP. What is the 16 bit number for 2000? ans: 2000/256=7.8125. Drop the decimal and 7 is the msb (most significant byte). The lsb (less significant byte) is gotten by: 2000-7*256=208. So, the 16 bit number of 2000 is "208, 7\ Row we will CHANGE the line number for the RETURN that is on the stack. POKE 25083, 208: POKE 25084, 7:POKE 25085,0. After these POKES, Type <RETURN ENTER>. Note the STOP at line 12000. Now we have learned how to change a <RETURN> on the stack to a different line number in a basic program, but WHY would we ever want to do that?*

Well I'll give you a small example and you will think of others. Suppose that after a menu we want to present on screen the data contained in A$. But if A$ has no data, we want the program to RETURN to a different program line than contains the GO SUB. I'll construct the routine:

500 (MENU item 4 selected) 510 IF Z=4 THEN GO SUB 900

900 IF LEN A$<1 THEN POKE 25083,208: POKE 25084,7: RETURN

910 PRINT A$: RETURN

2000 REM Routine to use if A$ has no data.

RULES: You must have a GO SUB on the stack before POKING the addresses 25083, 25084, 25085. Otherwise you CRASH. So, the POKE must be done AFTER the GO SUB. Dont poke other Stack Addresses, or you'll get a crash. Oh well, what the heck, and why not?

JUNKY STACK: If you want to find out how fast the stack can be completely corrupted, Remove the Stop at line 70 and change line 190 to read: 90 GO TO 10. Then RUN. One of the pit-falls of using <GO SUB> is that BASIC programs can be broken into. Each time a GO SUB routine is broken into three addresses in the Stack are corrupted.

n „.„ USING BASIC STRING / ARRAYS IN MACHINE CODE PROGRAMS

Dear Bill, , ' . _

by Charles Bothner

I looked over your letter concerning the use of BASIC variables and arrays inside machine code programs.

You said that you needed to locate a specific variable in the BASIC VARS area of memory in order to use the data in a machine code program. The following procedure will allow the transfer of the location and size of a simple variable to a BASIC program. If you want to locate a variable which has not been fixed in size by a DIM statement, insert the following lines at appropriate line numbers in your program:

1000 POKE 23728, CODE'^*'

1010 LET X=USR 23296: REM This is the start of printer buffer 1020 LET SIZE=PEEK ( X+l ) +256*PEEK (X+2) 1030 LET START=X+3

Line 1000 puts the letter code for the variable into a convenient storage location, in this case into an unused slot in the normal system variables table. Line 1010 accesses the machine code to locate the variable address in memory. In this case I have put the 28 byte routine into the printer buffer, but any convenient location could be used since the code is completely relocatable. On return from the MC routine, the variable X contains the address of the identifier for the W$ variable. Line 1020 reads out the current length of the W$ variable and line 1030 gets the starting address of the actual characters in the variable. If desired, these values may be POKEd into a convenient memory loca- tion for subsequent access by whatever MC routine you intend to use to manipulate the data. Here is the machine code which lo- cates the starting address of the W$ (or any other) simple variable:

ADDRESS OPCODE INSTRUCTION COMMENTS

5B00 3AB05C LD A, (5CB0) Get character code

5B03 CBAF RES 5, A Insure upper case char.

5B05 2A4B5C LD HL, ( 5C4B) Get VARS area address

5B08 LOOP: BE CP A, (HL) Test variable identity

5B09 280E JR Z, FOUND Jump if right variable

5B0B FE80 CP A, 80 Is this end of VARS ?

5B0D 2002 JR NZ, CONT Continue if not end

5B0F CF RST 08 Error return otherwise

5B10 01 VARIABLE NOT FOUND message ident.

5B11 CONT: 23 INC HL Point to size of field

5B12 5E LD E, (HL) Get size of variable

5B13 23 INC HL field size into DE

5B14 56 LD D, (HL)

5gl5 23 INC HL Point to next location

5gl6 19 ADD HL, DE Point to next variable

5B17 18EF JR, LOOP Test this variable

5B19 FOUND: E5 PUSH HL Get the address into BC

5B1A CI POP BC

5B1B C9 RET Done

This routine scans the entire VARS area of memory until the starting address of the specific variable storage area is located or until the end of the VARS area is reached, at which time there will be an error type return. This will happen if the variable W$ (or any other simple string variable which is being searched for) has not been previously assigned. If the variable has been located, then the address is returned in the BC register pair. Line 1010 in the BASIC code above will assign this value to the variable X on the return from the machine code, r li

If a search for a fixed dimension string array is desired, it will be necessary to insert the following assembly code bytes be- tween the addresses 5B04 and 5B05 in the routine listed above:

It will be necessary to modify the lines of BASIC code to deter- mine the actual size of the stored character field in the array due to the extra data bytes stored in the data field for this type of variable (see page 258 of the TIMEX 2068 users manual for the details). Since the array has been previously dimensioned in the program [e.g. DIM W$(40,256)], we can determine the correct offset by taking the number of array dimensions (2 in this case) and doubling it, then adding 1 for the number of dimensions byte in the variable's data field and subtracting the result from the data obtained in line 1020 above.

For the example of W$(40, 256) the changes to the BASIC lines is as follows:

1020 LET SIZE= PEEK(X+1 ) +256* PEEK(X+2)-( 1+2* PEEK(X+3)) 1030 LET START=X+3+(l+2* PEEK(X+3))

Obviously the terms can be combined to shorten the lines but I left all the terms separate to clarify (I hope) the procedure to locate the actual starting address for the character data stored in the array along with the actual length. The size of the actual character data field could be determined in this case by simply multiplying the terms in the DIM statement. It is better to determine the size on the fly for the cases where the array dimensions may be determined by another variable instead of a fixed value [e.g. DIM< 256, Z ) ] .

I hope that this brief explanation will give you an idea of how to operate on data stored in the VARS area by either BASIC or machine code routines. To summarize, the transfer of data from the BASIC program to^the machine code requires the POKEing of the data into memory locations where it can be accessed by the machine code. Transferring of a single character or numeric (integer) value from the machine code to the BASIC program may be accomplished by loading the data into the BC register pair prior to the return from the machine code.

If this information is not what you really wanted or if addi- tional* clarification is needed, please let me know.

C680

ADD A, 80H

Converts to proper type of dimensioned array identifier

best regards,

Chuck Bothner

42

At Feng txaaMuuin. 04 the. Chicago TSUG (CATSUG) and an expert pnx>gnarrmiA. oj the. Sinctaln. QL. At takeA time, owt 4*x>m hU> uniting 4ot "Nlghtime, NeM6" , the. CATSUG NetaUtetteA., to give, <jU intoAmubion, on thruee. interesting ^aojzcti.

QDOS RCH Code

By Al Feng

Most Sinclair QL users in North America are already aware that the Operating System (OS) in their computer is called QDOS (i.e., QL Disk Operating System) . This may seem as a bit of a misnomer since the QL comes with microdrives for storage; and, all disk drive interfaces are third party! In fact, QDOS allows (i.e., "forces") you to select the device being addressed by the user (e.g., 'mdv.l_' , 'flpl_', 'raml_', 'winl_' ). Clearly, either Sinclair Research Ltd. or Tony Tebby realized that Uncle Olive's microdrives may NOT be the ultimate storage device.

For those who are not overly familiar with the inner workings of their QLs, the difference between "British" and "North American" QLs involves more than BT (British Telephone) connectors vs. "D" connectors. In addition to evolution in the PCB (Printed Circuit Board) layout (i.e., the hardware), various versions of the QDOS were released (i.e., the firmware).

Not knowing which QDOS version you are running is generally not a handicap or inconvience. For practical purposes, a QL with an 'AH' ROM will run the QUILL word processor as well as one with an 'MG' ROM. The transparent difference is predominantly in the ERROR handling (i.e., the user usually doesn't see it).

To find out what version QDOS your QL is running (all QLs made by SAMSUNG ELECTRONICS COMPANY Ltd. in Korea have 'JSU' ROMs) type:

PRINT VERS

<ENTER>

There are only a couple of reasons to know what QDOS ROM code your QL has. The primary one is to satisfy your curiousity. The second is if you are running some programs (e.g., compilers which depend on EXTENSIONS to QDOS). Often times, a "patch" is included to compensate for incompatibilities in the earlier code, so the versions still doesn't matter!

Okay, what do those designations mean? Does the 'AH* designation mean that they think they finally got it to a satisfactory point ["AHhhh"]? Does the 'MG' designation refer to the Morris Garage vehicles? Who can say for sure except the person/ people who chose the designations! After all, the "GW" in 'GW-BASIC' stands for "GEE WHIZ" (No kidding!).

A half dozen years ago, I asked my brother (an IBM PC user) why PC-DOS (the IBM "specific" version of MS-DOS) had to be LOADed via software rather than being a permanent part of the system (that is, as firmware on a ROM or EFROM) . In fact, I asked a lot of "almost stupid" questions back then. To make a long story short, he

replied that the Disk Operating System (DOS) was loaded as software so they (Microsoft, in this case) could implement any subsequent changes to the code more easily.

At the time, the idea of changing the code didn't makes sense. After all, why re-write code if it was written correctly the first time! Okay, my computer experience was limited at the time, and I was a bit naive about programming; but, I know someone who thinks that the ABACUS Spread Sheet programmers should have been able to write the program in about 10K (yes, 'ten')!

Among the "almost stupid" questions I asked was with regard to the differences (if any) between DOS 2.0 and DOS 2.1. But, I digress. Very simply, a change in the integer represents a "major" change to the code, while "minor" changes are represented by variances in the decimal or hundredths place. In theory, higher numbers indicate improved code (as with ERROR trapping). Latter versions generally have "improved" code (i.e., more ERROR trapping).

If you will make the allowance for a comparison between the exceedingly crude DOS 1.0 for the INTEL 8088/8086 chip series [e.g., CLS (CLear Screen) was not included] and the very earliest QLs which had a "dongle" (as the Brits apparently refer to it) on the backside of the QL then from my reckoning and recollection there are rough analogues which one can make between MS-DOS (Microsoft DOS) and QDOS.

Sinclair Research Ltd. (or, Tony Tebby) chose to use an alphabetic system for labelling. Just as there were various MS-DOS versions, so there are various QDOS versions. For example, we may compare:

[ QDOS ]— [ MS-DOS / PC-DOS ]

AH 2.1 JS 3.30 MGUK 4.00

QDOS is resident in the QL when the computer is powered on because the code is contained on two socketed ROM chips. Several years ago, Tom Bent designed a small PCB which utilized a 27C512 EFROM which could substitute for the two ROM chips (see QUANTUM LEVELS 1:6 for schematic). A big plus to Tom Bent's design is that it lets your QL run cooler.

The 'J' series is probably the most predominant. The 'JM' & ' JS' are the two most prevalent versions still being sold in the UK. The 'JSU' ROM is the same as the 'JS' ROM with the exception of the size of the video scan when in TV mode. The 'JSU' ROM accomodates the lower resolution of NTSC televisions than the British PAL televisions generate (512x212 vs. 512x256).

Since the TV-mode on all the "British" RCMs generate a screen having the same dimension as the monitor display, the apparent difference is that initializing with 'F2' should allow generation of eight colors rather than four [unfortunately, I forgot to verify this when I

43

had temporary access to an RGB monitor].

Programs can "sense" which mode the computer is in by PEEKing address 163890. In monitor-mode, the value returned will be '0*. On all "British" ROMs in TV-mode the value returned should be '1'. On the 'JSU' ROM and the "rogue" 'MGSJ' ROM, PEEKing this address when in TV-mode should return a value/of '2'.

Just as there/ are improvements to Microsoft's DOS version 4.nn/, so too are there improvements to the 'M* series ROM. Unfortunately, the price of improvement may be incompatibility with code which is LBYTEd/LRESPRed. The conflict / compatibility varies with the code. For example, early (all?) versions of 4MATTER will not run on a QL having an 'MGUK' ROM. Code which is "automatically" initialized on a 'J' series ROM (such as SPEEDSCREEN RAM code) must be further beckoned with the 'M' series ROM code.

It has been reported that Digital Precision's IBM emulator would not run on a QL having *MG* code. Details are not complete; and, I suspect he may have the 'MGSJ* code as I have personally seen THE SOLUTION running on an 'MGUK' ROM. (Ed note.: My MGUK ROM QL {inMalled by Tom Bent) nun* both. Solution* and PC Conquenon) In theory, the 'MGSJ' code incorporates the NTSC television screen scan with. the rest of the 'MG' code. This may or may not be a consideration.

Those of you familiar with MS-DOS will find a comparison between the 'MGUK' ROM and DOS 4.00 appropriate. It seems that enough nuisances were unintentionally written into the 'MO' code that it probably makes the more familiar 'J' series the code of choice (my opinion).

Just as "other" DOS exists for IBM compatible computers (e.g., WENDLIN-DOS) , there are "proven" alternatives to QDOS. The first of these is ' ARGOS' code which is used by CST (defunct Cambridge Systems Technology) on their THOR computers [DANSOFT is marketing the THOR, but reports suggest that they are NOT shipping]. The second is 'MINERVA* by QVIER.

'ARGOS' is apparently QDOS which has been tweaked to support the THOR's hardware. It may NOT be hardware compatible with the QL. Unlike 'ARGOS', .''MINERVA' code was apparently reverse-engineered to accomplish the same functions as the QDOS code. The resulting code is supposed to be superior in speed, particularly in the screen handling routines. As of mid-March, 'MINERVA* is only available directly from QVIEW (in England).

If you're thinking of replacing your QDOS ROM code, I recomnend that you consider waiting for 'MINERVA' code to become available. If you can't wait, then opt for the 'JS' code; after all, *JSU' code is available on your "spare" QL when don't have a monitor.

HAPPY TRAILS, AND COMPUTING, TO YOU! Al Feng.

Ed Note*: At touched upon the. main dl44enence. In design o4 QDOS and MS-DOS, which I*: QDOS li

permanent in ROM white, each. MS-DOS utility nut be. "loaded ptom dl*k to HAM" to operate.. Thene oaa. advantage* to both, method*. At mentioned the. advantage o4 MS-DOS being that It eon be changed easily by AAcaxdlng another. DOS ven*lon on. floppy dl*k. The. advantage o4 QDOS being In ROM li that lt6 junctions one "already In memony" and thu* I* iaMen (given the. *ame clock *peed and ejjiciencj/ o4 operation) . f have o4ten wondened why *ome 4imnt de*lgnen hain't made u*e o4 "EEPROM" to *tone a DOS. ELECT I C ALLY ERASABLE PROM* have the ability to be written to by the compute*, (about 3 million time* 4on each, memoxjy addne**) . That *hould be *u44lcient 4a* a* many DOS ven*ion Ae.-wnlte* a* needed, wouldn't you think.?

Ed Gwi EWevtU£4, fO Box Vtt,

Englewood, CA 90305 was to send in an advertisement of his wares. I'm sure that Ed will kick himself in the britches when he realizes that he missed the boat. Instead of using one of his old ads, I'll just make some comments. Ed Grey carries a whole line of TS-2068 support items and runs a West Coast USA BBS called "The. Gtey Molten". His Telephone number for ordering software and hardware support items is 213-759-7406. The BBS telephone is: (213-971-6260). This BBS is one of the most informative and the most used by Sinclair Timex users. If you want to talk to an enthusiastic Sinclair Timex person, call Ed. If you want to find out what goes on in Sinclair Timex Computing, ^_ Call the BBS (with your computer). r

kk

This DPDRTE Issue:

find Others Ahead:

The problem with this issue was the DECISIONS about what to include! The articles were selected from about two issues worth of excellent material given freely by your fellow Sinclair Timex users. Your thanks should go to the authors, not to yours truly.

There several other excellent articles about the QL and TS-2068 that are awaiting space in the magazine. They aren't "culls", but are of a length that just couldn't be included in this issue.

FRANK DAVIS, your new publisher will need this same outstanding support from the writers in order to continue the depth of coverage that has been a tradition with Update Magazine. I feel sure that all of our outstanding writers will continue to support the users through the pages of Update.

You have ONE more\J issue of your subscription coming (July). Frank Davis, the new publisher, needs to build his 1991 subscriber list and needs to have as many early subscribers as possible for his planning. Plea*e *end youn $18.00 *ub*cnljptlon nenewal to:

DftVIS, PO BOX 1095, FTO, IH 46970.

^1

A PRIM FOR USING A QL-MUTILATOR

by Al Feng

Okay. Just kidding. We'll discuss MS-DOS

with the QL instead. But, after hearing "all" those bad things about MS-DOS (Microsoft's Disk Operating System for IBM compatible computers) one can only presume that running a SINCLAIR QL in emulation mode has to be a mutilation of the QDOS operating system. One would like to think that it wouldn't happen; but, the price of software emulation code is still less than an MS-DOS compatible computer.

The following isn't going to be a discourse about whether you should be using an emulator on your QL. Only you know whether there is a need "at home" for MS-DOS compatibility; and, if an emulator is going to be a satisfactory route.

The following is going to tell you how to overcome some of the conceptual inconveniences of MS-DOS whether on a QL, or on an MS-DOS specific computer .

The first thing you have to know is that drives are described alphabetically rather than numerically. Thus, a drive may be labelled 'A' through 'Z'. The Operating System (OS) knows you are describing a drive because a colon (:) is used as a delimiter immediately after the letter. The reason for this is because a file may be named 'A. BAT', 'A. COM' or 'A. EXE' and be otherwise executed if you simply INPUT 'A' followed by the '<ENTER>' key. QDOS uses an underscore ('_' ) as the general delimiter. Thus:

A: == flpl_ B: == flp2_ The major difference is that QDOS allows/forces you to describe the physical /virtual device being addressed. On the other hand, MS-DOS assigns labels on a "logical" basis unless otherwise specified (some rules do apply) .

On an MS-DOS system, if you have two floppy drives, they are 'A:' and 'B:'. If you have a hard drive, it is 'C:'. If you have one floppy drive and a hard drive, the latter is still 'C: ' (I told you, some rules apply). If you have two floppies, no hard drive, and have set up a ram drive, then the ram drive becomes 'C:'. If you have two floppies, a hard drive, and a ram drive, then the ram drive becomes 'D: ' .

Ram drives are static and are configured during BOOT-up via the CONFIG.SYS.

Even if you have a limited amount of overall ram in your system, but more than 384K, then you should seriously consider setting up a small ram disk on your mutiliated QL, laptop, or early PC. A 48K drive is sufficient for DOS 3.nn and 72K for DOS 4.nn.

An example of a CONFIG.SYS for DOS 3.nn where the size of the ramdrive is indicated by the number following the "device=" statement (in this case '48K'):

buffers=15 files=30 device=ansi .sys device=vdisk.sys 48

Unfortunately, the boys-and-girls at Microsoft are sloppy coders (Captain Midnight would not be happy), and the same files in DOS 4.nn tend to be larger than in DOS 3.nn. For DOS 4.nn your CONFIG.SYS file will be similar to the following (note the name change from VDISK to RAMDRIVE) :

buf fers=15 files=30

device= ramdrive. sys 72

Okay, 48K is an awfully small ram disk. What are we going to put in it (and, why?)? There are two files which should be transferred to a ramdrive regardless of the size and speed of the system being used (this includes AT classs machines). The first is C0MMAND.COM and the other is F0RMAT.COM.

As these files were designed, they are what are referred to as external DOS corrmands. An external command is not retained in the systems memory. This is because DOS was originally designed to run on a machine with as little as 16K of memory.

^/o^^^or^t1^^^ nnvmnd^¥mm^

considered task oriented. After a program is LOADed, DOS dumps the C0MMAND.COM from memory, and brings it back when the program is quit. This is why you may see a message which instructs you to "replace disk with CCMMAND.COM in drive A:". This can be circumvented by using the statement :

set comspec=c: command. com

where 'c:' is the location where the CCMMAND.COM can be found (in this case a ramdrive . . . adjust accordingly). This can be indicated in a line in the AUTOEXEC.BAT.

While COMMAND.COM is always necessary, FORMAT. COM is not. It is, however infrequent a task, especially inconvenient (i.e., "slow") to have F0RMAT.COM load from a disk rather being resident. By transferring an appropriate F0RMAT.COM to a ramdrive, you have turned it into an almost-internal command

(using F0RMAT.COM will be discussed later). An example of a true internal DOS command is COPY.

An example of your AUTOEXEC.BAT should be similar to one of the two following examples:

@ECHO OFF

PATH A:

PROMPT $P$G

copy format.com c:

copy command.com c:

set comspec=c : command . com

copy dr.com c:

copy free.com c:

c:

45'

OR,

@ECHO OFF

PATH A:

PROMPT $P$G

copy fonrat.com c:

copy comnand.com c:

set comspec=c: comnand.com

copy dr.com c:

c:

If you need M0DE.COM, then include it as a line of your AUTOEXEC file.

FREE.COM is from the first PC MAGAZINE Utility disk. DR.COM was a freebie from PC/COMPUTING magazine.

FREE.COM tell you how much "free" space is left on a disk. This sounds, well, stupid. But, if you have blank, FORMATted disks without files, you cannot determine the size with the DIR command. In these instances, FREE.COM will let you determine if it is a 360K or 720K disk:

C:> FREE B:

DR.COM (actually DIRMAGIC.COM) is a convenient front end program which was distributed "free" if you subscribed to PC/COMPUTING. It allows you to COPY/DELETE/RENAME/VIEW/ etc. from a dynamic menu.

ETREE.COM and DR.COM are freeware (vs. shareware) programs which are supposed to be avail ble on various bulletin boards. You can probably get a copy of these two files from Bill if you send him a few of dollars (?) to cover media/packaging/postage and tell him which disk format (720K or 360K) you need.

The reason the example of the AUTOEXEC.BAT above ends with a 'C: ' statement is that a lot of activity can be initiated from the 'C: ' drive:

C:> COPY A:*.* B: is the same as: WCOFY flpl_ to flp2_ Compare: C:> COPY A:DR.COM B:

A:> COPY DR.COM B:

B:> COPY A:DR.COM

to: COPY flpl_J3R_CCM TO flp2_DR_COM

Also compare:

C:> COPY A:DR.COM B: DIRMAGIC.COM

to: COPY flpl_DR_COM TO f lp2_DIRMAGIC_0CM

The syntax of a DOS statement is clearly more compact since the current "path" can be implicit in the statement. Working from a "C:>" prompt is similar enough to working with a comrand cursor in "WINDOWfO" that you can consider performing general file management from this drive.

Similarly, if you want to delete a file you would use the DEL statement:

C:> DEL A:DR.COM A:> DEL DR.COM B:> DEL A:DR.COM to: DELETE flpl_DR_COM

If you are going to LOAD an application (program), then INPUT the drive designation followed by ' <ENTER> ' ; and, then the file name. For example:

C:> A: <ENTER>

A:> QUILL

The syntax for F0RMAT.COM with an emulator is similar to the FREE.COM utility:

C:> FORMAT B:

and, B:> C: FORMAT

OR: C:> FORMAT A:

and, A:> C:FORMAT

With the emulating QL the density is determined by the emulating code. There are conditions which may be needed if 'you wish to FORMAT to a density other than the drive's normal specification.

UH-oh. Was mention made of how to construct your AUTOEXEC.BAT and CONFIG.SYS files? Yikes. The MS- [Masochistic & Sadistic] method is for you to use EDLIN! If you can get a copy of DR.DOS's (Digital Research's DOS) EDITOR.EXE then you will have an easy-to-use line editor. If not then use ANY word processor:

Set the left margin to zero ('0');

the upper and lower margins to zero; and,

ensure that there is no header or footer.

Next, transcribe the appropriate example(s) as individual lines of text. SAVE each individually as an appropriately named ASCII file. Transfer the file to your DOS disk.

That's about all you really need know to be functional on the precarious, MS-DOS iceberg.

HAPPY TRAILS, AND COMPUTING, TO YOU. Al Feng

TOE PU LIBRARIAN FOR NORffl AMERICA?

Will the active QUANTA LIBRARIAN please get in touch with Update Magazine. Why? Well, I'd like to help publicise this fantastic group of programs and utilities. I have had the first 15 Quanta Library Disks for about a year. There hasn't been much published about the utility of this good library or how the users can get the disks. Perhaps there are enough interested subscribers to form a Quanta Group in North America? Update will help.

46

THE NEWS HERALD, Panama City, Fla.,

THE CANADIAN REPORT

Kanadian fonetik langwaje

TORONTO, Canada (KNT) Like a solitary savior striving to rescue the illiterate from the flummadiddle and kerfuffle of the English language, Ted Culp envisions "that gloreus day all ling- gwistic owtrajes wil end!"

At that inevitable moment when English collapses under the weight of its confusing, irrational structure, Culp says he'll be ready with the Canadian "langwaje," a sane replacement for the "gar- bage" that annoys people and produces illiteracy.

"As this inferior langwaje iz displased everywhere ... illiterasi shud disapeer completely," wrote Culp, the meticulous publisher of the Times Ov Toronto, and a teacher and ardent proponent of simpli- fying a language that drives him nuts.

In a multiethnic country where combat over language could qualify as a national pastime, many view a phonetic type spelling of English as laughable or an uncomfortable reminder that some real- ly spell like this.

Others view Cuip's changes as an assault on the Queen's English. After all, many loyal Canadians still sing God Save the Queen.

But this is no joke to Culp. He is dead serious rather, "ded serius" and he speaks passionately about the foibles of language.

He has reduced the alphabet to 25 letters eliminating "q— and says other changes will be necessary to reform the world's second most popular language. But changes can't come quickly, he warns, or they won't be accepted.

Changing "city" to "siti" eliminating the soft "c" and replacing it with "s" will be accepted, he said, but replacing the hard "c" with a "k" will be tough because that would produce 0 Kanada.

Culp resists the temptation to teach the Canadian "langwaje" to his high school students, but does not hesitate to point out the pro- blems with English. '

"It wil spred arownd the wurld," Culp says. "It wil triumf."

Ed note: Now thars a Cannuck thet nos wot hez talken bout! Ether thet er ole George hez ben let en him reed hiz kopi uv Update Magazine. He bet thets whut hapend, nunthles hez on mi band- wagun. We gota dew sumthin fore th kids an thar rap talk taks ovr fer sur. -BJ_

lie News

IS

BND UE 'RE SPREADING IT!

RMG if adding so Many NEW And EXCITING ITEMS to our lint that our t tortro.OM art BUtGINff? Wt havt adtftd iort that 25 "NEW PAGES and changtd ovtr 20 othtrj in our BIG <10* M9t catalog. Wt wan Fit ■akt surt that you do 'riot Mi-ss out on anuthin9 wt May bt ablt to htlp

you with in your computing.'* If you will ttnd uf *3.ff0 you will Ctctivt our , catalog /i^th a *3 off coupon, for your ftTft ordtr*. AND* ttnd along 12 buslntis sizt SASEf and you wil) rtctivt 12 Monthly updattt and spt.cial Mailings. $3 discount coupon in first Mailing!

RMG ENTERPRISES

l HI* 1/2 71 H STREET OREGON CITY i OREGON ?70U3 303/453-7M8U. § NOONMO WE-SAT

IE

PLATYPUS

SoT tucire QL to PC file transfers

SPREADSHEET [text i valid formulas / some functions do not transfer to LOTUS (e.g., aslct & askn)]: QL- ABACUS to:

PC-ABACUS LOTUS 1-2-3

1.60 / screen 1.80 / screen

QL-QUILL to:

PC-ASCII. TXT

PC-qUILL

WordPerfect

base 2.50 / 25 lln base *■ 3-00 / page base * 5.00 / page

The "base" fee is:

$5.00 for the 1st file, $1.00 for the 2nd rile, $3.00 for the 3rd rile, $2.00 Tor the Uth file, $1.00 for each subsequent file.

A "screen" is defined as: 20 rows x 8 cols.

A half-screen is: 10 rows x 8 cols. A quarter-screen is: 5 rows x 8 cols.

A "page" is defined as: 30 lines maximum x 80 columns (or, about 300 words). Partial pages will be rated at $0.10 per line in QUILL and $0.15 In WordPerfect. A quarter-screen minimum Increment for spreadsheets.

PLEASE NOTE: The new file(s) will be supplied on a 3-5" 720K disk.

If you need a 5-25" 36OK disk, then please supply a labelled, pre-formatted 36OK disk along with any original media. If you send microcartrldges , please ensure that they are of high quality AND that you retain backup copies during the Interim.

Of course, any original media (disks/microcarts) will be returned.

If you have other needs, please enquire: AL FENO

15 Wake Robin Court

Woodridge, IL 60517 h 7/

(708) 971-0495 ^ ' '

THE QL ISSUE DISK PROGRAM

And how goes it, QL?

The issue disk program is designed to give publicity to the programmers who are working for us and to put the Author into direct contact with the users. Normally, an issue disk title is offered in a couple of issues of the magazine and then rotated out. This introduces the programmer to the users and establishes rapport between them. The programs in the issue disk belong to the authors. Update' s only involvement is in their early distribution "at introductory prices".

NOTICE that Bill Cable (Wood and Wind Computing) now has the capability of providing his software on both 5 1/4" and 3 1/2" disks (and microdrive cart). See his ad else- where in this issue. Also NOTICE the ad by AL FENG (Platypus Software). Both of these authors are producing software for the QL and IBM systems.

Other North American software authors will be introduced to the users as they come aboard. The issue disk program's purpose is to encourage the creation of NORTH AMERICAN SOURCES in support of Sinclair Computing. The program is enjoying moderate success. Two years ago Peter Hale (EMSOFT) was about the only recognized source of American Software for the QL. Now he is joined by others. (See EMSOFT Ad in this issue) .

While the Brits are jolly good fellows, and they have given us (sold us) many good softwares, Update Magazine takes the position that QL users in North America should not have to swim the pond to get useful software. Our own programmers are available for call to service the users, and are eager to do so.

Didja know that PSION, the producer (emeritus) of our Four great QL Softwares, is now an American Corporation? AND, Bill Cable has a working relationship with PSION to do follow-on improvement programming with the PSION suite? AND, that EMSOFT (Peter Hale) is a Dealer for the new PSION Mobil computers? AND, I'm squirreling away saving to buy one of the new PSION Mobile computers? I dont know what thats got to do with Issue Disks, but it is all relative to the subject of Hobby computing. ENJOY!

/j SINCLAIR QL ISSUE DISKS (HDV)

The following new issue disks are offered for QL systems of all configurations. The programs are on either 80 track Diskette or MDV cartridge. If ordering for MDV send a formatted MDV cartridge. All prices are $22.00 (post paid) and are guaranteed to satisfy.

1. "HARMS COLLECTICH" DISK

Address and QSO file managers, plus a raft of disk utilities. All in Superbasic. Lots of tricks and hints for the programmers . Requires seme knowledge of Superbasic or a yen to learn.

2, "ENS PTer" DISK

QLUTer - QL UTilities to un-clutter your disks and tapes. COPY, DELETE, FORMAT, PRINT, VIEW functions. TURBO compiled for SPEED. Multi tasks and minimal key press. Also has— SteP SHOT - a directory column or condensed print out program.. ALSO includes "VEGEMAT** - a CLONE making program.

3. "FIG QLOSTer" DISK

QLUSTer - very sindliar to QLUTer (above) hut has extended functions using some SUPER TOOLKIT II features. You must have the Toolkit (TK2J5XT) for this program. SNAP SHOT and VEGEmat also included.

4. OBLE ARCHIVE DISK

ARCHIVE utilities and exensive doc file instruction manuals. Programs are: REFIELD, SCAN, SPLIT, JOIN, DIR, FILER, FREQ. For Beginner to Advanced user. These programs GREATLY EXTEND the capabilities of ARCHIVE and the manuals lead one to complete understanding of Archive and these extensions. U ondvUng 4ot MDV **m& into miv catfrUdge^- too mxny pwgtams to irvbo one, avtt.

5. "CABLE HELPER2" DISK

A very useful TOOLKIT program for managing both DISKS and MICRODRIVE. HELPER lets you copy from one medium to another, Read or Copy doc files to paper or screen, repeat format mdv carts or floppy. Uses screen windows to see two directories from and to, copies over existing files in disk mdv, copy selected files. Does not conflict with TK2.

48

Order to UPDATE Magazine, address on cover. Check or money order accepted.

M TS-2068 ISSUE DISK PROM

Available until July 31, 1990

While Frank Davis intends to continue the Issue Disk program it is likely to undergo change. The software offered in these disks belong to the authors and new agreements will be required. Some titles may not be available after July.

It has been difficult to pursuade and cajole NEW TS-2068 SOFTWARE from the few programmers who are still active. Most seem to be modifying older cassette software for disk drive operation. Thats kinda like modifying a row-boat to become a cruise ship.

But this issue brings an excellent new BUSINESS Software, by Jim Bretz. My own softwares, Daisy, Smart Text, and Dbasel, were thrown into the Issue disk program to fill a void of new DISK BASED Software. These titles will be withdrawn after July because all are constantly undergoing upgrades, manual addendums, and require personal support via letters and telephone.

My Fortune 800 Software house, "Gulf Micro" will continue to work on these and provide new full-length software as time goes on. I wish that other programmers would join in such efforts. Larry Kenny and John McMichael are doing some good NEW software. AND, the Toronto TSUG has some very active programmers who are producing LKDOS utilities. We need to entice others to join in. Software designed from the ground up for DISK DRIVE SYSTEMS is what we need. Old Cassette software with the SAVE line modified wont fit our needs, and if thats all the users have available they will move on to a computer system that has the software.

A lot of new programming is going into the area of EXTRA MEMORY usage. Larmour Crawford is predominant in this area and I'm trying to assist. Please read the article "The QL ISSUE DISK PROGRAM". Our TS-2068 issue disk program has not had as much success, but lets keep on trying . -BJ_

The Update TS-2068 Disk Library

The following Disk software and utilities are offered. The Individual disk listings are given by TYPE of DOS that the disks are prepared for.

The disks are available on 5-1/4" Double Side Double Density Diskettes, either 40 Track (360K) or 80 Track (720R) disk drives. If you have a S-jl/ 4 inch disk drive these disks will work in your system. Each disk has at least 300K of programs and utilities. The price is $22.00 per disk (postage paid) (add $1.00 to Canada). Checks or Money Order.

06 ; A Caiplete TS-2068 Software Syston,

Data base management. Word Processing, Automatic formatting, Disk Management. Over 20 integrated programs, including a Mail Merge annex. For LKDOS Only. (Oliger DOS users order Smart Text.) An Update Magazine Software.

rr TEXT : A versatile Data Base and Word

Processor software. Includes a Mail Merge annex to creata mailing lists for automatic repeat letters. Label printing, Disk Management. By Update Magazine. For Oliger DOS Only. v

1989 UPDATE COLLECTION: Filled with all of the

utility programs published during 1989. LKDOS or Oliger DOS

SMART TEXT 64: (Coming) tot Text software in

64 Column Screen for use with the Zebra OS-64 Cartridge. For OLIGER DOS ONLY. (Do not order until release is announced)

VIEW CALC UPGRADE : The old PSION View Calc

program Expanded and Converted for LKDOS with Spread Sheet Printer. By Bob Mitchell. For LKDOS Only.

1988 UPDATE OOLLECTION: The Mail Merge Software

plus the disk filled with utilities. For LKDOS or Oliger DOS

DBASE-1 : (Caning) A new RECORD software. The

data base will be very flexible with applications for Mall Lists, Inventories, or just about any purpose one needs. Sort by any