SEPT/OCT 86 BULK RATE VOL.2 NO.G * PAID 3.00
COLTON. OR 97017 PERMIT #51
TM.
MAGAZINE ICLAIR COMPUTERS
The World of
QL Special #1 — $289.95
>QL Computer-free ground shipping >WD Utility Prg. worth $16.95 >Subscription QL Report $15.00 >8 Free programs including:
— music program
— windows demo
— graphics pictures
— calculator prg,
— and more
“We know the QL ... We've been appreciating it longer.”
QL Special #2 — $299.95
> QL Computer > Free 1.C.E. ROM | CON-based front end operating system for QL > $8.00 shipping packages include the 4 Psion programs. These same 4 prgs. are also avail. on the IBM and retail for $695.00.
— Take 20% off the following if ordered at the same time: ICE, QSpell and/or Centronics I/F
: ee ae
” BMEMEVeRoae dis
QL Special #3 $299.95 i
> QL Computer > Your Choice of One Piece of Pyramide Software FREE: — Wanderer — Peintre — Othello — Nucleon OR — Vroom
QL Special #4 — $299.95
> QL Computer > Free UPS 2nd Day Air
Shipping
All Packages include the Psion Programs — Word Processor, Data Base, Spread Sheet
and Business Graphics.
Write or call for our FREE Catalog full of Software, Books, Hardware and Peripherals.
To place Orders 24 hours a day Call: 1-800-628-2828 ask for extension 950.
P.O. Box 5607 @ Glendale, Arizona 85312-5607 ¢ 1-602-978-2902 e Telex (via WU!): 6501267701
OFFICE: 2412 West Greenway e Suite B-10 # Phoenix, Arizona
SEPTEMBER/OCTOBER 86 VOL.2 NO.6
MAGAZINE
FOR ALL TIMEX AND SINCLAIR COMPUTERS
TIME DESIGNS MAGAZINE Co. 29722 Hult Rd.» Colton, Oregon 97017
(503) 824-2658
TIME DESIGNS MAGAZINE is published bi- monthly and is Copyright @ 1986 by the Time Designs Magazine Company, Colton, Oregon $7017. All rights reserved.
Editor: Tim Woods
Assistant Editor: Stephanie Woods
Edltorlal Assistant Production: D.L. Woods Photography:
{unless otherwise noted): Thomas Judd
Printing by, Toad’ Litho Printing and Comp.. Oregon City, Oregon 97045
SUBSCRIPTIONS: $15 a yaar for six issues (US funds only). No extra charge to Canadian
‘subscribers. All other countries please write for information on air mail rates.
CUSTOMER SERVICE: Customer satisfaction Is our goal. For subscription service problems Please write or call TIME DESIGNS.
CHANGE OF ADDRESS: Write or cali to prevent delay of sevice,
Reproduction of this magazine in whole or in part by any means without written permission is Prohibited by aw
*HOTICE: Contribuiors t0 TIME DESIGNS are independent Of the TIME DESIGNS MAGAZINE CO., and opinions ex- pressed in the contents of the magazine arenot necessarily those of the management or its advertisers. Time Designs Magazine Co. wiinotbe holdiiable for any damage or conse- Quences resulting trom instructions, assertions of fact, review of products or companies provided ia the magazine's content.”
***NnNbwitt?
WE ACCEPT VISA AND MASTERCARD
=. (503) 824-2658
For Books, Subscriptions and Renewals Note: We must charge a small 4%
additional fee for Credit Card Orders
COMMENTS by the editor
Commodore...Soon to join our ranks?
It's been a downhill slide ever since Jack saw the greener grass over at Atari, packed his bags and left Commodore, the company he saw rise to prominence in just three years. Things are bad at Commodore. Real bad. Experts say the the company is losing nearly 120 million
@ year--that figures out to be around 3 million a week! If Commodore does bail out, one can only wonder what's in stone for countless enthusiasts world-wide.
Will the small company and cottage industry be the main source of support, just like our own community emerged two years ago? Will the slick magazines bail out (just like SYNC and TIMEX/SINCLAIR USER did)? A lot of after- market software and hardware houses are counting on the health of Commodore for their very existence.
What does all of this mean to you and me? Actually, I want to use Commodore as a "vehicle" for my annual lecture on SUPPORT. Where would we be without our disk drives, printer interfaces, Spectrum Emulators; not to mention some really great home-brew software and various
publications? We would have been dead in the water months ago, Will our supply of computer "goodies" last. 1
believe so...but it will require everyones participation and SUPPORT. Unless we send for that great-looking new program or board for our Sinclair, or even just respond to catalog offers that we read in newsletters and mags~-~ we won't have Aerco, E. Arthur Brown, Zebra Systems. Novelsoft, Weymil Corp, Curry, Knighted-~so forth and so on. If you have been thinking about a new purchase. ..now is the time...tomorrow maybe a little too late.
I always wonder as I'm “pasting up" the ads in TIME DESIGNS, just how many readers actually pay attention to them, Some company has paid us good money for a spot in the magazine, This helps offset our production costs. Please SUPPORT our dear advertisers, they SUPPORT us.
Well, another lecture has come to a close. I'll get down off my soapbox now. Enjoy this issue of TDM, and get ready for the next one--our Second Anniversary Issue, And what a celebration that one's going to be!
Tim (Jeo
“the editor”
on the cover:
Regular colurntet, Paul Bloghae ie 3 oes Ath
Subscription Today!
FORO kk ok
NEW FOR YOUR T/S 2068 Ute
KK KKK kk kkk
o 3 CRITICAL MASS (Arcade) SABOTEUR (Martial Arts Arcade Adventure) z An outlying system of the Terra Federation has set up an advanced You are a highly skilled mercenary trained in the martial arts You are O fg anti-matter conversion plant on a centrally positioned asteroid to employed to infiltratea central security building whichis disguisedasa_ & © S4pply thelocalcotonsts with energy. A surprise attack by alien forces warehouse You must steal a disk that contains the names of all the oy «(NAS Successfully Overcome the asterord’s defences and the aliens are tebel leaders before its information is sent to the outlying security fz NOW threatening to self-destruct the power plant unless the colonists stations You are working against the clock. both in getting to the disk. ry a, offer an unconditional surrender. The self-destruction process would and inmaking your escape. You must enter the building fromtheseaby 73 effectively turn the power plant into a massive black hole that would rubber dinghy. and will then only be able to leave by the nelicopteron Gy | wipe out the entire planetary system along with a number of nearby theroot You will have to find your way around the warehouse, making Gy | stars Unconditional surrender offers an equally horrific prospect. Your use of the guards’ own weapon supplies in your steuggle through 1 Ms5:0N 15 (0 infiltrate the enemy position and disable the anti-matter overwhelming odds. Q plant betore the aliens achieve CRITICAL MASS, > a fe] 2 CATALOG #1026 $15.95 CATALOG #1098 $15.95 D> 4 img 3 fe) > ) 5 kw k wee DUAL DISC DRIVES & INTERFACE FOR QL--$250.00 zeKkKKKK a a DUAL DISK DRIVES & INTERFACE | a FOR YOUR QL COMPUTER . es Ar | Now you can cut the rising tc i costs of data storage on a 2 your QL in half (at least). =) These 3" drives are answer ° to your prayers........ top ia quality and they hold about < 160K per side (the "hard" - cased floppies can be flipped DISK DRIVES 9 over) for additional 160K of
storage space! And, don't ADD 5.00 S&H forget the great convienience
(not to mention the super reliability of these disks) of having
a second disk drive on line! All this...including and we'll even put the WP,DB,SS, and BG programs on one of the two disks supplied with the drives -- ready to run -- and our regular disk drive interface ALL INCLUDED............ +++NOW ONLY $249.95 !
3" DISKS - (for above) - Encased in hard plastic with a sliding metal "door" to keep dust (& fingerprints) from getting onto the disks. The metal door opens automatically when the disk is put into the drive. BULLETIN - A NEW FACTORY JUST OPENED UP IN HONG KONG TO PROCUDE THE 3" DISKS - WE BELIEVE A PRICE REDUCTION FOR THESE DISKS WILL FOLLOW SOON! $4.50 each or 10 Disks for $43.50
KNIGHTED COMPUTERS
707 Highland Street FULTON, NY 13069
SWHLI MAN ANVYW---S3O0INd MIN
(315) 593-8219
LETTERS
To the Editor,
{really enjoy your magazine and please keep up the
good work! I have a question,..do you know of any 88S Program for the 2068 (using the 2050 modem)? T have included two graphic printouts that I made
using @ program that I cal) "draw". Hope you enjoy them as much as I did making them,
Truly yours,
Clifton Tiddle Ofamond Bar, CA
Editon: Cédgton, your dm Luck, T fust Lalked Lo Eben Brown on the phone, of E. Arthur Broun Co. (3404 Pawnee Drive, Abexandria, MN $6308, 612/762-8847), He has a nee BBS program that witl be featured in his next catalog. It's cakked CASBOARD 2088, and is avaitable on céther cassette on ACJ wager. The Load and Save commands are in BASIC, 40 the program could be easity converted to any disk drive system. CASBOARD, was programmed by Kurt Casby, best known for his LOADER series of programs. Pretiminary specégications sound great...and should be a Lot of fun setting up a sma£é home-based BBS. Price és $19.95 plus $1.95 for postage. I did enjoy your drawings here gor others to admire,
and I've printed them
To the Editor and the Readers:
Can anyone come up with a simple progran for my T/S 2068 which will print the characters immediately on the printer instead of on the screen? With this capa- bility I would Vike to use the computer and its printer without the T¥/monitor to do simple computations. Can anyone help?
Sincerely,
Michael J Nowak San Diego, CA
Editor: I'L forward any possible solutions on to Mr. Nowak that we recedve, as well as publish them in an up- coming issue. T assume that the reference to a "printer" means the Timex 2040 thermal printer. C'mon programmers!
dear Tin,
Thank you for showing interest in ay 1 have written to other publications, but answered to say the were not permission to print my address, I will be
little gizmo, no one even You have ny glad to cor-
interested,
respond with anyone who needs more information on adding
automatic two-key entry from a one-key closure external keyboard like the TI 994/A
(to an surplus keyboard), Sincerely,
D, (Sandy) Rea Rt. 1 Box 18 Priest River, 10 83956
Editon: I appreciate you sharing your circuit déagnan with us. hice Jy Gate V4 uo: if aieee
Ak
ad
Keybenra Key exteey hact
Tim:
Be Savete buy AlbbA Chip "A's ber bower
iF ‘Shift wey
Om Resictince, esstaura { =f] Wiikey Arzow
When key is closed, +5 volts is applied to both gate inputs. Gate #1 switches immediately closing switch #1 in 4066 for shift function. Gate #2, because of delay in charging Cl thru Rl switches after gate #1, closing switch #2 for cursor-left function. If this circuit is duplicated for more functions such as shift cursor-right, the shift key sections of the 4066 may be tied in parallel, as sany sections of the 4066 may be done this way, as desired.
The gates' chip can be any OR Punction chip, TTL, CMOS or LS. I remember some time ago in TOM that you asked
readers to send some simple programs for publication, so enclosed is one for the 2068, which you may use if you Wish. As you can see, this calculates the number of days between any 2 dates (1 think the limits are 1900 to 2010) and accounts for leap years, also.
By the way, in the Jan/Feb 86 issue, page 3, you published a T/S 1000 “bubble sort* for a reader. I could not make the program work without deleting line 230 (LET Wel).
Leo Schroeder Billings, MT
2 REM DAY Poke 9.
ETUEEN DATES S KEY BEEP
10 POKE 208: GO TO aee 200 LeT 3) LET JeINT (2 zean23) - 26 +7) £4438 747 40-IN T_CCINT {07 4} 3374): RETURN 924 INPUT “FIRST DATE? MO-DAY-v MyO.4;, RINT “FIRST DATE") H;
post aay S GO SUB 100: LET vie © INPUT “LAST GATE? MO-DAY-YR Y: PRINT “LAST DATE "5M;
ayy UB 200: PRINT “DAYS BET TES "GF J=J2
8 give: 23503, V4 (HC iT 240 108) +
noe
eee
What’s In A Name?
Early in 1983, advertisements INTERNATIONAL appeared in the national Sinclair magazine SYNC, Ramex, of Utica, Michigan, sold externa) 2x81 keyboards, RAM packs, anong other itens. With the advent of the 2068, the company expanded further, under the direction of genera sanager, Scott Duncan. They obtained the ex- clusive marketing rights to TASWORD TKO word processor fron Tasman Software in Great Britain Later on, after Timex bailed out of the computer market, Ramex imported a Spectrum di Grtve interface for the T/S 2068 and coupled it with quad drives as a package...1t was called the “Millennfa K". An “overkill” with the quad drives later Jed to an Andet 3” disk systea.
Then fn February of 1986, Ramex announced that they were no longer supporting Timex com- puters or their disk drive systen, but instead Qpted to carry the American version of the QL fron Sinclair Research plus peripherals and software. They changed the name Ramex Inter- national to FOUNDATION SYSTEMS. About the sane time, they moved from their original factlities to an address in Washington, Michigan. A new public relations manager wrote a review cn the QL, which appeared in the February issue of Computer Shopper.
When A> Computer Response of Keene, New Hampshire, took over distribution of the CL in
for RAMEX
the U.S., Foundation Systems became a fully authorized dealer, In June and July of this year, severa?
readers of TOH wrote. requesting assistance In contacting Foundation Systems, because ls they had sent for were not being delivered. wnat TDM learned was that the distributor, A* Computer Response was receiving similar coeplaints, and that Foundation's phone nuaber had been dis~ connected. A spokesperson for A+ Informed TDM that Foundation was no longer an authorized Ql dealer.
Sy surprise, in August, TOM was informed that once more, another company had surfaced using the some Washington, Michigan address...it is called MATRIX TECHNOLOGIES. The company took out a small ad in the September 1986 issue of Family Computing Magazine. The new product? 10H PC clones for $399,
Sir Clive’s Confessions
Entrepeneur extraordinaire, Sir Clive Sinclair, has ended several months of silence, following the sale of major interests in his company that pioneered low-cost home computers, to Amstrad Consumer Electronics PLC. Last week, Sir Clive came out of seclusion and spoke with the British press. The following comments were taken from two separate interviews relating to questions posed about Sinclair microcomputers.
Sir Clive on the Spectrum-
"The Spectrum was and still is an enormous success although it is showing it's age a bit. I was rather surprised to see it turn out to be a games machine,..we really knew very little about that side of the market.”
What about the QL?
“TI think the QL was an interesting idea...a sophisticated machine, but in the end it didn’t work out very well, as we had originally anticipated. The market for a 68000-based micro wasn’t as big as research led us to believe. The QL had teething troubles early on. The truth was, that when the project came up, that tater became the QL...I wanted to do the whote thing on the Z80 microprocessor, but most of the engineers and Nigel (Nigel Searle, former Sinclair Marketing Director] wanted to do it on the 68000, I couldn't see the point of that because it seemed to me you were paying a lot
of money for the chip and I coutdn’t see what you were going to be able to do on it that you couldn't already do on the 280. Sure it was a bit faster in principle...but it wasn't that in practice. Looking back there was no need to go for 68000 technology. We just haven't found a way to use the
68000 that gives any extra benefit to the customer,"
Sir Clive on the Microdrives-
“The bad press the Microdrives received was unfounded, I'd defend them absoulutely. I think they were a marvelous approach to low cost mass storage. Their technology and application should be studied further.”
What about the Pandora?
"I want to go ahead with the Pandora project. It will not be compatible with either the Spectrum or QL, as we have lost alt rights to their tech- nology. I think it will be best in a way, as it opens the door for a new and customized operating system, Most of the portable computers available are
compromises of one sort or another. To me, a portable computer must be totally portable and no trouble to use.” Amstrad director, Alan Sugar? “IT hope to keep in touch with Alan Sugar, and I like him Sir Clive's future? "Tam most happy right where I am now..tinkering with new projects the future. To be perfectly honest, I have never felt the business manager role."
NOVELSOFT Emerges As Premier TS Software House
very much.”
for comfortable playing
If one were to imagine what the ideal Timex/Sinclair software company would be like, some attributes might include a full time office, open for customer's questions and support, professional products with “complete”
documentation at a fair price and prompt order processing. Toronto, Canada, may come close to filling the bill.
The reviews are out, and the word is spreading fast about recent soft- ware releases from Novelsoft; TIMACHINE, quite possibly the best BASIC Compiler ever for Sinclair computers; ARTHORX Version 1.1, a sophisticated graphics package; and a brand new release cailed THE WORX!, which is a collection of useful mini-programs. Ali of these releases are on their way to achieving "hit" status in the T/S community...a small accomplishment that would blush next to the giant software houses, but a respectful one never the less.
According to Novelsoft, Senior Partner, David Ridge, the company was started to promote their programs in Great Britatna. They have had some in- terested U.K. software publishers, but the current situation in England with Amstrad and the Spectrum, has put a halt to most major investments. The whole industry fs wafting to see what will happen next.
Novelsoft has generously included a version of their popular programs on one side of the tape for the Timex/Sinclair 2068. The other side has a@ Spectrum version of the program,
NOVELSOFT of
Sinc ‘ sting experts Grey and i 7 Products), based in
a amnounced the rele
re and thi 2-SI/0 car
he 1/5 2068. The Spect
ectrum-emulated T/S 2 for a later relea
t tr 64 column di s e transfer, will tr
: Users Group Update r goodies, either hwest.
clumnist for TOM, and owner
m featured in $
(2144 White Gak, Wichita Sinclair was K it again. His new program, COLOSSUS 7 terprises; W 1 winner, The program is a graphics banner door prizes and refre The day ¥ age that allows the user to create we, Tin ditor of T t 3 ng, with a variety of t styles House would naval event nd low-resolution graphics on, over and around
Revox (a manufacturer of “Top-of-the -Line” audio equipment) recently introduced a cassette deck with an RS232 port, allowing control of the unit via a computer. For a mere $1,400.00, this cassette deck could be yours, LIGHT SHOW 2000 will turn the tables on the Revox for about 1/100th of the cost. LS 2000 is a program which will allow your cassette deck (or any other musical source) to control your computer,
LS 2000 wil] poll the ear port of your TS 2068 and decipher any pulse detected into one of four tonal groups (the shorter the pulse, the higher the note). De- pending on the tone detected, a corresponding color pattern will be displayed on the screen. The user has control of the tonal groups, colors, duration of display and the speed at which the tones will be read. This flexibility allows one to "view" the same piece of music ina multitude of ways, or to tailor the program to a certain musical selection. LS 2000 comes with one preset Set-Up to “display” music and provides for four user- defined set-ups.
LS 2000 HOOK-UP
To use L$ 2000, some means of providing a musical source to the computer must be used, There are several ways of accomplishing this, some more flexible and pre- ferable than others. The simplest means is to hook up a wire directly from the speaker of a stereo system to the earphone jack of the TS 2068. (IMPORTANT: Do not hook up more than one channel of a stereo system as this may damage the stereo amplifier.) This can be done by running speaker wire from the rear connectors of a speaker (or from the speaker output of your stereo) to your computer. Do not leave the speaker disconnected from the amplifier. A phone jack can be attached to the ends of the speaker wire and plugged directly into the computer's ear jack. Or alligator clips can be used to make a connection to your computer patch cords, The drawback of this approach is lack of control over the signal going into the computer. If the music is played at a low volume, the signal may be too low. Conversly, “Heavy Metal" from a 200+ watt system at full blast may cause your 2068 to become light dust.
If the tape recorder you use with the 2068 will play through the earphone jack while in record mode, it can be used to feed the sound source into the computer. A similar wire will be needed to plug into the micro- phone jack of the recorder, as previously discussed. Run
PARTS LISTS
Radio Shack Part # Description Price 42-2370 teh cord w/RCA phono jack to ripped wire 36 in. © 1.69 42-2371 : + 72 tm © 1.09 42-2372 . + aa in = 2.19 NOTE: The above to
be used with Radio Shack Attenuater ath to fit your ni 8 to mtripped enda If new:
er wire may be
274-300 RCA Phono jack to 1/8" signal
reducer (attenuater? © 1.99 274-287 Red 2 conductor 1/8* phone
plug (2 per packs 21.29 277-1008 Mink Audio Amplifier w/spesker 211.93
“3 LIGHT * SHOW
a patch cord from the earphone jack of the recorder to the earphone jack of your computer. Place a tape in the recorder and set it to record. If you opt for this method and plan to play your music at medium to high volume, I would suggest placing an attenuater in-line between the microphone input and the speaker wire from the stereo. (An attenuater may be obtained from Radio Shack for $1.99 -- Part #274-300. This part has an RCA Jack for input and a regular mic/earphone jack for out- put.) This will help prevent distortion and possible overloading of your recorder. The preferable choice is to use Radio Shack's mini-amplifier ($11.95 -- Part #277 -1008). The hook-up is the same as with the tape re- corder. This method will allow control of the signal volume going into the computer. Once again, use an attenuater, if the musical source is to be played at any volume. If LS 2000 does not respond to inpute while using the attenuater, the attenuater should be removed. (NOTE: This mini-amplifier can be used to boost the out~ put of computer tapes you may have difficulty loading. It also can be used to amplify BEEP output from your computer. )
A "walkman" type cassette player can also be used to supply music to the computer if it has two headphone jacks. Use one of the jacks to run a patch cord to the computer.
USING LS 2000
Upon running LS 2000 you will be presented with a main menu (see example 1). "ENTER LIGHT SHOW" (Option 0) will pulse color patterns on the screen based on the in- put through the ear port. (NOTE: To return to the main menu while in this mode, press the “q" Key.) Option 1, “SYSTEM SET-UP", wil? provide a second menu allowing the user to select 1 of 5 permutations of LS 2000 (see example 2). The current set-up is highlighted via BRIGHT. (NOTE: If any of the parameters are changed, no current set-up. is shown.) This menu also allows viewing of the parameters for any compiled set-up (Option ¥). Option S will define a set-up based on the current setting (i.e.; mode, colors, tone, pulse, tempo). The user is prompted to choose a number to be compiled (2- 5) and for a name. Hhen this new definition is compiled, it then becomes the current set-up.
From the main menu, the user can create different set-ups or setting. By changing any of the various options (2-6), LS 2000 can be customized to any musical input or user preference. The best way to learn what each option does is to experiment. After changing an option, one can view the results by “Entering Light
ENTER LIGHT SHOU sysTen ser-uP SET nope... SET coLors. TONE CONTROL. DET PULSE. SET TEHPO.. SAVE/LOAD SET-UPS..
e a 2 2 « s 6 7
wa" Returns from Light
example 2
2000 Ie nn —E. Carver
Show". Each setting option is provided with prompts and explanations from within the program. (See Sample Set- ups for examples.) Depending on the type of music or the quality of the input (dynamic range), one may need to retune the tone control. Tone 0 jis the highest tone range, Tone 3 the lowest. The number assigned to a tone is tee upper limit at which LS 2000 will produce a pulse.
The Save/Load option allows the saving of favorite compiled setting to tape for later retrieval.
OrrAULT seTTzNa... Las Sp . . SETTING NOT DEFINED. RIPPLE sees ee eens COMPILE CURRENT SET-UP. VIEW SET-UP... 20... RETURN TO MAIN HENU....
example 2
BEHIND THE SCENES
When the TS 2068 is loading a program from tape, it reads through the ear port (port FEh)
the signals re- corded on the tape. The data needed to send the program is tored in bit 6. If the bit is set ("1") the frequency of the signal is 1020hz, if it is not set (0"), the
frequency is 2040hz. The frequency is determined by the length of the pulse detected. Port FEh also uses bits 4-0 to poll the keyboard. By sending out this port, BORDER colors can be controlled (bits 2-0) or a BEEP can be triggered through bit 4. When a program is sent to tape, bit 3 of port FEh is used. The threshold of the ear port is 23khz, with the input being 4-10 volts p-p.
KEYING IN THE LISTING
Carefully key in the BASIC listing. After you have typed in the program, SAYE the listing to tape before running the machine code loading routine. To load the machine code portion, ENTER as a direct command [RUN 9000]. This portion of the program will POKE the machine code into its proper address. It also checks for various typing errors and will provide instructions in case an error was detected, After the machine code has been placed in memory, the program will set up the User Graphic "A", delete this portion of the program from the listing, and prompt you to SAVE & VERIFY the completed
program along with the compiled code. After YERIFYing, the program will self-run, Go ahead and try it out. NOTE: In Line 3, the A in quotes is typed via GRAPHIC
mode (Caps Shift/9] [A] [Capts Shift/9].
ae
SAMPLE SET-UPS:
Name Mode Tone Limit Timing Course/Fin HO wl Wows Tempo Pulee Default = 240 200 192 160 10/256 are Laid-Back 4 245 208 192 160 nova 12/256 Spees-0 0 213 208 192 160 2/250 anh Pulser ° 215 208 192 170 ara 10/176 Ripple 4 zis zee 192 170 34100 107176 BASIC LISTING Lines Notes 1-3 Sets up the screen with the patterns to be “puleed* by LS 2000. NOTE: Even when the screen looks Diank,the complete pattern tm still on the screen, ae INK hae b jet the same color as the PAPER.
The machine code simply sets the ATTRIBUTES to the
proper INK color. Check this out by changing the INK Color in Line { to "7", Add Line 9 STOP. Aw direct command <GO TO 41>
to The POKE sets lower case only, This is the USR call
for the machine code pertion of LS 2000.
100-120 Contains data for Iine/column placement of LS 2000 graphica,
130 Contatns data defining USR Graphic "At. Can be redefined to any character or pattern:
140-160 Sets up and defines variables for LS 2000 Baste Line 150 Containa data for Default “set-Up*
toco-1010 Main menu
2000-2100 System Set-Up Menu
2200-2240 Complies current parameters am @ defined Set-Up
2300-2320 roKEe para: S into machine Code as current Set-Up. (See Line 2799)
2400-2459 Displays parameters for a compiled Set-Up
2997 Contains addresses of Machine Code which hold para ‘© for current Set-Up
3000-3050 option 2 -- Set Kode
3100-3170 option 3 -- Set colors
3209-3200 option 4 -- Tone Control
3300-3390 option 3 -- Pulee Control & Option 6 -- Tespa Control. NOTE! This subroutine i= shared by both Options. Control of Option i= decoded by variable Al IF S THEN Pulse Control, IF 6 THEN Tempo Control
4000-4200 Savesioad Option. Also allows for verification of SAVE and LOAD without Breaking the program with a ROM Error Report.
8000-8030 Subroutine to skan keyboard for input
9000-9429 Routine te POKE Machine Code into memory
99
Routines te SAVE ané LoaD LS 2000
The author will provide a copy of thfs program on tape for $4.00 (includes shipping). Please send a check or money order to: Michael E, Carver, 1016 NE Tillamook, Portland, OR 97212. Please specify “Light Show 2000".
WIGHT = SHOW
4 BRIGHT 0: BORDER 0: RE STORE : PAPER 0: INK O: CLS : L ET x=2 2 FOR asi TO 69: READ 2295 THEN LET xexei: NEXT 3 PRINT AT x,y¥tA*: NEXT 10 POKE 23658,6: RANDOMIZE USR 45056: INK 9: GO TO 1000 100 DATA 15,255, 12,18,255,15,25 5,10, 13,17, 20,255, 15,255, 8,12,1 4,16, 18,22, 255,10, 15,20, 255,12, 14, 16,18 410 DATA 255,7,9,11,13,15,17,19 224,23 420 DATA 255,12, 14,16,18,255,10 115,20, 255,6, 12, 14,16,18,22,253 915,255, 10,13, 17,20, 255, 15,255 12, 18, 255,15 130 DATA 0,BIN 1000010,BIN 1111 00,BIN 11000,RIN 11000,BIN L414 00,BIN 1000010,0 140 RESTORE 150: DIM 6(5,14): & OR ami TO 14: READ bi LET silva NEXT at DIM =8(5,31): LET S8(1)= "DEFAULT SETTING. . LET dem
FOR LET w@(ayede: NEXT « 150 DATA 1,0,290,208,192,160,6, 3y5,2,10,0,1,1
260 LET current=t: DIM be¢32); DIM e@(3)
1000 PAPER 1: BORDER 1: CLS : PR INT AT 0,8) INVERSE 1;*LIGHT SH OW MENU'TAT 4,05 INVERSE 07 "ENT ER LIGHT SHOW..... or ‘*SYSTEN SET-UP... ron 1"***SET MODE... + +2+2"'**SET COLORS... oad
“TONE CONTROL... +4°°*SSET PULSE sB8'*SET
errr cod
TEMPa, “SAVE/LOAD SET-UPS. 17
1005 PRINT Wore * Returns ¢ rom Light Show*: ON ERR RESET
1010 GO SUB 6000: GO TO 10104199 O AND k#m"1")=(1009 AND kemto*)
+(1970 AND km="2"94(2090 AND Kw
93") 462190 AND k’ #12290 A
ND (k@="S* OR KB="6"))6( 2990 AN
D kwer7*)
2000 PAPER 2: BORDER 2: CLS : RE M system set -upHHHHE
2010 INPUT INKEYS: PRINT INVERS E ASAT 0,95 "SYSTEM SET-UP*s INV
ERSE ostrets
2020 FOR ami TO 5: PRINT (s®(a)
AND s(a,1))4(*SETTING NOT DEFIN
seet AND NOT mia, i)?
“COMPILE CURRENT SET~ Set *VIEW SET-UP... . vel’ *RETURN TO eer a
2040 IF current THEN PRINT BRI GHT 1) OVER 1;AT current#2+3,0; be
2100 GO SUB 6000: GO TO 2100+«10 © AND (k@enB* OR ke=*S*) 741200 AND Ce@>eei® AND kB<mes*) 4 (300 AND (k@—=*y* OR k#=*V47)~(1100 AND (Ck OR kemrmeyy
2200 REM compile set-up
2210 PRINT AT 15,0) OVER 1} PAPE R Sib: PRINT WOs*Set-Up w (2-5 GO SUB 8000: IF ka<="I* OR k@>e*6* THEN INPUT INKEYS: BEE P .35,10: GO TO 2010
2220 LET kSVAL kM: PRINT AT ke2t 3,0) OVER 1} FLASH ithe: RESTOR E 2999: LET w(k, toni: FOR auz T @ 14: READ br LET 8(k,a) "PEEK D t NEXT a
alii
2230 INPUT "Set-Up Name? *s LINE k@: LET am(ki=d@: LET se(k, TO {LEN k® AND LEN k@#¢3014(30 AND LEN k®>s30) pmke
2240 LET current=k: GO TO 2010
2300 REM make met-up current
2310 LET KSVAL INKEY®: IF 6(k,1)
"O THEN PRINT AT k¥2*3,05 OVER
1) FLASH Libs: BEEP .35,10: FO R ast TO So: NEXT a: INPUT INKE Y#: GO To 2010
2320 RESTORE 2999: LET current=k ¢ FOR a=2 TO 14: READ b: PCKE b eB Cky art NEXT GO TO 2010 2400 REM View Set-Up
2410 ON ERR GO TO 1006: PRINT PAPER 31 OVER 11AT 17,0;bmiH14° View Set-Up # (1-3)": GO SUB GO 00; IF KecetO" OR KE>="6" THEN
INPUT INKEY®: BEEP .35,10: GO TO 2010 2420 LET keVAL INKEY@: IF e(k,1)
=O THEN PRINT AT K¥243,01 OVER 11 FLASH ibe: FOR ami TO 100: NEXT a: BEEP .35,10: INPUT INK Eve: PRINT AT k#243,06 OVER 14 FLASH O1bs: GO TO 2010 2430 CLS : PRINT INVERSE Lyamck Vik INVERSE O° *MODE *19(k,2)" "*Tone Color and Limit*: PRINT PAPER Of INK S(k,7) FAT 6,35°TO NE O TECHR® laa; "y8tk,3), INK §(k,6)4" TONE 1 “ICHRS 144;° = BU AITAT 7,35 INK CK, VDT E 2 ‘}CHR® 144y* "ssk,5), sk, L004" TONE 3 *ICHR® 1445 + 38(K,6)2 PAPER 2 2440 PRINT *'"Timing™* "TAB 44“Cco urse'," Fine Tempo "ratk,it 4(256 AND elk, 11)e256);TAR 16) wk, 123491256 AND #(k, 12980)" "Pu 1 “am (k, 13) 4(256 AND wk. 13) SODITAD 10;m(k,14)+(256 AND wi »14)"0) 2450 PRINT WOI*Press any key to return to Menu*: GO SUB 8000: & © To 2000 2999 DATA 45351, 45074, 45080, 45068 4, 43000, 45129, 45117,45105, 45093 145213, 45216, 45196, 45199 3000 REM set mode 3005 ON ERR GO TO 1000: PAPER 3 2 BORDER 3: CLS : PRINT TAB 115 INVERSE 11"SET MODE* 3010 PRINT * Made © -- Tone Pp attern will ataylit onty during ON Period.*'**Mode 1 -~ Tone P attern will staylit until next Tone Pulse.*'**Currently set at *) INVERSE 15°MODE “sPEEK 4535 1 3020 PRINT WOS BRIGHT I}*Enter D sired Mode (0 ar 1) me for Menu" sbe(1s To > 3030 GO SUB B00O: IF kS<>*0" AND KBO>SL* AND L@C>*M* AND KOC>*m * THEN GO TO 3030 3040 IF keeti* OKE 45351, VAL k@: LET current=o 2 INPUT INKEY®: PRINT AT 0,0: @ 0 TO 3010 3050 GO TO 1000 3100 REM set colors 3110 ON ERR GO TO 1000: PAPER 4 3 BORDER 4: CLS : PRINT INVERS € AFAT 0,101"SET COLORS**** 31Z0 PRINT BRIGHT 1) INK PEEK 4 5129) PAPER (4 AND PEEK 4512950 YIAT 6,31"TONE 0 "ECHRe A4ay" = » INK PEEK 45117) PAPER (4 AND PEEK 4%117"0)5* TONE 1 "ycHRe 4 44)" "SAT 7,35 INK PEEK 451053 PAPER (4 AND PEEK 45105=0);*TON
© 2 "KCHR® iaai* *, INK PEEK 45 093} PAPER (4 AND PEEK 45093=0) 1* YONE 3 *;CHRS 14a;* *
3430 INPUT INKEY®: PRINT HOF" To ne # (0-3) == 8M for menue 3440 GO SUB BO00: IF KB<tOr OR k "3" AND (k®C>"M™ AND km@co*m") THEN GO TO 3140
3150 IF kwetm? OR kB=*N* THEN G 9 79 1000
3160 LET aeVAL ke: INPUT INKEY PRINT WOI"New coler for TONE ~ jkes (0-70
3170 GO SUB GOC0: IF Ke<*O™ OR kK "7" THEN GO TO 3170
3180 POKE @5000¢(129 AND aeOr4c1
47 AND amide (105 AND 08204193 A ND as3),VAL k®: LET currentso: GO To 3120 3200 REM tone control 3210 ON ERR GO TO 1000: PAPER 5 3 BORDER 5S: CLS ¢ PRINT INVERS. E 11AT 0,95" TONE CONTROL**** 3220 BRIGHT 1: PAPER O: PRINT I NK PEEK 4S51295AT 6,35"TONE © *3 CHRS 144)* *4: LET ce=STRS PEEK 95076; PRINT c@, INK PEEK 455 171* TONE 1 *1CHR® 144; * Le T c@=STR® PEEK 45080: PRINT ce} AT 7,35 INK PEEK 43105; "TONE 2 CHRe i44;° "3: LET ce=sTRe PE EK 45064: PRINT c™, INK PEEK 45 O931" TONE 3 *5CHRe Lagy* "pe LO ET c®=STR® PEEK 45066: PRINT ce
3225 PAPER 5: BRIGHT o
3230 INPUT INKEY®: PRINT 404* To ne (0-3) == 88M for Menut 3240 GO SUB 8000: IF ka<to™ OR k 273" AND Ck@C>*M™ AND kec>*me) THEN GO TO 3240
3250 IF k@e'm" OR kw=*h* THEN G 9 TO 1000
3260 LET e=VAL k@: LET limitias- ar LET 1imit2—(254 AND anor + (PE EK 45076-1 AND a=1)+{PEEK 45080 71 AND a™Z)+(PEEK 45084-1 AND a
=3)
3265 INPUT }*New limit for TONE SOSTRO at" ("4STRO Limitier=e4s
TRe Limitzer? 1 LINE Kw
3270 LET keVAL k@: IF k¢limiti 0
R k>limit2 THEN GO TO 3265
3280 POKE 45000+(76 AND am0)+(60 AND awi)+(84 AND a=2)9(GB AND
a=3),VAL k@: LET current=o: Go
To 3220
3300 REM pulse
and tempo control
3310 ON ERR GO TO 1000: LET AL kS? PAPER 6+(ae6): BORDER 4+
(amor: CLS
3320 PRINT INVERSE 15AT 0,91 (+P ULSE* AND a=S)+(* TEMPO" AND a=
)+* CONTROL
3330 LET course=PEEK (451964 (17
AND a=6))2 LET fine=PEEK (45199
+027 AND a=6)22 PRINT t o+(*Pulset AND ‘TAB 6$cour: a vi nesoss ©
3340 PRINT Course -- Number o 4 times "*Fine**period ts repe ted"'**Fine -- Sets timing via nanc- econds 3350 PRINT AT 18,0) (*Pulse -- Le
nath of time needed to place T one pattern on ecreen.* AND ass )+(*Tompa -- Length of pause be tweenreading Tones* AND a=6) 3360 PRINT #Of"Set Course or Fin © (Cor FI? 7Mt* for Menus 3370 GO SUB BOKO: IF KBC>*C* AND kS<>"C* AND kS<>*F™ AND KEC>TE + AND k@<>7m™ AND kOC>TM THEN 60 TO 3370
v
+(236 AND cour APE Fines (256 AND #4
3380 LET deme: IF 1 *M* THEN G0 TO 1000 3390 PRINT OVER 11 FLASH isAT 5. 14012 AND dente" OR imrRer ge "ec" AND (tm=etc™ OR i
"201 INPUT "Enter # (1-256)
LINE ke: LET KeVAL kw: IF KCL Oo
R 236 THEN GO TG 33970
3400 POKE 45196+(3 AND (ise"¢* 0
Ro swerF})9(17 AND assr,k- (256 AND k=256)! LET current=0: GO T
© 3320
4000 REM save/load set-ups
4010 ON ERR GO TO 1000: cis: P
RINT TAB 7) INVERSE 11"SAVE/LOA
D SET-UPS*;WOS BRIGHT 14°S = SA
ve t= LOAD om = MENU
4020 GO SUB 8000: IF kec>*S* AND K@C>het AND LSC>*L* AND kmdoed
m* OR i
"AND k®<>"M* AND ka<>*m" THEN GO TO 4020
4030 S* OR k#="s" THEN G 0 TO
4035 THEN 6
@ TO 1000
4040 PRINT ''*Ready to LOAD Set~
INPUT “Load title ?*ins: PRINT ''*Loading “ine: PRINT WO i*Start tape, then pri any ke ye" GO SUB S000: INPUT INKEYS 4050 IF LEN n®>10 THEN LET n&=n
@¢ To 10)
4060 ON ERR G0 TO 4200: LoaAD nw DATA s8()2 LOAD n® DATA e(): @ @ To 1000
4100 PRINT ''*Ready to SAVE Set-
INPUT “SAVE title 27 ine:
<*Set-Ups" AND n@=**)4ne ( TO LEN n®-(LEN n®-10 AND LEN
n®>10))3 PRINT AT 6,03*Saving * sepnepeeee
4110 SAVE n® DATA s8(): SAVE ne
DATA BO PRINT WOR“Verity (Y 0 r NI?*? GO SUB 8000
4120 IF K@=*N* OR k@e="n® THEN oO
© To 1000
4130 INPUT INKEY@: PRINT AT 6,0; "Verifying *** nes* *Rewin d@ tape"sWor*Start tape and pre & any key.*: GO SUB 8000
4140 ON ERR GO TO 4200: VERIFY n@ DATA &®(): VERIFY n® DATA 5 3% 80 TO 1000
9200 CLS : PRINT FLASH 1jAT 5,7 S*Tape Loading Error*: PRINT * ‘TAB 6} INVERSE 15°P1 atte
pt Again") INVERSE 01805 *Pre: any key for Menut: G0 SUR 8000; 60 TO 1000
8000 REM keyboard acan
O10 IF INKEYEC>*"* THEN GO TO & 010
8020 IF INKEY 20
8030 LET k@mINKEYS: RETURN 9000 CLEAR 48055: LET a TORE
THEN Ga TO 90
RES FOR i=O TO 36: READ
O10 IF LEN a&<>59Z2 THEN PRINT FLASH 1}*Error in’ Machine Code DATA Lines 7100 ~ #136 FLASH O§*There are too "+( "Fen * AND LEN ascS92)4(*many *
AND LEN a@>592)+"*Data it. “PLEASE CORRECT BEFORE CONTINUT
Now
9020 LET addr. 45056: FOR t=
TO LEN 1 STEP 2
9030 POKE addr e INT C(tetd72 ), (CODE aSi1}-(48 AND CODE amit 1658)~(95 AND CODE aw(irrea) ret
G*CODE aBliti)-(48 AND CODE anc i¥1)€5G)~(35 AND CODE aB(ieiio6
“a
9040 NEXT 1
9100 DATA *3ACeSCFE7I2001¢9~
101 DATA *16FFiSAFDBFECE?7* 9102 DATA *20Fa7AFEFOSOESFE*
¥LO3 DATA *CEsOZCFEAOSOICFE*
(20 A a sO ee 9 0 a
9104 DATA 9105 DATA 106 DATA 9107 DATA 108 DATA F109 DATA 9110 DATA iA. DATA 9iL2 DATA #113 DATA 9544 DATA F115 DATA 116 DATA 9117 DATA 9118 DATA 9119 DATA 9120 DATA 91Zi DATA 912z2 DATA 9123 DATA 9124 DATA 9125 DATA 9126 DATA 9127 DATA 9128 DATA 9429 DATA 9130 DATA 9134 DATA 9132 DATA 9133 DATA 9134 DATA 9135 DATA 9136 DATA
*7@300C1 L000Z2EDS3* *BOSC21A7BO18Z211* *OOOSEDS3BOSCZIC?* *BO18146110003ED53" *BOSC21E7B0180A11" "OCO6EDD3BO3SC2107" *Bi3A27B1FE01 2005" teDcD7FnCE:CD7F RO" “189E7EE639577086" 07070707 BAZ006ED* "SBBOSC18053AD5C* *77C9E6F 882770906" *1O3E235623052100"° *S8i9csosoicsosot* *1OFEC110F8C1CD62" “BOE 1 L0ES0469CC506* *OO1OFEC1 10F 8C9OF* *0151018FO14D01CF* *003301CFO14B018F* *0055010F0249014F* *0057014F02470130" *0170016E012E01F2* *OOBZ01LACO1ECOOB* "OOF 401EA01AACOB1* "0481048104810432" "0172016C012c0114" *0194018A010A01F 6" *00R601A80i1F80081* *048104810481004F "O1FOOOBOO1AEO1EE* “OOB100F 101ED0LAD* *00720032022c0z6C" *0081048104810400*
9200 RESTORE 9300: LET tally=o:
FOR 1#0 TO 36: READ d: yetallyed:
1 FLASH OF* Ln DATA Line: ‘*Ple.
= 9350"
LeT tart
NEXT 4: IF tally<o2e 767 THEN PRINT FLASH 0; ERROR
RUN 9200>*: STOP
9300 e@ correct and <
9230 5056:
RESTORE 9300: LET addre FOR #0 TO 36: LET checks
ry
FOR ji TO 6: LET cheek=chec
K*PEEK address: LET addrese=ads reestt 9240 NEXT $: READ tally: IF chee
k<>tally THEN PRINT FLASH 13
ERROR“! FLASH 01° == in DATATT? Check for an Error in Line 591 00+%**And then procede by CRUN 9000)": STOP
9250 NEXT 4
9300 DATA 759, 1268, 1431, 1036,519 +719,625
9310 037,4 9320 967,9 9330 8,779 #340 1,830 9350 9400 au b. +P r Fy ou 9410 SR KE a, 9420 9998 AVE * 5 Fi to v **co 9999
CODE 4505: 130: FOR
3 REAI
DATA $62,759, 634,751,1470,2 a9 DATA 679,1254,528,521, 1223, a3 DATA $12,511, 256,289,514,76
DATA 493,290,546, 713,482,063
DATA 320,399
CLS : PRINT "Machine Cade h en Loaded into memory.
ess any key to SAVE & VERT ight Show 2000!°: PAUSE oO INK 9: RESTORE 130: FOR asU * TO USR "a*+7: READ y: PO yt NEXT a»
CLEAR : DELETE 9000, 9500 SAVE “1m 2000" LINE 9999: Ss 1m 2000*CODE 45056,296: cL RINT "Rewind Tape and Play jority": VERIFY **: VERIFY
E : GO TO 140
CLEAR 4505:
LOAD *1s 2000~ 296: INK 9: RESTORE
USR ‘a* TO USR D yt POKE a,y: NEXT a: GO
To 140
Machine Code Listing
ORIGIN BOOOH (450580)
ADDRESS:
Boo Boos BOOS R007 BOO8 BOOA BOOB BOOC ROOE BOLO BOrz Bo13 Bois BOL? Bors BOLE BoiD BOF Bozt Bo2z3 BOz6 BOZA Bo2D BOzF BO32 Rose Bo39 BOsE BOSE Boa? Boss Boa? BOSA ROSE BOS BOS4 BOD Bose BOS?
OP CODE LABEL
saoesc START Fert
z001
co
16FF LISTEN 13 COUNT AF
DBFE
B77
20F8
7A READ FEFO
BOE?
FEDO
soz
FECO
3oic
FEAO
3a00c
110002 TONES EDS3BOSC
21A7B0
1822
110003 TONEZ EDS3B0SC
21C7B0
1816
110003 TONES EpssRosc.
2IE?BO
180A
110006 TONEO EDS3BOSC
2107B4
SAZ7B1 ROUTE FEOL
2805
es
CD7FRO
MNEMONIC
Lp cr IR
A, (ScoBhd Jin NZ, LISTEN
RET
up
D,FFh
pec D XOR A
IN
A, (FER)
BIT 6,A
aR Lp cp aR cr aR cr aR cP aR LD Lb up 3R Lp Lp LD 3R Lp i) re aR LD up rey up ce aR
NZ, COUNT A,D
Fon
NC, START Doh
NC, TONEO con
NC, TONES Aon
NC, TONE? DE,0200h (3CBOn), DE HL, TABLES ROUTE DE,0500h {SCBOh), DE HL, TABLE ROUTE DE,O300n {3CBOn), DE HL, TABLES ROUTE DE,0é00h (SCBOh) , DE HL, TABLEG A, (MODE) oth
Z, SKIP
PUSH HL CALL PULSE
program ci
tq Fif not continue treturn to BASIC dmet pulse count. Feount down iclear A & flags iread ear port Ipulse detected? 144 sc keep counting
1A = pulse length Jupper limit Tone ©
1if too high start over Supper limit Tone &
Jupper timit Tone 2 Supper limit Tone 3 fink color for Tone 3
bepare byte # ink
}ink color for Tone 2
Vink color for Tone 4
Sink color for Tone 0
Sroute depends on mode
$14 mode 1 90 to skip fsave table addr: idisplay pattern
ontinued on page 11...
ous
The WUSDFUP Ca. i ahtetate
Leo fe
(OP TOUR cor c
S U USE All the Features your OLIVETTI PR23aG ink jet printer,
PIGKHS if o MENU puile universal interface, Use your TASMAN, RERCO, or home brew parallel
BE READY FOR IT.
Tourist Cif Keokbhy an Extended bank sui
disazeembler and SPY program residing in Physica. errace,
It uses Machine code located above “COPYUP™ in LFRINT Spaaks Fluent axckanded the machine stack. Printing to the 2648 is not gaepe at PR2I98 GRAPHICS Ususliy desirable, co a universal interface is WOOPY dumps tha screen 29
uded. When used, the ag: loaded inte the printer buff is ah “ower lay” Gt does vat iatenBens with any USege by Oth
normal size or ZOOM, ELIST high resolution sraphics us WHAT YOU SEE 15 WHAT ¥
BINDOW dumps park of the @8n in variable length lines up to 119 cha ers per line,
Its default configuration prints the lower two Ecreen lines as 44 wide,
The WIDJUF Co, word processer/data base program TyYPOLOt Uses WINDOW &G prepare ads Lika + and one to the Lert,
f banks of peripherals,
To help convince you of the great features of this Program, send US moO more thats 68 bytes oF MY cOde YOU Like aid SASE, The WaDHUP Ca, willl lurh_a disassembly Of that code and more inte bout TOURIST C. How's that for bait? Tr
: BANK SUIT CHING 15 HERE! |
2 iate kernel is @
| ThE UADIUP Co. 4 1128 Herrifietd S.E. Grand Rapids, MI 49587
ET 1 3 W/OLIVETTI PRIZQ9 printer TFS
H
TIME DESIGNS MAGAZINE BACK ISSUES $3.00 EACH
All Volume Two issues aval lable:
Nov/Dec 85 thru Sept/Oct 86
Sorry, Volume One Issues are no longer avaliable Individually.
CONTROL THINGS with your Timex/Sinclair by R.L. SWOPtS......ccccccssssceseseeeee $5.00
ZX81: Programming for Real Applications by Randle Hurley... fetsntassyasel ieeatadeacustth $6.00
WE PAY THE POSTAGE Both “CONTROL THINGS” and “ZX81".....510.00 ON ALL ORDERS!
PAYMENT: Check, Money Order Build a Microcomputer - Controlled NEW! WE NOW ACCPET VISA ROBOt by B.C. Taylor icsssscsssssesssessseeeee ssssnneeeeeeees 17.00 and MASTERCARD.
The Best of TIME DESIGNS Volume 1...........0- $12.00
TIME DESIGNS MAGAZINE COMPANY
29722 Hult Rd., Colton, OR97017 (503) 824-2658
10
LIGHT SHOW 2aGGo
Program continued from page 9
FL POP HL restore table addreus ch7RBO SKIP = CALL PULSE = fremove pattern
19k IR START
7€ SCREEN LD A, CHL) attribute £630 AND 3a er only
37 LD DA
7e LD A, HL) 1A @ temp. attribute £607 AND O7h SA = Ink only
07 RLCA move ink attribute 07 RLCA 5 t© paper postition 07 RLCA 5 ina
DA cpp sink = paper?
2006 IR NZ,MSAME 114 not make inkepaper EDSRBOSC LD DE, (SCRon? IDE = ink far tone # 1805 IR LATIR
BASRSG = MSANE «LD A, (ZCBDN FA = perm. attribute 77 LD (HOA, t attribute tile cy Ret idone
fore LATTR AND Fen SA = all but ink
oz ADD A.D JA + D Cink) = attr
27 LD (HL3,Aa t attribute tile cy RET ne
oe10 PULSE LD B,10n of graphics to pulse SE PULSEA LD E, (ML) toad DE with the of¢f- 23 INC HL ' & of location in 36 Lop, (Hy } 0 attribute tile
23 INC HL
cr PUSH ML @ next table entry 21ces8 LD HL, 5a00n et of attr. file 19 ADD WL, DE lecation
cs PUSH BC save count
060% LD Both Ipulae time - course 3 BLOOP = PUSH’ RC
ogo LD B,cin
10re Loop psnz LLoor
ca Por BC
10F8 DINZ BLOOP
cL Pop ac Iretretve count cpsz80 CALL. SCREEN
crt Por HL iretrwive table entry 10ES DINZ PULSEA s#inteh pattern
060A LD B,oan tempo time - cours 3 BLOOP2 PUSH’ BC te course count 0600 LD Boon itempo time ~ ¢ine 10FE LLOOP2 DINZ LLOOP2 jpause fine t
en Por RC Jretreive cour 10Fe DINZ BLOOPZ ce RET Boce TABLES bing to addresses in f attribute ile of ' graphica for tone S BOC? - ROK TABLE2 Ieame as above but ¢or 1 tone z BOE? = BLOe TABLEL feame az above but for i tenet BLO7 = Bi26 TABLEO seame am above but for F tone 0 Bizz os MODE = DEFB O1h Fvariable for mode NOTE: Au onty the pattern tor Tone 3 has 26 graphic tocations, dumay locations have been provided in the other tables to bring thetr total up to 6. This of¢ rt of attribute ¢ile
points to the Printer Butter,
The Sount of 16 for all Tones wae to produce « gimpler code
on fOr maintaining « and to Provide a similar timing for diuptaying ali ton
TIME DESIGNS MAGAZINE
Subscribe Today!
ONLY $15 year
SIX ISSUES
’ NEW SUBSCRIBER c RENEWAL
Your expiration date can be found on the shipping label. EXAMP Sep/86 = September/Octoder 1986--your last i We also send one renewal notice just in case you to do so. Keep TOM coming to your door!
BU PEMS Bd ae 0S Oe LR 11
I] ' f | B (check one) 5 a | |
Low i @ Resdiurion
CofJuassus
Scroiting Banner Pregram
wetcome
EArome f=
rivs TheSu
dusr married mts
‘a peytla
COLOSSUS js a graphics-banner program. Now you can mix banner-size TEXT with banner-size graphic PICTURES. Route your graphic banner to the 2040 thermal printer or a full size printer (you must supply your own customized Zprint-80 printer driver code.) Specifications: Banner size: 24 rows x 1024 continuows columns G2 screens long!)
Font Types: Standart Modem, Italics, Bold, Load Font (Chancery included)
Font Size: 8 x, 16 x, and 24 x normal
Functions: Scroll Forward / Backward Insert/ Delete Columns Insert/Delete Rows Copy/Brase Segment Load/Save Banner Data 32 Screen, Low Res Animation
Output: 2040 Printer
Pull Size Printer (Z-Print $0 printer driver required!) (Print from any column’)
Get your copy of Colossus (only $19.95 ppd!) from:
Lemke Software Development 2144 White Oak Wichita, KS 67207
DON'T MISS OUR GIANT ANNIVERSARY ISSUE NOV/DEC 86
TIME BeIIGAY
Send Check or M/O To: TIME DESIGNS MAGAZINE CO. 29722 Hult Rd __ Colton, OR 97017
Name ease pi
Address
City
Zip eS ST A
y v ¢h \+ yyw ae)
\
oo Pe
Mhat if Michelangelo and Leonardo da Yinci had owned some good graphics software? Would they have utilized a computer for their creative efforts? Would the Sistine Chapel be covered with fanfold paper? Would the Mona Lisa be stored as electrons ona disk instead of pigment on a canvas?
Those gentlemen were the masters of their media.
Unless you have a comparable skill with pallette and paint brush, maybe you'd better rely on joystick and keyboard. PIXEL SKETCH And GRAPHICS EDITOR Version 2.0 employs both.
PS/GE lets you create, edit, and label original graphics and modify, merge, and analyze existing screens with electronic tools. Some of the editing functions on PS/GE are found in Apple graphics software like Mouse Paint and Dazzle Draw. PS/GE even provides some func~- tions the 128K Dazzle Draw doesn't include.
PS/GE operates in three somewhat compatible modes: standard color, extended color, and high resolution. Mode can be selected once the program has loaded. The standard color and extended color modes can be elec- tronically switched at will while you're working with PS/GE. The high resolution mode must be maintained once it is selected.
In the standard color mode, one ink color and paper color are allowed in each 8 pixel character position. The brightness and butes may be on or off.
In the extended color mode, PS/GE creates eight “elements” within each character position, Each element is 1 pixel high by 8 pixels wide. One ink and one paper color and one bright and one flash attribute are per- mitted in each of these elements.
One screen character could thus be printed with 8 ink and 8 paper colors with alternating bright and/or flashing horizontal elements. In this mode it's possible to create new colors on the screen by juxtaposing the appropriate ink and paper colors. The manual suggests using red ink on green paper to make brown,
The high resolution mode amazes me. Although the hardware limits you to one ink and one paper color on the screen at any time, the software extracts the finest detail possible from the T/S 2068: 512 pixel horizontal resolution, All three modes offer the standard 176 pixel vertical resolution.
The incompatibility between modes is seen in the input and output routines. A standard mode picture is saved or laoaded as a standard SCREENS: 6912 bytes at address 16384. An extended color graphic is saved or loaded as two files, each having 6912 bytes. One file at 16384 holds ink (pixel) and paper (no pixel) data. A second file at 24576 stores extended color and attribute data.
A high resolution display also saves or two files. They extend the identical length and reside at the same starting addresses as an extended color screen, The first records the odd number column data; the second, the even number column data, The program tape includes a utility, PS/GE-32/64, which will convert one or two standard mode screens into a high resolution screen, (The listing for this utility appears in the March/April 86 TDM.)
If you've ever used MacPaint or 4 MacIntosh or Mouse Paint on an Apple II, you'll be right at home with PS/GE. Although the former programs employ a mouse for
one by 8 pixel flashing attri-
loads as
input instead of a joystick, they offer nearly the same drawing, text, and editing functions. The drawing functions of PS/GE are as follows:
SOFTWARE PIXEL SKETCH And GRAPHICS EDITOR Version 2.0
Reviewed by Duncan Teague
fonts: Standard & Chancery, and uses 3 modifiers: Bold Bosd Modern Mogern and Stair IPRS
P z + rz : : Mona Lisa courtesy of “Art For All Ages” Conion for Games to Learn By. 1
screen, mirror {waged half, block-erased, Then I added
by R. loaded the block-copied, and the text balloon
1, Plot and Erase (free hand sketching and erasing); 2. Draw (disconnected) and Connect (-ed straight lines); 3. Circles; 4. Draw Arcs; 5. Fill/Shade (with textured parteraels 6. Paint (with solid colors); 7. Text (label- ing).
The ink and paper color and the flash and bright attributes can be changed at will. Cursor speed can be adjusted from moving one pixel at at time to four times that rate. Cursor speed could be further changed by altering the program listing.
The plot (sketch) command is controlled by the fire button on the joystick. The joystick is also used to select other functions from a menu screen accessed by pressing the ENTER key, Keyboard commands can also change the cursor speed and activate the erase function without having to leave the drawing screen.
Two status lines at the bottom of the screen vide a constant readout of the cursor's wether the plot and/or erase functions are in cursor's coordinates are important to know. PS/GE‘s editing functions operate optimally only when the edges of drawn figures coincide with the normal character position boundaries. I'1] explain later.
The text you use to label your creation can be the ordinary system font, or you may load an additional font from the program tape. The extra font is called “Chan- cery”. It looks like it flows from a calligrapher's pen. You can alter ejther font from the menu. You may choose bold, modern, and italic versions of either the system font or the Chancery font at any time,
The editing functions of PS/GE are operated an adjustable, but not elastic, window. PS/GE's window moves 8 pixels at a time, Window boundaries are always aligned with the edges of the normal screen character rows and columns. If a portion of an area to be edited extends beyond a normal character row or column, the editing window must be large enough to extend to the next row or column boundary.
Here isa list of PS/GE's window editing func- tions: 1. Block Copy (cut and paste); 2. Block Erase;
pro- position, use. The Most of
within
3. Block Rotate (90 degrees clockwise); 4. Mirror Image {horizontal only); 5. Inverse (exchange ink/paper); 6. Wide View (shrink); 7. Zoom (enlarge); 8. Digitize
(analyze like a UDG-help create sprites?!); 9. Merge (a portion of one screen with another).
12
Mirror Image Butter fiy
Orawn with PS/CE 2.0 The butterfly is ay own drawing using PS/GE. 1
created the left side, filled and painted, and
then mirror imaged it, Then I added the text. When you select any of these functions from the menu, a window appears on the drawing screen. The
window's size can be adjusted in one dimension at a time by using the unshifted arrow keys. The “S" and "L" keys will make the window smaller or larger by changing its height and width simultaneously. The joystick places the window in the appropriate position.
After using any of the editing functions, you'll have @ chance to reconsider. A "SAVE?" prompt will appear, and you may “undo" the last procedure by re- sponding with any key except "Y". The drawing functions, except Plot, Erase, and Text, can also be undone.
Hard copy can be obtained of any screen in any mode. Only the ink/paper pattern is reproduced. Colors are not represented by different dot patterns as in Tascopy or Z-Print 80. The screen can be printed on the 2040 printer or in small and large sizes on 80-column printers,
If you want to use an 80 column printer, you'll be- come more familiar with your printer's manual than you used to be. You'll need to know how to adjust the line feed pitch and how to send the appropriate commands for bit graphics.
My printer has to know how may bytes will follow the bit graphic command. The correct number for my C. Itoh 8510 is 256 in the standard color mode, and 512 in the high resolution mode. Those numbers had to be doubled for the large printout.
To make the large printout of a high resolution mode screen (1024 bytes per line), fit on my printer paper, I had to set the printer's DIP switches for pro-
portional characters. This gives a print density of 1280
dots per 8-inch line, slightly more than required for this mode,
If your bit graphics mode prints each line upside down, as mine did, there's a simple solution, Alter the
programs's machine code with the following POKE's, which are courtesy of program developer Stan Lemke:
Memory Old New
Address Value Value
42919 Bap A93 e223 24k 20 opm 24793 eae, 4a 128 62766 148128 AERCO FO-68 owners will easily be able to convert PS/GE to disk. The utility for converting standard screens into high resolution screens is another matter.
PS/GE~32/64 uses OUT 255,0 and OUT 255,54 to alternate between 32 and 64 column modes. The FD-68's OUT 244,1 command interferes. Disk access must be switched off with OUT 244,0 before performing the conversion pro- cess. Loading two screens is much more difficult. I used short machine code routines to store one at 40000 and then recall it for conversion,
I really enjoyed using PS/GE. Cursor movement is slow, especially across the 512 pixel-wide high res screen, but the sophisticated editing functions surpass those of any other T/S 2068 graphics program I own, The functions for creating and editing screen segments, merging one screen with another, converting standard mode screens to high resolution screen, and printing out with excellent dot density exceed my present ability to exploit them, But I'm learning. My joystick finally has something to do besides play games.
PIXEL SKETCH And GRAPHICS EDITOR Version 2.0 is available from Lemke Software Development, 2144 White Oak, Wichita, KS 67207. The T/S 2068 program comes on a cassette with users manual for $19.95 ppd. A joystick is required.
TIMACHINE — A BASIC Compiler
Reviewed by Michael E, Carver
Deja vu! That was my first thought upon opening the large envelope from editor Tim Woods, Let's take a trip via H.G. Well's time machine by setting the controls to travel back in time one year. Exactly one year ago, I was asked to review a BASIC compiler for the T/S 2068 called ZIP (Sept/Oct '85 issue of TOM). Back to the present! I now have the task of reviewing a new BASIC compiler for both the 2068 and Spectrum (two different versions on the same tape), It's called TIMACHINE.
First, a short review, BASIC is the resident ROM language in the Sinclair machines. BASIC is @ language we humans can easily use to make the computer and its processor perform a desired task, and is a fairly effortless language to learn and use. It is also a fairly forgiving language, especially with the help of Sinclair syntax and error checking. The trade-off for this simplicity is a lack of speed and flexibility. The actual resident language of the Z80A CPU (the main brain of the Sinclair machines) is machine code, also known as assembly language. This "language" is composed of about 50 different instructions, though most have many vari-
ations. The advantages of machine code include fast execution, efficient use of memory, and freedom from the dictates of the Operating System, The other side of this coin are the following disadvantages: programs are hard to understand and follow, a simple manipulation of data may involve many complicated steps, real-number calcu- lations can be difficult and it can be very unforgiving. Programming in machine code can involve extensive study of the machine, books and tables, developing tools (assemblers and monitors), and, of course, patience.
Enter the BASIC compiler, which attempts to marry the advantages of both BASIC and machine code, while trying to avoid their drawbacks. TIMACHINE is the best compiler I have seen to date for the Sinclair 280 machines. Timachine will compile virtually all of the Sinclair BASIC commands inte a much speedier program. This compiler is quite different from others I have seen ‘in both speed and versatility, Where many compilers only allow the use of integers (whole numbers from -32768 to 32767 or 0 to 65535), Timachine will aliow the use of real numbers (decimals and numbers far larger or smaller
Now at last...
The FootePrint Printer Interface
The FootePrint Printer Interface was originally described in the January-March 1985 issues of SUM Magazine. Now improved and professionally built, it is available direct from the designer! FootePrint plugs into the cartridge slot of the TS-2068 and works with both Tasman (Band C) and Aerco print driver software. Just load the software and print. No POKES required. No modifications.
* for Centronics parallel printers @ plugs into cartridge dock—door completely ¢ works in both 2068 and Spectrum mode closes with cable running back under computer * compatible with OS-64 & Spectrum emulators © frees up rear edge connector allowing other
peripherals to be used; less chance of a crash S EPROMisocket. end on/off. switch onlboard @ print driver software for LPRINT, LLIST, and * requires no modifications to computer COPY included for 2068 and Spectrum modes
FootePrint Interface w/software & cable -. $45°° postpaid FootePrint with OS-64 option included . - $65°° postpaid Bare board & instructions only $15°° postpaid Cable only for use with bare board $15°° postpaid
All prices are pre-paid and include shipping charges. Florida residents must add 5% state sales tax.
FOOTE %%, SOFTWARE P. O. Box 14655 — Gainesville, FL 32604 904/462-1086 (6 pm - 9 pm EDT)
Ee Se eee EEE EEEEECEEEEEECCEELEECEELEEEEFEEEREEEEEFEEEEEELELEELEELEEECEELELELEL
eee. DUAGEOM OF FMI wee A MULTI-LEVEL MAZE ADVENTURE GAKE by Fred Nachbaur (031936
FOR THE TIMEX TS1500e
FINALLY! @ FULL~FEATURE, HIGH RESOLUTION DUNGEON GAME FOR THE TS1S580!
This 24K game, written entirely in machine-code, is the most spectacular program 5
ever written for the TSI5@0. Nine levels, 16 types of monsters, 14 objects, six
spells. Easy to play, difficult to master. Includes FAST-SAVE with auto-boot to
save in-progress games: time to load entire program reduced to 7@ seconds! tr
Revolutionary TRUE HI-RES pute your TS15@@ on a par with much larger machines. $ m %
Send $24.95 (cheque or MO) to FRED NACHBAUR, C-12 MTN. STN, GROUP BOX, NELSON BC V1L SP1 CANADA. Specify version: Vi (TS15@6 + BK Hunter NVM or equivalent) or V2 <TS1S@@ + 16K RAM pack). V2 requires a minor hardware addition (included). COMING SOON: V3 for 2X81/TS1668. Inquire. *** ALSO AVAILABLE: TS156@ HI*RES EXTENDED BASIC ($16.95)
eorearia atria a aa
oe A AWCIT-LEVCL MAZE ADPCATURE CANE by Fred Rachbanr (C1486 | GC) o |
VE abe
Joe HC encowater sinh strange Air cs
iy ARTWORK Pricer timo PSTCATC LAMPL LGR IN THIS AD oe TROCERCEC | i ~ CHLST OF RTSTCRT FROM ACTUAL fof suverarne} stecere ereaun ft ELLER Cocknence | 1905 BATTLE-BAT a TLT €eny cau Ske TE aeester attacss,
Y CONTROLS oe
ig:
| pereal¢
Ce Ea dicdieaae ve wrt ad BES RET Ce rain iene a uae URES REE LREEGRUVREEA AGREE WHERE AURREEAEERY URE HU REL FHREELRNREBLANGE LR E
x his Saga. Tow must = nm emer ALA aay Beet Monnet al ear serea geste : aa 2 HHL ORACLEY perhups ke'AU heap Joey perhars Ff ‘O}
q mst riart (0 tae att
than 16-bit aumbers). There are also floating-point (or real number) compilers available for the Spectrum, but unlike Ti- machine, can not compile both integers and real numbers, and run only 3 to 5 times faster. Timachine allows the user to” specify which numbers are to be real or integers, thus greatly speeding up performance when doing integer mathematics,
Unlike other compilers, Timachine also allows string arrays and defined functions and 2-dimenstoned arrays, along with many other commonly used BASIC commands, Because it allows floating- point mathematics, one can also compile trigonometry functions (TAN, COS, ACS, SIN, ect.). In fact, according to the manual, Timachine will support all but the following BASIC commands: CLEAR, CONTINUE, ERASE, FORMAT, LIST, LLIST, LOAD, MERGE, MOVE, WEW, RESET, RUN, SAVE, VERIFY, FREE, ON ERR, and VALS. A few other commands may have sone limitations connected with them. (e.g.; RESTORE, GOTO, and GOSUB must be followed with a valid line number and not an expression or variable; an array can only be dimensioned to one set length; a defined string variable may not be later dimensioned; YAL A$ is not supported.)
Speaking of the manual, I must compliment Novelsoft and Cameron Hayne (the author of the manual and program) for pro- viding an extensive and easy-to-follow manual. The manual con- tains 52 pages of excellent step-by-step tutorials (sample programs included on tape), thorough explanations of commands and directives (even explaining how to obtain certain Sinclair Keywords), detailed notes on how the compiled code handles certain BASIC instructions, clear and helpful hints, definitions of Error Messages, a list of helpful POKEs, a memory map, and a Vist of the runtime: routines.
Timachine is loaded into the memory location normally re- served for BASIC (right after the system variables) with the norma) 2068/Spectrum memory map shifted upwards to allow for BASIC programs. There is approximately 27k available for a BASIC program (30k on the Spectrum), Once loaded into the computer, Timachine is completely transparent. One can LOAD or type in a BASIC program and RUN it as if Timachine was not in memory. Ti- machine is accessed through direct commands prefaced by an asterisk, "*” (e.9.; [+] will compile a BASIC program). In fact, the only time Timachine makes itself apparent (except for less available memory) ts when the trace (an fnterrupt-driven pro- gram) is on, While running a BASIC program, the trace will log
26668 KEYBOARD OVERLAYS
QUICKEY” 2068
Order Fours Topay!
Put commands at your fingertips!
Parable glossy, smudge free plastic stock cut to fit your keyboard.
fvatlable For: TASWORD/TASPRINT,NSCRIFT, rev, NSCRIPT ¥. 5.8, OMNICALC IT, FIGHTER PILOT, KEY IDENTIFIER, and a BLANK overlay to customize your special software,
Only $6,95 cach,including postage & handling.
Send check or Money Order to:
AN-TO PRODUCTIONS 9009 WH. Elm Street, #2 Phoenix, firizona BS037
and type the program variables every 1/60th of a second (1/S0th on the Spectrum) and provide a listing of the variables with their type (i.e.; real, integer or positive integer) and the length of string variables. This is a very helpful tool, There is a limit of 255 simple numeric variables, whose name can be any length and the standard number of string variables.
Directives to the compiler (instructions) are included in the actual BASIC program in REM statements with an exclamation point, "!", following the REM (e.g.; 10 REM 1 OPEN # will start Compiling at this point). Some of these directives are instruc- tions on where to halt or re-start compiling (allowing access to BASIC or ones own machine code routines), maximum Jength alloted to a string variable, and setting types of numeric variables (i.e.; real, integer, ect.). One can direct a listing of the addresses for the runtime routines and the machine code variables used by the compiled program, Also, a listing of the execution addresses for individual compiled BASIC Tines can de obtained. Once can specify the address at which the compiled code will reside, giving flexibility in locating ones own machine code or BASIC routines.
Learning to use Timachine 4s simple, but practice and study is needed if one plans to master its uses. Simple BASIC programs are easily compiled into fast-running programs. An understanding of real numbers and integers is needed to obtain maximum and exact results. When real numbers interact with integers, in- teresting, but usually unintended, results can occur. While testing Timachine, I used varfous BASIC programs I had already Geveloped and debugged. During the first pass, Timachine checks the BASIC for any unsupported BASIC commands and provides clear Error Messages displaying the offending BASIC Tine, usually with a flashing "2" cursor marking the part in question. The next pass is a dry run to fix the amount of memory needed for the final version and check for destination addresses for GOTO, G0- SUB, ect. commands. The last pass is the actual creation of the machine code. The user is provided with information on the length of the compiled code, amount of memory allocated for variables, length of the BASIC program, and instructions on how to SAVE, LOAD and run the compiled code. This complete com- pilation process fs quite speedy. Timachine compiled the demo Program included with the ZIP compiler in 9 seconds compared to the 31 minutes taken by ZIP (see Sept/Oct ‘85 TOM, pp. 18-19). I was able to compile most of my test programs satisfactorily, with only minor modifications to the BASIC. However, the one larger and complicated of the BASIC programs proved to be too convoluted to simply modify. 1 did not have time to fully test this program, but feel it would require a major reworking to obtain proper results via Timachine. If the program had origi- nally been written with Timachine fn mind, I see no reason it could not be easily compiled.
As the compiled code is in machine code, it can be unfor- Siving and provide undesired results. In BASIC, "PRINT HS (x)" will print HS(1) if x=.5, where the compiled version will attempt to print H$(0). Another problem I encountered dealt with FOR/NEXT oops. In BASIC, one can leave a FOR/MEXT loop, jump into the middie of another FOR/NEXT loop using the same variable and upon execution of NEXT (X), resume operation at the start of the second loop. However, in machine code the continuation is at the start of the first loop. There are many runtimes (machine code routines used by the compiled version to execute selected operations) which use extensive ROM routines. This allows for simple conversion and efficient use of memory, but can slow down performance. Khen these runtimes are used, the improvement in speed 1s slight, (e.9.; CIRCLE, DRAK, COS, ect.). It is up to the user to develop a BASIC program that will utilize a more efficient compiled version. This will come with practice and ex- perfence, though knowledge of machine code will be helpful. One can use Timachine as a tutor on how to write their own machine Code utilizing ROM resident routines.
Timachine is the most comprehensive, flexible compiler 1 have seen for the Spectrum or TS 2068. It is always a pleasure to encounter a program of this class, and I must applaud Cameron Hayne for obtaining so much from our hunble Sinclairs. Depending on the programming skills of the user, one can compile fast and efficient machine code programs, though not necessarily using less memory. It is a program that will allow the novice BASIC Programmer some degree of success, while allowing the more ex= perienced programmer greater flexibility. One should not expect to produce amazingly impossible feats from this product, as these usually come from direct manipulation of the processor via ones own machine code. One will be able to produce effects that are available in BASIC, but a speeds that will greatly enhance them. In last year's review of ZIP, I stated that one should choose a compiler based on its limitations. Kell, Timachine has few limitations and {s a quick and comfortable program to use. WHT] this be the “last word" in compilers? I don't know. Let's set our “time machine” for one year into the future...
TIMACHINE is avatlabie for $19.95 + $3.00 S&H (U.S.) from Novelsoft, 105 Seventh Street, Toronto, Ontario, Canada MBY 384, $16/259-8662,
LARKEN TS1000 Disk Drive Interface
sean w
The of k
has areal live
it at my door he package wrapp
or losing that program you just speat the last 3 hours typing in
f the “8 minute save),
board a x6 inches, _ nterface $s available from Carken
drive, © for connect Canada K48 149. Phone: 613/
th 4d $5 for Irive versi an
and foun at ge your ming later}.
5 ‘ 3 a hackers des. =" * routines the BS =
ZX-CALC + R.F.R.G.
Reviewed by D. Hutchinson
readsheet, and at nd handling), it pre
flexible sprea t I'v
aversion ava e for
noylvania Ave., bsaes
adsheet , that it does ak ul c a lot of ¥ fact kis a must. Al . 3 is ) ter. p ¢ to ha lot of rolls of the
“More About...The Mystery of the Missing 253”
by Wes Brzozowski
THE GREETID
Welcome back to another episode, as we try to unravel a few more clues about the Extended Bank’ Switching for the Timex Sinclair 2068, This time, we'll be getting heavily involved in how the bank switching hardware would have worked, making this installment the most complicated of the series, But this article will cover a lot of subjects, and {f one item seems hazy, just Skip it and move on to the next. With sone rereading, things WILL get clearer, so don't get discouraged. And don't forget that the order that's easiest for YOU to learn these things, may be different from that of others. Keep rereading, and learn in your own way.
Since this kind of information hasn't been published else~ where, I’ve had to invent my own notation for a lot of things. These were covered in Part 1, but if you've missed it, you can still get the back issue--July/August 1986 for $3.00 ‘from TIME DESIGNS MAGAZINE.
This paragraph is for those who may have written or called me with information/advice/questions. If {t appears that I'm ignoring you in this column, I must beg you to remain patient. Most of this second installment will have been written before Part 1 has even been put into print (publication delays, you know). As such, there's a good chance you'll have “missed” being
mentioned in this installment. But rest assured that I do appreciate your interest, and WILL get to you in Part 3. Some of you who've been looking up my page references for
the TS2068 Technical Manual have probably been a bit befuddled. If you bought your manual from Timex, everything will be fine. However, the new version from TOM has the pages re-numbered bit, and the page numbers I gave last time won't quite match up. I wasn't aware of this when | wrote Part 1, and will give the section numbers instead, from now on. I hope no one was incon- venienced by this. In order to accomodate everyone, let's define yet another notation. Fron here on, Technical Manual references will be abbreviated. The expression “TM3,3.2"” would then refer to section 3.3.2 of the TS2068 Technical Manual.
By the way, I do hope no one is grumbling because of the renumbering trick, In doing this, our good friends at Time Designs have been able to reduce the total number of pages in the manual, and so perhaps they can avoid actually losing money on the venture,
And now, on to the good stuff!
A (NOT SQ) OF THE
QUICK DESCRIPTION RAM RESIDENT CODE
Let's first turn to page 255 of the User's Manual that came with your T$2068, The memory layout shows two blocks called the Utility Function Dispatcher, and the Bank Switching Code. They originally come out of the EXROM, and are copied to RAM during the computer's power-on initfalization. The two memory maps on page 254 refer to these as “RAM Resident Code", and show that they may reside in two possible memory locations. To make this easier, the EXRON contains a routine that can relocate the code for us. Hell, almost. The “relocator" fouls up on a couple of routines when it moves them to high memory, We'll discuss how to fix these in a future installnent. Nevertheless, a short look at them now will make other things easier for us’ to understand,
The function dispatcher is a prime example of the right pow in the wrong church. In most computers, CALLing ROM routines directly through their memory addresses is consfdered about as civilized as blowing one's nose on the tablecloth. This is be- cause later ROM versions may change the locations of the sub- routines, rendering your programs unworkable. This was precisely what happened when Sinclair changed the RON on the early ZX81s, (If you remember this, you're a true “old timer".)
The “proper” way to get at ROM routines is to pass up your CALLs through an “Operating System” that can find the routines, no matter what ROM version is in place. This wouldn't give you
access to all of the ROM, however, and so requires an extra measure of programming discipline. Is it worth it? Only when handled property and consist-
ently. A very similar kind of discipline
allows many programs
that run on a “plain vanilla" 16M PC to also run on the PC Jr, and the PC-AT, which are all radically different from one another, from their disk systems, right down to their ROMs, It also allows the programs to run on the “PC Clones", that have VERY different ROMs in them. While this programming discipline means a bit more work, it has great advantages.
The TS2068 Function Dispatcher is a scaled down attempt mimic this portion of an operating system. As mentioned time, it's likely that at least someone at Timex hoped to re- write the ROMS, The Function Dispatcher may have been a way to insure software compatability. By sending a “function number” to the dispatcher, the proper routine can be accessed. It also contains presently unused abilities to pass and receive data from the routines it controls. Those future ROMs may well have tapped this ability. Note that 1M3.3.2 contains a reference to “the original TS2068" (as it describes OUR machines). Follow-on machines were certainly planned,
But we Timex enthusiasts, ever the unruly totally ignored the Function Dispatcher, happily CALLing anywhere we liked, While the Function Dispatcher might make {ft easfer to get at the ROM if we were running in one of the (presently non= existent) expansion banks, it's otherwise fairly useless.
We would only use the Function Dispatcher to protect our Programs against ROM address changes. But instead, no one uses it, and no one is protected. Therefore, no one will market a ROM or EPROM with address changes, because precious little software will run on it. And therefore, we needn't worry about ROM changes, and can CALL the ROM to our heart's content. It was a noble thought, Timex, but it was a bit like trying to domesti- cate a mongoose,
The block called the Function Dispatcher also contains some code that allows the maskable interrupt to work properly when the EXROM is switched in. It will also work with expansion banks, if they have a copy of the code at X0038 at their own location 0038, (The initialization code was supposed to copy this code into RAM expansion banks~-unfortunately, it misses a byte, and anyway errantly tries to copy from the RAM bank to the EYROM; a truly useless exercise.) The interrupt code makes considerable use of the rest of the RAM Resident Code to manage the necessary bank switching,
Following this, almost as an afterthought, is a copy of the NMI handler at Home ROM location 0066, This inclusion is some- what perplexing, as the Home RON already has it, the EXROM doesn't link to ft, t's short enough to be easily included in any expansion bank, and it doesn't work, anyway. The widely publicized NMI bug, first seen in the Spectrum and perpetuated ‘in the TS2063 Home ROM has been faithfully copied here. There may be some subtle reason for the NMI handler to be there, but it’s more likely that a Timex programmer, feeling the pressure of overdue schedules, included it without actually understanding it, At best, it reserves space for some proper code te be put later, but to us it's fourteen orphan bytes of code that are NEVER used.
Following the Function Dispatcher is the Bank Switching Code, which will be quite useful in this series. This code is a bare-bones memory manager which, with a little bit of extra flesh (and a lot of debugging), would shield us from the “hard= ware realities” of bank switching. Khile it's fairly easy to write our own machine code to switch the standard banks, the expansion banks are another thing altogether. But dy always using the Bank Switching Code, we should never have been able to
to last
lot,
tell the difference. The code contains portions to do standard bank switching, portions to access the expansion hardware, and enough “smarts” to know when to do either. As such, bank
switching is changed from an occasional migrane to minor irritation.
Ironically, it would be better to describe the
a constant
“useful
1]————____——_-
stuff” next time, when we'll be concentrating almost completely on the system software. But as a quick description, the code allows us to switch banks, move bytes between banks, find out which banks own which chunks, do the equivalent of CALL and JP functions to other banks, and other necessary niceties. Flow- chart 2 (which we'll discuss next time), shows how the BANK_ ENABLE routine works, This does the actual bank switching for doth standard and expansion banks, and after we've scen how the hardware would probably have worked, you can check the flowchart for an example of how the hardware and software mesh together.
As has been said, this code could have resided at two different locations, Normally, it starts at location 6200, but it can be relocated to F9CO. There are several reasons for this.
Tf we want to add code into the RAM, there are two basic places to put ft and not interfere with a BASIC program being entered. One is above RAMTOP. This is so easy to do thet it's the location of choice for most T/S programmers, Yet, it's almost as easy to clear a convenient memory nook down BELOW the BASIC program in memory.” The RAM Resident Code can do either,
Now, the Spectrum has no RAM Resident Code, lots of pro- grams for the Spectrum reside above RAMTOP, and the folks at Timex made a reasonable effort to convert Spectrum programs for the TS2068. (Almost ALL programs Timex released were first sold for the Spectrum.) As such, the low memory spot is preferable, as it avoids memory conflicts. This is, {n fact, where we usually find the code,
Unfortunately, the convenient low memory area is right in the middle of the space used by the second display file for the extended display modes. There are hardware reasons for this. Some of these allow both display files to reside in just two memory chips, which must be faster (and hence, more expensive) than the rest, Also, the exact location of the second display file should have allowed them to enploy some little used proper- ties of dynamic RAMs to squeeze some extra speed out of them, when reading them for display data, Therefore, when the second display file is being used, the code is moved'to the less pre- ferable (from the designer's viewpoint) location above RAMTOP,
By the way, when you're ‘switching chunks in and out, it's always necessary to have at Teast one RAM chunk available, to hold the machine stack. It's needed, among other things, to aake CALL and RET commands work, and they work so well that we often forget about the stack altogether, The good folks at Timex sought to help us out in this regard, by moving the stack along with the RAM Resident Code. Since this code must be available,
ST CLASS MAGAZINE nagagine on opsactte 3% 206
for the TS2668. No
longer will you have
to type in long
oe fastidious programs, dus load and runt?
BYTE POWER is the ultimate Magazine for the TS2068. Each cassette is full of programs, a real TS2068 owner’s drean,.
BYTE POWER is a software based magazine with over @ prograns per year, most of then in machine language.
And all that for...
LESS THAN 39 cents A PROGRAM (based on 1 year subscription?) Plus you get reviews on Software orp Hardware for your TS2668 and
tips on how to program better.
a2 Issue $5.50 6 Months <6 issues) $29.99 4 Year C12 issues) $493.99 18 Months 18 issues) $69.99 2 Years C24 issues) $893.99 All prices in U.S. currency.
SEND CHECK OR MONEY ORDER TO:
BYTE POWER
1748 MEADOWVIEN AVENUE PICKERING, ONTARIO, CANADA L1¥ 368
the stack always remains available with it, and we can happily forget about it, once more. The only disadvantage {s that the stack size becomes limited (they allow us 512 bytes, or 256 entries). This fs normally not a problem,
The ability to have the RAM Resident Code in two different locations has another advantage. Although the TSZ068 only moves code to high memory when the second display file is active, you can move it (and the stack) there yourself. If you can choose to run it fn either chunk 3 or 7, you don't have to tie up one of your precious eight chunks just to keep the RAM Resident Code available to you, Simply switch back and forth to whatever chunk your own code isn't using at the moment. (Of course, you'll have to keep track of where the RAM resident code IS, in any given situation.) Also, if you should return control to the 152068 ROM, you'd do well to put the RAM Resident Code back where the computer expects to find it.
ONWARD, INTO THE PAST
Last time, we looked at how to read and write to the bank switching registers in the extended bank switching hardware. We then saw a quick summary of what the registers did, with a promise to explain them in detail, this time.
To recap, there are four input and four output registers, which correspond to four memory-mapped I/O locations. We cal? the registers CO, AO, 80, and 40, and they sometimes are Jinked to memory locations C000, A000, 8000, and 4000, respectively.
Each expansion bank has its own register set. khen we write to certain registers, every bank will “pick up” the information. In other cases, when we write to a register, the information goes only to a selected bank.
To further complicate things, only writing to some “reg- isters” will actually cause data to be put in a conventional register. In other cases, it may only change certain bits in a register, or not go into any hardware register at all! The “gank Switching Registers" forma motley crew of circuit functions that are as different from one another as the Marx Brothers, and are just es wild when we put them together.
Figure 1 is a block diagram of a “generic” bank switching SCLO. Note that in reality, a RAM bank SCLO would have included memory refresh and address multiplexing circuitry, for dynamic RAMs. A ROM bank SCLO would have a set of chip enable signals. But the figure does contain all of the Bank Switching Registers, and these should be common to both SCLO types. It cna then be used to show how the bank switching scheme works. It also shows how the odd bank switching philosophy selected by Timex would have allowed the SCLD chip to go {nto an inexpensive package with 2 very small number of pins.
Note that this fs only a block dfagram, not a complete circuit layout. Also note that it's based entirely on an an- alysis of what the ROM software fs doing. If the designers at Timex intended additional functions not supported in the ori- gina} 152068 ROMs, we't] know nothing about them. Lastly, please note that the connection to the RESET signal is probably not what the Timex designers actually planned. It's included here to Suggest that there has to be some way to “disarm” all the hori- zontal select registers when the computer is first turned on. Otherwise they‘d start out filled with random bits, and numerous banks would al) try to “take over* the same memory chunks at power-on, with some very lively results, Actually, an odd bit of code in the initialization software suggests that each bank is “unlocked” after the Horizontal Select register fs disarmed through software. This suggests that the SCLD should also con- tain some power on "lock-up" circuitry to keep each bank out of mischief until the computer straightens it out. We'll talk about this more when we look at the software that actually uses it. (See Flowchart 3.)
As we said last time, register data is sent to the Ex- pansion Bank SCLOs one nybble at a time, to cut down on the number of SCLD pins. This means that the SCLO has to alternately steer the nyDbie into the right and left half of the byte it’s reconstructing, We also said that sending 02 to register CO will reset the nybble steering logic, just in case a noise pulse may have sent a “false nybble” out, messing up the steering of later nydbles.
But if this is all we do, it won't work. If the nybbles are not being read propely, then the 02 sent in to correct the problem won't get read either, This is why we said that the CO register must interpret the 02 command, even if the nybble synchronization is faulty. It also has to be able to interpret it if it's sent as only a SINGLE NYBBLE (just the 2), since that's how the routines READ BS REG and WRITE_BS REG send it.
A “proper” implementation Fequires atl of thTs, though it's a job to implement. Things get much simpler if we “bend the rules", just this once. Our little trick centers around the fact that all commands to the CO register have "0" as their most significant nybble, only the "02" command has data line D1 set,
and this command is only sent by the READ BS REG and WRITE BS_ REG routines, which send it in the single nybble version, only,
And so, if we agree NEVER to send the 02 command to reg- ister CO except in the single nybble version, the harcware will be much simpler. Any time we write to the CO register with the DI line set, the nybble steering logic is reset. The ROM code is completely agreeable to this trick, and so the good folks at Timex may wel] have had the same fdea. Figure 1 4s drawn to re- flect this simplification. Let's walk through it now.
The Tower 4 data lines come in at the top, flowing to the Nybble-To-Byte Converter. Every time the select logic detects that we're writing to a Bank Switching Register, it sends the NYBBLE CLOCK signal, allowing the Nybble-To-Byte Converter to accept the nybble, Whenever the select logic detects that we're writing to register CO with Di set, it sends the CO-RESET-NYBBLE signal, which resets the nybble steering logic.
The functions mentioned so far are common to every bank. This means that if you're building your own expansion banks, and are putting more than one bank on a single board, they can share this circuitry. (Just thought you'd like to know.)
The Kybble-To-Byte converter reconstructs the original byte we intended to send. Whenever the “second nybble" is written in, the select logic sends out another signal. If the nybble 15 written to register CO, then the signa] WR-CO is produced. When it goes to register AO, then the signal WR-AO is sent. Similar things happen for WR-80 and WR-40. Note that these signals must be timed so as not to occur until AFTER the Nybble-To- Byte converter has @ byte ready to present.
Using this scheme, when we write to register 80, our value ends up in the Bank Number Access block. This block may also be shared. This works because each bank has its own number. If we wish to change the Horizontal Select byte for a certain bank, we first write the bank number to register 80 (Bank Kumber Access) and then the Horizontal Select byte to register 40 (Horizontal Select). Only the Horizontal Select register for the bank we have “accessed” will be changed. The bits are high active; that is, if a bit contains a "1", then its corresponding chunk {s allocated to that bank.
Registers that cannot de shared have that property because they contain information that's unique to their own bank. As such, we'll refer to them as Unique Bank Registers, Those that can be shared will be called General Bank Registers. (Bank Number Access is General; Horizontal Select is Unique.)
A bank knows it's being accessed when the number in its Bank Number Access register matches another block called the Assigned Bank #. When they're equal, the 8-Bit Comparator sends the ACCESS-THIS-BANK=1 signal, which makes it possible to write to the Horizontal Select register, or to read from any of the four read-registers in that bank. The Assigned Bank # register is set froma write to register AO, but only under a very special situation that we'll call the “setup mode”. we'll discuss this in the section on the Daisy Chain. Ordinarily, writing to register AO does something very different.
When the system is in what we'll call the “normal mode“, 2 write to register AO sends the "Universal Deselect Byte” to ‘all expansion banks. This looks a bit like a Horizontal Select byte, but has important differences. Each bit represents a memory chunk, just like a Horizontal Select byte, but if a particular bit contains a zero, each Horizontal Select register will leave its corresponding bit alone. If 2 particular deselect bit con- tains a one, then if ANY Horizontal Select byte has a one in that location, it RESETS it. As such, the Universal Deselect byte tells al] banks which chunks they must give up.
So, if we want to give chunk 5 to expansion bank #07, we first make sure that the Dock and EXROM banks don't have it. (The BANK ENABLE routine would first give this chunk to the Hone Bank.) Then we send the hex value 20 (bit 5 set) to register AO. Now, if any expansion bank had chunk 5, it will have relin- quished it. Next, we send 07 (the bank number) to register 80 (Bank Number Access) and finally we send 20 (bit § set) to register 40 (Horizontal Select). We have now given chunk 5 to bank 07.
Unfortunately, in the above example, we've also wiped out whatever value was originally in the Horizontal Select register. (actually, even the BANK ENABLE routine acts this crudely for all but the Hone Bank.) Tf we wished to treat at least the Ex- pansion Banks with a bit more dignity, we could have first read its Horizontal Select register by sending 07 (the bank number) to register 80 (Bank Number Access) and then reading the regi- ster pair 80 and 40, (Remember, the READ BS REG routine reads PAIRS of registers.) We would then have The Horizontal Select byte as it had already been set for that bank. Ke could then have only changed bit 5, and any other chunk that was already selected for this bank, would remain selected.
It's also possfble to read the register patr CO and AQ, for the bank umber presently being accessed. While the ROM software reads this pair, it only looks at bit 2 of the resulting byte. This happens to be bit 2 of register AO, and every bank has this bit grounded. If we look at the TS2068 schematic, we see that
Great New
for the 2066 ~ by Lemke Software Development
Pixel Skeich and Graphics Edicor 2068 version 2.08 an update of the original PS/GE 2068 with the same powerful graphic editor capabilities: WINDOW COPY, ERASE, ROTATE, ZOOM, WIDE VIEW, PAINT SHADE/FILL, MIRROR IMAGE, IN. VERT, and DIGITIZE, MERGE parts of two screens into one screen. Full use of all TS 2068 attributes.
Pixei Sketch and Graphics Editor 2088 wes the ADVANCED VIDEO MODES for EXTENDED COLOR and Hi RESOLUTION ($12 ¥ 176) GRAPHICS. PS/GE 2068 sersion 2.0 is JOYSTICK controlled, MENU driven, EASY 10 use, and FUN. FREE- HAND draw and erase are 2 times faster now. “OOPS!” function helps wn-do errors. Compete 20" page user guide, NEW FUNCTIONS; CONNECT wil connect designated points together, CHANGE FONT activates STANDARD, BOLD, MODERN, and ITALICS set moditiers. Ate character set can be modified 10 get BOLD, MODERN or ITALICS versions of that character set. LOAD FONT allows the user to LOAD their own tavoske FONT. A sample font - CHANCER Y- is provided with the program. With CHANGE FONT you get BOLD CHANCERY. Pixel Sketch and Graphics Editor 2068 verson 2.0 is Tasman, Aerco, and A&J Mikrodrive CPt compatible in al of the 2068 video modes (Standard, Extended Color, and Hi Resolution). Compatible with most dot matric printers, Can access variable dot density function: of STAR and EPSON type printers to control page size and location’ Also 2040 type printer compatible. Get YOUR copy of: Piel Sketch and Graphies Editor 2068 version 2.0 {com LEMKE SOFTWARE DEVELOPMENT today! Only $19.95 ppd. (owners of the original PS/GE can send ariginal tape (pr o0f-of-purchase) and pay only $10.95). Send legat size SASE foe infor mation and a complete catattog of top quality programs. EXTRA: Now with your order you get FREE a 32 columa screen 1064 column (hi resolution) screen conversion utility Stogram. Can even combine 2 standard screens to make | hi retolution screent!
S D Lemke Lemke Software Development 2144 White Oak Wichita, KS 67207
D2 line (and ONLY the D2 line) has a 10K pullup resistor. As such, if we put a bank number in register 60 and then try to read that bank's CO and AO register pair, the resulting value will have bit 2-0 if the bank exists, and bit 2=1, if not. This function is used during system initialization to find out how many banks are actually plugged into the system.
If all of this looks like a programming nightmare, that's because it is, Don't forget though, that the initialization software and the RAM Resident Code wil? normally handle it all for us. The only people who really need to know how to directly program the expansion banks are those who plan to build their own, and have to know how to debug them.
Since the bank switching SCLD only uses address lines A13- ALS, there can only be a limited number of possible Bank Switch- ing Registers. These are EO, CO, AQ, 60, 60, 40, 20, and 00. Since only the top 3 bits are actually used, £0 would be the same as FO, or £7, for example. Each of these corresponds to a single memory chunk,
But the possibilities are even more limited than this. What we've said implies that reading a register happens when we read & memory location from its corresponding chunk, and the memory mapped 1/0 is enabled. But running machine code in that chunk also causes memory to be read. As such, code that can activate the memory-mapped 1/0 cannot run in a chunk that corresponds to any register. The only routines that ever access them are HRITE_ BS_REG and READ 8S_REG, which we walked through last time. Thesé routines are part Of the Bank Switching Code, and can be located in either chunks 3 or 7, so the corresponding registers £0 and 60 must not be implemented in hardware. (Nor should the Bank Switching Code be relocated outside of chunks 3. or 7!!!)
Also, {t's possible that.an interrupt could occur during the short time that these routines enable the memory-mapped 1/0. This would cause the keyboard routine in chunk 0 to be run be- fore returning, so register 00 cannot be implemented in hard- ware. This leaves register 20, which is not used, and has no apparent problem with being used. All of this’ is mentioned because, if you've implemented the necessary registers, it should be fairly easy to try to add more for your own use. This explanation (hopefully) shows that only register 20 is worthy of any consideration, whatsoever. But note that register 20 is com- parable to memory locations 2000-3FFF. If we totally forget about Using 20 as a new register, it would be possible for a ROM
19 Continued on page 22...
NEW PRODUCTS ANNOUNCEMENT
For TS2068 and SPECTRUM
Novelsoft announces a new dimension in capability for you 2068!
.. And it’s about time!
THE WORX! IS A SUITE OF PERSONAL ORGANIZATION PROGRAMS WHICH HELP YOU MAKE THE MOST EFFICIENT USE OF YOUR TIME AND THOUGHTS!
A unique combination of planning aids, decision tools, and utilities,
* Scheduler/Planner * Biorhythms
* Notepad * Perpetual Calendar
* Telephone Book * International Time Zones
* Programmable Calculator * Superb Manual
* Decision Factoring * Includes Spectrum & TS2068 * Real Time Clock Versions
* Supports Microdrives A TIMELY ADDITION TO YOUR SOFTWARE LIBRARY... THE WORX!
— $19.95 U.S. Plus $3.00 S & H
Novelfoft
A FORMAT FOR THE FUTURE
106 Seventh Street, Toronto, Ontario, Canada M8V 3B4 ¢ TEL. (416)259-8682 « CompuServe 70416,1435
NEW PRODUCTS ANNOUNCEMENT
For TS2068 and SPECTRUM
Novelsoft PROUDLY PRESENTS THE ALL NEW...
VERSION 1.1 * Pull-Down Menus * Auto-Speed Control © Includes Spectrum & TS2068 Versions * Several Brushes * Magnify & Reduce * Supports Microdrives and Kempston * Spray * Rotate & Mirror Joystick * Auto-Fill * Full Attribute Control * Includes GALLERY, the slide * Zoom * Fully Elastic Shapes including Circle, show/animator ¢ Undo Box, Triangle, Ray and Line * 5 Samples of Artwork * Several Text Fonts * Fast Ellipse and Are * Excellent Manual
* Cut & Paste Windows Unshackle your creativity with ... ARTWORX!! ARTWORX VI.1 - $19.95 U.S, plus $3,00 S$ & H
Novelsoft INTRODUCES THE REVOLUTIONARY NEW BASIC COMPILER... TIMAGHINE
The dream of every BASIC programmer has now been realized!
* TIMACHINE will turn your BASIC * Handles all BASIC except 1/0 into super-fast machine code, * Includes an excellent manual and running up to 200 times faster! 4 demonstration programs
* Handles floating point operations * Compiles up to 27K in seconds like SIN, COS, TAN * Includes Spectrum & 2068 versions
Super-Charge your BASIC programs with... TIMACHINE!
TIMACHINE — $19.95 U.S, Plus $3.00S & H
NovelSoft
A FORMAT FOR THE FUTURE
106 Seventh Street, Toronto, Ontario, Canada M8V 3B4 ¢ TEL. (416)259-8682 © CompuServe 70416,1435
bank with just a 16K EPROM to contain a completely new and graded version of the Bank Switching Code in those (The stack would have to go elsewhere.)
At the bottom of the diagram, we see a block called Chunk Select Logic. This compares bits Al3-15, which define which chunk is being accessed, and the Horizontal Select byte, which define which chunks the bank "owns". The use of I0A5 tells it. wether we're really accessing memory or just @ bank switching register. If the TS2068 is accessing one of this bank's chunks, then the ENABLE signal is sent out.
Note that this logic doesn't check MREQB. If the TS2068 isn't accessing memory, then the ENABLE signal may switch back and forth, but ft will do so harmlessly, since the memory select logic further downstream will sort it out. However, the address lines settle out @ full clock cycle before the PREQB Tine does, and so this buys us extra switching speed. This is needed be~ cause ENABLE is used directly to generate the BE signal, and this HAS to be applied fairly early on, but again is harmless if memory isn't being accessed. (Those of us who've used the BE line in our own projects learned this the hard way; it just seemed polite to pass it on to save anyone else the trouble.)
The ENABLE signal should be sent out if 10A5 is high and Al3-15 match the appropriate bit in the Horizontal Select Register. It also could optionally be sento out if I0AS is low, AL3-15 match the Horfzontal Select, and the chunk in question is 3 or 7. (This would let the READ BS REG and WRITE_BS_REG rou- tines run in an Expansion Bank without getting cut off in mid- instruction when they switch IAS. No, I don‘t know why you'd want to do this, but you may have some good fdeas that I don‘t.)
Figure 2 shows an entire expansion bank, including the SCLD we've just discussed. The BE signal is generated from the ENABLE Vine as an OPEN COLLECTOR signal, so that many banks can share the output. An alternate method in use in some products today to simulate a Spectrum Bus generates BE with a logic inversion and a blocking diode. This is also quite acceptable.
The Memory Decoding Logic will then decode the bank's memory as normal, except for one, or possibly two, additional constraints. For the first, memory is only enabled if ENABLE is active. The second possible constraint is based on educated speculation, but is still, admittedly, a bit of guesswork.
We know that the TS2068 is basically an enhanced Spectrum. Xnenever possible, Sinclair's design.was used, and Timex did announce that it would release its own version of the Sinclair Microdrives, This device uses its own crude version of bank
up- locations.
SPRITES 2068
FANTASTIC NEW PROGRAM! Exciting & Educational
You've heard of SPRITES. Explore the subject. Create Moving Displays and Games. Buy a copy for your TS-2068, they belong together.
FEATURES:
~ SPRITE SERVICE UTILITY (2520 Bytes IMPROVED professionally written machine cade) SPRITEDRAW Program (Great NEW program makes drawing a SPRITE both fun and easy) Operate from BASIC (Utilizes a Machine Code Interface. Twelve SPRITE Commands? Operate from Machine Language (VERY QUICK Screen Action! Bonus MCSPRITES program) Cassette Tape (Includes demonstrations and instructions. Menu driven. Fun to watch) Manual (34 pages written in "user friendly” style for all programmers)
Authors INTRODUCTORY SPECIAL Includes Postage To ORDER: Send Check or Money Order $19.00 To VERN TIDWELL OR RON RUEGG
1303 Whitehead St. 37529 Perkins Road Key West, FL 33040 Pratrieville,LA 70769 7k nave seen SPRITES 2080. 1 have rene it anc i have U
and I cannot say enough good about it if I had to up, I'd way that if you wi you NEEO
te ate Prreerreeresy SPRITES 2066.”
Dron pew
Bs Recisres seer at Have vrew ured. Fos cutiy ENABLE
The Feggests ane wy Got Empened He Bank
westaling Regia bane
switching, werein ft disables the Spectrum ROM and its own when the code in the Error Handler run.
The extended T2068 commands, Tike LOAD *, SAVE *, FORMAT, MOVE, and CAT are implemented in the ROM almost exactly like they're implemented in the Spectrum. That is, if you know the command format, you can type them into a line of BASIC, and the 52068 wil) accept them. However,. they're set so that when you try to RUN them, the error handler at location 0008 will be executed, The only way to make the commands work 13 to switch fn another ROM when the instruction is run at 0008, It must then check the cause of the “error”, and run an extended command, if one $s pending.
There are two ways to do this with Extended Bank Switching. He could define another special bank number (perhaps FO) which switches into chunk 0 when the instruction at location 0008 is executed. But every other expansion bank would have to contain the circuitry to check this, and switch themselves in and out, adding cost and complexity. Alternately, we could put the checking and switching circuitry only inside the microdrive in- terface, and give it 2 way to disable all banks when it switches in its un-numbered “Superbank".
The superbank method needs a signal that does to the ex- pansion banks what BE does to the Standard Banks. The TS2068 has 2 backplane signals that are named but not wired {nto the computer. These are DZIN, DZOUT, and BUSISO. Ke'll see in a minute that 0ZIN and OZOUT are needed elsewhere, so let's specu- Jate that BUSISO would have disabled the Expansion Banks. (I've heard mention that BUSISO was instead intended to tri-state U5 in the TS2068, but the schematic says it isn't wired to that chip. For the moment, let's consider this is an unreliable rumor, but I'd welcome any evidence to the contrary.)
Getting back to our memory decoding discussion, we may then guess that no memory would be enabled if BUSISO were active. The diagram shows a “Special Buffer” at the BUSISO line, because the lack of a “bar” over its name suggests that it's high-true. This means that the buffer must “see” a low signal if no mécrodrive interface were plugged in, leaving it floating. This is opposite to what a TTL buffer would do, although some OTL structures would fit the bill nicely, Note that if the microdrive interface were part of the BEU, then GUSISO would never be floating and the special buffer would be unnecessary.
switches in Mocation 0008) is
“WHAT DO WE DG NOW, BATMAN?"
Now, al) of this may be very nice, but there's still one glaring problem. Khen we want to send information to a Unique Bank Register, we must first put its number in the Bank Number Access register. If this matches a bank's Assigned Bank #, we can then access that bank's Unique Registers, But the Assigned Bank # is itself unique, so how do we get a value in there, in
22
the first place? When we first turn the machine on, ister will be full of garbage. How do we find out Worse yet, what if TWO banks “power up” with the Bank 6?
It would seem we've painted ourselves into a corner,
that reg- what ft is? same Assigned
pals GIVE ME YOUR ANSWER DO
To our rescue comes an incredibly oddball kludge called the Daisychain. The main purpose of this whackiness {s to let us put a value into the Assigned Bank # register for each bank, Since we can't use the Assigned Bank # register to access the bank at this time, each bank contains a flip flop that's one bit of a shift register (the Daisychain). Ordinarily, each bank's flip flop contains a "0", but a single “1" bit is stepped through, from bank to bank. If a bank has the "1", then we can put a value into its Assigned Bank # register.
Figure 3 shows the BEV functions that are needed to add Expansion Bank capability. It will drop the BE line ff BUSISO is active, or if I0AS is low and Al3-15 indicate that the chunk being used is not 0, 3 or 7. This will prevent the memory in the standard banks from trying to “answer" an attempt to read a Bank Switching Register. The rest of figure 3 is the start of the Daisychain,
The BEU contains its own form of the CO register. It normally operates in what we'll unimaginatively cal} the Normal Mode. Everything we've described so far assumes this mode. However, ff we send 00 to register CO, we reset all the bits in the Oaisychain and enter what we'll call the Setup Mode. This switches flip flops in the BEU and all the expansion banks. Also, DZOUT at the BEU goes high.
But DZOUT at each expansion bank is stil) low! Figure 4 shows how this can be. Unlike all other backplane signals, which are shared on a common bus, DZIN and DZOUT are not, This is necessary in order to retain the structure of a shift register. Unfortunately, this fs not readily compatable with the normally used method of stacking additional items onto the backplane, which would short all the OZINs together and OZOUTs together, and wouldn't match one DZOUT with the next OZIN. In fact, {t would seem that the most convenient method would use expansion banks on edge-connected cards, plugged into a motherboard, filled with female edge connectors.
By sending an Ol to register CO, we clock each flip flop in the daisychain, and the “1" bit moves into the next bank. Mkhen we're in the setup mode (and ONLY then) we can write the Assigned Bank # to register AO, and it will be put in the Assigned Bank # register of the bank that has the “1” in its flip flop. In this way, we individually access each Assigned Bank # register. When we're done assigning numbers, we send 04
to the CO register, which clears all flip flops and puts us back into the norma? mode,
Y, DAISY,
AN INTRODUCTION TO THE SYSCON TABLE
you haven“t yet done so, read 1M3.3,2, which gives a snail's eye view of the subject. The “proposed expansion banks” are the very same banks we've been talking about. The SYSCON table is a list and description of a1] the extra “memory” plugged into the TS2068. The LROS and AROS parts describe what you've got plugged into the Dock bank, and comprise 12 bytes. Note that each expansion bank takes up twice as many bytes, suggesting that the good folks at Timex planned to put a lot nore “horsepower” into those guys.
If
AOA
pear Menony ARRAY
BUFFER Bask SUITCHWG “EQUIVALENT SOLD”
Foue Connections WAVE BEEN OMIT TED, FOR CLARITY,
Busiso
BHOD rags Plow Gah Rae ee
ea aay a Expawpen Tsz08g BUS
aoun
FIG. 2° EXPausioN DANE (SiiaHTLy monies iD?)
23
One thing may appear just a bit distressing. The description says there's room for only ELEVEN expansion entries, Well, it's even worse than this, because the space for eleventh entry is used as a scratchpad by the initialization software . (Possibly a bug.) But if we really want more, we should note that the system variable SYSCON contains the address of this table, and we can change this, and put a larger table anywhere we'd like. Each expansion bank has a chance to run some of its own code during initialization, and one of these can re- write the table. But the hardware that contains this bank should also contain some fancy buffering circuitry for the additional banks, or there'll be TTL fanout problens, not to mention un- acceptable capacitance on the bus lines. (Actually, if you try to figure out just how many TTL chips will be needed to replace one bank switching SCLD, you may find it unlikely that even ten expansion banks will ever be run together at the same time.)
The table contains numerous options, and $s laid out as follows:
table bank
SYECON Table Configuration 2 bytes for the Dock Banks 6 for AROS followes by 4 for LROB, Bee TH3.3.2 2 Expension Bank descriptions fellow. Une 24 byte Block for each sunk
enema Bank 1 208Dank Inactive )
ay
LF bank Lu net yet renumbered The following 18 copied trom lacs 000-001 of AGH Expansion Banks! In Bit Bankes Chunks Avatianie, ni trow
} For RO" Banke, theaw 3 bytes may cont tnatruction For REGET 7
For ROW will nave BLES rwuat aa oP (out nat used In TE20N0 Rota!
Addraws of the Close Channel routing.
| | | |
o alization cooe (nernape to open @ channel attetches te this bank, or to mark the bank inectives)
OA-OC A SP instruction te an errer handiar? Not weed fm ROM ©0-0F Wot uses 77
20\ For RO banker shou!
Wve Been the boot us dures ol thie tapte entry ta the
OF 4 buy, tne agar:
oot up addr
For RON Banke,
Aseresa of the power-on initialization code cour aay not reside in cmunk 3)
5 Fer ROM Bank
compen" t Antes
Lo For ROM Banker Boot up priority. Low nuabershigh priority. Hone Dankwto|
F Interrupt Priority. Ram banke get 255. RON get lewershigher priority Pore of these 24 byte blocks, as needed
A single byte aarke the end of the tablet nietng af ToD
HHHHHHHHHHEHAHE AHA HE AR **> RMG ENTERPRISES <xk ANNOUNCES
SEKTOR 2068 FOR THE FDS8 USER
Finatlyt A full-featured sector editor for use with your 2268 and AERCO FD68 disk systen. Very user friendly! Many features that you would not expect at this price!
Sone of the features included ares
READ DISK SECTORS - WRITE SECTORS - CORRECT SECTORS DELETE/ERASE FILES ~ COMPARE BLOCKS ~ COFY SCREENS TRANSLATE IBM TERS es (2 VERSIONS)
ALL of this at a price that all FDS8 users can afford? OMY $15 ~O@+2ph
Available on 5 1/4" disk, 3" disk or cassette. Please add $5 for Je dick versions | Complete with very thorough documentation.
AVAILABLE EXCLUSIVELY FROM: RMG ENTERPRISES 1419 1/2_71H STREET OREGON CITY, OR 97645
FOR CATALOG, SEND $2.00 REFUNDED VITA FIRST ORDER
HHH HH HER
The portions marked as not used may have been reserved for future expansion, but at least one byte was probably set aside to identify the actual function of each ROM bank. This would allow us to find, at a glance, what additional functions were actually “squirreled away” in the extra banks.
The left hand column contains the SYSCON Entry numbers. For example, SYSCON O1 contains the bank #, and every bank has its
‘own SYSCON 01. As such, the SYSCON Entry number fs not a dis- placement into the SYSCON table, but the displacement into the entry for a particular expansion bank. Only some of the table
entries are self explanatory. Each will be discussed as we wade through its use in the ROM code.
A LOOK (FINALLY? AT SOME ACTUAL CODE
From here to the end of the series, you'll have the chance to double-check everything I've told you so far. All of my pictures, tables, and descriptions will have to be consistent with the Timex code. It's fully possible that I've missed some- thing in my search through the ROMs, and I'l] be counting on you to let me know if you see anything that looks “suspicious”. Together, we can add whatever finishing touches are needed for a full description of the Extended Bank Switching.
Don't forget my promise last time that the software is fairly civilized, though somewhat amusing. If reading the hard- ware description has been as draining for you as writing it has been for me, we can take heart in the fact that it's all down- hil), from here on!
Flowchart 1, given last time, is part of the very top level initialization code the machine runs when we turn it on. Part of the Home Bank RAM has already been intialized, and some system yarjables reflect this, but the memory map on page 255 of your TS2068 USER'S Manual shows “Machine Code Variables”. The size of this is determined by the contents of the Dock Bank, (See 15.1.2, TM5.1.2.2 for more information) and the system hasn't yet found out how much memory to set aside. Therefore, this, and the memory following it have not yet been set up. At this point, we check for extra memory plugged into the systen:
At H0BE7 we set the initial location of the SYSCON Table. This has space for AROS, LROS, 10 Expansion Banks, and an 11th Expansion Bank area, which (possibly due to a bug) is used as a scratchpad. Its size is fixed, and if we need a larger table, we ust move it somewhere else, ourselves. We then CALL XO9F4 which actually builds the table (we'll flowchart this next time).
We then check the SYSCON Table for an LROS. If there is one, there are no machine code variables, so we finish setting up the system variables, and run the LROS according to its in= structions (see TM5.1 for more information.)
If there is no LROS, we end up at XO90F, checking for an AROS, If we find one, we check its type (see T™5.1.2.). A BASIC AROS uses no Machine Code Variables, so we finish setting up
system variables, and return to Home ROM, after setting a flag telling it to run a BASIC program out of the Dock bank. A mc. AROS uses Machine Code Variables, which we insert and then finish initializing the system varfables. We then run the AROS
as required.
Tf there is neither AROS nor LROS present, we end up at XO918, where we can initialize the system variables. At XO099A, we set up so that the main execution loop in Home ROM will run after initializing (an Expansion Bank can override this, ff set up properly). We then point to SYSCON 00 for the first expansion bank, and enter a loop to check each bank.
In this loop, starting at XO9AC, whe check SYSCON 00. A value of 80 marks the end of the table, causing us to end the Joop. If it’s not 80, then we check if SYSCON 00 has the value 00. This marks the bank as inactive, causing us to point to the next bank in the SYSCON table, and loop to XO9AC.
If the bank is active, we get its number from SYSCON 02. Then from SYSCON 15, we get the Initialization Flag. If thts flag is Ol, then we will have already run some code in that bank
when the SYSCON table was built (more on this next time) and this bank may also “take over" the system after we're done initializing. This depends on its “Boot Up Priority", which we
will discuss in a moment. If the flag is not O1, then we point to the next bank in the SYSCON table, and loop again to XO9AC.
However, assuming that the Initialization Flag was O1, we end up at XO9C4, which gets SYSCON 16; the Boot Up Priority. {The lower the value, the higher the priority.) If this is the highest priority found so far, then we save it and continue. Otherwise we loop back to XO9AC,
If it IS a higher priority, we get SYSCON 10. (Note that in my flowchart I accidentally reversed the digits and called this entry 01. SORRY ABOUT THATII!) If the code were written properly the contents of SYSCON 10 would be the boot up address. (where we'd run after inftializing.) Unfortunately, due to a bug in the ROM, the address of SYSCON 10 is used instead, (This fs a very hasty bug, but at least I can blame THIS error on someone else.) The new boot up address is saved, and we loop again to XO9AC.
2
Pica wyene to =e_l2s ncaa ene on Recast ca
Sever
om —-+
eee
Nag
ere
Fouee conueeriows AVE Deew cmirred FOR GuMRiTy
ADDITIONAL BANKS, AS NEEDED
FiG 4. TSZ068 WITH EXPANDED Bus AND DAISY CHAIN
When we find a value of 80 at SYSCON 00, then we've reached the end of the table. We leave the loop, find the highest priority bank and boot up to the given address. (Default fs Home Bank, at O£2F; the Main Execution loop.)
wee A@rco FD-GS Software Disk File Manager: Lists detailed directory and occupied tracks. Checks disk. Copies single or ali programs on disk. All functions support 1 to 4 drive systems. Optional printer output. Available on 5.25" double density disk or on tape DFH-disk or DFM-tape .. $16.00
we
Onnidiski Conversion program for Omnicate (version 64000). Customize all colors and keyboard buzz. Supports both tape and disk save/load. On S.25" double density disk or on tape. Onnidisk-disk or OmniDisk-tape $9.00
MSDisk? Conversion program for MScript. Customize various Sefauit values. Supports both tape and disk save/load. Does NOT take away any text space. On 5.25" DD disk or on tape
MSDisk-disk or MSDisk-tape : + $6.00
“ Programs from JRC Software «* Diamond Mike 11: A true arcade quaiity game with excellent graphics, speed, color, and sound. Collect enough diamonds and find the exit before time runs out. 22 different so and levels. Available on 5.25" DD Aerco disk or on tape. Diamond-disk or Diamond=tape coe. .ceeceeece cence snes 817000
Compass: The COMPILER converts BASIC to 100 tines faster Bachine code. it supports over 30 integer BASIC commands The ASSEMBLER supports labels, multiple statements per line, and user comments. 5.25" double density Aerco disk or tape, Compass-disk or Compass-tape . #19.00
Great Gaze and Graphics Show: This program package includes: Oscilloscope, SD City, Touch Type Tutor, Lunar Lander Gi 3D Graph, Color Mode 2, Easy Editor, and MANY MANY MOREt!! Available on $.25" double density Aerco disk or on tape. GGGS-disk or GGGS-tape ... 817.00
JRC Software Catalog: Also hast Diamond Mike game demo and
3D Tic-Tac-Toe. On §.25" double density Aerco disk or on tape. A#*NOTE This catalog is FREE with any order of
program on disk or only $1.00 with any order of TS2068 tapi SRC-disk oF JIRC~tape ..esecceees ++ 83.00
ANY TWO JRC PROGRAMS ORDERED AT THE SAME TIME .
>>> All prices Include first class shipping. <<< Please send SASE for more information or chack/money order tor Chia-Chi Chao, 73 Sullivan Drive, Moraga, CA. 94556
That’s the entire flowchart. “buglet™ that also crept fn. The box
THE HOMEWORE
If you want some extra things to do, there's
simple example). If you can do that, then
T should point out one tiny marked XO9E9 should say -+-Enabling 0,1,2,4,5, and 6 would...°. I left out chunk 5 in a transcription error as I copied over ay notes. This again that it was more than just my penmanship that began to fail near the end of that long flowchart! (Is my face ever red!)
shows once
plenty. Walk through Flowchart 2 and use its information to continue your own annotated disassembly of the bank switching code, Try to follow what {t's doing with the Bank Switching Registers (it's a fairly do your own dis-
Don't disassemble it until after including corrections shown in 1™6.5.2. The Expansion Bank portion doesn't change, but the rest is a real mess, and you won't get a feel sorts out different banks unless you Read through the listings of Appendix A of the Technical Manual, if you haven't yet done so, and also read TH4.1 in 1/0 channels (yes, streams and
for how the routine include the corrections. the RAM Resident Code in
channels
figure into this subject, too).
Phone cal} call before
assembly and flowcharting of the GET_STATUS routine at 6405 hex.
very familiar game, but this arrangement has a different twist. In this version the progras constructs three identical playing planes, numbered 1, 2, and 3, reading from left to right, Refer to the screen dump of Figure 1. By considering all three of these planes Jointly, a player can win--or score pofnts~ewhen three of his marks are arrayed in a strafght line, in any direction,
As in the conventional game, players take alter- nating turns to plot their marks, an "X" or an “O", in any of the three planes. He (or she) does so by first touching a number tey designating the plane, and then a letter from the group of keys in the lower-left corner of the keyboard, the keys QHE ASO 2XC. These nine keys correspond to the same mine positions in each plane, The Player does not need to press the ENTER key for 2 selec tion to be received and recognized by the computer. Touching the ENTER key is reserved for the signal to the computer to clear the screen and start over on a new geme. So avoid ENTER unless 4 new game $5 what you have fn ning. .
To be fair with the players, the program is) de- signed to determine randomly, for each new game, whether the player on the left or the one on the right’ starts. Sut the starting player 4s not permitted to place nis initial mark in the desirable center spot of the middle plane, And neither player {s permitted to place their marker over one belonging to his opponent. The penalty for any of these illega} moves is forfeiture of that turn to play.
This routine contains several error traps which prevent the players fron selecting an {llegs? number or Vetter, These traps are contained in lines 625, 445, and 590,
System address 23559, rather than INKEYS, was used to indicate which key wis selected by the player. This approach simplifies the construction of the program, which requires a wide range of input values.
In a program of this type, the computer must make Bany time-consuming decisions in the principal loop that Jays between lines 60 and 600. Some speed-up would ensue if lines Vike 500, 510, ect., contained an additional statement: GO TO 600. Such a statenent would obviate the need to test any of the conditions that follow. But, the slight additional speed was not considered to be worth the effort here.
Have fun. Feel free to embellish the program further, ff you so desire.
THREE-DIMENSIONAL TIC=TAC-TOE $5 a variation of a 3-D TIC-T; \C-TOE
by Warren Fricke
2 REM #4 THREE-DINENS TONAL TIC-TAC-TOE
for
SPECTRUM of TS 2068 Aversion by Warren Fricke
OREN ee "A-2
S BORDER 1: PAPER 6, CLS 30 FOR j2uSR CHRS 124 TO USR C MRS 144418: READ 8) POKE 9,8. NE
xT 38 co sus ioe 40 GO SUB 2000 50 RANDOMIZE RND<.5): LET t=0 69 IF p=i THEN PRINT AT 0,0;"R IGN" | AT 0,30; INK 2)"0"" LET mse CHR ige: LET isd. "BEEP .33,0 70 IF pe THEN PRINT AT 0.0; " AT 0,00, INK a:"ee: LET mse 245: LET i21: BEEP .03,12 REM ZSPRINT PLAYER'S PIECES PAUSE @ Let asFEEx 22559: IF asia T MEN CLS - GO TO 48 agg FF aca8 OR 8551 THEN co To £38 PAUSE o 50 LET BateeK 2asso 4
LET pei-(1 AND
IF beig T HEN CLS : GO TO
445 IF_ta@ AND 2250 AND belis T HEN GO TO 60
Now Available! “THE BEST OF SUM”
Two Special Issues SUM MAGAZINE
—
Once again, feel free to write with questions or and please include a SASE, Grzozowski, 337 Janice St,, Endicott, NY » 607/785-7007...provided you don't call collect, and 130 PM, EASTERN time. See you next time!
One of the most popular features of SUM Maga- zing has been our stockpile of back issues. Gut our ‘Stockpile has been depleted. In its place we now have “The Best of SUM™ — 112 pages of the arti- cles, reviews, program listings, and hardware pro- jects that have mace SUM 60 popular — all taken from the first 3 years of our publication.
Some of the articles include: Buitding Your Own Spectrum Emulator, Doing 1000 Repairs, Word Processors for the 2068, UDGs on the TS-1000, Extensive Review of the Zebra Disk System, Adding @ Keyboard to the 2068, and Enhancing the A &J Microdrive.
411.95 postpaid
SUM Magazine, 3224 NW 30 Avenue, Gainesville, FL $2605 — 904/462-1086 (eve.)
SUM Magazine has two Special issues for sale which were devoted to special topics:
OL Special issue — 28 pages devoted mostly to.an indepth review of the QL hardware and an over view of the software. Very popular with readers ‘8nd of great interest to all thinking of purchasinga Sinclair QL, Price: $3.95.
TS-1000 Special ssue — 28 pages devotedto a: ies, reviews and programs for the TS-1000 and 2X-81 computers. A lot of new products are dis- ‘cussed and suppliers listed, Price: $3.95
Special Deal!! Get “The Best of SUM" and BOTH Special Issues for only
16.95 postpaid
comments, a reply, I am wes 13760, 1 also Vike
if you wish
SO LET ¢=84(a-49) OO IF be97 THEN PRINT AT_7 FN isms RNO SCREENS (7, s+
19 IF bs99 THEN PRINT AT 14,9. LINK i;m$ AND SCREENS (14,9+¢ CHRS 32
S20 IF bs100 THEN PRINT AT 11,9 oC; INK i;mG AND SCREENS (12,9+¢ iatHRs 32
S30 IF b2i@i THEN PRINT AT 8, 9+ c) INK ijm AND SCREENS (3,9¢¢)= ches 32
$¢O IF b2113 THEN PRINT AT_4,5+ c) INK ijm$ AND SCREENS (4,54¢)8 CHRS 32
990 IF baliS THEN PRINT AT_9,7+ ci) INK i;m$ AND SCREENS (9,740) 2 CHRS 32
S60 IF be1i9 THEN PRINT AT 6.74 &y INK 4;mS AND SCREENS (6,740) © CHRE 32
870 IF bsig0 THEN PRINT AT 12.7 +¢, INK :)M$ AND SCREENS (12, 74¢ DaCHRE 32
$80 IF bei22 THEN PRINT AT 10,8 +f, INK ismS AND SCREENS (10,S+c DscHRs 32
S90 IF &«O7 OR beOg OR betas OR b=121 OR (5<119 AND 6>11S) oR ( b(L13 AND b>101) THEN GO TO 430 G80 LET p=NOT Pp: LET t=1: Go To
2000 REM s2TITLE a INSTRUCTIONS 2010 PRINT AT 2,7; ONAL’ FAT 4.9; “Fhoo 2026 PRINT’ AT 7,3; goes Mot neem “Score nor determ ine @ winner. — Players must ao Anis themselves ,as the rules may vary. 2030 PRINT AT 24,9; "The computer setermines ran-‘somiy whether L ERT or RIGHT starts the game
This version
2040 PRINT AT 14,3; “Computer wit L keep tract of ‘whose turn it i S$, Players alter-nate. 2045 PRINT AT 17,3; "Use the ENTE R key only to Start a new gam e."
2050 PRINT AT 20,3; "Stand by.” i102 PLOT $8,150°"braw 136,
2210 PLOT 72/134: DRAW 83,6
2120 PAUSE B00: CLS
1130 RETURN
2208 REM 44 S-D BOARD
2010 FOR m=9b TO ise STEP 64
2020 FOR n=260 To 88 STEP -24
2038 PLOT m,n: DRAW 43,-48
BO70 NEXT Nn! NEXT m
2200 LET msize
2219 FOR n=36 To 212 STEP 16
@2iS PLOT nomen: DRAU O72
2220 IF n=64 THEN LET malas
2230 IF n2id8 THEN LET m=252
2240 NEXT A
225@ FOR n=20 TO 212 STEP 64
2260 PLOT n,88: DRAU 16,8
2270 NEXT _n
2290 PRINT AT @,4;°T-HAND PLAYER “STURN. USE”
2300 PRINT AT 2,3; 1;AT 2,11;2;AT 2,39,3,8T 16,14;45AT 16,1572; aT 16.29;
@31@ PRINT AT 18,9; "Just touch
wo Keys: 2,2, or 3 & one tetter key. Use thé ENTER hey onty to start a new game. Gowhen ready.”
2358 RETURN
3000 DATA 49,75,68,65 R144, 80,40 ,46 84520
68,34,50,1 8,47
Beaver Character Advanced
Writer Font Video Modes fi Generator irst 8O column
word processor design your own UDG our #1 best seller! for the T/S 2068 or character sets supports normal, dual, compatible with comes with ASCII, extended colour, AERCO I/F and most Bold, Future, and 64 column mode and EPSON compatible Medieval fonts now with 80 columns printers joystick required loads in 15 seconds
25.00 US $30.00Can $15.00US _$2000Can $20.00US $25.00Can
Send cheque or money order for $1.50 for our complete catalogue with Demonstration Tape plus bonus programs. We pay the postage & handling costs on all orders!
. "pene COMPUTE MeoDUCTS
999 MUNROE AVENUE, WINNIPEG, MANITOBA, R2K 1J4
'The best DAM software around}
gun oOREMark PROGRAM BY RON S, MORK 1¢ @ REMark CHICAGO DATA CENTER MAI 2 REMark CONVERTED TO Sup DAVID 30 REMark WITH KIND F N 1 WINDOW DEF ine
NG JOHNSON © THE AUTHOR FOR TH
= 3, 1{PRINT "GANG!" Qy TO 6) | L TO 6
IF click=chambers THEN BANG IF click<>chambers THEN 1ive
Welair Ql
QL KILL (not recommended for weak Stomichs} 1s a simulation of the ever so popular (2) RUSSIAN ROULETTE game, The listing was converted fron a PASCAL program and contributed by David Johnson, with permission from the author, Ron S, Morr. David would h with other QL
: 2399 St. Rt. 95,
as
A Review by Paul Bingham
French language suffers times; being difficult to pronounce properly when
the fate of English at read from text. So it is with QL “Pine tree", “pain tree", “Pee-in-tray", or “Pay entry" as this program may have been so falsely introduced to you. If we could all read French it would be instantly obvious that QL "Painter" is a French screen artist program.
QL PEINTRE is a classy program in many ways. After loading begins a picture of two chimps appears: seem- ingly a digitized photo image. Nearly three more minutes of on-and-off file loading finally brings a blank sub- screen with sharp surrounding icons. French and English titles toggle back and forth with a key press. The look is sophisticated, elegant. The icons are easily readable and easily used.
Should one require additional help, mentation is excellent. Now this is not a Struction booklet, but it is the first one I which states simply what to press next and then accur- ately tells what the outcome will be. Even though the instructions do not mention it, I have found it helpful to have a formatted cartridge on hand for saving a sceen prior to running QL Peintre. There is a Microdrive icon, but like so many other QL software titles, it does not provide for formatting of a cartridge, It does provide a nice scrolling directory option, though!
Like GRAPHIQL, reviewed by Vince Lyon in the March/ April 86 issue, Ql Peintre has many, many abilities. Some are far more versatile as well. Circle and Are drawing are so much improved! Fabulous, too, are the two type faces (one very MacIntosh) in two sizes with four spacings each. Line and spray widths with intensities are very adjustable as are the colors and textures. But keep in mind that QL Peintre is capable of only four colors in High Res mode Fi, and will not run in mode FZ on an American TY. QL Peintre supports al] the colors in F2 mode.
Is Peintre perfect? It does have a limitation or two. It incorporates the standard security checks re- quiring a backup and original present. The screen work area is much smaller than other such programs, It only Provides 63% of the screen that GraphiQl uses. It also does not have a wrap-around feature when drawing. If one
the flashy have seen
docu- in-
bumps into the work space edge diagonally, the cursor continues straight along that edge until stopped. Jot-
ting and spraying do not quite reach the edge of this work area either. These are really minor items, however. Unlike GraphiQL, Peintre never does "growl" back!
QL Peintre isn't intended as a drafting design or CAD program. QL WORLD MAGAZINE (from England), carried a
review in the May ‘86 issue, of six such programs. Most CAD packages were more expensive than Peintre, too. Missing from their review was a new release, TECHNIQL
(from Talent...writers of GraphiQL). Such would be good future Quick Look fare.
QL Peintre has a good set of save and printer options, The Printdump program is unprotected and may be included by the user in other programs. I was amazed to find that it will load almost any saved screen, in- cluding ones from COSMOS (reviewed last issue) and GraphiQl, too. Screens can then be altered and printed out on an Epson printer, But the output process takes 22
minutes! GraphiQL’s beats it by three or four minutes. But unlike other dumps, this produces an output side- ways! So if your printer is like my little Epson Home-
writer 10, most graphics look slightly elongated. with Peintre they just come out taller.
Now
QL Peintre
Ns
© Friendliness Documentation bility
bility
Lives up to Claims Use of QL Abilities
Blank Cartridges Required Blank Cartridges Included Runs on U.S. T.¥. mode
BB it
iS
z
FINAL SCORE:
QL Peintre is sharp and professional. It has limitations but is very polished and easy to adapt to. If the programmers in France keep this up, I may start learning to read French.
2O6s_ToO_eL
WE ARE BUILDING BRIDGES BETWEEN TSZ06G AND QL. WHETHER THIS IS UPLOADING OR DOWNLOADING QL. IMPORTING OR CONVERTING BASIC FROM TS2068 IS IMMATERIAL. THIS IS NOT SOFTWARE. THIS IS A SERVICE. WE CAN TRANSPORT THE BASIC FROM TS2068 OR SPECTRUM TO OL. NO SOUND OR MC.
BASIC PRICE PER ‘LOAD’ ON SUPPLIED CARTRIDGE... .#16.95 ON OUR CARTRIDGE--ADD $3.00 WE ACCEPT PERSONAL CHECKS. ORDERS GO OUT THE NEXT DAY.
THE ‘LOAD’ CAN BE: 1.A BUNCH OF MERGED PROGRAMS. 2.PROGRAMS AND DATA. S.DATA IN ONE OR TWO DIMENTIONAL STRING ARRAYS. 4. DATABASES LIKE PRO/FILE 2068 OR MASTERFILE.
IF YOU WOULD RATHER SKIP THE MERGING PROCESS THEN ADD #1.00 FOR EACH ADDITIONAL PROGRAM AND ARRAY. EACH ADDITIONAL ‘LOAD’ WITH THE SAME ORDER..... £11.95,
YOU WILL GET TWO FILES OF YOUR BASIC PROGRAMS: THE TRANSLATED VERSION, WITH THE SAME LINE NUMBERS, AND THE FACSIMILE FOR REFERENCE--BYTE FOR BYTE.
IF YOU ARE ONLY THINKING QL AND WONDERING HOW YOUR SPECIAL BASIC WOULD LOOK IN SUPERBASIC THEN SEND US A CASSETTE WITH ABOUT SO LINES OF IT, SASE AND £1.00 FOR THE PRINT-OUT. ENCLOSE A CARTRIDGE AND ADDITIONAL $3.00 TO GET BOTH THE PRINT-OUT AND THE SAVED LINES.
EVERY BYTE OF YOUR PROGRAM OR DATA WILL BE TRANSFERED. LESS THEN 2% NEED BE EDITED. DATA NEEDS NO EDITING. EUGENE PERERVA, 358 RAILROAD AVENUE BRIDGEPORT, CT 06404 (203) S76-8728 SPECIAL FREE GIFT WITH ORDERS:
THE FIRST ISSUE OF AMERICAN FIRST QL MAGAZINE:
QUANTUM LEVELS
VISA & MASTERCARD ACCEPTED
aL aL
aL
SHARP’S INC.
Rt. 10 Box 459 Mechanicsville, VA 23111 (804) 746-1664 or 730-9697
QL Computer with I.C.E. & War inthe East... $289.00
(Includes Postage) CPIM OF itest ti adel a ea eiattinn wa ec ise Reta iet ie cnet $249.00 512K Ram
QL War in the East (Secenario |)... cccecscccsesesccseseseeeeee QL Service Manual - Includes all Circuit & Layout Diagrams..........cccccccecees.
Write for Entire Catalog
QL AL AL AL AL AL AL GL Ai AL AL AL AL AL AL AL AL AL AL QL AL QL AL AL AL AL hh
RMG ENTERPRISES aL
1S PROUD TO ANNOUNCE QL
A NEW BUSINESS SOFTWARE PACKAGE FOR THE QL! os INVENTORY/INVOICING PACKAGE @L
FROM EXECUTIVE WORKSHOP QL
If you are running a small business that depends on a GOOD QL Inventory control program, THIS IS THE ONE FOR YOU! @L
With our new package you can keep track of all SALE, INCOMING STOCK, aL CURRENT STOCK VALUES - BOTH WHOLESALE & RETAIL, aL
as well as generate the folliwng hard copies: aL
INVOICES - BACKORDER MEMOS - PAKCING LISTS - SHIPPING LABELS ~ INVENTORY REPORTS QL PURCHASE ORDERS - FLAGGED {TEM REPORTS - PRICELISTS - SELECTIVE PRICE LISTS eL All of this and the best part Is, WE WILL CUSTOMIZE THIS PROGRAM TO SUIT YOU! @L When you order thls package, you will be sent a short questionaire to fill out aL and retum. Within 2 weeks you will recelve your program, ready to gol aL aL
ALL THAT AND AT A PRICE OF ONLY $59.95 +2ph i
FOR MORE INFORMATION ON THIS AND OTHER FINE QL PRODUCTS aL CONTACT: @L
RMG ENTERPRISES QL
1419 1/2 71h STREET QL
OREGON CITY, OR 97045 aL
(503) 655-7484 a
(FOR CATALOG - SEND $2.00 - DEDUCTED FROM FIRST REGULAR ORDER) aL
@L QL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL
The Future of the QL in America
And
Some QL Graphics Systems
by
Mike de Sosa
THE QL IN AMERICA
Many of us in recent years have, in anguish, nessed the demise of first the Timex Computer then Sinclair Research USA, and finally Sinclair Re- search Ltd., itself. I say “in anguish” because with their failure went fond hopes of continuing professional support for our computers and dreams of a proliferation of third-party hardware and software. These organiza- tions, blessed with an excellent product and the good will of many thousands of cult followers, just plain “blew it" and, in the event, passed up the opportunity for millions in profits. None seemed to learn from its predecessors. In each case, arrogance and poor customer relations prevailed. Statements like “we don't really need the U.S. market" and "each Sinclair employee pro- duces millions in earnings” added to the insult of tele~ Phone calls that were not
wit- Corp.,
returned and letters un- answered. Many recommendations from periodicals, users’ groups, and loyal customers, some based on time con- suming research, were spurned, If it was not the company's idea, it was mot, needless to say, a good idea. The outcome, the result of arrogance and delays due to poor management, was probably inevitable.
QL users and would-be users in the U.S. are now dependent on a single distributor offering a limited
number of QLs through a dozen dealers--without factory or engineering back-up. Before taking the plunge, would~ be QL buyers should be aware of a few things and then satisfy themselves that their QL will be adequately supported. Item=-the QL will be replaced in a year or so (perhaps this fall in the UK) by one or more follow-on “QL-compatible” systems that do not use Microdrives. Item--when the present small stock of QLs are gone, no more may be manufactured; this will affect the avail- ability of replacement parts and maintenance and the quantity and cost of future software for the QL. Item-- there is a difference in QDOS addressing that causes many software programs to work improperly on U.S. machines: for example, QL Project Planner, QL Decision Maker, GraphiQL, and VROOM! (This problem also affects U.S. software designers trying to get their programs to work on European QLs.) Item--the Psion software programs sold with QLs in the United States are now several versions old and the documentation for these programs is older yet. Item--the QL is poorly documented in the QL User Guide, and scores of books on the QL--all written early on before the operating system was perfected and before peripherals were available--do little to help the situation. (This problen--a major shortcoming of the QL
since its launch, and before it the T/S 2068--was ignored by Timex and Sinclair organizations despite urgent pleas and recommendations by QL users.) Item--
many QL users are now getting bad advice..,better methods of communicating authoritative information re- garding the QL are needed.
I do not believe that the QL distributors and
dealers are moving nearly fast enough to correct these
23
problems, a1] of which expensive solution, For this reason, prospective QL QL software buyers should pressure the distributors retailers to do something about all ASAP. In doing so, you would do yourself
are capable ine
and and of these problems and them a predictable Jetters, and
of easy and
favor, possibly saving them from a self-destruction, Lets have calls on this, folks!
The following things should be done soon (and that doesn't mean “next year"):
a. Supply QLs with the latest version of Psion QL software. (It should cost very little to do this, and buyers would gladly pay an extra cost.)
bd. Supply QLs with additional documentation to supplement the inadequate, frequently erroneous, and badly out-of-date QL User Guide. (Making this supplement available to QL owners here and abroad could make this a profitable endeavor.)
c. Devise a universal “patch”
rather some cards,
which would permit
all European QL software to work properly on U.S. QLs. (This is long overdue--a result of inaction.) d. Insure they are getting good technical advice
regarding which QL peripherals and software to market in this country.
e. Decide whether the current U.S. version of the QL, Microdrives and all, should be manufactured further, perhaps with additional butlt-in or plug-in RAM and RAH- disk software. (An enhanced QL could be profitably marketed in this country for another two to three years, )
f. Make on-the-shelf QLs available with distributor installed disk interfaces, RAM cards, and RAMdisk soft~ ware.
g. Select and standardize use of a disk with the QL and a single DS-0D drive, 5 1/4" drive.
h, Establish a toll-free “QL HOT LINE" for three or four hours a day to answer consumer questions.
i. Advertise the improved product. If nothing is done, that is, if things proceed at the present pace, my prognosis for the QL in the U.S. is a slow death.
interface preferably a
QL GRAPHICS/CAD SYSTEMS
There are now many types of graphics systems for the QL, ranging from those used to draw pretty pictures to two-dimensional computer-aided design (CAD) programs to three-dimensfonal graphics design programs. With one exception, I believe the best of these QL graphics pro- grams are discussed below. (The exception, QL Peintre from France, is discussed by Paul Bingham in this issue of TOM.)
Also discussed this month, is a new and excellent font editor and print utility for the QL which I thought you should hear about. Finally, as an update to last issue's games article, a brief review of RO the grand prix motor racing game from France.
Q Draw by Psion: Q Oraw is the software used by Psion to Create the breathtaking graphics for OL Chess and QL_Matchpoint. Very user-friendly, Q Draw can be used to create pictorial graphics of all types or to ‘improve upon, or draw from, graphics screens produced by other programs such as GraphiQL, TechniQL, Concept 3D, Easel, or a screen created and saved from SuperBASIcC. Cbraw offers four-color, high-resolution graphics as well as the more usual eight-color jower-resolution graphics, (High or lower resolution is not selectable from within the program.) Other features include a vari- able-width pen (or brush); the exploitation of created “shapes” which may be created or plucked from any screen stored on disk or Microdrive and then manipulated, copied, or stored for later use (a library of useful shapes is included and you may economically create your own library); two screen magnifications; and various cursor forms (a crosshair or screen grid may also be selected). There are no text or curvilinear functions which automatically create arcs, circles, or ellipses. Cursor position coordinates are not available, but this does not seem a great disadvantage in Q Draw. At $25, Q Draw is the least expensive QL graphics program and in some respects it is the best of the lot--another winner from Psion.
GraphiQl & TechniQl by Talent: These two software programs from Scotland are so complex and comprehensive that a complete description of each is impossible in an article of this length. The best I can do is describe their capabilities and differences to help you decide which of these two superb programs, offering over- lapping capabilities, should suit you best.
Talent's designers have had decades of experience in designing CAD/graphics software for mainframe and minicomputer systems. Their microcomputer versions for
the QL, while reducing unnecessary complexity, at the same time incorporate severa) tures.
never before seen fea-
A sample screen from GraphiQL.
GraphiQl is a graphics design program optimized for the computer artist or illustrator, TechniQL is a two- dimensiona) CAD (computer-aided. design) package opti- mized for the technical draftsman. Although the two Programs have few features in common, each can do a fair job at the other's tasks with a little extra effort, but GraphiQl pictures are limited to the size of a single computer screen, while TechniQl pictures occupy many screens and be drawn in many layers (analogous to acetate overlays on an engineering drawing). Both pro- grams have good on-screen HELP facilities. Neither has a variable-width pen (brush).
30
GraphiOl is primarily, a graphic arts program whose forty-six commands and other capabilities can be used for other purposes, including technical drafting, Graphi QL operates only in the eight-color, medium resolution (256 x 256 pixels) mode. Many methods of creating illustrations are possible, and cursor coordinates and
other useful data may be displayed, if desired, Other features include texture and airbrush effects, screen magnification (16x), two text sizes, standard drawing shapes, and comprehensive screen/file handling. Avail-
able at $50, including a 63-page manual, GraphiQl may be found in an improved Sinclair Research version, OL Paint with icon pull-down loose-leaf manual.
TechniQl is primarily a CAD and drafting aid, but with good graphic arts capabilities (except for text- printing which is better on GraphiQL and. not available in Q Draw). Additional TechniQl features include the following: four-color, high-resolution and eight-color, lower-resolution graphics selectable from within the program; about forty commands which may be executed from five pull-down menus or by two letter key codes; rapid, multi-sheet printer output; multiple magnifications over a wide range; a RAM-efficient design storage system; the capability of creating and manipulating up to 75 ele- ments (cells) as part of a single design; and compre- hensive file storage handling. At $70, TechniQL jis the most expensive and comprehensive QL Graphics program.
Concept 30, distributed by an American software company located in California, is an excellent two- and three-dimensional CAD program, although the distributors do not refer to it as such. Like GraphiQl and TechniQL,
menus and a 123-page
Concept 3D is too comprehensive and complex to describe in detail in an article of this length,
Aptly named, Concept 30 offers several new concepts in graphic design (those familiar with Psion's YU-30 for the T/S 2068 will see some similarities). Operating in three modes, Concept 30's capabilities may be described as excellent but with significant limitations, for example, it cannot like TechniQ. produce layered designs on multiple printed sheets almost automatically. Concept ‘3D produces only one screen dump at a time--and that
using the screen dump program on the Psion Easel cart- ridge. A
Concept 3D is, despite its complexity, relatively user-friendly. It includes the following features... several which are unique to the QL: about 50 single-
or dual-keystroke commands listed on three main menus and other sub-menus; four color, high resolution and eight-color, lower resolution graphics selectable from within the program; three types of 3D modeling, two of which are automated; rotation of objects around three axes, seen from various perspectives; image magni- fication and reduction over a wide range; five text sizes; hidden line removal and surface modeling; ex- cellent documentation in a 45-page user manual.
At $40, Concept 30 is an ingenious and a well- executed program orf ring several features which are unique to the QL. My kind-of program!
Inkwell by Palantir: An inexpensive font editor with print utilities for the QL, Inkwell at £10 (£8 to
QUANTA members) offers excellent value for money. Eight alphanumeric or symbolic fonts are made instantly avail- able by inserting simple codes in Quill documents, Variable line spacing, print emphasis, inverse printing, and equal or proportional character spacing may be specified for symbols/font characters prepared using a 16%16 font editor, A must for desk-top publishing with the QL.
YROOM! by Pyramide: A grand prix motor-racing simu- lation by the distributors of 30 Manderer, VROOM! is potentially more interesting to play than OL Hyperdrive,
its QL road-racing rival, but suffers from a fault or two.
VROOM! includes five meandering racetracks of in- creasing complexity. Pass 10 cars and move on to the
next circuit or begin al) over again. Graphics and sound effects are fair to good. Your view is from the cockpit
Wote: All QL programs in the article
P.O, Box 5607, Glendale, AZ 85312, 602/978-2902; with the exception Inkwell, which is available from PALANTIR PRODUCTS, load, Bedminster, Bristol BS3 4RX, England.
ukes
of the race-car: the steering wheel and two front wheels are seen to move in unison. Joystick steering at speeds necessary to pass cars and advance to the next circuit is very tricky.
A victim of the QDOS address differences in U.S. Qls discussed above, VROOM! does not accurately or com- pletely depict the plan of the grand prix circuit in use, This may affect player steering: for example, while you are still shown to be on a straightaway, the track begins to curve. A second fault, perhaps related to the
first, is that it is too difficult to pass another car at speed without either crashing or going off the road. At $30, $3 more than Hyperdrive, VROOM! is preferable to
the former despite its faults. NEXT ISSUE: “Optimizing QL Quill". Future articles will deal with one main topic and, typically, discuss
new or related software programs.
were obtained from CURRY COMPUTER, 6
Dept MF1, 60 St.
Beginning Z80
This time, right to business! We are math instructions which are listed in chart 4, where it starts getting a little more difficult, but not
studying the This is
so that you can't handle it. Up to this point, the lessons have been peripheral background make sense out of the rest of the discussion.
We only have two math functions available to us: Addition and Subtraction. As with Ld, this is not as limited as it first sounds. A study of Math Theory would teach you that all math functions are performed with addition, I'1] not try to explain this further as it would fi11 a volume larger than a1] TOM‘s published to date. The point we need to understand and absorb is that multiplication is performed by repetitive additions, Likewise, division can be achieved by repetitive sub- traction.
It is important that this makes sense to you. Think
most of needed to
about the multiplication problem of 12X6. It can be solved by either of the following: 12 12 12 12 a3 12 72 12 tie 72 Can you see how we can solve division problems by
repetitive subtraction? If we had the problem 72/12, how many times can we subtract 12 from 72? Is there a re- mainder? Simple, isn't it?
This brings us to the first instruction...Add. have already seen Add in operation, in Lesson 2, probably have a good idea of its function. Trust me, performs addition. Some of the later instructions will not be so obvious. Ke would read the instruction, Add A,E, as “add the value in the E register to the value in the A register and store the result in the A register".
In lesson 3, we learned that the A register is called the “Accumulator”. The A register is the only register that can “accumulate” the results of eight bit
31
We and it
Machine Code
Part Four
by Syd Wyncoop
arithmetic. If we had wanted the result in the E regi- ster, we would need to assign it. Can you guess the needed instruction? You get an "A" if you said Ld A,E. Otherwise, go back to lesson 3.
We also have available the instruction, Sub. The A register performs a special purpose here also. The A register is the only register we can subtract from. As with Add, the A register accumulates the result. You may see this instruction written as Sub A,C or Sub C. They mean the same thing. We will use Sub C as the A register is always implied in eight bit arithmetic.
I have mentioned several times that the A register will accumulate the results of eight bit arithmetic. We need to leave the instructions for some more background,
We have already learned that a single register may only contain a value in the range 0-255, There is a con- dition known as an “overflow” which occurs when these values are exceeded, The simplest way to describe over- flow is by example. Let's assume we are adding 255+1. We have not discussed number systems yet (that's a later lesson) but let's show our example in binary as it will demonstrate the point dramatically:
Decimal Binary 255 Aiiaii1ia a 9 a 256 1 60000000 Look closely at the binary example, Each digit represents a bit of the A register (or any other eight
bit location), Assume for now that my answer is correct, and you will note that we are now trying to place a nine bit number into an eight bit hole! The answer returned in this case would be 0, instead of the expected answer of 256. Our example shows an eight bit overflow, but can you see how we overflow a register pair (sixteen bits)?
Our friend, the CPU, has a special register, F, which we learned stands for Flag. It is called this be- Cause its job is to keep track of various things for the CPU. This is accomplished by the setting or re- setting of a bit of the F register. Setting a bit makes
ital, and re-setting it makes it a0. We will discuss this in some detail at a later time,
The bits are referred to as flags due to the fact that they indicate wether or not a certain condition
exists. The flag we are now interested in, is the Carry
flag. We will also discuss the F register later, fore, we only need to consider the Carry flag now.
In the above example, we found we would receive an answer of 0. The ninth digit is not lost, as it is placed in the F register as the carry flag. In other words, the Carry flag takes on the value (either 2 or 0) of the overflow from out arithmetic operation. We will soon wee why we would want to save the carry.
Back to the math instructions, We have available the instruction AOC which is read add with carry. To see the difference, another example:
Add A,E means Let A=A+E
ADC A,E means Let A=AtE+Carry (keeping in mind that the carry will again be set or reset by the result)
AOC will allow us
there-
to chain together the needed additions to guarantee the correct result. Some of the same results can be achieved with the register pair instructions, however, there can still be overflows. Study the following to see what I mean: Ld HL,0046h Ld H, 00h Ld BC, 7FFFh Ld L,40h Add HL, BC id B,FFh Ld BH Ld c,7fh id C,L Ld A,L Ret Add A.C Ld LA Ld A,H ADC A,B Ld BA Ld CL Ret Both of these routines will do the same job. Which
makes more sense? Uses less memory? Executes faster? The point is that there are many ways to get the job done and many considerations to why we should choose one over another.
Ke also have SBC or subtract with carry. This one is special because it is the only way to perform sixteen bit subtraction. We cannot Sub HL,BC. We must SBC HL,8C which implies we know the status of the carry flag. We may not know what's on carry's mind, but we can clear the carry flag prior to performing a S8C by doing an addition, that we know will not generate a carry. One
that will work in al] cases is Add A,O, The value of A is unchanged and the carry flag is reset (0) or cleared as there is no overflow, We will clear carry, soon,
find other ways to
Parts One and Two of this series covered the VARS, System Variables, and the Safe Area methods of passing data from one program module to another in a chained program.
The Above RAMTOP method of passing data, in chained programs, is very similar to the Safe Area method and is the best of all of the methods, as data stored above RAMTOP is protected from LOAD, RUN, NE, an expanding program, or the expansion of the display file. About the only thing that can wipe out data properly stored above RAMTOP is a program crash, a power failure, a program bug, or resetting RAMTOP.
We need to be aware that HL acts as the accumulator for sixteen bit arithmetic operations. Hi has much the same favorite status with the CPU as does A. The reason we need an eight and a sixteen bit accumulator is that we cannot add or subtract registers from register pairs and vice versa. In other words, we cannot Add HL,A.
The last instructions for this lesson are special cases of Add and Sub. They are Inc and Dec which are short for increment and decrement. Each will Inc or Dec by one. For example:
Inc HL Let HUsHL+t Dec HL Let HL=HL-1
Armed with these new instructions, see if you can rewrite the addition routine we had in lesson 2, to avoid the overflow error it contains, Make sure the last instruction is a Ret and use PRINT USR address to run it and return the answer to BASIC. See if you can write a similar routine to perform subtraction.
A final note on the charts I am providing. This is the last time I will include the abbreviations comments, Also, you can usually substitue IX or IY for HL and (1x44) or (I¥4d) for (HL). Therefore, I will not include them in the charts,
Until next time...happy computin'.
means means
Add A, (x40) Aad Ay (1Y4d) ADE Aye ADS Ayn ADE Ay (MLD Bub r Sub n Bue ML? : t Ine er SBC Ayr 1 Ine 6P 89G Ayn ' SBC A, OR) ! Dec rr 1 Dac Sp Inc t Ine (Ly t Dec r t Dec (HL? t Wheres F sany single regtater 4 n 0-253, ns O~65535 ¢ 0-235, Ps
TS 1000/1500 PROGRAM CHAINING
Part Three
by Earl ¥. Dunnington
The amount of bytes or addresses you can lower RAMTOP and stil] have the program RUN is determined by the Upper and Lower Limits of the Safe Area of the pro- gram, In a Chained Program, the module that requires the most memory in order to RUN, determines the address to which RAMTOP can be set for the entire program, A method for finding the Upper and Lower Limits of the Safe Area and the minimum setting for RAMTOP that will allow the program to run, was presented in the series of articles: “Adventures In The RAM Jungle And Other Mysteries" (see Sept/Oct '85 thru Jan/Feb '86 issues of TDM).
When the computer is turned on, the address of RAM- TOP is the first nonexistent byte at the top of the user
availble Random Access Memory (RAM). For the Ik 2X81, this address will be 17408; for the 2k TS 1000 it will be 18432; and for the 16k TS 1500 it will be 32768. when a 16k Ram pack (TS 1016) is attached and the computer turned on, RAMTOP is at address
32768 for all three computers. To check the address of RAMTOP, ENTER: PRINT PEEK 14389+256*PEEK 14389 This only returns the value stored in the system vari- able RAMTOP. To check that RAMTOP is actually at this address, let A= the address stored in the system vari-
able. Then ENTER: PRINT PEEK (A-1}
The result should be 62
In the case of the TS 1500 with the 16k Ram Pack attached, the bytes from address 32768 to 49151 are above RAMTOP and can be used for storage of data in- cluding machine code programs, Any part or all of the additional memory can be incorporated into the BASIC Programming area by raising RAMTOP, Of course RAMTOP can also be lowered.
Should you have an odd amount of RAM, to find the maximum address to set RAMTOP, add to 16 the k of the RAM and multiply by 1024 (the number of bytes in one k). For example, if you have four k RAM:
(16+4)#1024=20480
However, the maximum address that you could set RAMTOP is 65535 not 65536 as the maximum value you can POKE into an address is 255,
RAMTOP can be lowered to make room for the storage of data by POKEing the address desired into the system variable RAMTOP and then entering NEW. The system vari- able RAMTOP consists of two bytes located at addresses 16388 and 16389, The formulas for POKEing the low byte into the lower addresses and high byte into the higher addresses are given on page 134 of the TS 1000 and page 160 of the TS 1500 User Manuals. For example, to set RAMTOP to 18000, then n=16388 and v=18000, Substituting in the formulas, type into the computer:
10 POKE 16388, 18000-256#INT (1 8000/256)
20 POKE 1636841, INT (18000/256 )
30 NEW
Now RUN the program. To check ENTER:
that RAMTOP was moved,
PRINT PEEK 17999
The result will be 62. As you can see, the NEW command wipes out the program. It also destroys any variables, strings and dimensions. This precludes the use of this method of setting RAMTOP in a module designed to auto- matically LOAD the next module of a chained Program, A routine for setting RANTOP without destroying the pro- gram or any variables or strings was presented on pages 9 and 10 of the July/August ‘85 issue.
Although RAMTOP cannot be set using NEW in a module designed to LOAD the next module, it is used in some types of programs where the operator does the linking. NEW is also used where machine code is to be shifted above RAMTOP to wipe out the program in order that a new program be typed into the computer. This can be accomp- lished by POKEing the code into the Safe Area for the program, before the line containing NEW. For example, clear the computer memory by turning it off and then back on. Type in the program given above adding the following line:
—————————————————————— SS
33
25 POKE 18001,;255
RUN the program. Now ENTER the direct com- mand:
PRINT PEEK 18001
As you can see the 255 is still in address 18001, RAMTOP is set below this at 18000, and the program has been de- stroyed,
For the 1k RAM 2X81: Set RANTOP to 17000 using v= 27000, PEEK 16999 for the 62, change Line 25 for address 17001, and PEEX 17001 for the 255,
If you intend to do serious programning, work with chained programs or use word processors, then you should have two accessories besides an interfaced printer. The first is a tape recorder (or other storage device) capable of consistant SAVEs and LOADs. Two is even better, one for LOADing programs or data connected Ear to Ear with the computer, the other for SAVEing programs or data connected Mic to Mic. I use a Radio Shack CIR-51 only for LOADing as it has a wider allowable volume control setting range on some commercially produced software, My other tape recorder is a GE Computer Data Recorder model no. 3-51588.
The second accessory is an emergency power supply particularly in Florida where we refer to the power company as "Florida Flicker and Flash". Figure No.l is a circuit diagram for an automatic emergency power supply
that will maintain the program for power interuptions up to 15 minutes. You must remember to throw the switch off before disconnecting the regular computer power supply or before plugging into the computer,
compurca
81,82,83,54-9 VOLT RECHARGEAGLE BATTERIES $D1,802-SILICON CIODES 1NaS01 RADIO SHACK 276-4101 SM1,0POT SWITCH RADIO SHACK
FIGURE NO, 1
In addition to the parts listed on the diagram, you will need the following items:
1 project box large enough to accomodate the cir- cuit plus the four batteries.
l rubber grommet to protect the leads to the com- puter.
4 nine volt battery connectors.
1 two conductor 1/8" modular phone jack, open cir- cuit type, panel mounting (Radio Shack 274-251).
1 two conductor 1/8" mini phone plug (Radio Shack
274-286).
The use of a 12 volt latern battery instead of re- chargeable 9 volt batteries and a battery powered tape recorder, would allow the SAVEing of the program or data. However, leaving the switch on inadvertantly with- out the computer power supply on could be costly. If you use the 12 volt battery, also use 2.5 amp silicon diodes (Radio Shack 276-1114). As diodes are easily damaged with heat...heat sink them while soldering.
A practical chained program illustrating the RAMTOP method of passing data will be presented in Four of this series of articles.
Above Part
SS (aaa ERE EET TERRIER
MARKEL ENTERPRISES Post Office Box 2392 Secaucus, New Jersy 07094-0992 (718) 627-1293
Compu Response
Authorizes! Deater
Serving the Sinclair community since 1982!
Computer w/software & free ADDRESS BOOK software. @L Vision RGB color monitor (w/cable) while supply lasts. QL Near Letter Quality printer (w/cable).. i Computer w/monitor -or- printer. QL Computer w/monitor -AND- printer.. 512K RAM expansion w/thruport. lL technical guide... Microdrive Cartridges - book of RS232 Printer Cable..... Modapter - for use with all RS232C modems - w/software.
QL Gardener... i Decision Maker. QL Project Planner. QL Entrepeneu Ql Assembler... Cartridge Doctor - restore lost files. Icon Controlled Environment... CHOice cartridge (multitasking/mailmerge/ramdisk) for |. QSPELL spelling checker for Quill... DUMPS screen dumps to Epson compatible printers Concept 3D computer aided desig Mail Merge.......
QL Peintre graphics program.. Nucleon toolkit...
War in the East - Master Module & Secenario Master Module & Scenarios | & Master Module & Scenarios |, Il & Ill Individual Scenarios. PASCAL, FORTRAN AND OTHER LANGUAGES AVAILABLE...WRITE FOR DETAILS FREE I.C.E. CARTRIDGE WITH EACH QL ORDERED BEFORE DECEMBER 25, 1986 ——-~STUDENT DISCOUNTS---
MORE ITEMS BEING ADDED DAILY AS WE EXPAND OUR QL SUPPORT. IF IT'S NOT LISTED — WE CAN GET IT - PLEASE CALL OR WRITE.
ADD 3% FOR SHIPPING AND HANDLING. NY AND NJ RESIDENTS ADD APPROPRIATE SALES TAX.
Our address says mail order / Our phone says NYC / Our name says support
Understanding And Upgrading
The TS1016
by Tim St
This is the first of a two part article on how dynamic rams operate, how the TS1016 works, and how to
upgrade the ram pack to use the newer § volt-only 64k dynamic rams.
First let me put to rest all the fears that are probably running through your minds right now! Dynamic rams have had a bum rap for years. They are not only
EASY to use but they are also much easier to wire up! Have you wired, or can you imagine wiring up, an array of 64k memory using static random access memory? Even if you used the now inexpensive 6116 CMOS 2k byte-wide rams you would need 32 of them, plus the supporting selection logic on a board that will barely fit in an $100 system! If you used the affordably latest fn CMOS ram (8k byte~ wide), then the resulting 8 28-pin chips plus selection logic would fit on a board about the same size as your TS1000/2X81 computer!
Dynamic rams, or DRAMs for short, are constructed of simply one transistor and one capacitor per data bit. Static Rams, or SRAMs for short, are constructed of a flip-flop consisting of 4 or more transistors per bit. Right off you can see that the SRAMs consume much more power and much more die space (die is the actual silicon chip that the DRAM is made of} than DRAMs. DRAMs are not without fault, however, in that they require a small amount of attention to timing, and refresh to use.
With SRAMs you simply supply an address. and wait the required access time for the data to appear at the output. DRAMs, on the other hand, require multiplexing of the address bus. Why? Take a look at a typical DRAM such as the one in your TS1016 ram pack and count the leads on the IC body. I count 16. Well, Jets see...the 4116 rams used in the TS1016 ram pack need 3 supply voltages and ground (+5, +12, -5, GND)...that leaves us 12 leads for address and control; or for the 64k DRAM, 2 leads are used for power (+5, GND), so that would leave 14 pins for address and control. Now let's supply the 14 address lines needed for 16k, or for the 64k DRAM 16 address lines...oops, we just ran out of pins,
The manufacturers came up with a scheme for cram- ming 14 lines into the 7 that are needed for the 16k DRAM, or 16 lines into 8 needed for the 64k DRAM by multiplexing them: First, you supply the lower 7 or 8 address bits to the address lines and strobe them into the DRAM. The DRAM contains a Row address latch that holds these 7 or 8 address bits, and in fact, the strobe line used to strobe them in, is called RAS (Row Address Strobe), Next, we switch to the upper 7 or 8 address lines via a TTL multiplexer switch and then strobe in the column address using a second strobe line on the ORAM chip called CAS (Column Address Strobe). Lastly, we wait the required access time and then read the data out of the ORAM. The only other requirement we must observe js the refresh timing needed by the DRAMs.
Since each bit in a DRAM consists of just one transistor and a capacitor, it is easy to see that there is no stable state like that in flip-flop type memory found in SRAMS. The capacitor soon starts to lose its charge via leakages of one type or another, and before you know it you've lost the state that was stored in that capacitor, In order not to lose the capacitor's state we must perfodically refresh each capacitor to preserve its current state. Refresh simply means that we want to preserve whatever state the storage capacitor is currently in, the two states being charged for a logic high, or discharged for a logic low.
The manufacturers determined that if each capacitor was refreshed within a specific amount of time, enough of its charge would still be there to determine what
39
RAM Pack
oddard
BS D—— ale FIGURE 1 ra BE p—— ak 4 Swern 1k RAM PACK mS > J inne
its current state should be. For most 16k DRAMS such as those in the TS1016 ram pack, and the newer 64k DRAMs, each location must be refreshed every 2 milliseconds.
Reading al] 16,384 locations to refresh the DRAM, would a considerable amount of time, Another way to re- fresh the DRAM is needed to keep the refresh time down, One way takes into account the fact that when a
row is addressed, that ENTIRE ROW is refreshed! So if we address just 128 row locations, the entire 16k would
have been refreshed, I should also point out at this time that the 64k drams are internally arranged so that they only need 128 row refreshes to refresh the entire ORAM. THey are internally set up as four 16k blocks. Since the row addresses are supplied to each of the four
16k blocks at once, it follows that only 128 refresh cycles will refresh the entire ORAM. A method that takes advantage of an entire row
being refreshed while applying the row address is called RAS only refresh. It is enabled by supplying the refresh address to the address pins of the ORAM and then en- abling the RAS line ONLY. THis will refresh the entire row addressed by the address pins. Also, since we do not supply the column address and the CAS signal, the ORAM will not complete a true read operation, and therefore, wil] not output any data, but will remain in a tri-state condition,
There are a number of other refresh modes, es- pecially in the newer 64k and 256k DRAMs, and if there is enough interest in this article, I'll describe those modes in a future article. For now, let's proceed to the inter-workings of the TS1016 ram pack with this new knowledge of DRAMs under our belts.
I could not procure a schematic of the ram pack, so I dissected a ram pack that I own and drew a schematic
from that. During the following discussion, please use the schematic in figure 1, and the timing relationships in figure 2.
The first thing you 280 hackers will notice is that there is a refresh counter in the ram pack. Anyone who has worked with the 280 knows that it has its own re- fresh counter on chip, so why use an external one? The "R" register, as it is called in the Z80, is used in the display interupt routine to count the number of char- acters per line, and since the "R" register is manipu- lated alot in this routine, it would not be wise to use this register to preserve your data.
ICs "A" and “B" are 74LS157s (quad 2 line to one line multiplexers) and are used to switch in the refresh adéress counter IC "E", a 74L$393 dual binary counter. The counter is needed to “remember" what address we need to refresh. The refresh request signal is supplied by the 280 CPU in your TS/2X computer and is called REFSH
on the schematic. So when REFSH (active low) comes into the ram pack it gets buffered and inverted by gate "F4" and is then sent to pin 1 of both ICs “A” and “B" which
will cause them to select the inputs suffixed with a "1" (A1,B1,C1, and D1), THose inputs come from the outputs of the 74LS 393 refresh address counter. Note also that the same line used to select the refresh counter will also advance the counter one count AT THE END OF THE CURRENT REFRESH CYCLE. The counter will now contain the next address needed to refresh, ICs “C" and “D", also multiplexers, are switched ‘by gate "G4" which is enabled by gate "Fl" via gate "F2", During a refresh cycle there are no active RD or WR signals from the 280, so the out- put of gate “Fl” is low, the output of gate "F2" then is high, and the output of IC "G4" is also high. The multi-
plexers "C" and "D" therefore, take input via the inputs suffixed with a “1" (Al,B1,C1, and D1), which is from the refresh counter via the multiplexers "A" and "B".
The DRAM address lines are at this point “connected" to the refresh counter IC "E“ via the four multiplexers.
The last requirement to refresh the DRAM is to supply the RAS signal, This is accomplished with the MREQ signal supplied by the Z80 CPU. The MREQ signal is buffered by gate "G2" and supplied directly to the RAS input of the DRAM. This low-going signal latches the re- fresh address in the DRAM causing that entire row to refresh. Note that since gate "G4" is disqualified by the output from gate “F2", which we discussed eartier, its output will never change during the refresh cycle.
This will keep the refresh address supplied to the DRAM and also keep the CAS line to the DRAM inactive (high) throughout the refresh cycle, thus preventing a true
read operation of the DRAM. The output of the DRAM, therefore, during refresh is at its tri-state condition. The MREQ signa) now goes inactive (high) which removes the RAS signal from the DRAM ending the refresh cycle. Finally, the inverted REFSH signal coming out of gate "F4" now goes low, switching the multiplexers "A“ and “B" back to the system address lines, and at the same time the low-going signal advances the refresh counter IC "E" via pin 1 to the next row address in preparation for the next refresh cycle. That wasn't so bad was it? Now for a RD/WR cycle.
First, keep in mind that because the REFSH signal
is inactive during a read or write cycle, the multi- plexers "A" and "B" are supplying address lines AO through AG to the inputs suffixed with a “1" on multi-
plexers "C" and "Db". Multiplexers "C" and “D" now select either system address lines AQ through A6, or system address lines A7 through Al3.
The first signal to occur after the system has supplied the proper address is the MREQ signal. This signal, after passing through buffer "G2", is supplied to the RAS pin of the DRAM. At this instant, when the RAS signal has just gone active (low), the DRAM is "looking" at system address lines AQ-A6, and this address gets latched into the DRAM's interna? RAS latch. MREQ is also supplied to gate “G4” via a time delay net-
[EH cme mer
Fieve 2
work consisting of a 300 ohm resistor and a 47 PF cap.; and befor the MREQ signal has had time to get through the time delay circuit, the output of gate "G4" is at its inactive (high) state, This keeps multiplexers “C" and “D" selecting address lines AO-A6 via multiplexers “A" and “B". About 50 to 100 nanoseconds later the MREQ signal finally gets through the time delay circuit and partially enables gate "G4", The other leg of gate "G4" is enabled for a read or write operation (which we are doing) and system address line Al4,
System address line Alé, when in its high state, is used to select the ram pack by placing it in the 16k to 32k system address range. Note that since the last address line Al5 is not defined anywhere, a mirror image of the ram pack will be found in the 48 to 64k area of system ram. Anyway, gate "G4" is now active and its out- put goes active (low). This signal now switches the multiplexers “C“ and "D" to the system address lines A7- Al3, Note, too, that for multiplexer "C“ the output 7C goes from high to low via inputs CO and Cl. This will supply a low going signal to a second time delay cir- cuit. Khy? We have just switched the address lines to the DRAM and before latching the address in the DRAM, we must now allow some time for the multiplexer output to “settle” before enabling the CAS signal to the DRAM, this time is given to us with the second time delay cir- cuit. After 50 to 100 nanoseconds the signal gets thru the time delay circuit and is supplied to the CAS pin on the DRAM. This latches address lines A7-A13 into the CAS latch in the DRAM. About 50 nanoseconds later, the DRAM will supply its output data via pin 14 to the system data buss during a read cycle, or for awrite, it will strobe in the data from the data buss on the falling edge of the Z80 supplied WR signal.
The only way the DRAM knows what type of cycle the 780 is in, is via pin 3 on the DRAM. When low, it is a write cycle, and when high, a read cycle. This signal is supplied by the 280 CPU and occurs during the MREQ signal. After the 280 has read or written the data, it will make the MREQ signal inactive (high), this will then make RAS inactive (high), also causing gate "G4" to switch multiplexers "C” and back to inputs Al-D1 thus causing CAS to go inactive, tri-stating the DRAMS data output and ending the read/write cycle.
The one transistor circuit at the bottom of the schematic is a DC to DC converter that supplies the needed +12 and -5 volt bias supplies for the 4116 DRAMs. This circuit is a source of a lot of noise and will be eradicated when we upgrade the ram pack.
I know that the above discussion is somewhat “dry", but if you can come to understand what is going on, you'll be a long way into understanding what makes your computer “tick”!
In the next issue, I'l] present the needed modi- fications to upgrade the TS1016 to 64k, plus some of the unusual restrictions imposed by the TS1000/ZX81 archi- tecture in designing 64k ram systems.
ALSO AVAILABLE FOR THE T/S 2068
POWERFUL AND INEXPENSIVE BUSINESS SOFTWARE FOR 2X81, T/S1000 and T/S1500 COMPUTERS
xT
copy tant. alBeat Ff, ROORS
SRLRCT AN OPTION
ere Reaoveory ghia
he 3: Z Ee
ANBVEE BY ENTERING & NUMOER
A word processor is 0 a computer user what a typewriter is to @ typist, except that the former has more advantages than the latter Z&-Text can operate in 16-64% RAM providing from 1300 to 6500 words per document. It Jealures 6 itferent options write, read, edit, print, Bave and clear text, Text is written on a per-line basis with quick speed and with horizontal back-space and delete capabilities being available. You can also access the editor directly trom write mode and vice-versa. Text can be proot-read on a per-line basis allowing for enough time to determine it any editing is needed. The text editor allows a line of text to be deleted, inserted, replaced and listed for editing. You may also change a word OF expression within a line, stop or start text white it is scrolling up the screen, begin reading text from the first ine of the file, re- ‘enter write mode trom the editor, return to the main-menu of create a window so that you can read-edit two files simultaneously, The print option takes text cispiayed in 30-column format on the screen and outputs to either the ZX/TS printer, (With Memotech’s Centronics Paralel interface 80-column and lower/ higher - case cutput is possible) Files may be saved on tape cassette with the use of ‘one single command, or by the same token they can be erased trom memory / storage so that the ful capacity of the program can be used for other purposes such as composing letters, reports, articles, memos, standard forms, instructions, ads. grapns. telephone Girectory, lists of customers, members, triends..ete. Also copies of tiles are always fess expensive and easier to run than using a photocopier. Other advantages are savings in time. paper. ink. correcting mistakes ang adding afterthoughts more efficiently than doing them through either handweting or using a typewriter
$16.95
An electronic spreadsheet calculator is the fundamental basictooltor summarising, reporting and analyzing in mairix form any aecounting, mathematical or scientitic manipulation of num- bers 2X-Calc operatesin 32-84 RAM and attords @ maximum of 3360 characters /spreadsheet. The ‘entire matrix consists of 1 S columns (letters A-O) ‘and 30 rows (numbers 1-30) with8 characters/ ceil, Unlike other popular ESCs, 2X-Catc uses in calculations and wthincelisal 14math functions on the 2X-81/TS1000. It offers a unique "SUM function that totals one of more rows/columns, simuitaneousty. Parenthesis can de used within equations. There is no fixed limit on how many equations may be entered. Formulas may be Stored in ali 420 coils of the spreadsheet. The Gisplay affords 15 rows /colums, Loading ot d
into more than one cell can occur across /down ‘one of more row/coluenn simultaneously. With vertical windowing you can arrangea set of col- LUmnns in any order, or practiceusing fxed-variabie- alignment display formats. The menu otfers 6
‘and clear the spreadsheet, Enter/erase allows the entering, deietion of data siignnent within a cell heough the use of a mobile cursor. With the move option you may move around the entire sreadsheet to access any row, column of Cell The calculate option allows you to enter labels, values of formulas into @ ceil or write ang ener ‘equations that wil act uoon the dataalready within the spreadsheet. Youcan also onter bar graphs into acellinthis option. Absolute /telativereplica- tion, down/across.acolumn/row,isalsoaliowed by this option. Also this option allows the auto- matic calculation of the entre spreadsheet with ‘one single command. Print allows youto cutputto ether tne 2X/TSprinter ine entire spreadsheetby column-sets and row-pages through use of the COPY command. Theentirespreagsneet maybe saved on cassette tape or you may clear ail di from it or erase the program from RAM entirely. ‘The most salient advantage provided by an ESC over specifically vertical applications sofwareis ‘that an ESC provides a reusable framework with which you can compose any specitic financial model rather than justbe limtedtoonly one st cally fixed format for storing, displaying and manipulating numerical data,
$16.95
$3.00 SHIPPING AND HANDLING /PROGRAM
2ZX-CALENDAR
DP arrOINIMENT ADE] Wore 26/37/04
yaar. EUAN RED, CAREER te 3'se Aen.
Peontron Berm RHI 299 poeeego er. Ho. ca eeee eesti)
VEAL IDRERE OUTEEEO RS ED
Bie ry
Time management is an important aspect of any serious business and personal agenda Planning how to spend ourtime leaves.us better prepared before and while we are spending it and we remain better organized atter we finish spending it. ZX-Calendar operates in 16-64K RAM attording 25 appointments in 16K, 100 in 32k or 180 in 48K and 64K. Each appoiriment record holds @ maximum of 220 characters. The main menu includes enter, Search/check/son, change, save, clear anc print any and all eppointments made on a ‘specitic date or with any party. Output to either the ZX/TS printer is permissible. This program will permit you to amember to do something oF to be somewhere important by cataloging your answers 10 Six quastions that you mustaccount for in order not to waste time when It is scarce when, with whom, al what time, for how long, where and what are you going to discuss and conclude when you get together with someone else? The program iets you permanentiy originate, record, classify, search, sort. calculate, modify. summarize. obtain a written report and store your answers to the preceding questions so that you will net forget what you Gecide to do with your time. This program identities your time according to when you are going to spend it and with whom you are going to share i Through these forms of labeling Bppointments you are able to verity or modity how your time is budgeted without wasting ink, paper Gr moretie trying toremember what you Said to yourself or what someone ei6o said to you of where you placed certain written messages that you now can't find. With this program you will know where you can lind ‘exactly what you need to know about where you want to and have to be, or where you have been. before you getand alter you got there, Thus, Zx- Calendar wil lat you plain your time so that you wit never have to worry about wnat is ahead or what came before, for you wil always know, by using 10 never be caught astray by any time-frame.
$16.95
A.F.R. SOFTWARE - 1605 Pennsylvania Avenue, No. 204 - Miami Beach, Florida 33139
DEALER INQUIRIES WELCOME
L-1 © 1984
(305) 531-6464
37
FLORIDIANS ADD SALES TAX
WEYMIL CORPORATION
..makes a serious commitment to the Timex user in the development of high-quality, in- novative, and user-friendly software, complete with layman-oriented documentation, and all at affordable prices. We are proud to offer you:
* THRUST*
Finally, real graphics power for your TS 1000! THRUST, the last word in cursor- controlled hi-res graphics for screen or printer output, is a software package composed of SincArtist HR and SincAr- tist 1.3. Examine this sample for an idea of the powerful versitility of THRUST.
SINCARTIST 1.3 - The original! Fan-
tastic hi-res graphics delivered to the 2040
printer. SincArtist 1.3 boasts excellent
user-group reviews and is simply the best | non-hardware system available. Note ea these features:
— 192 x 256 high-resolution file displayed in a 48 x 64 screen window — Circles, triangles, rectangles, quadrilaterals, rays, inversing, and more — 40 redefinable patterns and a variety of draw and fill modes
— Cursor or joystick control
— No system modifications required
THRUST includes SincArtist HR and Sine-Artist 1.3 (these programs are not sold separately), The Ultimate Hi-Res Tape is available exclusively from Weymil Corporation for only $20.
* MINI XMOD *
MINI XMOD - Allows your Westridge or Byte-Back modem to up and download Timex pro- grams to any XModem protocol BBS.
— Fully documented with easy-to-follow instructions for the layman
— 16K and 64K versions included
— Ideal for storage in Hunter Board
— Produced on high-quality casette for the ZX 81, TS 1000, and TS 1500
MINI XMOD is available from Weymil Corporation for only $20. Please specify Westridge or Byte-Back version. WEYMIL CORPORATION BOX 5904 BELLINGHAM, WA 98227-5904
(Write for a free catalogue of other TS 2068 and TS 1000 products)
SINCLAIR QL COMPUTER and extra software, $275 used. Delta 3-in-1 interface with 128K, a disk in- terface and parallel printer port, $225. Two 3" Amdek disk drives, power supply and cable, $125. ALL for $550 and shipping. 904/378- 9000 evenings.
LLsolrtel
FREE ADS FOR SUBSCRIBERS
FOR SALE: extra copy of 352-page QL ADVANCED USER GUIDE by Adrian Dickens--THE authoritative guide to the QL & QDOS. Asking $20 ppd (compare at $29.95) send to Paul Bingham, POB 2034, Mesa, AZ 85204. T/S 2068 UTILITIE. Auto~line Number, Renumber (GOTOs, GOSUBs, ect.), Read Tape Header, Display Vars., Find String in Prog. $10. Michael Cover, 1405 Chevington Cir., Zanesville, OH 43701.
ADVENTURERS! Join in the fastest growing hint trading group in North America. Send SASE with hints, and problems, for prompt reply to: Douglas Jeffery, Larch Rd., RR #1 Telkwa, B.C., Canada VOJ 2x0.
WANTED: Programs for TS-1000 to trade. Send me your list and large SASE. Also programs for above 16K RAM. Anyone have a copy of Memotech Memopak 64K Memory Instruction Manual? Any information will be appreciated, Richard Beier, One FOR SALE: Over 30 game programs Darwin Drive, N. Merick, NY 11566. for T/S 2068 or Spectrum at $8.00 Snore ne nm ew een ana con nwennnnamanansnoewen monn (U.S.). Send for a list of soft- AERCO C/P $50; TS-1000 with power ware available or phone (403) 236- supply and man. $10; 2068 Software 4465. Garvin Bertrand, #311 135
$35. D. Gustafson, P.O. Box 3700, Lynnview Rd. S.E., Calgary, Alberta Pens. FL 32516 (OS-64, ML Tutor, Canada T2C 266. p= el VU=3D, :MSCRIPT/Ajage)y.. © “| p etan tanec cele ete. “<2 tO A eR eats oa Lac tmaral 6 TS BOOKS FOR SALE: Working 2068, SOFTWARE for TS-2068, TS-1000, and Creative Games For 2068, Games For AERCO FD-68. New and used hardware/ 2068, TS 2068 Explored, The 2068, software. SASE for free catalog. 200 Computer Programs In BASIC For Chia-Chi Chao, 73 Sullivan Dr., 1000 + 2068. C. Lytie, 1064 Moraga, CA 94556. ze Worth. Woods, Worth., OH 43085.
WOULD LIKE TO CONTACT another Zebra T/S 1000, 2050 MODEM, Millenia K Graphics Tablet User. Need more info Disk I/F, Zebra Lightpen, lots of on Interface and Software--Alvin S/W: 615-823-2078 p.m. only.
Lam, 1258 Fascination Circle, D. Taylor, Rt 4 Box 303-A, Richmond, CA 94803. Livingston, TN 38570 for titles,
Sete teen emanate nnn nnn nnn nnn nnn en enasacns prices, more info. COMING SOON. MONEY MACHINE I1.
Now starring VANNA WHITE. Send SASE for FREE LLISTing of Vanna White moving graphic. Herb Bowers, 2588 Woodshire Cr., Chesapeake, VA 23323.
—
FOR SALE: 2068 w/Tech Manual, Alphacom 32 printer, 2 programs & 3 texts. ZX81, Winkee & 6 texts. 100 hrs on each. S.L. Jacobs, Rt 3 Box 2750, Dexter, ME 04930, 207-924-6414
Do you have some equipment or a program that you would like to sell? Looking for something hard to find? Place an ad in THE CLASSIFIEDS! Subscribers can place one free personal ad in each issue. Ad size is 32 Col. wide (like 2040 paper) and maximum of six lines. For additional lines - $3 each. NON-SUBSCRIBERS and DEALERS: $4 a line. DEADLINE FOR ALL CLASSIFIED ADS: Two weeks before publication date. Mail your ad to:
TIME DESIGNS MAGAZINE, The Classifieds Dept., 29722 Hult Rd., Colton, Oregon 97017.
WANTED TO BUY: Ramex Millennia K Disk Drive System w/MPI i-meg drive. Also same drive #2 for above.
Send price quote to~ B. Hardware c/o Jim, 132 1st Ave. S., Perham, MN 56573. 218-346-4760.
WANTED: Screen dump progran on cassette to drive Tandy CGP-220 Color Ink Jet Printer for TS-2068 w/ Tasman B I/F and/or on mcdrive for QL. Michael Kudelka, 4859 Sacramento, St Louis, MO 63115.
FOR T/S 2068: 3-Reel 9-Way Win Giant Slot Machine on cassette. All in BASIC & listable, about
32K with Stick/Inkeys provision. Send $6.00 to D. JEWETT, 63 Charro Dr., Santa Rosa, CA 95401. Includes shipping.
WOULD LIKE TO CONTACT MIDI I/F OWNERS who use 2068 or Spectrum and any keyboard. Professional musicians or amateur hobbyists. May start Sinclair MIDI users group/newsletter. Write to: Tim Woods c/o TIME DESIGNS, 29722
fult Rd., Colton, OR 97017
QL MULTI-MICRO SPECIAL: $283
WITH FREE EXTRA SOFTWARE! Get an Extra FREEWARE cartridge Filled with additional Super
Software with ALL QL purchases
right NOW! Get Backup Utilities, Graphics Demos, Clocks, Maps, Sound Generators, a Postermaker! Teo Much to mention! All Free with each QL ordered. Add $7.00 for S&H please. ALSO: SPECIAL PROGRAMMERS, OS/LANGUAGES, EDUCATIONAL & BUSINESS SYSTEM PACKAGES! MODEMS. CALL us up on
our Q Linet
But what IF you Already HAVE your QL?? THEN Just send in a blank cartridge with $2.0® for S&H and you'll get all of the above FREE Programs Too! We offer users QUANTUM SUPPORT for the QL! The Computer That By Far Outclasses the Status Quo PCXTAT & Cloneys!
QUANTUM COMPUTING, Box eae, Dover, N.J. ©7801 CALL (201) 328-8846 The QLINE - ANYTIME 24 HOURS!
ORDER OUR CATALOG! and get this
FREE Software §
on cassette...
FOR THE TS2068
re SOMGETE ang
1. 3D Moving Display 2. 3D Pyramid 3. DIAMOND MIKE game demo
4. 3D Tic-Tac-Toe demo 5. Plus commentary by programmer John Coffey on 32-bit computers.
Our unique product catalog and free software all on a quality tape only... $1.00 Order Yours Today!
JRC Software
P.O. Box 448 Scottsburg, IN 47170
eetings human, I am .¥., winner of the Golden Droid Award at the First International Personal Robot Congress and Expo in 1984. You may be sucprised to hear that my brain is ceally @ Timex/Sinclair 1000 computer. In fact, you can learn nore about me and other projects in a new book by my master, Bruce €. Tayler. The book is called: BUILD A MICROOOMPUTER~ CONTROLLED ROBOT. It has over 200 pages, over 80 illustrations, and coves with a great looking custem Ascing binder. There is even & bonus section for in- structora who would like to teach about robotics. You can get your very own copy for only $17.00 (postage paid) from the nice folks at TIME DESIGNS MAGAZINE Company. Get a head start on personal robotics...the nevest high-tech craze. Get bock, and read all about how could you ge ureng
Quality Publications For Sinclair Computers
TIME DESIGNS MAGAZINE COMPANY 29722 Hult Ad. Colton, Oregon 97017
40
TS2068 Trackball Only $19.95 -
Originally sold for $69.95
a Ws Specify Cat# TBTMX02
Plugs into TS2068 Joystick Port and
works with all joystick software.
Bonus Feature: Also works on Commodore 64, VIC-20, ATARI 800, and more. Contact factory for more complete list.
You can benefit from our recent purchase of brand new WICO Trackball Controllers at closeout prices. We've taken the model WICO originally made for the Texas Instrument 99/4A and made a very simple modification so it now is fully compatible with the Timex TS2068’s joystick port.
WICO is the largest designer and manufacturer of control devices for commercial arcade video games. If you've ever played an arcade video game, chances are you've used a WICO joystick or trackball. You've experienced the superior control, accuracy. The exceptional durability
The pinpoint firing
Features; Phoenolic ball offers 360-degree movement. Two optical encoders provide split-second movement. Quick-action fire button for smooth, two handed arcade response and feel. Long 6’ computer connection, Heavy duty plastic case for long hard ure
The WICO warranty has been voided by our modification. But we sive you our 15-day money back guarantee and a one-year limited warranty from Zebra Systems.
Timex Games $2 Each
With your order for a T$2068 trackball you can purchase any of the following Timex TS2068 Trackball and Joystick compatible games at the special low price of $2.00 each for cassettes and $3.00 for cartridges.
CAT# TITLE
Cassettes at $2.00 each
64001 Androids
64002 Penetrator
64004 Casino I
64005 Crossfire
64006 Circuit Board Scramble 64007 Dragmaster
64009 Guardian
64012 Fun Golf
CAT# TITLE
64014 Hungry Horace
64015 Horace Goes Skiing 64019 Horace and the Spiders 64021 Blind Alley
64023 Crazybugs
Cartridges at 3.00 each 74001 Androids 74005 Crazybugs
$5 Off Tech-Draw Jr.
You can save $5.00 on the purchase of Tech-Draw Jr. if you purchase it at the same time as a T$2068 trackball. Instead of the regular price of 19.95 you can get it for 14.95. See our catalog for a complete description of Tech-Draw Jr. and a list of printers that it supports. Order Tech-draw Jr. Catalog yé C256.
TS1000 TRACKBALL Only $39.95
Originally sold for $109.95 Specify Cat# TBTMX01
Plugs into the back of TS1000,1500,2068, or ZX81.
We've taken WICO's Apple Il trackball and put its controller card on an interface adapter for the Timex bus.