MARCH/APRIL ’87
Vol. 3 No. 3 383.00 Us. Funds
‘3S
AMERICA’S LARGEST TIMEX SINCLAIR MAGAZINE
4 BULK RATE |
PAID solTON Rah fy | PERI DATED MATERIAL - TIME VALUE mound MATERIAL - PLEASE FORWARD
EXxXCLusiIveE
BINGHAr!
live’s
silane tives! :
U.S. POSTAGE
wee NEW LIFE FOR THE 2x*S1-TSi0an sxx
SILICON MOLINTAIN COMPUTERS announces TRUE HIGH RESOLUTION SOFTWARE for the ZX81/TS1000. You read it right! Without any expensive hardware add-ons, your computer can now run software that even its designers never dreamed possible. Thanks to an amiziug discovery by Wilf Rigter, and innovative progranming by Gregory Harder and Fred Nachbaur, you no longer have to suffer the "low res blues." Multiple character sets, 256x192 graphics, 64-colum screens, UOG's, even SPRITES are now available for your computer:
NO computer modifications are required. If you have a ZXS1, TSi900, or TSI500, with a 16k (or larger) RAM pack, plus an 8k Static RAM board, you already have all it tekes to run this remarkable software. Suitable static R/Ms include the popular “Hunter” board, or similar designs (see SyncWare News vol, 4no. 1 for one such project costing under $10}. Alternately, consider our 8K "SCRAM" board (deStribed below).
AIL prices include shipping in USA and Canada. foreign orders: please add $5 for air shipping. CONS accepted at par from Canadian ‘customers, Write for cataldg of other available software. At SILICON MOUNTAIN COMPUTERS, the 2X81 family of computers is our ONLY specialty. Our goal 1s to develop the most progressive softmare ever created for these machines. Ue feet that the software Listed below propels these machines into mainstream computing; we think that you'll agree.
"ScRAM" NVM BOARD
market, wedjsaw the need for an improved func- [this oso-styte oranhic adventure tional equivalent, at a lower price! This board [rm {s the post challenging
With the loss of the "Hunter" board from the OUNGEOM OF YMIR ll I i works with ZX81/TS1000 or TS1500, has on-board f c27fe,7%d, spectacular, enter - THY 2
battery back-up protection, and supports all of for the UXBL family of compu- our high-res software with no modifications, [t | ters. 9 levets, 124 monsters (16 Sh jetties gan be mapped in, 0-8 (ROM overlay), B-16K J ize aadicttve, "ven? chatter: : " (normal operation), even 16-24% or 24232k, dine Ha eorsstve apes: andl 100: achine-cose, yet takes. wo Other features include: geen ealiste osestar forte * DIP switeh.to deselect 2K blocks sare” and "a must have." We know Boataienable’ switch that you'll agree, write-protect switch seeee NEW LOWER PRICE RESET switch easily\installed (optional) bd $19.95 Including shipping Very low power drain “ Pe ea es EERE Feed-throuah connector 548 lee e [ied [sae | ore [R10 | seas FULLY ASSEMBLED! Just plugsit in. Use with Other machine-codesgof tware
PRICE: $39.95 inéluding shipping.
3
RBSuF
'®.
br Bont ganet sent Senet er.
VEAR-AT-a-oLance 49999999 WELCOME TO Ceeete ee |i inis catemarsipnoinvwat, book Lae ats Bear See erocram demonstrates. the power Leer aise LIS) LLIST. PRIRT REVERSE POIRT. Locate you fave. using seam arenes Exo ioe breary | fenced BASIC. Enter, wdace, de ev Say] we wren [lete, Vist, print messages and crear Canam hi-res |! HE MINCE F eRInaers for any day of any LTE es Rares | ear 1200-2099.” Prograe struc Srintnot | Lure W117 remind you ef auch Ta AT. AINOORE MIPOOUD MITOOUL KINGOMR OG SPATTER SPAITEE | rae sachines wich sbal} remain ‘SPRTTEP SPRITES a SAYE-Y LOWO-9 S@TE-5 Lowes spreiess....
Seiat Sks.5 SNS 65, Sa web ges.
=
gen. Stes. Sn: # ystat
Bis
agen
es
&
genes pone
Fug
| ary PRICE: $9.95 including shipping, or and SSPSEE SPECIAL OFFER BELOW *e*
FRED facnpaun
BoRe BLRo0
roe a8 = a 82-83 E7-8S SAT HERES EXTENDED GASIC 15. th tiad b8-c6 our new line of software. With thig remarkable A3-F8 £S-F6 package YOU can write high-resolution appli- preceracs cations... ENTIRELY IN BASIC! While using only HIGH-PES gHESS tae ej 4K of memory, SRA HI*RES adds 38 new hi-resol= This program wiedddl the see- Soy MRS tate ution commands, Ff yowsknow how.to program. in Psion “CHESS program (a5 G8 4-03 (3-05 Sinclair ASIC, you will find: SRAM HIRES easy Timex) to spectacular tere to learn and use, A revolutionary syntax system format. included with the ae allows ANY variables or expressions to be used sae Pa mae aa oe-F3 in your commands, No RES to pass parameters: No acksvo) thegrigina! pret a PORES! A single USR call is used for ALL: com- . ho Tomer agp osed to play 05-65 mands! Most commands can be chained fat. MuL~ using @ “real chess TIPLE STATEMENT LINES! We even included fa (B,5x normal) set of tape routines! The most ré PRICE: $9.95 Including shipoingy liable tape system ever written. Other features: *-Three 32-colunn PRINT modes . Lower=case_and new symbols S4-colunn PRINT mode 128 User-defined characters Scrolt WINOONS any direction... a pixel ata cime Up to 32 TRUE sprites: Speed adjustable. SPECIAL OFFER Invert windows or entire screen Software-only video reverse Mf you purchase our "SCRAM" NVM board and. SRAM PLOT, ORAW. CIRCLE, RECTANGLE, TRIANGLE HESRES EXTENDED BASIC and mention this ad, Joa ae eer eumper sat you'll get a FREE copy of YEAR-AT-A-GLANCE.
Much more! F PRICE: $24.95 incl. complete manual & shipping Offer good only until July 15 1867.
The Peak of Quality... from SILICON MOUNTAIN COMPUTERS C-12, Mtn, Stn. Group Box, Nelson BC VIL 5P1, CANADA (604)352-1668
—f“Yias the former editor of SUM.
The Editor’s Forum
First, without sounding like a lot of hype, I would like to encourage as many of you that can make it, to
attend the Timex Sinclair Computer Fest in Indianapolis
this coming May. Frank Davis and crew have spent an ‘enormous amount of volunteer time and even personal in- vestment, to bring you the largest assemblage of TS vendors and enthusiasts ever seen. I'm hoping that we can show our appreciation by surpassing their an—
ticipated attendance goal. For further details, please check out the news section in this issue. I have received a number of requests for info on
where to get repair work done on Sinclair computers. This made me realize that TDM hasn't reported on this since one of our early back issues.
Currently, we know of three sources for repairs of the TS1000/TS1500/TS2068: Carver Technologies(Tim Carver is the service technician), 3832 Watterson ave, Cin- cinnati, OH 45227, tel.(513) 271-5575; Timex Product Service Center, 7004 Murray St., Little Rock, AR 72203,
tel.(501) 372-1111 [yep, they still provide “out-of- warranty" service at this time]; Sunset Electronics, 2254 Taraval St., San Francisco, CA 94116, tel.(415)
665-6161.
For QL service, contact either A+ Computer Response (69-B Island St., Keene, NH 03431, tel. 603-357-1800); or Brice Road Pharmacy (1653 Brice Road, Reynoldsburg, OH 43068, tel. 614-861-3600). However, I recommend that you contact the dealer where you purchased the computer from first.
For Spectrum repairs, we have no recommendation, other than consult the back pages of ZX COMPUTING, where several European repair. houses are listed.
Another source of help for that faulty computer might be a new regular feature here in TIME DESIGNS (see elsewhere). It's called the "TS Communique", and is hosted by our own Joe Williamson. Joe, as you may know, He also studied elec- tronics and earned a degree from Florida State, and is currently employed as service technician for a video store. The TS Communique allows you the reader to send
in questions about troubles you are having with your equipment (including monitors, printers, interfaces, storage devices, etc.). Answers will be printed in up- coming issues.
In closing, I would like to do something that I've never done before in TDM. Let me explain. A couple of months ago, I was having one of those perfectly rotten days (you know, the ones where nothing goes right?). Then in the mail, came a letter which changed all that. It simply read as follows:
Dear Nr. Woods,
Please accept my renewal to your very excellent magazine. I am one of those carry-overs frgn SUM, that you took under your wing last summer. Because of your magazine, my interest in the TS2068 has really grown, and I just wanted to say "thank you".
Respectfully Yours, Jim Preston Gainesville, Florida
Because of this one note, the whole rest of my day had a different outlook. All of those nights I went without sleep to make a deadline, somehow seemed worth- while. If I could renew the interest in a powerful little orphan computer, then my original goals for ‘TDM had been met.
Sadly, a few days ago I learned that Jim Preston had suddenly passed away from a heart attack at the age of 66. He had been a member of the Gainesville Sinclair- Timex Users Group for a couple of years. One of the members told me that Jimwas "a heck of a guy. Had a great sense of humor...and would do just about anything for you. He was that kind of person",
Although, I never met him personally, I was touched by that one note that.came at just the right time. In this respect, I would like to dedicate our March/April 1987 issue of TIME DESIGNS to the memory of Jim Preston.
I think you would have really liked this issue Jim.
Sincerely, Tim Woods Managing Editor Time Designs Magazine Co.
Special Information for TDM Subscribers
WILL YOU BE MOVING SOON? Or even if you change toa post office box, please let our office know. well in advance. We have found that the U.S. Postal Service will not reliably forward third class mail (like TDM) even if there was only a small change in the address (like an apartment number for example). To ensure that no issues will be lost, notify us a soon as you know your new address.
WHEN TO RENEW? To determine what your date is, read the information in the upper right-hand corner of your shipping label (located on the front cover of this magazine). ‘For an example: “Mar/87" means that the March/April ‘87 issue will be the last one you will receive until you renew your subscription again: An early renewal is appréciated. We also send one reminder notice in case you forget. You can also use the form on page 43 to renew your subscription.
expiration
Editor: Tim Woods
MAGAZINE
FOR ALL TIMEX AND ~~ SINCLAIR COMPUTERS ~ TIME DESIGNS MAGAZINE CO. 29722 Hult Rd. Colton, Oregon 97017 (503) 824-2658
CompuServe ID 71950,3230
MARCHIAPRIL °87 Vol. 3 No. 3
TIME DESIGNS MAGAZINE is published bi- monthly and is Copyright © 1986 by the Time Designs Magazine Company, Colton, Oregon 97017. All rights reserved.
Reproduction of this magazine in whole or in part by any means without written permission is prohibited by law
“NOTICE: Contributors to TIME DESIGNS are independent of the TIME DESIGNS MAGAZINE CO,, and opinions ex- Dressed in the contents of the magazine are not necessarily those of the management or its advertisers, Time Designs Magazine Co. will not be held lable for any damage or conse- quences resulting from instructions, assertions of fact, review of products or companies provided in the magazine's content.”*
Assistant Editor: Stephanie Woods Editorial 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 year 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 satistaction is our goal. For subscription service problems please write or call TIME DESIGNS.
CHANGE OF ADDRESS: Write or call to prevent delay of sevice,
Editor: To "recap" a Letter that was printed in the Last (Jan/Feb '87) issue of TOM, «nom Vince Stimmel; help was requested on saving auto-nun cassette programs to the ALJ Microdrive. Mr, Stimmel reported that he received a number of responses and a phone call before his copy of the magazine arrived in the mail. Here ane two NCSpONSLS that were sent in to us directly...
Since we too have recently invested in the "poor folks" mass storage fron A&J, we have a feeling of kin- ship. If you have the customized version of MSCRIPT, the "catalog" function can be a help in getting self- starting and machine code programs onto wafer. Load MSCRIPT; at the HOME menu, set "use" to cassette (just hit the "U" key). Then hit "Cc" for catalog. Play your program tape, and each program should be listed on the screen, along with memory addresses for all code or the auto-start line number in Basic programs. Now that you have some more information, see if you can break into the Basic and save it to wafer. Then save the indicated code at the indicated address and length.
Branson Wilcox Cawker City, KS
Thank you for publishing my program "Character ANALYSIS" in the JAN/FEB '87 issue. I hopé»your readers will enjoy and find some use for the program. I will be happy to answer any of their questions regarding it. 1 am also enclosing a subroutine for SAVING to A&J and/or tape, to answer the question your reader, Vince stimmel of Hendersonville, NC, asks. It includes error trapping, verifying, and autostart.
William C. Andrews, M.D. San Anselmo, CA
TO SAVE 9900 ON ERR RESET 1 BORDER 61 <@———— GOTO 99@g PAPER 6: CLS : PRINT AT 5,12; P APER 1; INK 9s BRIGHT is" SAVE? "SAT 19,73 PAPER 25" 1"; PAPER 63 BRIGHT ON MICROWAFER “;AT 12,135" OR "sAT 14,7; PAPER 2; BRIGHT 15" 20"; PAPER 6} BRIGHT ®;" TAPE CASSETTE “: PAUSE & 9@18 LET Z$=INKEY$s IF Z$="2" TH” EN GO TO 9948 9020 BORDER 1: PAPER 1: CLS: PR INT AT 10,105 PAPER 2; INK 93 FL ASH 13" RECORDING " 9830 GAVE "@1, TITLE" LINE 9100: 60 To 9190 9848 ON ERR GO TO 9890: BORDER 9: PAPER @1 CLS t PRINT AT 11, 10 i PAFER 2; INK 9; FLASH 13" RECO RDING * 9@50 SAVE “TITLE” LINE 7190 9@68 BORDER 1: PAPER 1: CLS : PR INT INK 7;AT 9,25 "REWIND TAPE-- PRESS ANY KEY TO"? "' TAB 5; °VERIF Y OR BREAK TO STOP" 9076 PAUSE @: CLS + PRINT AT 11, 193 INK 63 FLASH 13" VERIFYING " 9080 INK 1: VERIFY "": PRINT AT 11,6) FAPER 2; INK 93" RECORDING IS O.K. ": BEEP .5,1@: PAUSE 20 8: INK @r GO TO 9190 9090 CLS 1 PRINT PAPER 23 INK 9 } FLASH 13AT 10,105" TAPE ERROR ": PAUSE 200 9199 ON ERR RESET + CLS 1 GO TO Autostart of program
ager ee 2
The number after @ must be in sequence for its position on the wafer.
After the , name of progran (7 char, max.).
Number after LINE is the next sequence of progran (could be the auto-start).
For tape--no @. Title Limited to 10 char. max.
es,
I am writing to say thank you for doing a great Job with TDM. I especially appreciate the Machine Code pro- grams, utilities for the TS 2068. Thank you also for Publishing the Source Code for Michael E. Carver's "BASIC2text" (Nov/DEC '86). I really enjoyed that one. 1 learn so much from labeled, notated source code about the 2068 and the assembler language itself. ‘Thank you for doing this, hope to see more.
Syd Wyncoop's column has been the best presentation of Beginning 280 Machine Code I've ever seen. Now that the price has come down on Softsync's programs (now available fron Zebra Systems): ZEUS ASSEMBLER, ZEUS MONITOR/DISASSEMBLER..well, they are great programs! Here is a tip for the Assembler, that some users may appreciate. The instructions that are included with ZEUS ASSEMBLER do not explain how to get a minus dis- placement value. For example: you would like to write a program or utility that resides at address 57344 (right at the start of the assembler), and you would like to have your assembled code at address 40000. You would use the ORGinate address 57344. ‘Then to calculate the DISPlacement: 65536 - ORG(address) + assembled code (address) = DISPlacement or 65536 - 57344 + 40000 = DISP 48192. When satisfied with your code, SAVE “name"CODE 40000, length. To test it out, LOAD "name" CODE 57344 or whatever was used for the ORGinate address. Thanks again for a great magazine!
Richard Hurd Warrenton, OR
Editon: Thanks fon your continued support, accept both criticism and praise.
Syd Wyncoop replies: I have an easier way for negative dsplacements in ZEUS. The probeem is that my way better fends itsek§ to use in hex. 1 will usually assemble my code to address #C000 and then add an offset of #2000 to all Labels. Using these numbers, the Machine Code would be assembled at 49152 and run <nom 57344, These numbers ane not as strange as they would ,inst appear. They rep- resent page breaks between &k sections 0f memory, but this 48 only obvious when working in hex. The "#" in front of the above numbers is the notation used by ZEUS to denote a hex number. As Long as you are running your code from any 256 byte page break, this technique works very well and is easy to use, if you use and understand hexidecima£ nwnbers. Thanks fon Your comments.
Richard. k
Dear Tim,
You mentioned in the Jan/Feb '87 issue that I would soon complete debugging the 1S2068 ROM software. I would have said "debugging is an on going project" and the corrections that are completed are ready for release at any time. I am working on both the TS1000 and 1TS2068 software. I have the TS1000 (and TS1500) on 16k EPROM. With the price drop on 32k static RAMS we can now have a four chip computer with 32k bytes internal RAM and &k Space for special ROM code.
The latest bugs corrected for the 152068 include both the HOME ROM and extension ROM software. ‘These corrections allow a BASIC AROS to operate in the advanced video modes. With these corrections the PRIN USR (number) also works in the advanced video modes
Bob Orrfelt 3436 Bay Rd. Redwood City, CA 94063
4
I have not been able to figure out how to print a copy of a screen display on my QL Printer. I have tried
interpret the information provided by the QL Users iGuide, the QL Printer Manual, and Jan Jones' book "QL SuperBASIC", all to no avail. After spending around $800 for my QL setup, I feel cheated that the capability is not specifically addressed in the manuals, if in fact the capability exists. Must I purchase a program in order to do this, such as a desktop publishing program? Your advice will be much appreciated.
Doug McRoy Laurel, MD
Mike de Sosa answers: The following short program should sokve your problem. This and more useful programs Like it will be found in my new book TAKING THE QUANTUM LEAP: THE LAST WORD ON THE SINCLAIR QL, to be published by TIME DESIGNS in Apnit. Always use PAPER 0 (bfack) when preparing a screen to dump, otherwise you'le wear out your printer cartridge ribbon in a hurry. To make sure you capture all of your screen design, Leave about 5 character spaces and 1 Line space blank on the top, bottom, and sides of your screen design.
With the popularity of telecommnicating using 1S computers, I thought it was about time for a simple, easy to build modem to appear on the scene. Using the circuit shown connected to the Mic jack with the program listed, you too can enjoy telecommnicating over your telephone line, WARNING! There may be rules and regu- Jations governing connections made to telephone lines in your area. Check first.
‘The Circuit shown can be made from parts that are available locally, and it uses the Mic jack as the 1/0 port. The transformer matches the impedance of the phone line to the impedance of the computer and provides isc— lation. The switch allows you to place the circuit "on hook" or "off hook".
The program must be entered exactly as shown, particularly the REM statement which contains the code required for proper operation. The BEEP command is used for the different tones. The program is bare minimum for printing to the screen and keyboard entry. Because of this, you should load in the program first and become familiar with its operation BEFORE attempting the hard- ware portion. The USR calls are primarily for keeping track of what is printed where on the screen.
After typing in the program, save it before running 80 you won't have to type it in again if the program crashes. Once this is done, enter RUN and you should be greeted with the message: "Super Simple Modem Ver. 1.1 Ready". With a flashing cursor here on the next line awaiting keyboard or external entry. Press any key to start.
To go online with some of the different modem services available, turn the switch to the off position and connect to the phone lines and plug into the Mic jack as shown. To dial, use a standard phone and dial up a modem service. As soon as they answer, turn on the switch and hang up the phone. You should be online with who you called.
‘The simplicity and ease of use of this program will award you great pleasures in use. Try it. Show it to your friends. Enter the world of telecommnicating today. What can you lose?
ON/OFF Suits
o——_—* To Phone Lines £3] A
Modem Circuit
To Mic por Jackon 2. tocol Doeeer
vdio TransFormes
Save the program on your QL-BG (Easel) backup cartridge. Run the program on MDV1. Key and enter “dscreen" to get a suitable window for your design. Make your screen design. Turn your printer on. Key and enter “dump" to copy your screen on your printer.
Tf you want to SAVE your screen design, use:
SBYTES MDV2_anyname, 131072, 32768
To reload your design, use:
LBYTES MDV2_anyname, 131072
] REMark 2 a=KESP 3 LCEYTES a 4 OFEN_N S PRINT & CLOSE i 7 DEFIne PROCedure DUMP OPEN #3 ,.mdv) _deode 9 INPUT #3.a Ty EArce Sis x a LO lz END DEFi 12 Bebe 15 FAFER 16 PAPER 17 END DEI
Build this SUPER SIMPLE MODEM by Joe Williamson
782068 Modem Program
1 REM RTODQ-RHLOKD-LNCDL-UDQ- O-OQD@CK@OQHKENNKR <>xx
10 BORDER 0: POKE 23693,7: CLS
+ RANDOMIZE USR 26757
20 LET L=25: LET P=26715: LET CsIN 244
30 DIM ASCL+1)
40 GO SUB 1000: PRINT *As
50 LET P=P+L+1: LET L=4
58 RANDOMIZE USR 26757: DIM As «L+1)
60 GO SUB 1000: PRINT ’*A$
70 PRINT * FLASH 13" *
80 PAUSE 0: PRINT AT 6,03 FLAS Hos" *
90 LET P=P+L41: LET L=4: DIM A $(L+1>: GO SUB 1000: LET Q=14: LET S=.75: LET C=C+4: GO SUB 40 00
100 LET P=P+L+1: LET L=5: DIM A $(L+1): GO SUB 1000: LET Q=21: LET S=.7: LET C=C-2: GO SUB 400 °
150 BEEP .2,20: BEEP .2,5
160 BEEP .2,20: BEEP .2,5
200 PAUSE 0: RANDOMIZE USR 2675 8
999 STOP
1000 FOR N=0 TO L: LET AS(N+1)=C HRS (CPEEK (P4ND)+1)
1020 NEXT N
1050 RETURN
3999 STOP
4000 LET A=LEN AS
4025 PRINT AT 21,03 INK O3as 4030 FOR f=0 TO 8xa-1: FOR n=0 T © 7: IF POINT (f,n)=0 THEN. GO TO 4055
4050 PRINT AT Q-N,FxS: INK Ci" *
4055 NEXT N: NEXT F 4060 RETURN
NEW PRODUCTS
For TS2068 and SPECTRUM
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!! ARTWORK V1.1 - $19.95 U.S. plus $3.00 S & H
REVOLUTIONARY NEW BASIC COMPILER...
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
- 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 US. Plus $3.00 § 8 H
Novelsoft
A FORMAT FOR THE FUTURE
106 Seventh Street, Toronto, Ontario, Canada M8V 3B4 * TEL. (416)259-8682 « CompuServe 70416,1435
TS Communique
A forun for people having problens with their 1500 and 2068. If you would like to ask a send it to:
1000, question,
TS Comunique
c/o Time Designs Magazine Co. 29722 Hult Road Colton, OR 97017
I have a Panasonic KX-P1091 printer that I use
with MSCRIPT on my 2068. I cannot print in italles, pica, elite, or proportional (any multi- byte control codes); I have used various symbols
(comma, “", -, etc.), but no luck. Underline, bold, and double width print work well, but nothing else. This really isn’t a “big thing", but it just bothers me that I can’t use these functions. Any help you can give me would really be appreciated.
Jack Van Nest San Diego, CA
Dear Jack,
You must define a code key for each part of the multi-byte control code. For exanple, to define for italics print (27+52 turns italics on and 27+53 turns italics off), define the code keys as follows in your first line of text: )#0=27,#1=52,#2=53\
When you are ready to Insert them into your text, use the function G to add @0@1 to where you want italics to start and @0@2 where you want it to end. -Joe
I am using a Panasonic CT-160 composite color monitor and cartridge software. The color display is excellent from my “main* 2068 computer. The display from ay "backup" 2068 Is also good while using a TV, but no color from the monitor output.
Was this a common factory problem, and if so, Is there a repair that can be made at home without sending the unit through the mall?
John Buckmaster Maspeth, NY
Dear John,
Yes to both questions. The video from the 2068 is not really up to standards. The color cutput seems to deviate the most. Your TV probably is a bit more tolerant of these signals and will work with your backup 2068. To help correct the problem, You must open up your 2068. Make sure that the power Is off and be carefult
Pop-off the metal cover near the TV output connector and turn the little adjustment Inside with a small screwdriver until color appears on your monitor. Be sure and check all the colors to make sure it is stable for all colors. The three adjustments around the speakers also control the display. Adjust VRi for best jitter free picture. If there is a high-low Input Impedance switch on your monitor, place it in the “high” position for best -operation. VR2 and VR3 control the hue of the colors. VR2 brings out the blues and VR3 brings out the reds, With the tint control on the monitor in the center position, adjust VR2 and VR3 for best hue of yellow, cyan, and magenta. -Joe
Do you know 1 anyone has a printer interface for the 2068 to connect to a Okidata 10 or 207
I understand the interface plugs into the printer and Is available for the Commodore 64 and IBM PC. Perhaps one could be modified?
I’m told this printer will make color trans- parencies or with no ribbon, print on thermal paper.
Nathan Willis Orange, TX
By Joe Williamson
pial
Dear Nathan, Your best bet would be to go with the interface anda serial (most likely it’s
IBM type serial) printer interface for the 2068. You should be able
to access all of It’s capabilities with the driver software for the Interface. A serial printer Interface should be able to be found from one of TDH’s advertisers. If anyone is familiar With this printer being driven by the 2068, drop us a line and let us know. -Joe
I have a 2068 with an Aerco parallel printer Interface connected to a Smith-Corona TP-II daisy wheel printer. I am using MSCRIPT with it but unfor- tunately, I have a “bug” that no one else I know has run Into.
It seems that randonly printout. It occasionally carriage, or It will leave out a letter, add an extra letter, indent when it shouldn’t, or not indent when the main text {is all indented. The result is that I still frequently find nyself doing “cut and paste”.
Ihave no way of determining if it is the program, the interface or the printer. [ know it is not the computer because I own two and I have interchanged them with no improvement. [ have just recently ordered a new Aerco interface for ay second systea so I may soon el nate that item.
Ts it possible that ay printer has a quirk in it?! Has anyone else out there encountered this sort
it glitches forgets to
during a advance the
of frustration with this prograa? I think that MSCRIPT is great but this “glitch” is most aggravating. Mel Routt Clearwater, FL Dear Mel,
Because the "glitch" 1s so random, it is hard to tell exactly where the problem is coming from but I would suspect the interface and wiring first. Make sure that all connections are clean and tightly fastened. If you have access to an oscilloscope or a logic probe, you can check the data coming out of the cable and work back into the interface making sure that you get good logic levels swinging for less than .5 volts to more than 4.5 volts as data is fed out the cable.
Try flexing the cable while printing to see if the problem exists there. If there 1s any type of buffer built into the printer, it may take awhile for the results of flexing the cable to the paper. Good luck! -Joe
appear on
UNLEASH THE POWER OF EXTENDED COLOR MODE ON YOUR 1/5 2068!!
EXTENDED PAINT gives you eight times the normal color resolution. Over 25 unique functions, Joystick control, menu-driven. Extensive printer support, including hires greyscale screen dumps to T/S 2040 and Epson compatibles, as well as PULLCOLOR hires dumps to Canon color ink-jet and compatibles. Supports AERCO Centronics interface. Cassette, with 24 page manual. $19.95 pp. from:
Dave Franson
3534A E. Squire Ave.
Cudahy, WI 53110
i
Two New Sinclair Computers Announced. Sir Clive’s Z88 and Spectrum +3.
Desktop Publishing for the TS2068.
Desktop publishing software and hardware packages have taken the personal computer market by storm. By combining ‘a powerful text editor with a graphics de- velopment system, the user can produce publications and
documents for small business applications, with pro- fessional results. Generally, when purchasing one of the commercial desktop packages along with a quality laser printer...the down payment alone could put you into major debt.
Enter Sinclair computers. Already the QL has a budget-priced desktop program called FRONT PAGE. Now the 182068 joins the ranks with not one’ program, but two separate offerings.
PIXEL PRINT Desktop Publisher is available for $19.95 ppd., from Lemke Software Development, 2144 White Oak, Wichita, KS 67207. Supports the Tasman, Aerco and A&J printer interfaces.
The TIMEX 2068 DESKTOP PUBLISHER is available for $19.95 + $1.25 for postage and handling, from Charles Stelding, 1415 South Baxter, Tyler, TX 75701.
For several years now, news of a battery-powered "lap computer", code-named PANDORA, was reportedly being developed by Sir Clive Sinclair and his engineering staff. In recent months, Sir Clive himself, talked ex- tensively about the proposed portable microcomputer.
Sharp's Inc. of Mechanicsville, Virginia, reported to TDM in mid-February that the long awaited portable had been unveiled at a British computer show. The new machine, all decked-out in traditional black, signifies a comeback for Clive Sinclair, and is appropriately named the “Z88".
The new 288 is produced by the Cambridge Computer Company, a subsidary of Sinclair Research. Actual manu- facturer of the computer is Thorn EMI. Not surprising, the 288 will be initially sold by mail order, for about $300 (equivalent U.S. dollars), with an estimated pro- duction capacity of 10,000 units per month. At a later date, it will be sold through retail stores.
The portable Z88 does not have some of the features originally proposed by Sinclair, such as use of flat screen television technology, Microdrives, or CP/M. Instead, it uses a new 8 line by 80 column LCD display designed by Epson. The internal processor is a 280, coupled with on-board 32k RAM. Data and software is stored on battery-backed EPROM cartridges. RAM is ex- pandable to 128k via an optional cartridge. Due to the new wafer scale integration being developed by Sinclair, additional RAM upgrades may be available in the future
Another feature of the new computer is IBM PC fi, compatibility. With an optional software disk for a Pv and a cable, the 288 can upload and download files from an IBM.
The whole unit with four AA batteries weighs less than two pounds, and measures 11.5 inches by 8.5 inches. The full travel keyboard is specially made from silicon, and is said to be totally quiet in use.
Also built-into the 288 are software programs written by Protechnic of Cambridge, including a word Processor a database, a spreadsheet, and some utilities. Further software development from third party houses is highly encouraged by Sinclair.
In further news, Amstrad announced that they will be releasing a 128k Spectrum model that will have a 3" disk drive built in, as opposed to the cassette tape recorder found on the Sinclair Spectrum Plus 2. The 3" disk is the general format of choice in the Amstrad line. The DOS for the Plus 3, will be a customized version of Amsdos. No CP/M compatibility has been announced for the Plus 3.
Largest Timex Sinclair Computer Fest gears up.:.just weeks away!
An estimated 1,000 Timex, and Sinclair computer users will converge on Indianapolis, Indiana on Saturday May 2nd and Sunday, May 3rd. Attendees will be coming from all over the U.S. and Canada, to participate in the Second Annual Mid-West Timex Sinclair Computer Fest. The event will be housed at the Holiday Inn-North (just off North I-465 at 3850 Depauw Blvd.): The gates open each day at 9a.m., and tickets can be purchased at the door for $6 (individual) or $9 (for a family).
A banquet on Friday evening for dealers and ex~ hibitors will kick off the festivities. A variety of activities are planned for any interest or skill level. Guest speakers will be giving mini-workshops. on suc subjects as "Graphics and CAD programs", “Using Yo, QL", "Machine Code Basics", "Dot Matrix Printers", ana "MIDI, Computer Music and Sinclair PC's". Valuable door
prizes will be given away hourly, such as new computers, software and books.
Almost every Timex Sinclair vendor will be there, with booths spread over more than 5,000 square feet. Many of these dealers and services have contacted TDM to report that they will be displaying some "never-seen- before" equipment as well as offering substantial Fest price discounts.
Here is an updated list of Jinclair vendors and services: Sharp's Inc. Novelsoft variety Sales Foote Software Knighted Computers ‘The WJDJUP Co.
Zebra Systems Inc. A+ Computer Response
Time Designs Magazine Co. Kurt Casby/E. Arthur Brown C.T.M. IRC Software
Brice Road Pharmacy Heath Software
RNG Enterprises The John Oliger Co. Quantum Computing Byte Power
Thomas B Woods/Syncware News Beaver Computer Products Vernon Tidwell Herb Bowers (Abba Soft)
participating Timex
SiriusWare Haltronics Curry Computer Markel Enterprises Aerco Sinclair Information Network
Russell Electronics Lemke Software Development
More New
A TS1000 CLONE??? Yes sir, and several TDM readers have bought one, after seeing advertisements in Computer Shopper and other magazines. The PC8300 was designed and manufactured by Unisonic in Hong Kong during the heyday of the TS1000/ZX81. Although it is similar to the Timex Sinclair, it does offer some improvements like a pro- grammable sound chip (plus a loudspeaker), a joystick port, a monitor output, a chicklet~style -keyboard, and an improved tape loading circuit. The PC8300 will accept the TS2040 printer and the 1S1016 Rampack...and most (but not all) TS1000 software will load in. The clone is priced to sell at $29.95 + $5.99 for UPS ship, from American Design Components, 62 Joseph St., Moonachie, NJ 07074, tel. (800) 524-0809 or (201) 939-2710.
John Mathewson, 1852 Appleford St., Gloucester, Ontario, Canada KlJ 6T4, has developed an external key- board interface board that plugs into the 1S2068's cartridge port, and allows both the computer's keyboard and the external keyboard to operate at the same time. No modifications to the computer required. Price for the interface card is $39.95 (U.S.); for the interface card plus an external keyboard system (in wood cabinent) is $69.95; also available is an interface and extérnal key~ board system for the 1S1000/zx8l--write for details.
The TS2068 version of SPECTERM 64 is completed and currently available for $30 + $2 for postage, from G&C Computer Products, PO Box 2186, Inglewood, CA 90305, tel.(213) 759-7406.
The Spectrum option for the Timex/Zebra FDD disk system is now available for $60 from Zebra Systems Inc., 8-06-Jamaica Ave., Woodhaven, NY 11421, tel.(718) 296- 2385. Call or write for special ordering instructions. Also available for the FDD from Zebra is the "Software Development Technical Manual" for $20.
MIDWEST
Bocths will also be sponsored by TS User, Groups from Indiana, Wisconsin, Ohio, Kentucky, New Jersey, New York, and Michigan. 7
For further information and details, write or call: Paul Holmgren (Executive Director), 5231 Wilton Wood Ct., Indianapolis, IN 46254, tel.(317) 291-6002; or
Frank Davis, 513 E. Main St., Perug IN 46970, tel. (317) 473-8031.
Items...
A new version of the Larken disk drive interface is ready now. The system for the 2068 and Spectrum consists of an interface board for $45 (U.S.), and the LKDOS/EX~ BAS Cartridge (which contains all of ‘the commands for the system) for $60. The user supplys the floppy disc drive(s). Some new features include a “snap shot" save routine and 10 new Extended Basic commands. A 256k RAM Disk for the TS2068 will be available soon. Write to: Larken Electronics, RR#2 Navan, Ontario, Canada K4B 1H9.
The DISCIPLE isa new disk drive interface for the Spectrum. Along with the disk feature, it also has a “snap"shot" save button, a Centronics printer interface, dual joystick ports, and a networking system similar to the Interface One. All of this comes in one small box for £89.95. For further information, write to: Rockfort Products, 81 Church Road, London, England. NW4 4DP.
Joe Newman of Variety Sales (325 West Jersey Street #2D, Elizabeth, NJ 07202, tel. 201-527-0535) announced that he would be willing to display software or hardware for any manufacturer or dealer that will not be able to attend’ the Mid-West Computer Fest. Write or call for details.
Sharp's Inc. (Rt 10 Box 459, Mechanicsville, VA 23111) reported to TDM that a new ROM is: available for the QL, that replaces the existing two ROMs inside the computer. Several advantages are possible, including reduced heat build up and crashes. Also, other programs can be added to the new ROM such as I.C.E. or Toolkit II or customized combinations can be ordered. The new ROM is priced at $39.95.
Two new software packages for the QL have been re- leased by,Meta Media Productions, 726 West 17th Street, Vancouver, B.C., Canada V5Z 1T9. BOPPERS is a board type game, and FRACTAL is a mathematically based graphics generating program.
The Crocket PAYROLL professional business software package is now available from Kamrec Systems, 51267 E. Village Bldg.17, Apt.205, New Baltimore, MI 48047. Write for information on this and other QL programs.
Version 3.5 of Qflash's RAM-disk and toolkit soft- ware will be upgraded shortly to Version 4, It gives RESET128 and COMPARE aS SuperBASIC extensions, and other features. The software can be supplied on Microdrive cartridges, an EPROM, or an EPROM for the ‘Sandy Super- QBoard. For prices and further information, write to: Uwe Fischer, Post Box 102121, D-2000 Hamburg 1.
ee
L-1 © 1984
ALSO AVAILABLE FOR THE T/S 2068
POWERFUL AND INEXPENSIVE BUSINESS SOFTWARE FOR 2X81, T/S1000 and T/S1500 COMPUTERS
AE QEYR TENT, C6) a EEF TEL RG Sn 280
SELECT AN OPTION
2 z
BB ES
ANSUEE BY ENTERING ® NUMBER"
A word processor is to a computer user what a typewriter is to a typist. except that the former has more advantages than the latter 2X-Text can operate in 16-64K RAM providing from 1300 to 6500 words per document. It features 6 cifferent options: write, read, edit, Print, save and clear text. Text is written on a per-line basis with quick speed and with horizontal back-space and delete capabiities being available. You'can also access the editor directly from write mode and vice-versa. Text can be proct-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 ‘or expression within a line, stop or start text while it is scrolling up the screen, begin reading text from the first line of the file, re- ‘enter write mode from the editor, return to the main-menu or create a window so that you can read-edit two files simultaneously The print option takes text displayed in 30-column format on the screen and outputs to either the 2X/TS printer. (With Memotech’s Centronics Parallel Interface 80-column and lower/ higher - case output is possible.) Files may be saved on tape cassette with the use of cone single command, or by the same token they can be erased trom memory / storage so that the. full capacity o! the program can be used for other purposes such as composing ietters, reports, articles, memos, standatd forms, instructions, ads, graphs, telephone directory, \ists of customers, members, ftiends..etc. Also copies of fies are always less expensive and easier to run than using a photocopier. Other advantages are savings in time, paper, ink, correcting mistakes and edding afterthoughts more efficiently than doing them through either handwriting or using a typewriter
$16.95
ZX-CALC
feo tomage.
An electronic spreadsheet calculator is the fundamental basic tool for summarising reporting ‘and analyzing in matrix form any accounting, mathematical or scientific manipulation of num bers. ZX-Calc operatesin 32-64K RAM and atfords ‘4 maximum of 3360 characters /spreadsheet. The entire matrix consists of 1 Scolumns (letters A-O) ‘and 30 rows (numbers 1-30) with 8 characters/ cell, Unlike other popular ESCs, ZX-Calc uses in calculations and withincellsail14mathtunctions on the 2X-81/TS1000. It offers a unique “SUM function that totals one or more rows/columns simultaneously. Paranthesis can be used within equations. There is no fixed limit on how many equations may be entered. Formulas may be stored in all 420 cells of the spreadsheet. The display atfords 15 rows/colums. Loadingof data into more than one cell can occur across /down ‘one or more row/column simultaneously. With vertical windowing you can arrange a set of col- ‘ums in any order, oF practice using fixed-variabie- alignment display formats. The menu offers 6 options:enter /erase, move, calculate, print, save and clear the spreadsheet. Enter/erase allows the entering, deletion or data alignment within a Cell through the use of a mobile cursor. Withthe move option you may move around the ertire sreadsheet to access any row, column or cell The calculate option allows youto enter iabels, values or formulas into a cell or write and enter equations that will actupon the data already within the spreadsheet. You can also enter bar graphs into a cellinthis option. Absolute /relative replica- tion, down/actossacolumn /row, isalsoallowed by this option. Also this option allows the auto- ‘matic calculation of the entire spreadsheet with one single command. Printaliows youtooutputto either the 2X/TS printer theentirespreadsheet by column-sets and row-pages through use ofthe COPY command. The entire spreadsheet maybe Saved on cassette tape or you may clear all data from it or erase the program from RAM entirely. The most salient advantage provided by an ESC over specifically vertical applications software is that an ESC provides a reusabletramework with which you can compose any specific financial ‘model rather than just belimitedto oniyone stati- cally fixed format for storing, displaying and ‘manipulating numerical data.
$16.95
$3.00 SHIPPING AND HANDLING /PROGRAM
ZX-CALENDAR
[APPOINTMENT MADE, OMT 0417704 cum aEeo, cameen 3730 Aen. WWE 2205 rnLEERE OT Mo.
Sarat eae
‘Time management is an important aspect of any sefious business and personal agenda. Planning how to spend our time leavesus better prepared befcre and while we are spending it and we remain better organized after we finish ‘spending it. 2X-Calendar operates in 16-64K RAM affording 25 appointments in 16K, 100 in 32K or 180 in 48K and 64K. Each appointment record holds a maximum of 220 characters. The main menu includes enter, ‘search/check/sort, change, save, clear and print any and all appointments made on a specific date or with any party. Output to either the ZX/TS printer is permissible, This program will permit you to remember to do something or to be somewhere important by cataloging your answers to six questions thal you mustaccount for in order not to waste time when itis scarce: when, with whom, at what time, for how long, where and what are you going to discuss and conclude when you get together with someone else? The program lets you permanently originate, record, classity, search, sort, calculate, modity. summarize, obtain a written report and store your answers to the preceding questions so that you will not forget what you decide to do with your time. This program identifies your time according to when you are going to spend it and with wnom you are going to share it. Through these forms of labeling appointments you are able to verity or modity how your time is budgeted without wasting ink, paper or moretime trying toremember what you said to yourself or what someone else said to you or where you placed certain written messages that you now can't find. With this program you will know where you can ting exactly what you needto know about where you want to and have to be, or where youhave been, before you get and atter you got there, Thus, ZX- Calendar will let you plan your time so that you wil never have to worry about what is ahead or what ‘came belore, for you will always know, by using ft, to 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
(305) 531 -6464
iva]
FLORIDIANS ADD SALES TAX
tee,
Part I
*eeHALet me start by easing your mind a bit. Just be- cause this is called “Part One", don't assume that you will have to wait for Part Two for the other half of a program or the other half of a discussion! I can't stand waiting for such things and I don't expect any 2068 user reading this to wait either. YOU WILL HAVE A STAND-ALONE PROGRAM WHEN WE ARE THROUGH WITH PART ONE...so read on!
Figure 1: Classy Front End Font
ae +
Fe ee BE
=e12a45675
ws Bi ae
2 wi ms Be Hee
et (NET Une cove) lay (neta 2202) ‘wo (rene cove)
O:345 42
Ge a OS OD oS ae
ABCOEFCHIS
cad a awe
ELMNOPRGRST
Be ee FT
UVUXVZ It
Dabcdefghiikim
RE WAN 5-5 1S TORN ws BT BE at
opanstuvauxy
Nee ie ee ee aes ar? |
Ceo)
To many a "FRONT END" may be a new term, to others it may already be an old and worn out computer industry buzz word. A FRONT END has come rather loosely to mean any user-friendly working environment for a machine, and is typically replete with fancy fonts, icons & windows. The Front End program is loaded first (or exists in the machine as firmware) and other programs can then be run and manipulated within the new environment.
Epson a few years ago introduced a new computer with such a program, but it ate up memory, slowed down functions to a crawl, and the “many features" got tiring to more experienced users. As is usually the case, others learned from these mistakes and now we have computers like Apple's MAC which owe all of their appeal to their FRONT ENDS.
Although I use some of these other machines, I be~ lieve my favorite is still my 2068! Its design under the hood is elegant; simple, uncommon speed and accuracy, and so easily adaptable! One thing I never had a passion for is the character set (or font) that comes with the 2068. But the problems with the font are also found (and much worse) on the C-64 to IBM's PC! Let's look at a few examples to see just what I mean.
‘Type in the words "big", "abode" and "pound". Do the letters look uneven...sort of like my first-grader wrote them? The fact is they ARE uneven. In order for
some letters to have tails (descenders and ascenders), compromises are made. The rounded portions of the letters no longer line up! This same thing is evident in capitals as well. Type in the word "BEEF". Note that all
of the horizontals in the middle line up nicely. Now type in "PHRASE". Few of these line up and the look is disjointed.
Now type in "5010". Does the "1" lcok too small? Try “BRIEF". Does the "I" look too small as well? The lower.case makes this even clearer. Type in "whimsical"
and "militiaman". Do some of the letters seem to far apact and others too cramped? All of these problems and similar ones on other machines can all be traced to the fact that each character is forced to be in an eight by eight pixel grid. The "i" will never be as wide as the "m" (although the computer designer has attempted it!).
So what to do...it would be of little use to redo the 2068 font using the UDGs. They are 8X8 grids as well. Some computer models have 5X9, 6X8, or other grid sizes (like the QL) to try to compensate. But the only true way to solve the problem is to let an "i" be an "i"
and an "m" be an "m". This is the way typesetters do it and it is, in fact, the way the MACINTOSH does it. The question is: "Can the 2068 do it?". The answer is: "Of
course!",
The font I have designed we can call NEW 2068 MEDIUM. It is close to ITC Souvenir Medium with a flavor of Clarendon & Helvetica Condensed for all» you type- setters. It still has an eight pixel height but the width varies from eight down to three pixels. I have re- defined 98 characters, including graphics which will help us with icons, headers and windows later on. If you don't like some of my characters, I won't be offended if you alter them, After all, that's what I'm doing to Uncle Clive's set! If you have a revelation, send it to me, I might want to use it myself!
To print the new font, we cannot “easily use the PRINT command. But then the 2068 has at least three ways to put things on the screen. We will use the PLOT rou- tines as they address the screen by pixels and coor- dinates can be altered easily to accomodate the new three to eight widths. Listing ‘Iisa program in BASIC and is simple to alter. The program reads the coor- dinates from lines of BASIC, so’can be used along with any programs you care to write. It does not overwrite or interfere with normal 2068 printing, so both can be used at once if you wish!
Continued Next Page.
In Part Two we will look at the machine code version of this program which is faster and can reside most anywhere in memory. For those who have been en- joying the excellent 280 code lessons in TDM by Syd iyncoop for the past year, this will be a treat. Most of the instructions have been covered in his articles already!
Although Listing 1 looks incredibly long, it is oh 80 simple! Line 1000 is the main loop which reads a line of standard 2068 text. It will jump to line 33 to 201, depending on which character code the loop finds next. Simple, huh? If you wish to find which program line Graws which character, just look up the character code number...they are listed in the 2068 manual starting with page 239, The rest of the program is housecleaning like keeping track of the end of the screen.
In Figure 1 are sketches of each of the 98 char- acters in the new font. Under each is the character code and a number showing the pixel width. Most are the same symbol as the original set, four have changed greatly, five were not symbols before but are now. Let's now go over the changes. Number 96 was the famous pound symbol but is now a square icon throwing a shadow. Number 123 (a bracket) is now an inverted underline symbol. Number
Figure 2
THE 2068 COMPUTER CAN TELN LN IN <= run thou rogramsLN IN <= be ine expandediN IN <= perf ath FunetionsUN IN i= nN YGULN IN <= Educate yo
==> Te 2068 coneere Ce: SSS
«yun theusonds of pregrems
+ be inexpensively expended
+ perform mony math feactiens + entertain yeu
+ educate you
Listing 1 $2068 1 REM CLASSY FRONT END Part 1
1@ DIM _n$(200): GO TO 1000
32 GO To 1138
33 PLOT x+2,y+2: ORAW 1,0: PLO T_X42,04+3: ORAY @,5: DRAW 1,0: & RAW O,-3: GO TO 4i4o
34 PLOT _x4+2.u+7: DRAW
DRAW 9,4:
44 c
45 PLOT x42,y+3: DRAU 3,@: DRA @,1: DRAW -3,@ 46 PLOT X4+2,4+ 0.1: DRAU -1,0: 47 PLOT X+2,4+ X43,943: DRAU O,4
BO TO 2150 43 PLOT x+1,49+2: DRAW 0,3: PLO K44,4941: DRAU -2,6: DRA O,5:
124 a graphic symbol on British machines and the STICK command on the 2068 is now a bar symbol (we come full circle!). Number 125 was a bracket and is now a series Of lines. Number 126 also a graphic symbol on British machines and the FREE command on the 2068 is now a star. Nunber 127 was a seldom used copycight symbol and is mn’ the cent symbol. Number 199 was the “less than/equa. symbol and is now a small black square. Number 200 was the "greater than/equal” symbol but is now a special code for "Kerning". Typesetters use this to fit letters like "L" and "Y¥" closer together than they would nor- mally be. Number 184 was the LN symbol but we will use it as a special code to jump to the next line. Number 191 was IN but we will use this as a code to indent twenty spaces. Last is number 20] which was a "does not equal" symbol and is now a hatched line symbol. The use- fulness of some of these will become apparent in later iscussions, but are fun to experiment with now.
Experimenting will show that even though all the new font's characters are the same height as the ori- ginal Sinclair set, the spaces have been eliminated. A line of mixed text can now contain sixty or more char- acters per line! Try out the new symbols and the kerning code. Some possiblilities are shown in Figures 2 and 3. If the listing is beyond your patience to type in, send $4 and I'll send you a copy on tape. Send ideas and any questions you have, too, if you like! My address is: Paul Bingham, POB 2034, Mesa, AZ 85204. See you next time!
Figure 3
Pv ngua’ (e+, —. (8429456789: j <=? @ABCDEFGHIJKLMNOPGRSTUUUXYZ CN] t_ Eabcde fghi ik lmnoparstuvwxyz£ STI ERS FREE Qe=eo 0
Ba
SRE HS y= 5 MITES 2 Shag TUYURYZ|\It_Debedefeniimnesarstevuny TE =
S57 PLOT x+5,y4+2: DRAW O.1: DRA U -3,0: DRAW 8,3: DRAU 2,0: PLOT R41, 444: DRAU'B,1: PLOT x+2,441 : DRAW 2,0: PLOT x45,y+4: DRAU @ @.1: PLO 1: 60 TO 1150
GO TO 117e BRAU 1,0: DRA eo TO 1is@ PLOT x+4,5+ S8 PLOT x+2.y4+4: DRAW 1.0: PLO T X¥43.942: DRAU -1,0: GO TO 1140 59 PLOT x+2,y+4: DRAW 1,0: PLO T_x32,§: PLOT X43,y4d: DRAW @,4:
oT _x#5,4+5: DRAW @,2° Go toirzo DRAG 2S) pLor x48,u42; DRAU'O,3 DRAW’"1,0: GO TO’ 1140
35 PLOT x4+1,4: BRAU @,7: PLOT x+4ey: DRAW Q,7: PLOT x.y+2: DRA
“To 1168 W'S,0: PLOT x,y+6: DRAW 5,0: GO
PLOT 'x43,943: PLOT x+4,y+4: 6D
49 G0 SUB 1122:
6@ PLOT x+1,443: DRAW 3,-3: PL OT xX41,u44: DRAW 3,3: PLOT x+3,4
DRAU 2,0: DRAW +2: DRAU -1,1: ORAU @,1: ORAU 1,
To 1160 1,0; DRAU @,5: PLOT x4+i,y45: G 1: GO TO 1158
36 PLOT x+3.y: ORAW 8, X+1.y42: DRAW Lio: BRAuU’d,-1, OR AG 2,0: PLOT x44,u44; DRA -2,0: BRAU 0,2: DRAW 2,0: PLOT x+5,y+ 2: DRAW @,1: PLOT x+1,9+5: GO TO
PLOT. O TG i14a
37 PLOT x4+3,9+5 Rau -2,8: DRAU @,2- DRAU 1,1: DR AU 4,@: DRAU @,-1: ORAW -1,8: DR DRAW 1,8: DRAU @,-1: DR AU -1,-2: PLOT x43,g42: DRAW O21
DRAG 4,0: DRAW G.2: Go TO 1178
DRAW -1,-1: DB
PLOT x45, 442:
RAU O,1: DRAU -1,8: DRAW O Au 2.8: * peor x41 ,442: PLOT $6: DRAW -2,-2: BRAY 2,-2:
1,0: 69 TO 115d
39 PLOT x43, y+7: DRAW O, AW =1.-1: 60 TO 2356
40 PLOT x4+3,y: PLOT x+3.u+7: F LOT x42,y41: DRAW G5: PLOT x+1,
ueo,4a: PLO 0 TO 1158
41 PLOT x41,y: PLOT X+2.u+7: Po: LOT x+2,y+1: ORAU 8,5: PLOT x+3, 1160 ure: DRAW 0,3: GO TO 1140
42 PLOT x42,y44: DRAW 1.4: DRA
PLOT x45,y44: DRAW -1,1: DRAU 1, a; GO TO 1160
43 PLOT X+3,y+i: DRAU @,4: PLO T x41,943: DRAW 4.0; GO TO 1150
AU 2,1: DRAW
58 GO SUB 1102: 1,0: DRAW O,-1: x4i,U+5: PLOT x+2, PLOT x44,4944: DRAU O,1: PLOT x+ ,y+2: DRAW 1160 3,943: GO’ To 2150 S1 PLOT x+1,y+2: DRAW 2,0: DRAU O,5: DRAU -3,2: DRAW @,2: PLOTx45 @: 9s6: PLOT X43,4y44: GO TO 1160 a 52 PLOT x43.y41: U_-1,0: DRAU O,-1: dl 338 PLOT gadsyy2, DREW -2 -1: D DRAW -3,8: DRAY @,2: GOTO 1158 AU @,4: PLOT x4+1,u45: PLOT x43,4 5 : SS PLOT x+1,y+2: PLOT x+4,us6: +4: DRAW 1,0: DRAG 3,-3: DRAU 1. DRAW -3,@: DRAU @,-2: BRAY 2,8: @: PLOT x+6,y+2: DRAW 8,3; PLOT PLOT x42 ,9+5: PLOT x+4.u42: SRA X42,428: BRAY 3.8: GO TO 1170 42,941: DRAU 1,0:
DRAW 2,0: PLOT
Sa PLOT x+4,y+1: Au @,1: DRAW -1,0: U 1,4: DRAU 2.
: PLOT xX44.yu4+4: D g42: DRAU @,3: GO TO 1140 RAW -3,0: PLOT x+5,y42: DRAW @1 PLOT x43,9+6
SS PLOT x+1.y44: WU 1,0: DRAW @,
i: DRAW 1,0: DRAW Wo-2,47 PLOT %43,443: DRAW O,4: @,2! DRAW -3,0
Go TO liso S56 PLOT xa do ged:
U'4,0; DRAW @,3! x+1,945: PLOT x4+5,445: PLOT x43,
BRAU 2,0! PLOT
61 PLOT x,y+2: DRAW 0,2: PLOT oRAU @,1: DRA x,4us4: DRAU'O.2: GO To i130 B2 PLOT x+4,yas: DRAW 28,73; P LOT x44,444: ORAL 4 yi: GRAU'B,1: DRAW = ila: co TO 1150 63 PLOT x41,4+5: PLOT x+3,u+1: DRAW 1,0: PLOT x+2,y4+6: DRAU 2, ? DRAW O,-1: DRAW 1,8: DRAW O,— DRAW -1,8: DRAW @,-i: DRAW -1 GoTo i162 64 PLOT X43,442: DRA -1,0: DR
446: DRA 1,0:
PLOT x+2,y41:
DRAW 0.5: DRA PLOT x+4,44+3
65 GO SUB 1100: DRAW O,4: PLOT
Eee ire Pagcreret Pigs te kr)
DRAW -2,0: oR OT X45.u41: 24: PLOT x45,9 ba: D +3: DRAW -2.0: GO TO 1160
Ray gies ere 66 GO SUB 1100: DRAW OS, PLOT
X44,5+4: DRAW -2,0: DRAW @,5:
DRAG 1,0: GO TO RAW 2,8: PLOT x45.445: PLOT xiae
y44: DRAW 1,0: PLOT x+5,y+2: DRA DRAU @.2: DRA UW @,21: GO TO 1158 87 PLOT x41.4422 ORAL O32 T x+4.9 DRA -2,3: DRAU as DRAW -2,2@: DR DRAW 2, @: pLoT_x45,y42: PLOT x45 BRAG @,1: DRA .4Y4S: GO_TO 1160 68 GO SUB_1100: DRAW O,5: PLOT 44,441; DRAW -2,0: DRAW 0,5: 0
UD eft xs2,9: BLOT x43,ys1: D Usd! DRAW 1,0: PLOT x4+5,y+2: DRA RAY 2,0: PLOT x+5,u+2: DRAW 8,3:
RAW 0.2: DRAW -1,8: GO TO iida t'o.1: Go Td 1168
GO TO 11608
69 PLOT x45.y41: DRAW -4,0: DR DRAU 4,8: DRAU -3,0: DRA DRAW 2,8: DRAU -2)@: DRA
60 To iise 78 PLOT x45,y46: DRAW -4,0: DR AU @,-5: DRAW 1,0: DRAU 0.3: pRA
2,0: PLOT x+2,u45: GO TO 1150 AS i oor 44,443: DRAW 1,0; DRA t @.-2: DRAU -3.0: DRAW 3,5: DRA 42,0: PLOT x+1,u42: DRAW'O,3: P LOT _x45,4+5: GO TG 1160 23. CO RSUB 11Be: DRAW 2,5: oRAU
DRAW @,-5: DRAU O,3: DRAW
3,0: DRAW 0,2: BRAU @,-S: GO TO 1160
73 GO SUB 110@: DRAW 2,0: DRAU
@,S: DRAW -2,0: DRAU 3,0: ORAU
-2,2: DRAY @,-5: DRAW 2,a: Go To 1150
74 PLOT x+2,y+1: DRAU 2,0; DRA
U@,5: DRAW 1,8: BRAY @,-4: PLOT x+2,442: DRAW 8,1: Go To 1156 75 GO SUB 1100: ORAL 3,5: DRAU
1,8: DRAW @,-5: PLOT x4+3,u43: 6
RAW 0,2: PLOT x4+4.N32: PLOT x44, 45: PLOT x45,44+1: PLOT x+5,y45: GO Ta 1160 76 GO SUB 1120: DRAW _@.5: DRAW 3,93 DRAU 8,-S: CRAU'S,0: Go TO 77 GO SUB 1108: DRAW 2,5: DRAW
2,0: DRAW @,-5: PLOT x+3,u45: P LOT x+4,y44: PLOT xX45,y45: DRAW 249, ORAU @,1: ORAL @,-S: Go TO 78 GO SUB 1180: DRAU @,5: DRAW 1,0: DRAW @,-5: PLOT x4+3,4u+5: DB RAU O,-1: PLOT x44 7443: DRAU @,- 1; BLOT x+S,y4d: DRAU 8,5: GO TO 79 PLOT x+1,y42: ORAL 0,3: PLO T x¢4,U41: DRAW -2,8: DRAW @,5: DRAW 2,0: PLOT x+5,y42: DRAU'3,3 GO TO i160 88 GO SUB 1190: pRAU @,s: pRAU 3,@: DRAW -2,8: DRAU @.-5: DRAU 9,2: DRAW 2,8: PLOT x45,y4+4: DR Au_@,1: GO TO is6e 61 PLOT x4+3,443: PLOT x+1,y+42:
DRAW @.3: PLOT x+4.44+2: DRAU 2. ca: ORAW -2,6: DRAU'O.5: BRAU 2) PLOT x+5,y: DRAU @,5: GO To i 2 GO SUB 1108: DRAU @,5: DRAU »@: DRAU -2.0: DRAW @.-5: DRAU @.2: DRAW 2,0: DRAW @,-1: DRAW 21,0: DRAU O,-4: PLOT x4+5,4+4: BR AU_Q,1: Go TO i168
83 PLOT x4+1,y42 U_O,-1: DRAW 2,8: PLOT x+4,y44: DRAU -2,8: DRAW 0,2: DRAW 2,0: Pp LOT x+5,4+2: DRAU'O,1: PLOT x41, ytS: GO TO 1160
64 PLOT X41,446: DRAU 2,0: DRA W_O,-S: DRAW 1,8: DRAW @,5: DRAW
2,8: GO TO 1160
85 PLOT x+1,4942: ORAU @.4: DRA
Uo4,0: DRAW 2,-5: DRAU 2,0: PLOT xX45,y+2: DRAU Oa: GOTO 1168 86 PLOT x+1,y45: ORAU 0,1: DRA Ui1,0: DRAW @,-3: DRAW 1,0: DRAU @,1: DRAW O,-3: DRAW 41,8: DRAW @,1: PLOT x+5,443: DRAU'O.1: PLO T X4+6.945: DRAW B41: GO TO i160
87 PLOT x+1,y42: DRAU @.4: DRA
U4,0: DRAW @,-S: DRAW 1,a: DRAU @,2: DRAW 1,8: DRAW @,2! DRAU Bo 272: DRAW 2,8: DRAU @,4: PLOT x+ 5.441: GO Ta 1170
68 GO SUB 1108: pRAU 1,@: DRAW
@,1: DRAU 1,0: DRAU 8,1: DRAU i ,@: DRAW @,1: DRAW -1,0: DRAW |,
DRAW -1,28: DRAG B,4: DRAW -1)
PLOT X+5,94+2: PLOT x4+5,y45: 2
LOT_x+6,Y+1: PLOT xX+5,y46: GO TO 1170
DRAW 1,0: DRA
89 PLOT x4+4,yu4+4: ORAY @,-3: DR AU ~1,3: DRAW 8.3: CRAU -1,8: BR AU @,1: DRAW -1/0: SRAU O,4: PLO jenrr2 te PLOT X+5,94+5: GO TO 1
98 PLOT x4+1,y46: ORAL 4,0: DRA uo, DRAU “1,0: DRAU O.-1: DR AW -1,0: DRAY 35-4: DRAW “1,0: D
ORAW -1,0: DRAW B,-1: DRAW 4,8: GO To 1168
92 PLOT x+2,y: DRAW. -1,8: DRAU
2: DRAW 1,8: GO TO 1130
PLOT x+4,y41: DRAW 0,1: PLO
443.4943: DRAU O11: PLOT x4+2,454+ 8S: DRAU @,1: GO TO 1150
93 PLOT x+1,y: DRAW 1,0: DRAW
0,7: DRAW -1,8: Go TO 1i3e 94 PLOT x+i,y44: DRAW 2,2: DRA
U_2,-2: DRAU -2,2: DRAU @,-5: GO TO" 1160
95 PLOT x,y: DRAW 7,0: GO TO 1 16e
96 PLOT x+6,y: DRAW -5,0: DRAW 8,5: DRAW 1,0: DRAU O,1: DRAUSS 28: DRAU @,-S5: DRAW -S)8: DRAU 2B 73: 60 To i188
97 PLOT x+4,y44: DRAU O,-3: DR AU -2.0: DRAU 8,3: ORAU 1.8: PLO T x+l,y+2: DRAW O,1: GO TO 1150
93 G0 SUB 1100: “DRAW 2,5: DRAW @,-2: DRA 2,0: pRAU_O,.-3: DRAW
-2,0: PLOT x+4,y+2: DRAW @,1: 6 0 TO 1150
99 PLOT x+1.y+2 T x44,U+1: DRAU -2,8: DRAW @,3: DRAW 2,0: GO TO 1158 106 PLOT x+4,9+5: DRAW @,-S5: DR AU -2,0: DRAW 2,3: CRAY 1,0: PLO T x¢i,y42: DRAW'B,1: Go TG 4ise 101 PLOT x+4,443: DRAU O,1: DRA Wo-8,0: DRAW @)-3: BRAY 2/3: BRA U -2,0: DRAW : DRAW -2,8: DRA U@,1: GO TO 1150 102 PLOT x+1.u+4: DRAU 2.0: PLO T xX#2,441: DRAU @,5: PLOT x43,5+ 6: GO TO i140 203 PLOT x+4,y: DRAW O.4: DRAW ~2,8: DRAW @,-3: BRAY 1,0: PLOT X41,943: DRAY @,-1: PLOT x44,4: DRAW -3,@: GO TO tise 104 GO SUB 1198: DRA 8,5: PLOT X42,y44: DRAW 4,8: PLOT’ x+4,443 : DRAU @,-2: GO To 1150 205 GO SUB 1108: DRAW 2,0: DRAW 71,0: DRAW 0,3: DRAU -1,8: PLOT xX4+2,446: GO TO 1140 106 PLOT x,u: DRAU 1.0: PLOT x+ 2,441: DRAW 0,3: PLOT x42,y46: G 0 TO 1132 107 GO SUB 1100: DRA o,s
DRAU @.1: PLO
PLOT
X#2,443: DRAW 1,8: DRAU'O,-1: P LOT x+4,y4d: PLOT x44,444: GO TO
108 GO SUB 1108: DRAU 2,0: DRAW 71,0: DBRAU @,5: PLOT x4i,y+6: 3 GTO 1140
1@9 GO SUB 1102: DRAW o,3: PLOT X+2,U41: DRAY 8,3: DRAU'3,0: PL OT X#4,u41: DRAU'B,2: PLOT’ x4+5,y 41: DRAU 8,2: GO TO 1176
11@ GO SUB 1108: DRAY O,3: PLOT X+2,441: DRA 8,3: DRAW 1,0: PL OT x+4,y+2: DRAW'S,2: GO TO 1158 122 PLOT x+3,y+1: DRAW -1,0: DR A O,3: DRAW 4,8: PLOT x41/us2:
DRAU O44: PLOT x44,4+2: DRAU @,1
: GO TO 115@
122 PLOT x+1.y: DRAU O.4: DRAW 2,0: DRAW @,-3: DRAW -1,9: PLOT X#4,443; DRAW 2: GO TO 1150
213 PLOT x4+4,y! DRAU @.4: DRAW 32,8: DRAW @,-3: DRAU 10: PLOT
X¢1,443: DRAU 8-1: eo To 1150 114 GO SUB 11098: DRAU 2,3: PLOT X42,44¢1: DRAU @,2: PLOT’ X43, 444 : DRAG 1,0: GO TO i1se
215 GO SUB 1190: DRAU 2,0: DRAW @.2: DRAW -2,8: PLOT x4d,ys2: P LOT x44,y4+4: BRAU -2,0: GOTO 11 52
116 PLOT x42.y42: DRAW @.5: PLO T X41,y44: DRAY 2,0: PLOT x43,u4+ 1: 60 To i149
117 PLOT x4+1,y+2: DRAW 0,2: PLO T xX42,y44: DRAU O,-3: DRAW 2,0: DRAU @,35: GO TO 1isB
118 PLOT x+1,y+4: DRAW @,-1: DR AU 1,0: DRAY @,-1: DRAU 1/0: DRA W@,-1: PLOT x#4,445: DRAU 8,1 Go To 1158
119 PLOT x+1,y+2: ORAU @.2: PLO T x42,444: DRAY 0,-3: DRAU 3,0: DRAU -1,0: DRAY 9.2: PLOT x+6,y+ 2: DRAW @,2: GO To 1170
412@ GO SUB 1180: PLOT x4+1,y+4 PLOT xX44,444: PLOT %44,U41: PLOT
X42,4+2! DRAW 1,8: DRAG O,1: DR AU -1,0: GO TO 1i50 121 PLOT x+1,y: DRAU 1,0: PLOT
X+3,U¢1: PLOT x4+1,443: GRAU 8.1: DRAW 1,0: DRAY @,-2: DRAW 2,2: DRAU @,2: GO TO iise 122 GO SUB 1190: DRAU 3,0: PLOT Xtiy44: DRAW 3,0: PLOT! x42, 442 : PLOT x4#3,y+3: GO TO 1150 123 PLOT x,y+7: DRAU 5,0: 1160
im
so To
124 PLOT x+1,y:
DRAW _@,7: PLOT
X42,4: DRAU 0,7: GO To i140
425° PLOT x,y: ORAU S,@: PLOT x, ys2: DRAW 5,0: PLOT x;u+4; DRAU 5,02 PLOT x,¥+6: DRAUS,@: Go To ai
426 GO SUB 1188: DRAY 3,3: PLOT X47,U4¢1: DRAU -2.2: PLOT x+2,44 a: DRAW 4,4: PLOT x+5.y4+3: DRAG 2,2: PLOT x+5,y41: BRA -4,4: PL OT Xt4,444¢: DRAW 2,3: PLOT’ X43,4 +3: DRAU -2,2: GO TO 1180
127 PLOT xX4+1.u43: ORAU O.4: BLO T X44..942: DRAY -2,8: BRAY 8,3 BRAY 2,8: PLOT x43,4: DRAW QB BLOT x4S.y4S: DRAWS, 2/60 TS aa 184 GO SUB 1320
391 LET X=x+28: RETURN
499 PLOT x+1,443: DRAW @,1: PLO
T_x42,u43: BRAY
@.4: GO TO 1130
200 LET x=x-1: RETURN
201 PLOT x,y: DRAW 2.0: PLOT x, yet: DRAW 2,2: PLOT xju+4a: DRAW 2,2: PLOT x,y+7: DRAU'2,0: GO To 4130 $99 RETURN @0@ INPUT “PHRASE:
@ INPUT “PRINT AT *
FLASH Q@)",x_ (to 24)
INPUT _“PRINT AT day
“j FLASH 85" (to 31)
PRINT ng
LET Xsxxa8: LET y=163-yysa:
tel TO 208: LET a=CODE ng(t }: GO SUB a: NEXT t
a@se sToP 1108 PLOT x+1,y+ 1120 LET x=x+2: To _1308
1125 RETURN 21130 LET x=x+3: TO 13520
1135 RETURN 214@ LET x=x+4: To 1300
2445 RETURN Tis@ LET x=x+5: TO 1300
2155 RETURN 41160 LET x=x+6: To 1308
2265 RETURN 2270 LET x=x+7: To_130a
2175 RETURN 2188 LET x=x+3: To 19500
1185 RETURN 23@8 LET 8899 SAVE
cre"
STAR
are:
t/5 Dasa With you accept
sen
@: LET y=y-8:
2: IF
RETURN.
%>B43 THEN GO
IF x>248 THEN GO
IF x>248 THEN GO
IF x>248 THEN
IF x>248 THEN
IF x>248 THEN
IF x>243 THEN GO
RETURN
TREK Strategy
g
--7 LEVELS of piay--
the chatienge?
Character Font Generator
Now, you can design your own UDGs and character sets with this great programmer's tool. It even comes with 4 fonts to get you started. Plus, it can make sprites for use with the Advanced Video Modes. One joystick required. for just $800 Can/US.
$1500 US 2000 Canf $2000 US $2500 Can
Send cheque or money order for $1.50 US/Can. to receive our catalogue complete with Bemonstration Tape V3.0 plus bonus programs. And remember, we stiil pay the postage & handling charges on all our orders!
Seacer Compulin Products
756 Fleming Avenue, Winnipeg, Manitoba, R2K iV5 "The best DAM software around?
@, The following program listing is for the Timex Ss Sinclair 2068. CUBE-IT is a game loosely based on the
Advanced Video Modes
The most complete package for utilizing all of the T/S 2068's enhanced screen displays to their fullest. It provides access ta 32, 64, and even 80 columns, plus dual screen and extended colour modes. Updates are available
JUMBLE Word-Cube game by Parker Brothers, which was
Cc B E = ] T popular about 5 to 10 years ago. Instead of a 5X5 grid, J I use a 6X6. The letters are chosen completely at random
from the A$ (Line 30) in order of most used. The game
also features full instructions on the screen, a two- minute timer, a copy option using the 1S2040 printer,
By Relen Hammer
40 REM \CUBE-IT\VERSION 2.4\7- and a scoring ledger. CUBE-IT is fun to play for ages BS\RUHN 6 to 96. Give it a try! ati P i I will also send the program on a high-quality tape FHIN=S8e GO SUB Soe to anyone who does not want to type in the LLISTing, for
30 LET A $4.00, Ralph Hammer, 7 Baer Drive, Las Vegas, NV 89115.
S="ETAONRISHDL BUKXJOZ": LET LS
165 PRINT “By: Ralph Hammer, La s Vegas, Nev"iLs
A?S REN _-FOETRY- 120 60 SUB FAT: PRIN
DON'T SE Si ROKEY Fol
ARCHING PARTY" 495 GO SUB THIN BGO PAUSE NOT x 225 REM -NENU- 2a0 BORGER 4: BRIGHT 4
44Q PLOT 64,159: DRA! BEEP
AU 20,0: PLOT 83,45 cy
«2,18: PAPER 2: INK 7 PRINT AT 18,10;
3872: FOR For 1 23672: IF 60 To 420 Y=x: PRINT AT 43, 7e°:"5;T: NEXT T
S: NEXT M: BEEP
@,-45: PLOT 226,120 EP 43,15 ka igo eRTHT -* 8 FUN-FOR SRINT AT 28,10) FLAS SEARCH GAME” PER 7
fi Ine IS. 445 PAPER 5: PAUSE ize
SQ REM -cHOOSE- adep PRINT "TO
$85 GO SUB 18@0: PRINT AT 9,2 F sips
tR> RE-DRAW CUBE FOR SCORING dies PRINT "UST
Sie PRINT ‘" <c> Copy Cline To s f OF LETTERsIN © i : PRINTER"? *" a> ANOTHER SAME"? « cis 4430 PRINT / "POINT ¥ ARE oT 7 <M> MAIN MENU": GO SUB THIN g12 GO SUB STRIBUTED AS
(3 PAUSE O@: LET Ig=INKEYS: IF Sis Barht INR ® E FER 6; 1195 60
oO" THEN LET, TRUST IO X_o2g IF Ig="A" Ti x S28 PRINT * S25 IF I$ o"A" THEN GO To 225, AME OF CUBE-IT: 558 PAPER 4: Go SUB i500: RSNoo 0 ILL APPEAR.” WIZE R: GO SUB 1788: GO SUB 1288 925 “SRINT
G0 SUB THIN: IF NOT S$ THEN COP UTE TIMER
2280 PRINT PRRER Si”
y OFF ELAPSED 1250 RETURN S35 PRINT #@j;AT 1,05" <20Py 838 PRINT 1382 REN =TAPE SACK-uF <MoENU": PAUSE @: IF I UO), THREE, 2385 BORDER 2: THEN COPY _: G0 To 595 LETTER WORDSTHAT CAN “BE FOUND W : CLEAR S4@ IF INKEY§="P" THEN GO TO 3a ITHIN THE RID." 1318 SAVE “CUBE” o 855 PRINT ““URITE DOWN ALLE THE = 725: PRINT INK S45 G0 To 225 YOU CAN FIND WITHIN §5 a key to 822 REM -FRAME- MINUTE TIME LIMIT." 1315 PAUSE BOS PLOT 57,150: DRAW i¢2.a2 PL B_THIN: PR PRE BEEP 2,2! OT 58,149: ORAU 99,8: PLOT 8,1 85 any KEY 7O 135@ REHM 43: DRAU iss a B45 PAUSE @ ELCs 1385 BORDER Sia BUOT 57,5¢ DRA 162,83: PLO BEEP 25,5 2 obs a 59,58 S50 PRINT “"UORDS CAN BE Fou 1358 SOUND’ 7 IN ANY DIREC-TION} c LLY, 1355 FOR Ts: ,-i8e VERTICALLY, AND DIA: 1378 SOUND 2
855 PRINT /"THEY CAN 2975 NEXT I)
2 S20 SLOT S7,iSa° pF
10,-19@: © COMBINATION OF ALL THREE 4380 FOR b=. D LOT S8/id9: “Ska o,-39: PLOT is9 IONS." 1385 SOUND 8,5;757)9; 4558, 46; 48, ,180: DRAW 8,-ia0: LOT 198,150: 350 PRINT “"“WHEN FORMING 16,12 ,56;13,3 BRAN 9, -98 yA LETTER 9 MUST TOUCH 388 PAUSE Sa 625 LET X257: LET Y=idd: LET Z= LETTER EITHER iE 1395 SOUND 8,8;9,0;18,2 e OR_AT A CORNER." 1480 PRINT FLASH 1;AT 13,21;" 50 839 PLOT K,492: DRAW ¥,Z: PLOT 855 PRINT ¢"BO NOT” JUHP LONG") FLASH @: STOP x2 DRAY ¥.Z: PLOT XK, i0@: DRA TO_FORM THE WORD. O60 NO A5@@ REM -Loso- WY,Z: BLOT x (S4. DRAW Y,Z: PLOT 9 LETTER TWICE” 4510 C13 > INR 7: PRINT ‘TAB 9; 2 DRA: $78 PRINT /"FoR ae. : PAPER 3)" c UB E IT" 35 LET Xs158; LET y=0: LET Z=- a275_PRINT * CANNOT BE Uo 1520 60 SUB FAT: PLOT i42,i54. D 3 SED TO SPELL = BABY. ne AAU 6,8. INK @: RETURN 849 PLOT s@,x: DRAW Y,Z: PLOT 1 _98@ G0 SU5 THIN: PAINT “PRE 4680 REM BMENU @4,X: DRAW YjZ: PLOT 128,x: Braii SS_aNy KEY TO CONTINUE” _ _ 1618 PRINT AT 17,0;L$°°" 3 FL YiZ: PLOT 183,x: DRAW ¥.Z) PLOT _$85 PAUSE @: GCS > G0 SUB FAT ASH a; H"; FLASH’ 0; TENU 275,%: BRAU Y,Zz BEEP .25.5 1620 PRINT Tas 414; FLASH 4; i 645 RETURN $92 PRINT ‘een FLASH @ "LAY" a soit uae 780 REM -MUSIC-_ NOT: BET REUSED 35 2 PRINT TAB 2 25; FLASH i;"8") OER ce; LE ARE Gorn 184060’ SUB THIN iT TAR 7 S38 SETS aNE, ARuR SPE) HMENDED THAT THE FIRS 3 ELECT 4, P, oR o 33) PAUSE 10; TE REVS co" THE REREH SUG POINTS BE DECLARED 1650 PAUSE a: LET Ts-INKEys: BEE aoe JHE WINNER. $°.05,5: IF Igs°m" THEN GO TO 22 Sere ee, rae 1089 PRINT 5 re ‘1 @ LEGAL NAMESAND 1560 To see ue pouNe crea eue: RETURN ARE PERMITTED.” 1872 TO 1350 85 CATA 17,9,253,213,1,8,3,42, i825 PRINT “"ABBRE! tee Beate ae ere 54,92,36,125,167,31,152,18,35,19 OREIGN WORDS HARE NOT E ge oe INT ert Sher rsa 243, $2,246, 16,244) 825, 97,2454,9 ean PRINT “"GO0D LUCK, AND HAVE 327 B BINT oR pop ory acee. 4) 4797.7 547 ten 2B Bou Osdb28_ 1550 LEP T-Ene Uhuowscaiit ref, ’ T1B5 BORDERS BRIGHT 1: PAPER ¢ 19 THEN IF INT (RNDS2! THEN LET 858 REM -FAT- 4110 60 SUB iSe0 Tso
5 OMIZE USR 64737: RETURN 2315 PRINT AT 4,49; INK 7; Paper i740 If 128 THEN IF INT (RND#2) S55 RANDOMIZE USR 64737: RETURN 4448 PRINT GT 2,29) INK 7) PREER THEN LET t=0 ar, P paPeR 63" s GOR TN 2750 IF NOT T THEN Go To i730 A750 PRINT AS(TI Gt; i278 NEXT J: PRINT <°: NEXT I 2788 GO SUB Soa. RETURN
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 (B and 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 SEPROM shckécand ba/afewtch on based peripherals to be used; less chance of a crash © print driver software for LPRINT, LLIST, and COPY included for 2068 and Spectrum modes FootePrint Interface w/software & cable . 1 +++. $450 postpaid FootePrint with OS-64 option included .. - $65°° postpaid ~ Bare board & instructions only se sseee s+ $20° 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)
© requires no modifications to computer
“The Mystery of the Missing 253”
* CONCLUSION
By Wes Brzorowski
Where We've Been
It's been wonderful to see how much interest there still is toward TS2068 bank switching. Now it's time to tie up the loose ends we've left, provide a firm direction for your sown further study, and close the series up.
For those just tuning in, we've been discussing the ROM code, searching the Technical Manual, and scouring various obscure sources to learn all we can about Timex's original plans for extended bank switching. Timex originally pronised 256 banks of 64k each, and delivered a machine that could passably control 3 (really only 2 1/8, for you purists out there).
We've uncovered a method that could logically control the "Missing 253". (We've seen that the ROM software as is, limits itself to only 10 extra banks, but this is a mere technicality.) We then took a basic look at how that method works. We saw how the hardvare and software were to have meshed together through only two small subroutines. This is a good system design practice and is a typical example of how hardware should be controlled by @ processor. This allows hardware changes to be corrected through minimal software modifications, and will be a key factor in making extended bank switching practical.
Following all this, we endured an excruciatingly detailed description of what the hardwere mist and must not do. (Al~ ternately, this is what the system mst be able to SIMULATE.) We've been going through the EXROM software that initializes the banks, calling attention to many obvious bugs along the way. All of this would be needed for an interested user to design a bank switching system that simply wouldn't crash the TS2068 on power vp.
As a secondary effort, we've looked at an easy way to correct the ROM bugs, and toward the special 1/0 software that would have dovetailed with bank switching. We've little more than hinted about various blocks of I/O software in the ROM that are never used. We've also seen a little of how the RAM Resident Code would have supported bank switching, and will supply a better description before we're through.
First, Finish the Flippin’ Flowcharts
Flowcharts 7 and 8 cover the last of the initialization software for the expansion banks. Both point out major bugs in the routines that initialize RAM banks and renumber the banks. To save text here, I've tried to make these two as self-explanatory as possible.
Tf you've made up a memory map of the EXROM routines we've covered, you'll see two gaping holes. The smaller of the two is merely a copy of Spectrum code that intializes some of the more mundane system variables. These are put off until after the bank switching is initialized, because programs running in the cact- ridge slot can take up sone extra memory, affecting the values of these variables. However, this routine is of no interest to us, and should be left alone.
The larger hole is filled by an unused routine that a per- forms a "warm reset" on the SYSCON table. This was once intended to be accessed by certain forms of the RESET conmand, from BASIC. We'll discuss the RESET command a little more in a moment, but flowcharting this routine should be an excellent exercise for those of you who've followed the series this far. Since the routine is not essential to this subject, we can't cover it fucther here.
Our detailed discussion of the code has now covered all_the useful initialization routines, the lowest-level RAM Resident Code that actually communicates with the hardware, and the in- termediate-level RAM Resident Code, which talks to the low-level stuff. (Whew!)
A Promise Fulfilled
‘Along, long time ago, I said I'd provide a better des- cription of the RAM Resident Code, and the routines that don't relocate properly to high memory. It's time to set things right. The full page table, titled "RAM Resident Code ~ Routines, Usage, and Notes", is a reasonably complete “cheat sheet" on using the routines. Hopefully it's fairly free of typos and its small print will reproduce well on these pages. This will tell you most everything you need to know in order to use the routines, in- cluding how to correct then in low menory. Note that the following locations do NOT relocate properly when the code is in high memory:
FCS7/A
FCeC/D
FOCE-FCDO FCD4-FCDS
FRO4/S FFOF-FF11
Without correcting the EXROM, you'll have to fix these every time the second display file is opened. CAUTION: you also have to change them BACK before closing the second display file, or the relocation to low memory will be messed up.
By the way, the good folks at Timex left an interesting chicken-and-egg situation. It shouldn't be hard to imagine code that contains routines that open and close the second display file, and also routines that use the RAM Resident Code. If they ‘operate independently, it may become necessary to find out where the RAM Res Code is at any given moment, so you'll know whether to CALL the low or the high addresses.
Now, the "standard" Timex way of finding out is to check the system variable VIDMOD, which will be non-zero if the second display file is open, and hence, the RAM Res Code is in high memory. The problem arises when the memory chunk containing VIDHOD is not enabled for the Home Bank; how do you get at the variable? Well, we might first consider one of the RAM Resident Routines, GET_WORD, which can read the contents of any memory location in any bank. That can read the variable.
But we can't use GET WORD, because we don't know whether it's in low or high memory! If we did, we wouldn't need to read VIDMOD in the first place! Fortunately, the SP register (the Stack Pointer) can get us out of this mess. This is because the stack always follows the RAM Res Code around in memory, so if the stack is in high memory, so is the code.
Unfortunately, there's no instruction that moves SP to another register. To get around this, LD HL,0000 and then ADD Hb, SP. This effectively puts SP into HL, and let's us find where the RAM Resident Code is. The method suggested by Timex (using VIDMOD), can be very unreliable; you might consider using this method, instead.
As Strong As It’s Wemkest Link
If you've used an assenbler on the 1S2068 to write a machine code program larger than 2k or 60, you've probably noticed them you have problems getting your source code to fit in the ava able memory. That's because a line of source text, which cou take 10 or 20 bytes, will assemble into an instruction only 1 to 4 bytes long. While certain Spectrum assenblers have clever ways to get around this problem, we usually just break the code into smaller pieces, assemble them separately (usually with some mod- ifications), and then link the separate pieces together by hand.
It should be no surprise that the assemblers used on some of the computers that the “big kids" use, can do this linking auto- matically. Code is assembled in separate "modules", with special reference comands for labels that are actually pointing to an external module. These separate modules are then linked by a program that's unimaginatively called, a "linker". Those of you Who've seen the Timex listing of the "TS2000" ROM code will have seen how this works. (Since it makes the code harder to follow, you've probably cursed it, as well.) Still, this allows a con- puter to assenble a program that's even as large as it's full memory capacity.
Table
4200-6240 Function Dispatcher - Perforas a CALL or JP froe any bank to sone FACO-FR4D HORE & EXRON bank routines SAIPLE USAGE = LD DE, #0000
PUSH DE Set input & ostput paraas PUSH DE ito zero LD Dé,function # From Tech Manual Table 3.3.4-2
PUSH DE HASBeL for JP, 0 for CALL (here wt set up the registers & such a3 §f CALLing the routine frou HORE bani) CALL 16200 or FICO NOTES:Routine address Lookup table only points to low-aeiory atéresses for Rat-Resident Code routines. 00 NOT try to use the Function Dispatcher to access another REN Resident routine if they are located in high weaary !!!
4206-6306 Link to Interrupt Handler in HONE ROR, Allows teyboard interrupt
FAOE-FACG routine at HOME ROM O2EI to be accessed, if HONE FON does not control chunk 0, dut chunk 0 ataory links te this
NOTES:Can de aodified te point to a different routine, bit beware of § pairs
of bytes that get changed when this routine is relocated
4307-6314 Copy of NAL handler in HONE ROK, Rot used at all FACT-FADA
A315 BS_HAI_ONK A copy of the MATENK systes variable, Allows access to this Fans paraveter, even wen HOKE Bank does net control Chunk 2 6316-6338 GET_VORD Perferas an effective LD HL, (HL) where (HL) is an address FADB-FAFA in any bank; not necessarily ove that is active SAMPLE USKEE - LD HL address
U Byhank #
CLL 6216 or HADES
4338-6353 PUTWORD Pertoras an effective LD (HL),0E where (HL) is an address FAFB-FBIB in any banig not necessarily one that is active. SAMPLE USHGE - LD DEyword to be sent
LU HLadéress
u kt
CALL 86358 or AFAFS WOTES: This routine contains BUGS. TH6,5.3 gives adequate corrections. These corrections will properly.
ISC-B3AC WRITE_BS_REG Writes the value in register E to Sank Svitching
HC-FBKC Register shose nusber is in D, Avoid asing this routine. Let the RM Resident Code access it for you.
NOTES:For those who'd like to change this to drive a saner hardvare archi-
tecture, the original code is located at THISC-ILIAC & copied to HOME RAM
S3AD-6404 READ_BS REG Reads Bank Switching Register (single nybble) whase FRED-FBCA —nuaber is in register D, 4 another free register whose nusber 1s in register E, Packs doth into E register, Avoid using this Foutine, Let the RAN Resident Code access it for you. NOTES:For those who'd Lite to change this to drive a saner hardware archi- tecture, the original code is Located at THIAD-11704 & copied to HOME RAN
4AOS-644C GET_STATUS Gets the Horizontal Select Byte (o-active) for the FUCS-FCOC — Gesired bank into the C register. If it's an expansion bank, © the status vill also be returned in the B register SAMPLE USABE - LD B,bank & CAL 6445 or BCS NOTES: Because of the flatey way that 1/0 port FA is used as & Horizontal Select for ali 3 standard banks, they aay *claia gosession® of chunks actually controlled by expansion banks, This routine should be used by a arger one, that checks all expansion banks as well a3 standard banks, and es the inforaation as 4 coherent whole, Also, this routine contains BUGS corrected in M6.5.2, though they can't correct the above probles ‘444D-H4SD GET CHUNE Conputes the chunk for Feop-Fc1D SAMPLE USAGE - LD HLaddress CALL H644D o F000 (return with AeHoriz Select Mask = bi-true)
jven address
‘ASE-4498 GET_NUMBER Returns the bank # for 4 given FCUE-F038 SAMPLE USAGE - LD ML, address
CALL HBNSE or ECIE
(return with Asbank #)
NOTES:Handles *odduess* in GET_STATUS by checking expansion banks first, Has 4 DUS, per THb.5.4, Should not De used if there's a chance the ELROM aight be in use,
‘4499-4510 BRAK ENABLE Gives control of desired chunis to specified banks Fese-re0p SAMPLE USAGE = LD Bybank 4
LD Cyhoriz select (o-teved
CALL 46499 or CSE WOTES:Contains BUGS per THb.5.4, The aanual gives an adequate fix, but @ neater fix would te to put F3 at 649A, and FB at AS1B. Also, errors in the EXRON relocation table PREVENT THIS ROUTINE FROM RELOCATING PROPERLY?
RAM Resident Code ~ Routines, Usage, and Notes
"The Mystery of the Missing 253"
OSIE-8549 SAVE_STATIS Used intersally to save bank inforaation before aaking FODE-F909 —teaporary Horiz Select changes; eq, CALLing a routine in arcther bank.
SS4R-4571 RESTORE STATUS Used internally to put all banks back as they were FOOR-FI3] before SAVE STATUS vas CAiLed.
NOTES:This will undo any video aode changes aude since CAlLing SAIE STATUS, as well as other port FF control bits, per THS.5.5. Contains 2 BUS, which can be fixed per TH4.5.4
6572-580 60T0_BANK Perforas an effective JP to any bank, foes not pass FO32-FIAD any paraneters, SANPLE USAGE - PUSH address PUSH Bank4/Noriz select (lo-true) CALL #6572 or F032 NOTES:This routine acts Like a JP, even though it's accessed through a CALL
#S0E-85CD Bark Switching Stack - An additional stack, siaulated in softear FOAE-FDGD Each tise CALL_BARK is run, the return atdress and PRY_IN go neve ASCE-ASCF BS_SP - The Bank Switeding Stack Pointer, Used to siaulute the Bank FOBE-FDBF “Switching Stack
4500-6488 ChLL_BANK PerSoras an effective CALL to any bank, and contains pro FO90-FEAB visions to pass paraneters, SAMPLE USAGE - PUSH the paraseters (8 of bytes is called PAPA OUT) PUSK address PUSH bank A/horiz select (to-true) PUSH PAREN OUT PUSH PARRA IN CALL 96500 or 4F190 NOTES:Contains a BUS which aay be fixed per TH6.5.&. Also, PARAM.IN and PARAK,OUT represent the nuaber ef dytes; not the nuaber of PUSHES 668C-69E7 MOVE, BYTES Used only as a subroutine to TFER_BYTES, and is intended FEAC-FEAT to transfer bytes between banks ahen source and destination chunks overlap and the transfer is between two different banks, NOTESiContains nunerous BUGS which are not docuaented in the Technical Manual. Tue to the grogranser’s aisunderstanding of the subtleties of LOIR and LODR, and the differences in their usage, sore counters are not properly updated, and soae internediate transfers can be nade to the arong part of the stack, destroying critical inforaation, Major bugs can be tolerated by putting hex 73 at ODF, and her 72 at GE2. Still, this routine can only de used in the UPIR vodey fortunately, the LOOK case Is not needed where this 15 us ITMAP Used only a8 2 tubroutine to TFER BYTES, and 1 FERB-FEEL intended to produce a low-true “Worizontal Select’ byte fay all the chunks involved in either the source or destination bank for 4 data transfer, NOTES:Contains undocuaented BUGS, Due to inpreper conputation of First and/or ast dytes in a data transfer, this aay give an isproper result, when the farror in coaputation straddles a chunk boundary. These can be corrected by Incerting at GiF3 and followings hex 02, 3
4722-6814 SFER_BYTES An intelligent transfer routine to aove data detueen FEED-FFO4 banks, but also intended te allow transter within a single tank, wether of not all the necessary chunks are enableé.
SAMPLE USAGE ~ PUSH source bank A/dest bank &
PUSH source addr
PUSH dest addr
PUSH # bytes
PUSH direction 50000 - like LOIR, FFFF - Lite LOOR
CALL 16722 or AFEEZ NOTES:Contrary to its description in the Tecnical Manual, this routine wis intended to te able to do transfers between larger seaory areas than just a Single source chunk and a single destination chunk, The aestioned Liaitation as probably Intended to east one of the probleas in this routine, Also, this routine does not relocate properiy to high aeory. This routine requires that the aachine stack be in its proper location in the FAM Resident Code, it was ‘not intended to be able te transier data into or out of the chunt that Currently contains the RAM Resident Coée. 14 the stack is nearly full, tNe transfor will be aborted, without notifying the CALLing rostine, & stats Hag, intended to perfora such a warning gets corrupted beiore coepletion, The Tecnical Manual docusents only one bug, but several chinges are needed to get this worting properly, Location 6722 gets 00, 4728 gets 08, 4744 gets SF (that one is the Tech Mansal fas, B7C2 gets 2C, and O7FF gets 00. Because this code would noraally be used to initialize expansion binks, it's possible that this routine would have ta be fixed before they could be debugged. Muth these fixes, AF is no longer preserved, and Ais nox returneg with a status code. It will contaln 00 if the transfor was sucessiul, and OL 14 it was aborted, due to insufficient stack space, Because of the aloreuestioned and fot readily correctable bug in MIVE BYTES, using this routine in the LOR ode can crash the systea in soae cases, The only tine the LODR sade aay Feally de needed vould be certain tises when the source anf destination areas overlap MITHIN THE SANE BINK, This case does not cause the probies, so if the use of the LODR ode is linited to this case, there will be no troubl
4815-6873 GOTD_EXT A routine intended for use only during initialization, Does
FEDS-FFES an effective JP GIL) to the EXROX. Would not work properly 14 ‘xpansion Danks were enabled in chunk ¢, hence its suitability only for systea initialization.
Unfortunately, the addition of bank switching caused a problem that most linkers can't handle; there are two blocks of code with identical memory addresses. This means that the Timex folks had to go back to the old method of assembling (and linking) the Home ROM code and the EXROM code in two separate batches, end then linking them by hand. For a program of that size, this is an incredible problem. Every time the code is re- assembled, the hand linking must be done over again! And a pro~ gram this size would get reassembled a lot. This just begs for a few spots to get "missed", and they certainly did.
We might expect to find these incorrect links where an in- struction in one ROM references an address in the other ROM. We'd also expect that the incorrect address will be nearly correct, since it was probably correctly linked once, but the addition or Geletion of a few instructions somewhere will have shifted every- thing in memory slightly. This is, in fact, only one way that nis-linking can make our lives miserable.
‘The earlier mention that some of the RAM Resident Code does not relocate properly to high memory is another example. You see, the EXROM contains a “relocation table", which is supposed to point to the various spots of the RAM Res Code that nocd changing. For example, the second and third bytes of a CALL in- struction contain a memory address that must be changed if the code being CALLed gets moved.
Sadly, the programmers could have used labels in their assembly code to make the assembler produce a perfect relocation table. If we look at the end of the RAM Res Code listing (they call it the fixup table) in appendix A of the 152068 Technical Manual, we can see that they instead chose to figure the numbers out by hand, and insert them directly into the code. Too bad.
R" ber
@ber in accion!
PRINTRUT APPOTATACATS YOR MICH ETE?
‘SETAE DeSK—COPURTONT TOO OVTE POUCH WRT YEN EY BOTSUERT AR
SCORE:0010 CHOPPERS: oft tt
STOLEN PIEcEs:0 BRIDGE :4
=
CONSTRUX IN ACTION!
BYTE POWER is the ultinate is full of prograns, a real 1/5 2068 owmer’s drean.
Another EXROM table that didn't get fixed properly is the address table that the Function Dispatcher uses to find various ROM routines. Some (not all) of the dispatcher codes marked "reserved" in the Technical Manual actually point to a routine, but are off by a few bytes. Note that the majority of dispatcher codes reference the Home ROM. We'd expect that they'd use labels in the Home ROM assembly to generate most of the table, and th: hand-patch in the addresses for the EXROM and RAM Res COde. Sur enough, the portion that points to the Home ROM is 100% correct, but the other two portions are a disaster.
To be fair, the Timex programmers tried to set up the EXROM in such a way as to reduce the nunber of mis-linking errors. The various tables and blocks of code in the EXROM are spread around, giving each one room to grow without encroaching on the space allocated by the others. Each block begins (or ends) at a nice, even hexadecimal number, and the space after (or before) each block is filled with FFx or 00s.
I've had several readers look at these gaps and give the fascinating suggestion that there may have originally been code there, which was blanked out prior to production of the ROMs. Since each gap bounds itself on a nice even hexadeciamal number, however, I must (sadly!) confess my doubts. Since each person who mentioned it also used DECIMAL, not hexadecimal addresses in their letters, I can see how this subtle, but important clue might have been missed. (C'mon guys! I said in Part 1 that we really need to work in hexadecimal here. You gotta trust me after all we've been through!)
In any case, though we can't cover the fixing of the EXROM in detail, the following map should aid those who want to fix the tables, and make permanent changes to the bugs in the RAM
ST CLASS MAGAZINE Sal PowcAR
A rajor prea Hough for the T/3°2068,
BYTE POKER, a highly sophisticated conputerized magazine on cassette.
No longer will you have to type in long. fastidious prograns...dUST LOAD AND RUNt
jazine for the 1/3 2066. Each tape —~
BYTE POWER ig a software based magazine with over 130 prograns per year, nost of then in fast Machine as TALKING CLOCK, EASYuard word-praocessor, GRAND PRIK a 3D race, and SSP (Snall Screen Painter) are sone exanples of the high quality prograns published in BYTE POWER Magazine.
BYTE POWER brings cost, LESS THAN 39 CENTS A PROGRAM, based on 1 year subscription.
Plus you get Software and Harduare reviews and tips to help you
i. Prograns such
you this quality progranning at a very srall
— = are) design better progranst
ae a ce aaisteie 1 ISSUE CSAMPLE, BACK TSSUED....220--+seceeeee eee eee eens 85.50
wsag ean 1 Ses pete 6 MONTH SUBSCRIPTION (6 ISSUES)........... -$29.99
Wan BAK tine 1 YEAR SUBSCRIPTION C12 ISSUES)............44 +++ +$49.99 i
U.S. FUNDS ONLY
SEND CHECK OR HONEY ORDER TO
BYTE POWER 1746 MEADOWVIEN AVENUE,
PICKERING, ONTARIO, CANADA LiV 9G6
0 4 ISSUE 06 MONTHS © 4 vEAR |
Nar
ADDRESS:
cITy:
* CLOSE OUT GSGPECIAL x€ | Resident code.
EXROM Map RAINBOW PLUS INTERFACE 0000-0067 - Misc. Housekeeping
0048-O8E6 - Cassette 1/0 ONLY $29.95 OBE7-ODAF - Extensions to system initialization (We've flowcharted most of this)
OW WHILE SUPPLIES LAST, YOU CAN GIVE |0D50-0Ff42 - Video Mode Change Routines : YOUR COMPUTER THE MOST COMPLETE SPECTRUM |°F43-0F8? - Passes list in extra BASIC commands Hone ROM
FORMAT, CAT, MOVE, ERASE, LOAD *, Qverflow EMULATOR AVAILABLE! THE RAINBOW PLUS SAVE x, onto the stack. Routine at Black INTERFACE COMBINES ADVANCE SPECTRUM Bee ica re eo ee ee ere: EMULATION PLUS A SPECTRUM COMPATABLE this routine tries to CALL a Hone
EDGE CONNECTOR, ALL ON ONE BOARD. AND ROM routine, with the wrong address.
SINCE IT ATTACHES TO THE REAR OF THE OFBA-OFA7 - Performs crude interbank JPs' and CALLs. Should bi d ly by th COMPUTER, THERE IS NO NEED TO OPEN THE initialization cadet
COMPUTER OR TIE UP THE CARTRIDGE DOCK. | °F@8-OFFF - The block is filled out with zeros. — THERE IS EVEN A SWITCH TO CHANGE MODES. | 1000-1225 -
Initial RAM Resident Code is copied — from here. @ short stretch of FFs Initial
ALL FOR ONLY $29.95 + $2.00 S&H from 138E-13CF is the initial bank RAM Res
switching stack. Cade
TO ORDER : SEND CHECK, MONEY ORDER, VISA | 1624-17FF - The block is filled out with zeros. — OR MASTERCARD, TO = DAMCO ENTERPRISES | sao0-1neF - Not Used (filled with FFs)
67 BRADLEY CT. FALL RIVER, MA. 02720 | 1CO0-1CFF - Not Used (filled with zeros)
OR CALL (617)678-2110
1D00-( ) - Fixup table for relocating RAM Res ~ Code. Address values start at 1D00. List grows UPWARD in memory. '
1D7A-1EDB - Unused space between tables. (Filled with zeros) :
( )-1FFF - Address table for Function Dispatcher. Starts at 1FFF and grows DOWNWARD in ExROM memory. This table is also broken Tables into 3 sections; 1 for EXROM services, 1 for Home ROM services, and 1 for RAM Res Code services (low
Flowchart 7: memory addresses only!!!) Unused
space between these subsections is Initialize a RAM bank. —-$Dace |Patween th
KoaDB/< Put Oz al SISCONGO (Marks a HAM ban) HOADDXOAED- This was SUPPOSED to cory the
interrupt handiee from the EXROM te the Flowchart 8:
RAM bank. Unfortunately, 1& copies one byte Renumber banks according
too fay, andthe B ond Cvegites have to their interrupt priorities.
et, Mechel eras | pase DET
a2 vesult, Bhe bytet ard copie 4 CFB -YPCEE Cleny MNBME, De ngrcaak toe each
RAM back, TO the EXROM bank, Se eb al eacseent fer ac:
detually doesnt accomplish Anything. [RECFEKoDas-Porcd be SISCON OO fon the FIRST bank ey POACE/F-Foint He to SYCON Ot; Chunk
available for RAM (hi-teue) [reverse SYSCON DO & compare it to B® (IF IKdAFO-K0AF3° Set bit Daf SYSCoA OZ. Tf wave tasal We reached Sha ent of fhe énglad
here, there MUST be RAM ix chunk @ O1F4-XOIFb-Tuitsalize chunk address printer
DE resists) to lecation CHAS 8/9 - Tas fs all unke counter (A vegiste) to PL [hODOR- Point to SYSCON D] -The ant mumbo, Désra/e- 2, a Bt roDec -x@d0e- Get SYSCONO4 A stock Let 7.
[AXOAFA- Save chunk counto- CA repis bev) Thisbit is onlysed tf the bank bazet been HUNCERS HOALA-XOBO-Foiet DE te st ptt address of Terumbered “yet. =_— femext clock Cpreservet XpB92-XOBI3-Moves a byte from YOBE7 te first -Gkopaeiae byte of naw RAM bank chunk.
OBE=X0018 Get MAYBAI. Deving initializa boy this 13 he number of the back Were terbing o
CHARTS, EXAMPLE
XOB9-YoR2s. Thrs was supposed te take the Ofkepi-Wep-Save the bank wambe byte that was just writen inte RAM and ODA -~Pent te SHON OO IN DOLLARS Gees thad inde SYSCOM 3. Un fortunstdy CD IB-KODD Gel SYSCOW O0& compare te 2 (Ran
eopees fe tte Deck bank, ad so 3 B0e ie wees fully) poi nfs Al. fo S¥SCONA Qed ie-Fs € Oe (Rom paul ? KPB26-XOBZD-Compare the contents of S¥scom 3)
de XOBE7.TF they match there may be RAM here, JKODLP-XODIS-Paiw€ LoSYSCW TP-Int. priowity fe xe = 2 X2224-10927-Tyis will evertually aesign & C_XOR2E7F Pe tues matey? I riers ty of FE (Jowast prion ty) x40 30-N0BAS - Mave LE From Koade de Frrvd Lyte “SKOD?8-KTB-Peind te SYSCOU ID ~Tuk Princyty oF current chuvk oF ROM Las, xep2c-xerer - Gat the prrorti XOB44-XOBSS~ Supposed to Copy the byte trem Kam bank inte SYSCON 5. Unitotunrtaly ad <p rt tothe Dock bank (Same BUG ns alow) flee Guccohll) peal Ue be S¥8COn 0: [ett oem oe ew bee ty PPBSE-XODSB- font HL bak do SYSGN O2, ond XODS!-40037- Ged S¥ScON OP hcompare UL do BG tengane the byte Gal world have beet read marks the She Gaur’ back Chad desre been no bag) ros] you — kate ot xtc Csi Fed oF fable? [D RGSS De thes malt ——— eu Pad to Sysco oF KoBFE-X0B94- Weve Fourd tnuothen RAM chunk P*OP37-XODIT Get SYSCON O42 Bcleck bh? Sel ue sppsepisle bib ta SYSCOw OF The is eet 1f back is wot spat wenn cnboret OBIS -XOBCI- Toerey ve RAM iy thes ch: XODIA/B Ts 1 renumbered 2] ey. Messt sepropsicle bie in S¥sCon Db [ebscKeDd font te syscow 7 t+ WEBER NOBEL UpLake lua k caster § 300 PF W's Biyel (dhowusere done) = I—-Gete Flowchart 8 continued... | _@pepe7e Are we Tone ~ ie T ars
Flowchart 8 (continued from previous page)
EDIE Pond To SYSCON OF
ResEBOGT Shenld mew! copy WL DE This will leave DE pointing te SYSCW OG
MOPAF-X6D52-Foint HE to SYSCOM 17° tet priorsty
(00 3-KOBSE RE Previous wterryel Poverty mB
Cae ook bay gies Bae)
GP IOWA ~ Encvenet MAK BNR B-HOND~Get addy, of highest prientty bok # (ODE Save mao bank wunber ab tent 2b dress Rene F-¥OP8>- “Tiwey's ageing Saye Cure 12 Supposed to pol the bank # at bention C06 of the RAM bank us terd due bo a BUG, ise the bank # ae a6 address, “aed copier From that address Im MWe home trek be addeats deep of
Aaieer Yond Sef MAKINK to @
XODE-XED ~ Send DO ze vegulen CD- fesets the Daly ain
xanq2-K0D98- Get address of first bark wumber in the SYSCON dalle
lyoney A useless ins hnction, bud if would have been nice cf ct were might befors the ngiroction af XODIF
rKODg%-D = Thcrements MAXBWK, and checks bo see tf Elal bask munber ewsth Returns wth Cyal, cf yes Unfortwmately cf aise metals that tambon in) the bank-- after we're carefully vemumbered them all. Well fix that in a myvinats, Since Me points tole prope brake be He Saou datie
Pane = does the bark evist? (ers 0 ]h)
(Oda KODAL- Gel The correct (varumborad) bank hanbo] And iméal) Win the bank, Mote that if ve ad de this pant of the program, D contains AO, lef E ever from the routine ab XGBD!.
KODAZ-KODAG Send OL bo veyiater CO Advances the Daisy Chain-
XEDAA-XEDAF- Pind Lo the wext bank # in the SYScON Exile
esc ey
A chip Orr The O140 BiocK
As we said last time, there are many portions of code in the Home ROM that are blocked off, so they're never executed. If we wished to use the "Sinclair Interface One" method of adding a disk, microdrive, or other 1/0 devices, we'd leave these blocked off. However, this would require extra hardware to switch in a “superbank", at the right moment. Since the blocked off code has the ability to link to the normal expansion banks without such
[XODs2/8 -Get-eresent int Prien ity £ compre toB 2487 -
extra hardvare, it may seem attractive to try to restore that old code to working order. The following table gives a good feel for what they are, and what they do. In each case, the routines are blocked by a JR, JP, or RET instruction.
1488 - Would have allowed the execution of expansion bank code —
to OPEN a stream to a specially made channel.
2460 — Would have CLOSEd all 16 streams & rebuilt the SYSCON
table after the execution of the BASIC command
"RESET «". The rebuilt table would have been a "cold reset", ising the EXROM routine at XO9F4 (shawn a long time ago in flowchart 4.)
Would have performed a “warm reset" of the SYSCON table after the BASIC command "RESET". ,This would nave used the EXROM routine at XOC4C (not flowcharted).
2400 - Would have run expansion bank code upon execution of the
BASIC command "RESET # stream"
24EE - Would have passed the information in an extended LOAD or
SAVE command (ie, LOAD * "D",list of information") onto the stack, and then CAlLed a LOAD or SAVE routine, perhaps for a disk or microdrive, in an expansion bank. This would have CALLed the routine at 25B9, which is also never used. This is fortunate, because it tries to CALL an EXROM routine with a mis-linked address, and also has a RET command missing, following a CALL at 25DE
25E4 - This is part of the code that would have passed
parameters from the BASIC commands CAT, FORMAT, MOVE, and ERASE. The blocking JF instruction, at 25E1, is
where Timex deleted code to make room, as mentioned in the previous installment.
“Let Us Reconstruct Watson” .
An interesting item has been recently published in the Jan- Feb issue of the newsletter of the Long Island Sinclair Timex User Group. From its language and format, I suspect it's an early version of Timex's functional specification for bank switching! (They may have titled it differently, but that's the type of document it is.) Timex would certainly have had to make such a spec available to third party software developers. So, in hind- sight, it's reasonable that a copy should eventually come to the surface.
Still, the person who "leaked" the docunent could come to some trouble for doing so. This may be the reason it was sub-—~ mitted under the pseudonym of "Dr. Watson". (I love itit!) Well, whoever you are, Doctor, thanks a bunch. You've done a great, service to the cause.
Because it's an early version, there are portions that have been superceded by engineering changes in the machine. (See Part 3 of this series, where we discuss the bank switching tutorial in SAMS "TS2068 Intermediate/Advanced Guide".) As such, its des- cription of the bank switching registers is not quite accurate. However, we do get a'complete picture of the SYSCON layout, an idea of some of the peripherals Timex at least considered pro- ducing, and a description of the BEU.
We also see how some additional tables of data might have been written in home RAM by expansion banks during the power-on initialization. (For Spectrum users: these seem somewhat an- alogous to the extra information in the “m*, "n*, "t", and "a" channels used by the Microdrives, network, and RS-232 ports on the Interface One.) Since these tables are a function of the ex-
Now Available! “THE BEST OF SUM, PART II”
Over 60 pages of program listings, reviews, hard- ware projects, hints and tips, and articles. Covers TS-1000, TS-2068, and QL. All are reprints from the last year of SUM plus a few that didn't make it into print before now.
Articies include Building an EPROM Program- mer, Sprites on the 2068, Adding RGB to 2068, QL Word Processing, What's Available for TS- 1000, and much more. Does overlap the “Special Issues” aan the right
795 postpaid
Florida residents must add 5% state sales tax.
The original-*THE BEST OF SUM” is now in its 2nd printing. 112 pages of articles going all the way back to the beginning of SUM — 3 years worth! a
$11.95 postpaid
QL Special Issue (12/85) — 53.95 postpaid TS-1000 Special Issue (5/86) — $3.95 postpaid.
Everything! $20.00 postpaid
FOOTE X22, SOFTWARE P.O. Box 14655 — Gainesville, FL 32604 904/462-1086 (6 pm - 9 pm EDT)
18
pansion bank software that doesn't exist yet, we can still re- design these as we wish. But it's still interesting to see what Timex had in mind.
‘The BEU was intended to allow an additional 4 devices to be plugged into the TS2068 (you're only supposed to plug two or less directly into the 752068, according to the Technical Manual. If
you needed more devices, you could plug ANOTHER BEAU into the
first, to allow a total of 7 devices to be plugged in. A device could have been a peripheral, or could have contained one or more expansion banks. A device containing peripheral hardware AND an expansion bank to control it is referred to as an “intelligent device", by the way.
‘The list of device specifications (the ASCII characters that define a channel type) included the standard ones as shown in the Technical Manual, but also included specifiers for a Tele~ communications device, a stringy floppy (like a Microdrive?), both floppy and hard disks, RS-232 and Centronics interfaces, an 80 column printer (it's uncertain how this would differ from the Centronics interface) anda network. Also the letter "M" is marked as reserved, This is what Sinclair uses for its Microdrive channels, but this is a stringy floppy device, so the purpose of this is uncertain.
The biggest bonanza from this document, however is the complete SYSCON table layout. As mentioned last time, the layout I gave was incomplete, and I began to give some corrections last time. A complete layout would not have been possible, because the ROM routines don't use all the SYSCON locations, and there's a conflict in various code locations as to how a certain cet of initialization code is pointed to by the SYSCON table. As it turns out, I chose one possibility and Timex intended the other (curses! ).
Furthermore, I speculated that certain expansion banks might contain complete replacements for the system ROMs. This means that certain "reserved" memory locations would contain JP in- structions, so that instructions like RST 8 and RST 10 would work under these ROMs. Timex seemed to have no intention of doing this, but it's still possible, es far as I can see. In any case, here's the Timex SYSCON layout for an expansion bank, along with my original commente:
00 O1eROM O2"RAN OOwInactive 01 Bank #. NSB is set if not yet renumbered
The following 1 copied from 0000-0015 of ROM expansion banks 02 For RAM - Chunks available - High true For ROM = Channel specifier, if this bank controls a channel. This will be an ASCII character, and the initial- ization software ri bit 5, insuring that the letter will be uppercase.
03/4 Address of OPEN routine for the channel.
(Alternately, 02-04 could have @ residual JP instruction, which does no good to the SYECON table, but allows RST 0 to work in the expansion bank, since the JP ie at location 0000 oF that bank.)
05/08 Address of CLOSE routine, Call with RAM punber on thi
07/08 Timex called thi of the SELECT routing. It could have been used in initialization, and to attatch the current channel to this bank (7)
09/08 An 1/0 device INPUT routine addr:
08/00 An 1/0 device OUTPUT routine addres
(Alternately, 0A-OC could have contained a residual JP that Would have been intended te allow RGT 08 to work in the ROM bank)
OD/OE Address of Disk Comnand Handler routine
OF/10 Addr of device interrupt handler (92 bytes)
11/12 Addr of device initialization code (cold start)
13/14 Addr of device reset routine (warm start)
(Alternately, 12-14 could nave contained a residual JF that would have been used in the ROM bank to make RST 10 work.)
15 - Device type -- Bit 0 = 0 if bootable
izable rage davice (disk commands)
18 ~ Boot up priority. Low # ity, Home bank=go
17 = Interrupt Priority. RAM banks get 255. ROM gete lower valua, which means higher priority
if the bank controls @ channel, Code with PRM_OUT=2, and stteam
1 Bit 10 4
NOTE: The Timex document gives this list as ROM addresses, rathi ‘than SYSCON entri: given here. The SYSCON Stsplacements must almays differ by two from the ROM addre: This difference is not an error.
These are the items of real importance to those who'd want to implenent extended bank switching on the 7S2068. Other items in the document make interesting reading, however, and you may want to contact the L.I.S.T. group to see if back issues are available.
Final Thoughts
‘Throughout this series, I've made comments about the various bugs and defficiencies we've uncovered in the TS2068. While there is no denying that it does have numerous problems, we should see them in the perspective of the problems that likely faced the de- signers. Let's also not forget that the initial release of a computer will uncover many new bugs as a huge group of users tries things its designers hadn't condidered. (Wes’ Second Law: It's unwise to buy Version 1.0 of ANYTHING. )
Remember that the TS2068 is a radical redesign of the Sin- clair Spectrum with many new functions wedged in that its or- iginal designers never intended for it. It almost had to be forced to be able to do some of them. It was developed during” a time when the home computer market was declining, and it ran way over schedule. It's engineers would have spent late nights in the ‘lab, while getting called on the carpet during the day.
The mistakes we've seen are typical of the kinds I have observed (and even made!) in my many years as an engineer. Usually, they get fixed, but sometimes, there just isn't time. There's no reason to expect that those responsible for these bugs were not simply good engineers given a huge job on an inpossible schedule. We can be thankful that they've accomplished wnat they have.
Writing the last article ina series always brings about mixed feelings. It's nice to see a job finished, but it's also like losing and old friend. I hope you'll continue to let me know about your own TS2068 projects...particularly any that deal with bank switching. I've made a lot of friends here, and I wouldn't want to lose contact.
I've been reluctant to do more than hint about the bank switching hardware that I've been playing with, all this time. The reason is that I wasn't satisfied with it, and vas sure that many of you could provide a better way, given the proper food for thought. (And every now and then, I'm right; you've done spec- tacularly.)
For the record, I've modified the two lov level communi- cation routines in the RAM Res Code so that they instead communi- cate their data to a separate (and very small) 280 computer. The second computer simulates most of the registers, and controls the horizontal select bytes for the expansion banks, which are other- wise controlled by the TS2068. This works, but it is a bit more complex than I'd like. If you'll look back over this series, and see my scattered hints about the virtues of changing the two low level routines (READ_BS REG and WR_BS REG and WR_BS REG) you may see the method in my madness. <<
Well, thanks to many of your suggestions, it now looks possible to modify these two routines so that they do all the simulation and control functions in their own limited space, under complete control of the TS2068, negating the need for a separate processor. This is still in its early stages, but ex- tended bank switching could become much simpler, in the coming months...we'll see.
As I said, I don't want to lose contact. Please feel free to write to me: Wes Brzozowski, 337 Janice St., Endicott, NY 13760.
19
GAH MISIC DESIGN “2000 SRY
fron ARADO
———? Surin ——|
OS ee
HERE IT IS!! A REAL MUSIC PROGRAM FOR THE 2668!
You can adjust the volume, tempo and duration of the beat and melody. You can record as you play and play it back later. You can string several tunes together and play then back continuously. You can save the program with the tunes you have written or entered. Room for over 1080 notes and pauses. Over 2 1/2 octaves! 1@ chord keys!
Tf you want, you can use your own music books to enter songs of your choice.
Almost Like having your own sythesizer on your 2068! Nothing better for the price!
OLY $19.95+62 SH. EXCLUSIVELY FROM:
RNG ENTERPRISES 1419 1/2 7TH STREET OREGON CITY, OR 97045
TRA WSDSUP Co. livers!
HHH HRA RARE
DO YOU HAVE PROGAMS ON CASSETTE THAT YOU KE TO HAVE ON YOUR AERCO FD-68 ee u WHAT WOULD YOU PAY FOR A PROGRAM THAT WOULD MOVE THEM FROH CASSETTE TO DISK AUTOMATICALLY?
Well we are here to announce just such a utility! GET READY! HERE COMES-—--
S2K EXPRESS Another GREAT utility from the author of such titles as: KRUNCHER, KRUNCHER 10¢0 AND TRACER This time we bring you EXPRESS, as in FAST! We guarantee that this utility will save you a lot of tine transfering prograns to disk.
So sirple to use! us you do is boat up the progran and
ress, on your tape recorder and watch the prograt
P'iBAD and then automatically MOVE to’ the AERGO cick!
We couldn’t wake it any easier! AND THAT’S NOT ALL!
This progran uses ABSOLUTELY NO MEMORY! .
Once the transfer has been wade, all that 15 needed is
for you to reboot them, change the SAVE and LOAD commands and re-SAVE them in an auto-run sode.
The program includes a very good header reader and catalog function. It is just the first of many programs to come that utilize the bank-switching facilities of the 2068.
A GREAT ADDITION TO YOUR FD-48 UTILITY LIBRARY! THE PRICE? ONLY $14. 95+82 SH. EXCLUSIVELY FROM:
RMG ENTERPRISES 1419 1/2 7TH STREET OREGON
CITY, OR 97045 5€3/655-7484
HOTS
TOURIST C livers!
SEBSREREESSERGAGOSA OSE ROR ORG R EAE SABESSEERE SOSA R ESO GSOUSERTOBas GAGS Has eA eSeBSARHeeeaeeAeeHeeeeeees
Let TOURIST C what HOT 2 Cammoted ine’torm gov can user ‘bectnst ss
O1FEFE es2e76
9672 @6CF BLN
9674 180A +12 9656
9676 @6D0 LD B,N 208: FORMAT - 9678 1806 dR +8 S686
9650 @6D1 LD B,N 209: MOVE - 9682 1802 JR +4 9655
9684 86D2 BN 210: ERASE - 9686 coss28 CALL _NN 18377
9669 2001 JR ONZ,+8 9597
9694 Cb4diB CALL NN 6350 9697 C36725 UP NN 9575 CF RST
9576 i2 oc 1 Thia bonrvicads srimtate acing 005,
Rtn: PASSEM
{Kookt2Sd /Hset=Ol111411 8 better choice, Some redundancy is 25753 | LRONK_CNdh2£]..cxROMN 3849 | (Pd 84573
78
a
, a
landing of paromitone eto temente, a Bankt2s55 Grp : SYNTWO Rtn : BADKEYS oa ae pha
JR 6 : a
:
8
8
Invalid I/O device 4nt ON ERROR con some it
Decimal is shown when that is what the TS2068 requires for input. Hexadecimal
@ is used in places where it is the
achieved. Both forms often show.
Relative branches show offset, code byte and destination.
(Riodbky @ 398 85250 !Ronkt255/Hs2t=03000000 25753 | [6anK_Cndsz23 . HONE dorricadea primtating Lhe
Error calls give the exact error
Caiculator calls show the routine in uninterpreted byte code.
WHAT HORE COULD YOU ASK?
You coutd ask for a data-base filing system. You got it!
You could ask for a universal printer interface. You got it!
You could ask for intecpretation of code bytes. You GOT it!
You could ask for titling and a
“SPY"IL Ah Wellies
bid I mention. .perhaps I..YES I really should. NO RELOCATION!
2 a a Ban k#OS5 Grp : SYNTUO Rtn : ERROR J a tou jump around. Guess what? 8 a 8.
What you see above is an unretcuched disstsembly prepared by TOURIST C, The comments and enphasis of the titles were added by a word protesser from the data-base file generated by TOURIST C. What good is a disassembler if you can’t make notes? fis you can see, getting down to the business of working with machine Code is never just a matter of printing out all the raw data, You faad batter, and deser » TRIST C gives it to you, The fact that TOURIST C bank-switches has nothing to do with skispirg on the essentials, What it can show you in other banks is gravy, GET IT! TOURIST C OrdersTS25PYB68 $32.58 + 1.53 StH
Pixel Print tense. by Lemke Software Deve lopment
Pixel Print creates Tex Loads Braphics for fh Magazine Columns, Lett Examp te LORG GRAPHICS ERASE
DASH © WIRROR, DARRLN farce aes) — —
lie"
the PIXEL HheTci and GRAPHIC Editor ved to demonstrate its very powerful editing abilitig
Pixel Print also has many very f powerful functions... Like pixel Shift for precision layouts!
Priel Print "Severe
of FONTS &
Pixel Print will print 2040 Thermal Printer or ing Of EPSON compatible wetEex
Pixel Print 18 compatible with the TASMAN, AERO, aid Abd CPL,
Get your PIVEL PRINT: HLS
Lemke Software Development 44 White Ok, Wichita Ke
Michael E—. Carver
Durrell has done a decent job of providing an inexpensive means of driving one of the finest sports cars produced, the Lotus Turbo Esprit. Yo add an extra dimension to the simulation, Turbo Esprit is also a game cf “cops and robbers". Actually, it is a game of “cop and drug smugglers". ‘The plot of the game is to chase down four drug-runners and their armoured car supplier. The action takes place in one of four different cities. A city
must be chosen upon loading, and to try a different city one must reload the game.
The display is similar to Durreli*s Combat Lynx (a combat helicopter simulation). The screen is divided into two sections =- the dashboard and the playing field. Once again, the player's vehicle is seen on the screen from a view point just behind the
car in @ 3-dimensional world. The 3-D effect of the city landscape isieffective, but a little jerky while driving at Slower speeds. The car is, as one wouldsexpect, a right-hand
drive ala England, and the city streets are laid aut to be driven on the left-side of the road. This took quite some time to get Used to, especially when making left or right hand turns. The city 1s made up of various 2 to 6 lane streets with a number of one-way streets. Some of the hazards encountered, while cruising the city, are pedestrians crossing in crosswalks, potholes (which are set off with barricades), and workmen on ladders, which extend into the street. Of course, what driving simulation would be complete without lane changers, who don’t use their turn
Signals? Yes, the cars driving through town have operating turn signals.
Your car is equipped with a,gun, which can be fired at other cars. Drug-running cars can be stopped by shooting them or continually rear-ending them. Points are scored for apprehending the ¢rug cars, with a higher score provided when disabling the car by rear-ending it. There are penalties for ramming innocent cers or running aver pedestrians. You are provided with four Separate cars, as your car can be demolished by crashing into other cars or walls. It i algo possible ta lose a car when shot by one of the cruising hit-cars. One also scores points by taking aut the hit-cars. There are also various gas stations which are needed when the fuel gauge gets low or your engine develops a misfire.
A map of the city is available (on the screen), marking the locations of gas stations and drug cars. There are various levels of play which effect the speed of the cars and the number of times they must be rammed before they submit. Control is via keyboard (which is user-definable) or joystick. By being able to define the keys, control by keyboard 1s easy and responsiv
As a simulation, the game has a good "feel", (especially when taking corners too fast). It 1s great fun to re-enact some of the great chase scenes from the movies (Bullet or the French Connection), by driving on the wrong side of the road to get around traffic jams, running red lights at busy intersections and dodging pedestrians. The plot and action of the game can get a little old-hat. It is not a game that I think one will get hooked on and forget to eat or sleep, but is great fun to pull out once in awhile and pass a few hours with. The action does not seem to slow down with the number of active objects. on the screen, though it does suffer attribute bleeds. Also, one can occasionally get stuck, because some idiot driver went down a one-way street the wrong way.
Turbo Esprit 1s available from Curry Computer for $16.95.
21
PROGRAMMING CONCEPTS py aipert fF.
The following article deals with programing on a Sinclair Zx81 (or TS1000). It is just a portion of a large document, with the remainder to be published in the next issue of TDM, along with a program listing. The listing is a game program, "2X81 TIC-TAC-TOE", which will serve as the chief example and will be discussed extensively. If readers would like to get a “head start", a complete listing of the program, declarations and array content are available for $6.20 ppd.; or a cassette is a available (nonlistable) for those who don't want to key in the program, for $12.00, from the author. Albert F, Rodriguez, 1605 Pennsylvania Ave. #204, Miame Beach, FL 33139. (Foreign buyers add $2.00 for the cassette, or $1.00 for the listing).
(con't fron last issue)
From this observation I deduced that it would be prudent to locate my subroutines, as often as it was practicable, below and as near to the place that they have to be called from in order to acheive an optimal
MC/PS ratio. This technique can be best implemented, given a program that is relatively as multi-functional as is mine, by using what I call: "drivers". (For this
term, but not the meaning given to it below, I am grateful to Mrrs. Frank L. Friedman/Elliot B Koffman, Problem Solving and* Structured Programming In Fortran,
Addison-Wesley Publishing Co., Inc., 2nd Edition, 1961, Page 299.) A driver is similar to a "main program" (to learn
about the concept of a main program see the chapter on Subroutines in the User Manual).
A driver calls one or more subroutines (or another driver(s))*within an overall program in that it is actually a suproutine that may called by a main program (e.g., see the driver routine Game in my program, which is called from line aa9 and consist of lines 7001-7011).
There should be only one main program within an overall program, but there can be many drivers within an overall program. The unique value of a driver is that it allows a subroutine or another driver, far below in the overall program, to be nearer to the actual place from where it is being called within the overall pro- gram. and this; indeed contributes to a better MC/PS ratio.
The proceedural rules derived from structuring (as effeciently as possible) the main program (see lines 112-120), drivers and subroutines (see Declarations below for exact line numbers) within my overall program are, for convenience sake, referred to as "Rules of Top- Down Design," and can be summarized as follows:
1. A main program is placed immediately after the Program's name and any commands/initializations, if any, that appear at the beginning of the in- struction area.
Rodriguez
2. A main program begins with either a sub- routine or a driver call, and it ends with a GOTO statement.
3. Amain program calls either drivers or sub- routines; it best calls itself with a GOTO state- ment.
4. A driver or subroutine are located best when they are below and nearest to where they are being called.
5. A driver or subroutine are located, in an over- all program, in the order that it is first called by a main program or another driver.
6. If a driver and main program bothcall the same dciver or subroutine , then, this same driver or subroutine is located in the overall program in the order first called by the main program.
7. A driver calls either one or more drivers or subroutines.
8. A driver or subroutine should contain at least one RETURN statement.
9. A driver or subroutine best calls using a GOTO statement.
10. A subroutine, to be considered as a subroutine, must not contain either a driver or another sub- routine.
11. Both a driver and subroutine are best called k a GOSUB statement unless they each call itself. 12. Always use the smallest line number possible when writing each line of a program.
itself by
So far I have been elucidating some of the pro- ceedural techniques used in writing and structing my program. This presentation, howerver, would be in- complete without an explanation of what each particular section (form top to bottom) of the overall program does and why it was written. It is toward this end that I dedicate the rest of this work.
To clearly know what is being discussed next, the reader should have nearby a copy of the program list and its declarations (see below). The actual data stored within certain arrays in the variable store is not necessary to understand what follows. (A complete list- ing of the program, declarations and array content are available for $6.20, ppd, to whomever may decide to key in this program themselves rather than purchasing it in cassette form for $12.00. Foreign buyers add $2.00 more for the cassette and a $1.00 more for the listing and materials. )
The programm, on tape, is not listable on the Screen. This precaution was taken so that a user would not accidentally disrupt the program if’ he/she happened to gain access to the code area of the program. To avoid reloading the program a user, whenever he/she has access to this area, should key in GOTO’7 to restart the game (see Profile sheet for instructions about how to stop and restart this program). | No-mony-back-guarante are the terms applicable to whomever buys this progra in cassette form or not.
More of this article next issue.
ZX81 Data Acquisition Module
PART If By
Tim Stoddard
As promised last issue, we'll be trying our luck at building a digital to analog converter (D/A for short). I also got to thinking (a sometimes dangerous activity). What's the use-of all this fancy A/D and D/A stuff with- out some reference to time? For instance, in robotics, you would send’ an analog signal to a motor for a "specified time" to move, say, an arm or leg. You could use timing loops in the software, but that is inherently inaccurate. What is needed is a REAL-TIME CLOCK. So, in this issue we will be constructing a Real-Time Clock in addition to the D/A converter. Although the Real-Time Clock is on the same board as the D/A and A/D, I de- signed the clock with it's own selection logic, so if you want to use only the clock, it could be done very easily.
D/A CONVERTER
Schematic #1 diagrams the circuit. IC19 (74HCT374) was shown last issue in the A/D circuit as an optional port. We will be using this port to supply the D/A con- verter with it's 8-bit byte to be converted to an analog voltage. IC20 (DAC 800) is the workhorse that does the actual conversion. It comes in many variants (DAC 800/801/802). They differ in conversion errors and max- imum temperature range. For our purpose, any of them
| 22K 1%
Schematic 1: D/A Converter
will do. In fact, my prototype uses the most inaccurate (DAC 801=full, scale nonlinéarity of .39%). I don't think I'll complain about .39%! IC21 (741) converts the "current" output of the DAC 800 to a voltage output and also acts as a buffer. The one curve ball that did come up while I was designing this was: the DAC 800 and it's variants use THREE supply voltages! I strongly dis-like anything other than “plus five volts", but in order to bridge the digital and analog world, we'll just have to grin and convert it. Anyway, the DAC 800 needs +4.5 to 418, -4.5 to -18, and a reference voltage for the current switches. IC22 (ICL 7660) converts the +5 volt supply to -5 volts for both the DAC 800 and the 741. I
2
rere BUPRAR
o
used this approach rather than an external power supply because, as it is, my bench is already cluttered with power modules. The one thing we don't need is another power module hanging out of the wall!
The DAC 800 works by taking the input byte, and then using each bit to switch a binary-weighted current source. For instance, bit 7 represents decimal 128, or half the value of the input byte. When this bit is a one, the current switch attached to that bit in the DAC 800 will supply enough current to generate half of the reference voltage via the 741 op amp.
Before wiring up the circuit, you'll need to decide if you want "unipolar" or “bipolar” (unipolar = Ov to 45v,; bipolar = -5v to +5v) output. Then ground pin 3 of the 741 and pin 2 of the DAC 800 directly. for unipolar operation, or for bipolar operation, through a 2.2k resistor. If you do decide to go with bipolar operation, use 1% resistors for the two 2.2k's attached to the 741 op amp. Thes@,can be purchased at Radio Shack as part no.271-309 for $2.49 (actually a package of 50). This will improve symmetry. After wiring up the circuit, a single adjustment should be make. Output 255 decimal to the DAC 800 port; in our case this is port 63H (use the BASIC/MC program below). Next, adjust the full scale pot for the desired full scale output. NOTE that the current switches need about 1.5 volts to switch, so full scale output should be 1.5 volts LESS*than the supply voltage to remain linear. I set mine up for 2.56 volts...this then gives .01 volts per count...an easy number to work with. For example, sending decimal 100 to the DAC 800 port will cause the DAC 600 to output via the 741, 1.00 volts, or if you send decimal 197 to the port, the 741 will output 1497 volts. You can see how easy this is to work with. This of course, assumes unipdlar operation. Bipolar operation would give an output voltage range of -2.56 to +2.56 volts, and increase each count to .02 volts.
‘The ML routine to write the port is very easy and follows:
10514 62 00 LD Ayn j load A with data to output 16516 211 98 OUT 63,A ;cutput the data to DAC 16518 201 RET
ireturn to baste
To use the routine simply POKE the above MC routine in a REM statement, then within the BASIC program, POKE the desired data byte to output into location 16515 and then execute the routine. Here is a sample of the above
ine: Routt 5 REM 6Exx (== Poke the above ML routine here
10 PRINT “ENTER OUTPUT DATA” 20 UNPUT D
30 POKB 16515,D
40 RAND USBR 16514
50 GOTO 10
REAL-TIME CLOCK
This part of the project is perhaps, the most useful. It can be constructed outside the DAM board project and used separately. Everything from games in "real-time", to timed control of BSR modules in the home can be accomplished using this clock.
The circuit is very simple and also features a bit- addressable port. 1C23 is a Programmable Peripheral In- terface (or PPI for short). It replaces three 68-bit
ports and selection logic, and is fully programmable. All three ports can be programmed as input or output and in the case of port C can be programmed as a bit- addressable output port. Fortunately, it is also CHEAP ($1.69 from JDR). 1C24 is the actual clock chip and is a MSM5832 ($2.95 from JDR). The crystal is a 32.768KHZ unit and costs $.95 (also from JDR). IC25 does our 1/0 decoding and is the familiar 74HCT138. Note, you can also use the 7415138, but it will consume more power. I HIGHLY recommend using the battery back-up, unless of course, you want to set the clock each time you "“power- up". A nice lithium coin-type battery holder and battery
fs
Tex Bos
Sionses
Aux Bil ADbaEssABLE Poar
a dig toa TH Dora ig sun, mio J _y
i a 2?
ee
R
is available from JDR (holder $1.95; battery $3.95). The trimmer cap on the clock is available from Radio Shack, as are most of the other passibe parts. The inverter used to invert the RESET signal off of the TS/ZX buss, is an unused section of the 74HCTO4 in the A/D cir- cuitry. The pull-up resistors are needed because the— MS5832 is a CMOS device where the 6255 is not. }
The software to use the clock is a little more complex than we have done up to now, due to the use of the 8255 PPI. However, it's nothing that can't be over- come. Generally what we need. to do is configure the three ports, then send the appropriate data to each of the ports as needed. Looking at schematic #2, you'll note that we use two of the ports for the exclusive use of the clock. Port "A" is used to send the clock reg- ister address and four control signals to control the clock. This port then will be used to send data to the clock only. Therefore, we will configure this port as an OUTPUT port while reading or writing the clock chip. Port "B" on the other-hand, will be used to both send and receive data to the clock chip. Therefore, we will configure this port as either an INPUT or OUTPUT port depending on the operation being performed on the clock. Port "C" is not used by the clock and can be configured fot your particular use. The 8255 has four possible registers that can be addressed; one for each of the three ports and one that is used to control the 8255. The following Table illustrates the register addresses as used in the DAM board.
x6 8255 8255 280 280 PORT# REGISTER ADD HEX PORT# DEC PORT#
Re ee:
A 0 53 83 B 1 957 87 c 2 5B 91
‘ + 3 wer a ow ber
Schematic 2: Real-Time Clock and Aux. Port
@e
RRR Corer
HHHHHHHHAHHHHHH HARRAH
CHTRL 3 SF 95
There are actually two MC routines for this clock; one to set the clock and one to read each of the MSM5832 registers. All executable code is shown in decimal form since this is the most common way that MC routines are entered.
The following is the "jump table" for accessing the various routines to use the MSM5832. The table loads the address and READ control signal for the MSM5832 into the 280 'H' register and also loads the digit MASK into the 280 'L' register. The MASK is used to remove the unused bits from the particular MSM5832 register we are reading (each MSM5832 register is a 4 bit register).
16514 201 2012201 JP $---- i Used 11 t 3 BACK BY POPULAR DEHAND!! 10517 OL aR $58 ; Jump to eet routine 24 91 jump HERE IT 1S! ONE OF OUR BEST SELLERS! 16519 33 18 44 LD s2cor } Get-up for YEARIO 16522 24 68 JR $44 } get YEARIO digit SER Ie ies2r 2 G3 ik SF {get YEAR cigte FOR THE FD68 USER i ge 8 16529 33 1 42 LD s2a01 set-up for MONTHIO : 1 7 16532 24 58 JR $38 j get MONTHIO digit Sea aie IB nT ATICD ee prenipetias 16534 33 15 41 LD $290F ; Set-up for MONTH 4 a 16537 24 53 JR $35 ; get MONTH1 digit Very user friendly! Many features that you 16539 33 3 40 LD $2803 } set-up for DAY10 would not expect at this price! 16542 24 48 JR 830 j get DAY10 digit * 16544 33 15 39 LD $270F } set-up for DAYL Sone of the features included ate Si ce a 2 a Hs one : eet hans ae ss S j set-up for DELETEZERAS LES —-COPARE BLOGG OPT SEREENS ssa mom OR ee : gt Hn aig TBM CLUSTERS - MSDOS (2 VERSIONS) 16554 33°43 «37 «LD $2503 + Set-up for HOUR1O a 16557 24 33 JR $21 ; get HOURLO digit WORKS WITH RP/H AND HORE! 16559 33°15 36 LD $240F set-up for HOURL : . 16562 24 28 JR $1C i get HOURL digit ALL of this at a price that all FDé8 users can afford: 16564 33 «7 35 LD $2307 ; set-up for MINUTE10 ONY $15. O@+2ph 1ebsr 42 sey j get MIMUTELO digit j set-up for MIMUTEL Available on 5 1/4* disk or cassette. 16572 24 18 JR $12 j get MINUTE1 digit Complete with very thorough docunentation. ie ot iy a. ie son. ‘ oT ecISee oe fa . 16579 33 15 32 LD $200F } Set-up for SECONDS1 AVATLABLE EXCLUSIVELY FROH: 16582 24 8 JR $08 j get SECONDS1 digi 16584 33 12 37 LD s250C i set-up AMW/PM/24 £. RNG ENTERPRISES 16587 24 3 JR $03 i get AX/PK/24 flags ge’ 8 1419 1/2 7TH STREET 16589 33 4 40 LD 32604 ; set-up LEAP flag OREGON CITY, OR 97045
cr 503/655-7484 HHH HHH HHRMA
j This routine leaves the clock digit in the BC register for j use by the BASIC program.
24
16592 62 130 LD A, 382 } sot-up PA=out, PB=in 16594 211 95 OUT SSF,A j write control register 16596 124 LD AH i write add and cntri 16597 211 83 OUT $53,4 j to clock via PA of 8255 16599 219 87 1H A, $57 j read clock digit from
i PB of 6266 “01 165 AND L i mask off needed bits @ 79 LD GA j Save clock digit in
Rs 03 6 0 LD B, $00 j clear B 16605, oz 0 LD A, $00 j turn off add and cntri 16607 211 83 OUT $53,4 ; to clock via PA of 8255
} return to BASIC
16600 201 RET
This routine will set the clock froma BASIC variable called DS. The variable MUST contain 11 digits as follows:
“YY MDD WHHXN” 114111 1111 900 00
6 an example-----> LET DS="87020430854" will set the clock for D FEB 4,1987 06:54:00
10 (YBAR 10'e (YEAR 1's)
iD10 (DAY 10's) 1 (DAY 1's) (WEEK) =3 NOTE day of the week starting with SUH=0
jH10 (HOUR 10's)=0 NOTE: add 0 for AM,4 for PK, or 8 for 24HR 3 if digit should be a "2" and it’s a
A 24HR clock make digit an "A" (2+8=4). HL (HOUR 1's) =8;N10 (MINUTE 10's) =5
2 (MINUTE 116) =4
OTE that seconds are set to 00 when writing the clock chip.
OTE add 4 to this digit for LEAP year
fo set the clock for WED OCT 19, 1987 23:35:00 LEAP YEAR use:
LET DS="8710593A335" <HL> RAND USR 16517<HL>
The routine will generate two different errors;
ERR 2 The normal table undefined error \ ERR E (inverted) This indicates that the DS variable is aa E ROT 11 digits in length.
FRESENTS
-t- SCREENDESIGN -#-
WOULD YOU LIKE TO BE ABLE 10 DESIGN SCREEN DISPLAYS LIKE THIS WITH A MINIMUM OF EFFORT?
NOW YOU CAN!! With just a few keystrokes. can deat and save screen isp ays, even better than this’ one! You can even make. yar own UDGs with the built in UDG design mode. You will have your choice of type styles and
fonts to choose from. You can even install a scrolli message with extra large letters! A great attention getter for ads, promotions of shows. You will be amazed at how simple this progran is to use! Many built in commands like change ink/paper colors, erase, redo and nore! We have never seen anything like it! We'll bet you haven't seen a utility like this either!
ONLY $14 .95+82 SH.
1 AVAILABLE EXCLUSIVELY FROM: RMG ENTERPRISES 419 1/2 71H STREET CITY, OR 97045 503/655-7484
16610 33 20 65 LD HL,$4114 j- load_HL with add of variable to search for
16613 24 22 64 LD ($4016),HL ; aleo put it in CH_ADD
16616 205 28 17 CALL $111¢ 3 find variable routine
46619 218 75 13 JP C,$oD4B : if variable not found
3 ERR2
16622 35 INC HL point HL to var length
16623 62011 LD Avil i compare length to 11
16625 190 cP HL)
16626 40 2 JR 2,2 j Sump abead if=11
16628 207 RST 8 ; 1f not=11 generate an
16629 441 ADC A,LCINV. BY ; ERRB
16630 35 THC HL + point to
16631 36 MIC _HL j begining of etring
16632 6 12 LD B12 } transfer count+1
16634 62 128 LD A, $80 + program 8255 for
16636 211 95 OUT SSP, A 3 PAFout, PB=out
16638 120 LD BA : transfer count ts also used as clock address
16639 246 128 oR $80 j add hold cntrl signal
16641 211 83 OUT $53, A i write port A
16643 126 LD A, (HL) j get digit from Ds
10644 zz 28 SBC A,28 } String digit -28
16646 230 15 AND $0F 3 mask off bits 0-3
16648 211 87 OUT $57,4 i write 4t to PB of 8255
16650 120 LD A,B ; then strobe
16651 246 192 oR sco 3 the write signal
16653 211 83 OUT $53, A ; high
10655 35 TC HL ; point to next DS digit
16656 16 236 DINZ, EC i loop for next
16658 201 RET } return to BASIC
16659 ° HOP } Used in testing
16660 41 ADD HL,HL(D) ; search table
10661 13 DEC C <3) «Ds)
16662 255 RST 38 j termination byte
The following routine will allow you to enter and then‘use the MC routine as a BASIC clock. Note, however, that since BASIC is being used to access the clock, the update of seconds will be SLOW! You can, of course, in- clude colons and whatever other "“pretty-printing" you desire. I'll give.a listing for a Machine Code clock in an upcoming issue of TDM (when another installment of the DAM board will be presented...mainly software).
Continued Next Page
Lemke Software Development
wmite Oak, Mente Kes, 67207
PRESENTS
PIXEL SKETCH and GRAPHICS EDITOR yZ.0
(wen TOM review Sept/Oct “84 -- vol 2, no. 6)
32 Column Graghice 1 Merge Screens
84 Coluen Graphics: 4 Boas" Printer (alt acdes) Extended Color Mode Graphics TASMAN, RERCO, Ald, EULL Screen "WINDOW Editing I Conpatib:
2 MUCH — MUCH — FORE
(awe TOR review Jan/Feb ‘87 — vol 3, no. 2) COLOSSUS 1 @ Low Resolution Graphics Designer Program. 24 Rows x 1024 Coluane 2 Insert Delete Rows/coluans
View/Edit your Banner Design & Copy/Erate Segnent
Beroll Left/Right 4 hultiple Fonts/ein 2080 Printer or Full Gize Printer tnsede your IPRINT OO code?
© UPDATE function allows easy soda to Cat #2080 Printer or easy Full Bize Printer Driver
Get these FINE programs fron LEMKE SOFTWARE DEVELOPMENT only $19.95 ppd. (each), $37.95 ppd. for any2, or $55.95 for all ¥.
SD Lemke
Lemke Software Development Pldd Unite Oak Wichita, Ks.’ 67267
So rtware
CG evela
1 REM eK «“ FAST
LRPUT X
210 FOR X=X TO 16662
15 PRINT AT 20,0;X;" "; PEEK X; 20 INPUT D
30 POKE X,D
35 PRINT AT 20,10; PEEK X
36 SCROLL
enter 170 X's here
59 PRINT "ENTER DATE, TIME"
54 INPUT DS
55 RAND USR 16517 ‘ 56 PRINT AT 10,10;
60 FOR X=16554 TO 16579 STEP 5
70 PRINT USR X;
WEXT X
GOTO 56
RUN the program, and when you get the "L" cursor, enter the starting address for the MC routine which, in our case, is 16514. after you enter all the bytes, you will get the "L" cursor. Enter the date and time in the format described in the MC routines, then the BASIC routine starting at 50 will display time.
That's. it! As I've said in previous articles...Drc me a line! Let me know how you used the project. I'll be more than glad to assist anyone. We Sinclair hackers always seem to stick together. If you've always wanted some peripheral for your Sinclair but just can't seem to find one, let mé know what it is. It may make a great future project/article in TDM. Don't forget, next issue will feature my INTERNAL 64k RAM upgrade for the TS1000. Watch for it!
TS 1000/1500 PROGRAM CHAINING
Earl v.
A few “bugs” crept into the manuscript and the text of Part Five as published in the last issue. The “tree” in line 4 of the second paragraph, on the left side of page 40, should read "three". The “TS1000" in the first line of the last paragraph, also on the left side of page 40, should be "TS1500". The "needed to save memory" starting on line 13, from the bottom of the right column on page 40, should read "needed and to save memory". Having completed the homework assigned in Part Five, we are now ready to determine the Upper Limit of the Safe Area, the address of E_Line, the Lower Limit of the Safe Area, for each module and the minimum address to which we can lower RAMTOP and have the entire Chained Program operate properly. We will start with the TE module. Turn on the computer and set RAMTOP to 17408, by
entering the direct commands:
FAST
POKE 16389, 68
NEW Load the preliminary TE module from your homework tape using the direct coimand:
LOAD "TE" When the cursor appears, type in one 32 character line (the left hand quote symbol marks the end of the line), then press ENTER. Type in STOP (using the shifted A key), then press ENTER. When the prompt appears,
press any key. When the diagonal LOAD lines appear, press BREAK,
To determine the address of the Upper Limit of the Safe Area, starting at RAMIOP minus 50 “(in this case 17408-50=17358), PEEK each address downwards in memory, noting the decimal value returned, until you find nothing but zeros for at least ten addresses. ‘The command to be used is:
PRINT PEEK annnn
where the "n's" are the address to be PEEKed. the address just before those with all the zeros should be 17353 and should contain the decimal value 125. As the values used in the Machine Stack and the GOSUB stacks are pairs, in this case the High Byte occupying the higher uneven address (because RAMTOP is set to an even value), the Low Byte is zero in address 17352 and the Upper Limit (UL) of the Safe Area is the address 17351 for the TE module.
To determine the addrss of E_Line use the direct command: Sas
PRINT PEEK 16404+256*PEEK 16405 The value returned should be 16918.
To determine the Lower Limit of the Safe Area and
to overcome the curve that the Wicked Wizard of ROM has
Dunnington
presented us with, we will use a slightly different “Plypaper" program than the one presented in Part Two of “Adventures In The RAM Jungle And Other Mysteries" (page 12, Nov/Dec '85 issue of TDM). Instead of POKEing a 5 into the addresses above E_Line, we will POKE a series of numbers from E_Line up in memory, using the Flypaper program (Figure No.5). After loading and operating the TE or other module, the top of the Calculator Stack can
be found where the series is broken. The Lower Limit is the address just above this, where the value has not been changed.
If your computer is still on, use NEW to clear thi memory, other wise turn on the compute and reset aN to 17408 as you did before. Type in the program c Figure No.5. Enter the direct commands:
LET A=1
coro 10 When the 0/40 appears at the bottom of the display, load the preliminary TE module again from your homework tape using the command:
LOAD "TE" When the prompt appears on the screen and the cursor appears, type in 62 characters this time before pressing ENTER. We use 62 characters this time to allow for the typist making an error by over-running the end of line marker (the left hand quote symbol). ‘Type the keyword STOP (shifted A key) and press ENTER. When the new prompt appears, press any key. When the diagonal load lines appear on the display, press BREAK. Enter the direct commands:
CLEAR
PRINT PEEK 17172 The value returned should be 255, Continue PEEKing the addresses down in memory until you locate where the series breaks. All going properly it should be at address 17039 with the value returned of 186. This address marks the highest address that the top of the Calculator Stack used during the program run. The Lower Limit of the Safe Area is the next higher address 17040 with the value returned of 123. You must be careful not to do anything that would LIST the program during the determination of the Lower Limit as this would mess up the values and you would have to start over.
We now have the data we need to find out the number of bytes in the Safe Area of the TE module (each addre™ holds one byte or eight bits). The formula for this 3
Upper Limit-Lower Limit+] : For the TE Module:
17351-17040+1=312 As there must always be 36 bytes in the Spare Area of
n
the memory to avoid an out of memory error, the approx- imate lowest value to which we can set RAMIOP and have the program and the computer operate properly is: 17408-312+36=17132 (APPROXIMATE) a
The value is approximate because when the top of the
Iculator Stack is at its maximum address, the Machine _cack may extend down a minimum number of addresses below RAMTOP or vice versa. Because of this some pro- grams will operate without adding any or all of the 36 bytes. Trial and error is the way to find out. In this case we do not have to add any of the 36 bytes and the minimum address to which RAMTOP can be set for the final version of the TE module is:
17408-312=17096
The typist can actually overrun 31 characters and press ENTER without the computer acting up. As it is standard programming procedure never to store any data in the address of RAMTOP, in line 180 of the final version of the TE module and line 140 of the final version of the PRT module, we use 17097.
The value of the variable B used in both the TE and PRT modules is dependent uppon the amount of RAM that you have. As an example, let us compute the value of B for a ZX81 with only 1k RAM. The first nonexistent address is 17408, The number of characters that could be stored would be:
17407-17097+1=311 The number of 32 character lines that can be stored are: INT (311/32)=9 The number of characters in nine 32 character lines are: 9*32=288 When we are out of space to store a complete 32 char- acter line, we want to stop the text input or the printer and in the TE module, a STOP character code (227) stored at: B=17097+268=17385
As "repetition is the key to learning" and because
each module presents a slightly different problem, let's
termine the addresses of the UL, E_Line, LL, and
“wamber of bytes in the Safe Area for the other two modules, starting with PRT.
Clean the memory by turning off the computer. In order to have the printer stop after printing one blank 32 character line, we need to POKE the address:
17409+32=17441 with the code for the BASIC keyword STOP (227). Also we want the fast mode and to set RAMTOP to 17408 prior to loading the preliminary PRT module from the homework tape. Enter the direct commands:
FAST
POKE 17441,227
POKE 16389,68
NEW
LOAD "PRT" When the PRINT TEXT query appears, energize the 1TS2040 printer and press the on switch. Type in Y and press ENTER. After one blank line is printed and the query appears again, type in N and press ENTER. When the diagonal load lines appear, press BREAK.
From this point on proceed as before to locate the Upper Limit. The last value prior to nothing but zeros will be a 224 in address 17351 and the UL will be 17349.
Find the address of E_Line for the PRT module by entering the same direct command used for the TE Module. The value returned should be 16859 which will be used in line 10 of the Flypaper program.
To determine the Lower Limit of the Safe Area of the preliminary PRT module, clean the memory by entering NEW. Type in the program of Figure No.5, changing line 10 to read:
10 FOR N=16859 TO 17113 4 ater the direct command: LET A=1 GOTO 10 When 0/40 appears, enter: LOAD "PRT"
27
FLYPAPER PROGRAM
1@ FOR N=16915 To 1a7i7e 22 PORE NA GQ LET A=A+1 NEXT
FIGURE
NO. S
Operate the program as before. After using the BREAK key, key, enter the direct command: CLEAR
‘This wipes out any reserved space, variables, or strings stored in the VARS area, moving all the areas above it up to the top of the Calculator Stack, down in memory, so that PEEKing the addresses will not write over where the top of the Calculator Stack was during the program run. Locate where the series breaks by PEEKing the addresses down in memory from 17113. You should find this at 16911 with a zero returned. The Lower Limit would be address 16912 with a 54 returned.
The number of bytes in the Safe Area are:
UL-LL+1=17349-16912+1=438
The approximate minimum address for RAMTOP for the
PRT module would be:
17408-438+36=17006 By trial and error RAMTOP could be set at 17003 and the PRT module and the computer would operate properly.
If your computer is still on with RAMTOP at 17408, enter NEW to clean the memory. Otherwise POKE 16389 with 68 and use NEW. Then load the preliminary RT module from your homework tape. Proceeding in a similar manner. as you did for other modules, find the address of the UL and E_Line which should be 17347 and 16765 respec- tively.
The program in the RT module does not use the VARS area. Therefore CLEAR will not move the top of the Cal- culator Stack down in memory so that peeking the ad- dresses to find the Lower Limit would write over where it was during the program run. To fix this problem enter the direct command:
DIM A$(64) This reserves space in the VARS area for the string AS and moving the areas above it up in memory including the Calculator Stack. Again find the address of E_Line. It should now be 16835. Re-record the module using GOTO 10.
Clean the memory using NEW and type in the Flypaper
program, changing line 10 to read:
10 FOR N=16835 TO 17089 Enter the direct commands:
LET A=1
GoTo 10 After the 0/40 appears, enter:
LOAD "RT" Use the re-recorded RT module. From this point on pro- ceed ina similar fashion as you did for the other modules to find the Lower Limit. The series breaks at 16870 with a zero returned. The address above is 16871 with a 37 returned. Adjusting this address for the space reserved in VARS, the Lower Limit = 16871-70=16801.
The number of bytes in the Safe Area of the pre- liminary RT module is:
UL-LL+1=17347-16801+1=547
‘The approximate minimum address to which RAMTOP can be set for the RT module is:
17408-547+36=16897
As the highest minimum address to which RAMTOP can be set for any of the modules in the chained program is 17096, then this is the value that must be used for the final versions of the modules.
To coin a phrase...explore and "master the possi- bilities" of your computer. With properly designed soft- ware and hardware add-ons, there is nothing a Big Blue, Apple, or AT&T can do that you cannot.
Beginning 280 Machine Code
LESSON SEVEN ~~ By Syd wyncoomp
Editor: Syd Wyncoop has contributed an excellent article called "A STUDY IN NUMBERS". Due to space limitations in this issue, we will run it next time. The article discusses many of the number systems (bases) that are used by computer programmers, such as Decimal, Binary, and Hexadecimal. Hopefully, this will bring in to focus and act as a compendium for students of our "machine code class", but also should be of interest to all.
Before we begin, I need to ask again for sone feedback from you. Especially if you are a TSi@@d user. I have heard from no ramming on the 2068 iF ‘the same for both rogram must tailored to the Operating system. This makes writing this series more aifficult. Also, I need your ideas. What would you like to see? We are near done with 26 instructions. Let's talk about the logical instructions, And, Or and Xor- And and Or do not give the true/false response you are familiar With if you have used them as Basic boolean operators, Instead, and Yor operate on the individual bits of a register, or other @ bit location. Also, the flags are always affected ingtructions. the truth tables that explain how each of the logical instructions affects the bits being operated upon While this makes the individual operations cleer, it does 1ittl to help you understand the instruction, And FON, when it is encountered. In order to understand these instructions better, ry tounderstand a little of Base 2 (Binary)
computers however,
Hex /Bin Conversions
Bin woat cory gait prt
ara1 ee itt
vedeadoay ancovneak
Teuth Tables
Aa We ciscovered in our discussion of hex nunbers, the highest digit in any base is equal to base-1. This means that we have 2 digits in binary, @ and 1. The typical nunber 240 or FGh im 111189025 in binary. The b denotes a binary number just as. our h means hex.
Rather than provide a full decimal to binary conversion chart, I have given you a hex to binary chart. This is becaus we have been working with hex numbers which are a very good Shorthand for binary. Eight digit binary nunbera are very easily Tepresented by two digit hex numbers. I have provided program 1 for those of you wishing to generate your own charts.
T think you will agree that all those 1's and 2 are begging for us to make an error. That being true want to represent numbers in binary? The reason is bec: logical instructions operate on indivicuel bits and can be easily represented as set or reset (on or off, if you prefer) which is 1 or Q, respectively. Binary provides an easy Way for ue humans to determine how our friend GPU will act.
Let's look at And. And is often used to mask off unwanted bits. Suppose our routine puts the result in the accumulator and we want to inaure that the result ia never greater than 7. Ne Would do this with the instruction, And Q7h. If A contains S2h, the And @7h would make A contain @2h.
® = 01010010 = Szh And @@@aeiii = a7h = e0000010 = 2h
ult is always placed back in the @ register. We have effectively said we only want to know about the three Significant bits of A, therefore we have discarded the
Or is used to set the bits we need. If we wanted to insure the most significant bit is set we would Or 62h. If we wanted to insure the most significant bit is reset, we would And 7FR. Can YoU see where 10000002 and @i111111b are sore useful than &h ‘and 7Fh with these instructions? Binary allows you to see exactly hat 1s happening.
A = 91010010 » azn @ = 01010010 = 82h Or 1a@0@208 = Bon And O1111111 = 7FR @ = 11010010 = D2h @ = 01010018 = Ez
Chart 14
{Rotate and Shift Rice Ria Rrea Rra Rie r Ric (HL) Rie RL GH Rre re Rre (HL Ree Rr HOD Slar Sha (HL Sree Sra (HL) sel Sea (HL rad tRrd
And (HL) Orr Or a Or (HL Xor F Xor n
Kor (HL
Manipulation,
An example of using Or would be when we want to calculate an address. We would calculate the offaet in Aand then Or it with the high byte cf the address to complete the calculation.
Yor ia not a fugutive from the Outer-lisits! It is a special cane that sets only those bits that differ. For example:
A = 10010110 = 96h A= 11001011 = CBR
This ts referred to as complimenting. Xor is complicated and is not used often but it is handy at times.
The bit manipulation instructions are the largest single group of 280 instructions. They are Set, Res and Bit. They are ot, renet or test the status of
and reset instructions re and they da not affect any flags. Theme instructions are when you need to set/reset a bit without affecting the other bits in that byte. You could use And and Or ta accomplish the same task but often you will not know the atatus of the other Set and Res avoid this problem.
Bit is the test instruction. The bits are unchanged but the flag is used to indicate the results of the teat. The flag t AF the tested bit is zero, and reset if the bit is one.
The rotate and shift instructions are also Dit manipulation instructions. They are Classified separately as they operate on
the entire byte. Many of them use the Carry flag to store a bite
Rica rotates the contents of the accumulator left one bit, lacing the sign (most significant) bit in Carry as well as in Dit @. The effect of this instruction is to multiply @ by 2. For example:
11001000 becomes 10010801»
Graphically it looke 11
Program 1
1@ LPrint ‘Dec Hex Bin
28 For i=@ to 255
120 Let hs *
110 Let hintnt «7187
120 Let hS(1)=Chrs (hi+48+(7 And hi>9))
13@ Let h2=i-nis256
140 Let hs(2)=Chrs (h2+4a+(7 and n2>9)>
220 Let bs="a0200020"
210 Let asi
220 For n=7 to @ Step -1
230 If (a-2#Int (a/2)) Then Let bsint ied 240 Let asint (a/2)
250 Next nm
3@0 Let t=(1 And i<i@r+(1 And 4<102)+(@ And i<1e0@)
310 LPrint Tab tsisTab Ssh$;Tab 10;
320 Next i
TS1@@0 users need to change the following lines: 128 Let h$(1)=Chrs (h1+28) 149 Let h$(2)=Chr$(h2+28)
Rla rotates the accumulator bits left though Carry. The Carry #1ag still contains bit 7 but the prior Carry flag is now in bit @. Here it is graphicallys
tem
76543210
Rrea
s similiar to Rica. This tine the accumiator’s bits right. Bit @ is copied into Carry. end bit. 7. The fect of this instruction is to divide A by 2. This one locks Liker
Rra is not surprisingly like Rla, except that we rotating right. Bit @ is rotated through the Carry f ist
js Here it
instructions «ill op the contents of any addr graphically the sane as Rica. RI r is graphically Rla. Rre ris graphically the same as Area. Rr ris gi the same as Rra. The difference between Rra and Rr Ais that Rra
affects only the Carry flag while Rr A affects all the flagn- The shift instructions are the trum arithmetic instructions although they are otherwise similiar to instructions. first, Sla is similiar to Rle instr e that the ificant bit becomes zero. The to multiply
1. Graphically we hav
Sra will shift right arithmetic the bits in the specified ister or is similiar to Rrc except that bit @ w only copied to the Carry flag. Bit 7 renains as it was. The effect of this is to divide signed numbers by tuo, leaving the carry wet if there was a remainder (you were dividing an odd number). Graphically, we haver
Srl, or shift right logical is the sane as Sra, except that anificant Bit becomes zero. Graphically, thie is the of Slat
The last two shift instructions, I have never found « use for. They are Rid and Rrd, which mean rotate left decimal and rotate right decimal, respectively. They operate on tne contents, of the memory location addressed by HL and the accumulator.
In the of Rid (not to be confused with Rl d) the low nybble of (HL) is copied into the high nydble of (HL), the high nydble of (HL) is copied into the low nybble of the accumulator, and the low nybble of the accumulator is copied into the low nybble of (HL!. Got it? Here's @ picturer
son ene nene de:
yume A contains 74h and (HL) contains Sih. vction, A will contain 73h and (HO) will contain 1A.
Rrd behaves just as obnoxiously except, of course, that the rotation ts to the right. Here it is:
wan
aaa nmen em
femember, you will be limited to an eight bit answer with Aostructions. The Carry flag will indicate an overflow and cunulator, register or memory location will contain. the difference. In other words, all arithmetic resulta will be module 256:
Now, how about a practical application? Let's develope a hex dump routine. We can show any byte as two hex digits once we know where to begin. We need the Basic interface firsts
Sr eae ek rae Fee Form W-d Progra Employee Withholding Certif itale
gee most controversia ‘ NEW Form in you can Complete this new Confusing Fere a Thal the 34- called “enperts". Denonstrate to your Friends ahd neighbors the
Secius side of Nour 1/5 2065,
POeSsive POGACRM, 200 postpaid -T'5 ih On Cassette
THE MEL Tax Law and You
Know for certain how the NEW TAX Aus te You in the £ Vou cat Calculate how much your Federal Income Tas vill be Far ASE7 and 1995 bu using 1986 Figures, How vill the REW TAY Lak affect wou ghd our faily, Yop°Ll become @ tae expert 1) 7.00 postpaid 1/5 26g. c
The 2 broarans aboue are heitg used by “tax are LISTable and cak be MERGEd vith your bockkeepi Both TAX PROGRAMS For 1
#5ti ll Ayai lables fo=2
Original } ONES MACHINE V5 as $10.88 an Bas oe Lue us “ oad MONE. MACHINE pe ate oy $12.00 on cassette 15 2063 Starring the Lovely Kiss “Banna Brite" casei heel OF Fortune hanes”, Tine Desions Mawazine CHECK OR MONEY ORDER (US Funds? 8is0se 5 HERB BOWERS, Sr. B508 Woodshire Circle iF Chesapeake, VA 23323 = Phone: 604 487-S924 GSorTa AERAERH = ACCUTHTE BUSaNeSS, Bookkeepang ahd ACCOUNTING Sor tware
Hex Dump Interface
Print “Dump froa decimal
(a/zse) 9256 ‘70 Rand Usr base 75 Rem basewaddress of Hex
80 If Inkeys="" Then Goto 0 9@ If Code Inkeysei3 Then Gato 7 9S Rem 13eEnter on the 152068 Use 118 on the TS19@0 100 If Inkey$=*Z" Then Copy 118 Gote 6a
And now th use your addres:
lex Dump routine for the T5268. Remenber to in place of the som.
Store Equ HexDap-2
FDCBO2E4 HexDmp Rea @,(TVFlag) sthin bit tells the fom sroutine to print in the smain screen aren
Phranno Ld WL, (Store get address to begin dump 210 La Cian icounter~# of lines te dunp 7 OutrLp Ld AyH iget the high byte of the
iFirst address in this line sof the dusped bytes,
CDex ex Call HexPrt 390 print tt
70 sget. low byte of addre: CDavex 390 print it
3E28
Fs
07 sprint the space
FL iretrinve the character 7 iprint another space weae jcounter-# bytes/line 7 Trartp Ibyte te accumulator CDxxxx 390 print tt
3E28
7
23
ier & Djnz, Inorp
se@D La a;eon Jascit carriage return 7 Ret 10h 390 to start of next line eo Dec ¢ Jcount one line done and 20a Gronz,OutrLp sloop for 16 Lin
22ewxx Ld (Store) HL jstore start of next line
cy Done Ret. sreturn to basic FS exert seave it EGF
smask off high nybbie sand rotate to low nybble
igo print aigit in A
FL iretrieve it
sor Fmask Off low nybble
COmnnx 490 print digit in A
ce Sret to calling routine
rean Prine scheck 1f digit 1s greater sthan 9
a
Doxwne Call c,0Ffeet
cos Add A@,S0n
es Push Hi, daave registers
cs Push BC
D7 Rat 10h Rom print routs:
ct Pop BC srestore registers
et Pop HL
co Ret freturn te calling routine
607 Cffaet Add A,a7h jadjust digit te akip over Jascii characters between 49 and A
o Ret sreturn to calling routine
And for you TS1@@@ omners (1 still use mine!):
207840 HexDmp Ld HL, (Store?
cat) Ua cyien 7 OutrLp La aH ifirat address in thie line sof the dumped bytes coavaa Call HexPrt $90 print it +t td ay Hget low byte of adcress coavae Call HexPrt s90 print it
a Xor A
FS Push ar
07 Rat 1@h
FL Pop AF
D7 Rst 10h 2608 La By0an 7e Innrip Ld A, (HL? coasaa Call 'HexPrt ar Xor A
7 Rst 10
23 Tne HL ier7 DjnzyInnrip 3E76 Ld A, 76h 7 Rst ith
ep Dec ©
2062 Jr nz,Qutrip 227Baa La (Store) sr cy Done Ret
Fo HexPrt Push AF Eero And Feh
iF Rra
iF Rra
iF Fra
iF Rra
CDBASB Call Print Fa Pop AF Es0r And OFh cDBAsa Call Print co Ret
ceic Print Add @,ich es Push
cs Push BC
v7 Rst 105
cL Pop BC
Et Pop HL
co Ret
1 have to a obtained some good study aids. Sins
aubject of Z8@ MC have numerous tab An the MC diss
time I will give the hex cod: instead, provide the source code. another “lesson. See ya soon!
une that if you are still with ne,
duane as Ld A,oah ye the space character sprint the apace iretrieve the character sprint another space icounter-# bytes/line Ibyte to accumulator 390 print it sget space character Iprint the spa: sadvance byte pointer sloop for 8 bytes Sget carriage return char 390 to start of next Line
Scount one line done and Floop for 16 lines Jatore start of next line Ireturn to basic
seave byte gmask off high nybble irotate to low nybble
$90 print digit in A sretrieve byte
fmask low nybble
390 print it
ireturn to calling routine
@ a character 8 to F suave registers
sRoa print routii irestore registers
ireturn to calling routine
NUMBER MADNESS
by Zack Xavier Haquer
Here is a challenging game for those of you who are tired of shoot-em-ups and pac-persons. ‘The computer "thinks" of a four digit number, and your job is to guess (or rather, deduce) the number. Each time you guess, the computer gives you a clue which will tell you how many digits are correct and in the right place (A), correct but in the wrong place (B), or completely wrong (C), Note that the order of the letters in the clue DOES NOT necessarily correspond with the position of the digits!
You have the option of selecting five levels of play. At the hardest level, only your current guess is displayed, making it a challenge to memory as well as logic.
Ten "sets" constitute a game. The average number of guesses it takes is your score; the lower, the better. (A maximum of 15 guesses are allowed.) After a game, your name is entered into a "Hall of Fame", which can then be saved to tape (along with the program and other variables).
Being entirely in 2X BASIC, with no “tricks," this program can bi Ny converted to TS2068 or Spectrum. The changes are as
fol tows
11 Remove FAST and SLOW commands.
21 Replace reterenes to CHRS 118 to CHRS 13 (as in the IF INKEYS=CHR® 118 THEN... lines).
31 Replace dummy FOR-NEXT loops with PAUSE (the FOR-NEXT was used Instead of PAUSE to prevent the blink that results fron using PAUSE with the 2x81). For example, delete lines 300 and 305 and use 300 PAUSE 60 instead.
4t Modify the SAVE command at 2590 as desired. For example, you might want to user
2590 SAVE “scr* SCREENS: SAVE "guess" LINE 3000
To load the program and screen, use LOAD "scr* CODE: LOAD “guess*
St Add color, FLASH, sound (BEEP), and lower-case as desired.
99. 238 4 a8 722° og 5. ° : S> a
2 REM GUESS HY NUMBER
5 Siow 10 DIM 15 DIM 17 DIM 2O DIM 25 DIM cls 5@ LET 6@ LET 180 FoR To 21 110 PRINT AT 8,83" 126 NEXT A 130 FOR A=9 TO 12 148 PRINT AT A,25; 15@ NEXT A 150 FOR A=21 To 6 170 PRINT AT 12,A; 180 NEXT A 190 FOR A=11 BOO PRINT AT 210 NEXT A
B30 PRINT AT 240 NEXT_A
250 PRINT AT 260 FOR A=22 270 PRINT AT 280 NEXT _A
299 PRINT AT
292 RAND
DxC ONODOD
STEP 5
STEP -S
Birt ener
PRINT AT 3,5; INT "3AT 5,27; INT
45.3; INT (1@@@9¢RND) | FOR_A=.
TO 15 NEXT_A PRINT AT 21
PRINT _AT 20, ‘Ya - 5. $30 LET _AS$=INKEVS 340 IF Ag$>"B" AND AgS<"S" THEN G OTO 402 IF AS=CHR$ 116 THEN GOTO So
GOTO 350 cLs
(18030 +RND (20000ERND) ;
ELECT DIFFI
$
HELLO. PRINT AT 3,5)" ME?" ; AT 20,0;" 8 CHARACTERS,
430
440
450 90
460
470
480
430
500
505
510 7 Zea) 5" ES."
520 FOR A=1 TO 20 525 NEXT A
538. CLS
540 LET Jsv+a
55@ PRINT AT 2,20 550 LET E=INT (19000+RND+500¢ iL
THERE."
WHATS YOUR_NA (TYPE NAME, UP TO THEN ENTER.) “ INPUT Z$ (1) LET_A=8
IF Z$(1,A1 06>"
LET a=A-1. IF_NOT A THEN GOTO 400 GOTO 459
LET Z$(1,A+2) = cLs
LET L=@ PRINT “OK,
" THEN GOTO 4
HERE GO
40d) S70 999 THEN GOTO 500 530 =INT (S@0O#RND) 590 60a 610 TO 1 STEP -1 620 GOSUB 9003 630 NEXT B Bae PRET BE Sige “ORY -NUBRER Gh
640 LET L=L42 645 PRINT AT L+2,8;
PSs =) - $50 IF <4 AND J=i THEN PRINT A poe sane ail NUMBER, THEN ENTER 60 INPUT F 665 IF Fc=9999 THEN GOTO 680 678 PRINT AT L+2,8;"TOO HIGH,
685 PRINT AT L+2,8;" 690 IF L<4 AND U=1 THEN PRINT A T 21,0;"
71 PRINT AT L4+2,9;LjAT L42,13; "@O00";AT L+2,17-LEN STR$ FSF THEN GOTO 1200
=8 TO GOSUB 9003 NEXT _B FOR B=5 10 8 FOR C=i TO Te atG}=AtB) THEN GOTO 840 LET H=H+L LET C=4 NEXT ¢ NEXT 5. FOR B=5 TO 6
5S STEP
q ny
GOTO 520
soTo 300
THEN LET U=15
“0
IF U<i THEN GOTO 1020 PRINT AT U+2,19)" PRINT AT L+2,19; 05 O5 SLOU
@19 IF L<=14 THEN GOTO 54a 2020 PRINT AT 18,5;"YOU BLEW IT; “32H (1) 1@21 PRINT 1@22 PRINT TAB 5;°
2 THE NUMBER IS
1950 GOTO 1250
1050 GOTO 1040
1200 PRINT AT L+2,19;"ARAR"; 1201 SLOW
1202 FOR A=1 To 3
4203 FOR B=1 TO 5
1204 NEXT _B
1205 PRINT “H";
12@6 NEXT A
1207 PRINT “."
1310 PRINT AT 18,5; “CONGRATULATI ONS, “jZ$(1);AT 28,5; "4e2Y0U GUE SSED IT##*"
igse Let +L
1260 L
1270 PRINT "(PRESS ““ENTER"™ TO
CONTINUE. 5
1280 IF INKEY$=CHR$ 118 THEN GOT 0 1308
1290 GoTO 1280
ao
3308 THEN GOTO 2200 1310 "AVERAGE= °: (STRS (Ke woe" 1320 Booed 2010
2020 2025 2030 CORE 2035
2050 333" 2060
PRINT “) CTO 43
GOTO 542
cLs
PRINT AT 2,195"
END OF GAME.
CEP =k 20 PRINT TAB 3;"YGUR 10-GAHE S TE Klik Keo THEN PRINT “Lo LET A LET B
+t
2070 PRINT AT 5,
2Q80 PRINT AT 7; ais
2098 PRINT AT 8,
2100 PRINT AT 9
UG LUL #3"
2110 FOR A=19 TO_i5
2150 PRINT AT A,5;BS
2125 NEXT A 16,5; A8;AT 17, 5;A8
2130 PRINT AT
2130 LET x=1
2208 IF B(X}=0 THEN GOTO 2305 2205 IF_K>B(xX) THEN GOTO 2213 2207 GOTO 2240
2210 LET X=X41
22280 IF_X=6 THEN GOTO 2450
2238 GOTO 2200
2240 FOR A=5 TO X+1 STEP -2
2250 LET B(A}=B(A-1)
2255 LET C(A) =o (A-1)
2268 LET C# (Ai =CetA-1)
B265 NEXT A
B3Q5 LET CH{x) =Z$61)
2305 LET B=9 “2 2307 IF C§(X,B}=" “ THEN GOTO 23 10
3308 IF C$(X,B1="." THEN LET C$¢ %,Bv="
2309 GOTO 2315
2310 LET 6=B-1
2312 GOTO 2307
2315 LET B(x) =K
2316 LET C(xi=T
"EE ESEEES SERRE SE SESE
ee
Si As
5) SAS
5
pe NAME a
xO (TO BY “THEN GOTO
2320 IF BS(B)= 2921 GoTo 2926 B3g3. GoTo 2919 S PRINT “4##CONGRATULATIONS ++ ares $#e"
3388 5340 Goro 2s00 2499 LET U=0
PRINT AT 10,6
2500. S05 FOR A=1 To Ss PRINT AT 1048
2522
2505 2510
CHAD: $8,17;B(8) AT 10+8,22;018) 2520 NEXT A
AT 19
2530 IF W=1 THEN GOTO 2550 2549 GoTO 3010
20,4;
SIND BS65 POKE 16418,0 B567 PRINT "BYPASS - PRESS ""B"" 2570 IF INKEY$=CHR§$ 116 THEN GOT Oo 2590
31
o a 6
IF INKEVS
GOTO 2570 SAVE “GUESE 3000 PRINT AT 20,4;"
3010 PRINT AT 21,0;" “TO START NEW GAME.
3@15 POKE 16419,2
3@28 IF_INKEY§="P" THEN GOTO So
Sese GoTo 3020
4000 CLEAR
4010 SAVE "GUESH"
4020 RUN
5000 CLS
5010 PRINT TAB 10; “Haas”
5@20 PRINT
5@30 PRINT TAB 5S; “VE WILL PLAY 2
@ "ROUNDS" " OFA’ GAME IN WHICH I (THE COMPUTER) THINK OF @ 4-DIGI
T NUMBER AND YOU TRY TO GUESS
WHAT IT Is.
5050 PRINT TAB 5S; "EVERY TIME YOU GUESS, I WILLGIVE YOU _A CLUE WHI
CH UILL HELP YOU GUESS MY NUMBER
$@50 PRINT 5070 PRINT TAB 53"
2575 * THEN GOTO a
2530 25390
PRES
MY NUMBER IS" "7531"
5@S@ PRINT “AND YOU GUE “S51 4 THEN THE”
5e@9@ PRINT “CLUE WILL BE:", “ABBC
5031 PRINT 5893 PRINT “A- RIGHT DIGIT ,RIGHT
PLACE 15)" 5@94 PRINT “B- RIGHT DIGIT WRONG “O- URONG DIGIT
PLACE (1,3 S085 PRINT | 5108 PRINT 5110 PRINT “AVERAGE NUMBER OF TR TES = SCORE.” 5120 PRINT 5130 PRINT “(PRESS
O CONTINUE.)
514@ TF INKEY$=CHR$ 118 THEN GOT 0.5160
5158 GOTO 5140 5160 CLS
517@ PRINT TAB 5; booed
"ENTER" T
5190 PRINT TAB S:"YOU_HAVE THE 9
PTION OF FIVELEVELS OF DIFFICULT ¥ (1 - 5."
5200 PRINT
5210 PRINT “1 - EASY. YOU SEE AL L Your *"oLp CLUES."
5228 PRINT
523@ PRINT "2 - YOU_SEE CLUES FO R LAST FOUR GUESSES.
5249 PRINT 5258 PRINT "S -
YOU SEE CLUES FO R LAST THREE
GUESSES.”
5250 PRINT 5270 PRINT "4 - YOU SEE CLUES FO R LAST TWO GUESSES.
5280 PRINT 5298 PRINT "Ss - YOU SEE CLUE
S ONLY."
5300 GOTO 320 9808 LET C=INT (A/10) 9010 LET A(B) =A-Cei90 9030 3050 g100 9101 a1ap 9103 9104 9105 9196 9107 gieo 3109 3110 9111 9112 s115 gia 9115 9116 9117 aida 9121 gia2 9129 gipa 9125 9130 9131 9132 9133
MOST DIFFICULT. FOR PRESENT SUES
Still using only 16K of T$1000 RAM? Now he double or ti :
leash your com and unleash your computer
Zebra Systems has purchased a large lot. of new Memotech 16K and 32K RAMs directly from Engiand so that we could offer them at drastically reduced prices.
Memotech RAMs are the highest quality and best-selling expansion RAMs for Timex/Sinclair computers. They have sleek looking black extruded-aluminum cases that conform to the shape of your TS1000 or ZX81. These 16K and 32K RAMs feature feed-through connectors and circuitry that allows you to use them along with the 16K RAMs you already have, so that ie. can acheive respectively, 32K of 48K total system RAM capacity.
Each RAM comes with an easy to understand instruction manual explaining how to use the RAM to best advantage, and a 15-day money-back guarantee from Zebra Systems. Order yours now, while the supply lasts.
Acheive 48K with or Memotech 32K + your Timex 16K
Acheive 32K with Memotech 16K
+ your Timex 16K
CAT# R416 Memotech 16K RAM... $14.95
CAT# R432 Memotech 32K RAM ... $24.95 CAT#S116 Sinclair 16K RAM, TS1016 equivalent... $10.00 Include $3.00 S&H. VISA/MG accepted. NY residents add sales tax.
ZEBRA SYSTEMS, ING.
| 78-06 JAMAICA AVI WODDHAYEN, NY. 1424,
54545454545454+545+5+51+54+5+5+5
You've heard of PROFILE 2068, You nay have even heard of PROFILE +3! But we are willing to bet that you have never heard of:
PROFILE +5!
That’s rapt: PROFILE +5! A great new addition to the line of PROFILE updates. We have used all of the various versions of this program and can honestly say that this is ‘the ULTIMATE PROFILE!
+5 contains all of the features of PROFILE 2068 and +3 as
well as all of the new features of TOM WOODS’ PROFILE CARTRIDGE! Including the ‘NOT’ and ‘OR’ search routines. It also yeee ye print in 8@ columns! It still has the ‘NAHE REVERSAL’ print feature and the ‘EDIT A PHRASE’ menu option. You can now ‘MERGE’ files, ‘DATE’ files and make use of the-great machine code sort routine!
All of this is available in several ways, if you already ‘own one or wore versions of PROFILE, you will be able to
Save some oney on this version. the complete program on cassette available for:
ONLY $29 .95+2ph
(User Hanual available only fron TOM WOODS for $10.00) For sore information, please call or write:
AVAILABLE EXCLUSIVELY FROK:
RMG ENTERPRISES 1419 1/2 7TH STREET OREGON CITY, OR 97045 503/658-7404
3454545454545454+54545+54+54+5+5
8 9, 40, 0, I S a "a Say SPRING SALE
gE a Ye et Ka
oe ee ba
oT
G 3 Man?
@ROMSWITCH 2--Ieproved! (CMOS)
$39.95 Corrected 182868 ROM + Spectrum RON
@ 7152863 + ROMSWITCH 2 installed $189.08
@ Spectrum ROM $16.95
@ Spectrum ULA chip special design for correct display on US color TV/acnitor. RARE! $42.00
@ Timex 2848 Printer, new w.spacers $49.95 @OL ElectroCaD for Si2K,elect layout $29.95
SOL, 182868, 151088/1508/ZX81 hardware/software: selectronic parts, books/sagazines, liquidati
Send for free catalog. Free gift w. order. Send check MO MC/Visa¥ - $3. shipping on order 814-364-1525 (Usually answering sachine)
G. RUSSELL ELECTRONICS SiR RD 1» Box 539 * Centre Hall, PA 16828
ee eee
(Tt ttt LittLtititil | gd
ae sea LARKEN DISK DRIVES
NEW xkskok
~-—----——-_ LKDOS - EXTENDED BASIC CARTRIDGE --—---
~ Uses all standard (Token) keyboard cassette cousands
~ CAT MERGE ERASE FORMAT LOAD SAVE PRINT and more
~ Uses KO RAM space . HAS 8K ROM and 8K RAM on board
~ NMI Henory Save Feature :PUSH BUTTON seaory transfer
- Fully 2068 / Spectrum compatible / 0S~64 Compatible
- 10 Extended Basic Commands for Graphics, Utilities and up to 3 scrolling Windows on the screen in proportional rint (up to 100 characters wide)
- Supports 2 Flo, prs and soon to released 256K RAMDISK
~ Can be used wil either Larken Disk Interface
~ Available soon for RAMEX and other disk IF’s
NEW 2068/Spectrua Disk Interface
= Supports 1 or 2. - 3" 3.5" or 5.25" SS or DS drives
- Double Density 360k (double sided)
~ Snap-shot pushbutton on board
7X-81 TS1000 2068 Disk Controller
= Supports double sided 5.25" drive , 160K per disk
~ The Best DOS for the 2X-81
- Uses no ram :2K Ldos and 2K raa on board
~ Connects to Computer with Ribbon Cable
PRICES : (US) 0S EX-BAS Cartridge 460.00
WEW 2068 /Spec FD Interface $45.00
Add $5.00 2X-81 Disk Controller $99.00 SaH 256K Ram Disk (TBA)
2- Drive Floppy cable #8.00
% LARKEN ELECTRONICS RR#2 NAVAN ONTARIO CANADA KAB-1H9 €
QL Flight Simalator
Reviewed By Dennie Siivestrs
Another flight simulation for a Sinclair computer? What could this program do that the other flight sim— lation programs cannot do? These were questions I asked before receiving this program. Here are my answers.
The usual view of the instruments and out the cock- pit is provided in QL PLIGHT SIMULATOR. All the usual flight controls are present, using either a joystick or the keyboard. The simulation presented is the flying, landing, and taking off of a small single engine air-— craft. So far, there is not much difference between this and other programs like it. What makes this program completely different is in its graphic visual displays. There is actual scenery to view such as mountains, valleys, water, power lines, towers, buildings, and other objects. This scenery is shown in what is referred to as hi-res 3p “wire” (or line) graphics. This type of display defines only the outlines and/or contours of the objects they portray. There are also panoramic views out the cockpit. This type of view is relative to aircraft altitude and simulates the actual view you would see if you turned your head left, right, or looked behind you, as well as looking up or down. There are nine different scenic areas to choose from (referred to as worlds"), which make for some interesting flight simulation. Weather conditions can be set in any of the worlds, which affects wind direction and speed, as well as cloud cover. The weather conditions in each of the nine worlds can be set separate from one another, and can be called up at any time should one forget what they were. Weather readings are also automatically displayed when crossing the boundary from one world to another. An interesting feature occurs with the aircraft on the runway. Here,
one can taxi around...pulling up to various objects. There is also a fuel depot which is the only source for
\_ refueling the aircraft. A radar view is aleo provided.
This shows the aircrafts position ralative to the ground and any objects. This view is helpful if you are flying above cloud cover.
Since the keyboard is also used to control all
SINCLAIR QL
FLIGHT SIMULATOR
>— cage
~
functions not related to actual flying, the user should expect to spend considerable time in getting familiar with their functions. No less than 27 keys are used. OL FLIGHT SIMULATOR comes with very extensive documentation which includes maps of the nine worlds. These maps show all the objects and their heights. The maps are very useful, especially when flying between worlds. However, they are poorly printed, and could have been made larger for ease in reading. This program has a built in backup copy feature and uses sound as well as limited color. An
RGB monitor is advisable. Using a TV results in the lower lines being cut off from the screen. There are a number of flight simulation programs
available for the Sinclair line (including Spectrum, TS2068, TS1000). The OL FLIGHT SIMULATOR should be con- sidered a leader for programs of this type. As I end this review, I wonder. This program runs on the standard 128k QL. The computer is expandable to 640k. Upgrading this program to the QL RAM limits could result in a very powerful program. QL FLIGHT SIMULATOR should not be looked at as "just a game", but as the first step one could take if interested in learning how to fly.
The QL computer used to review this program was supplied by A+ Computer Response. QL. FLIGHT SIMULATOR is available from most Ql dealers.
QL Computer $189.00 512k RAM-Miracle $148.95 Internal 512k RAM $129.95 Memodisk (512k &Disk I/F) $269.95 Dual Quad-Density Disk Drives $259.95 Modapter Plus $ 49.95 Centronics I/F $ 32.95 Task Master $ 39.95
Front Page-Desk Top Publishing $ 29.95
Sharp’s, Inc. Rt. 10, Box 459 Mechanicsville, VA 23111 (804) 746-1664 or 730-9697
COMPARE OUR PRICES!
VISA & MASTERCARD ACCEPTED WITH 3% SURCHARGE. ALL PRICES INCLUDE SHIPPING. WRITE FOR OUR NEW 6th EDITION CATALOG.
Adventure Writing System $ 32.95 Tank Busters $ 24.95 Dragon Hold $ 24.95 Super Charge $ 69.95 Q-Liberator $ 89.95 Advanced User Guide $ 27.95 Microdrive Cartridges (setof 4) $ 8.95 Microdrive Cartridges w/o tab $ 6.95
(set of 4)
Wind Chill Chart
By Gale
The following QL program was inspired by an article written by Tom Beatty in the February issue of Computer Shopper. Only the original program's table format and wind chill factor equations are the same, the rest is a complete re-write in QL SuperBaASIC. I think the function I used to format the right-justified columns: should be of general interest to readers. The procedure "TABLE" outputs the chart to the screen (80 col. monitor) and "CHART" outputs to an Epson compatible, 80 col. printer.
200 FeMerk « xxvsxeunsareaeseasceensnneeaccevscadnssssaeseessarnes 110 Roterk taxes WIND CHILL CHART aeae 120 ReMerk teens 7. BEATTY araax 130 ReMerk axexe ears 140 Reerk «— sensuaasaarasaseneusesersessaxeaeseaasaseneesesizsssee 190 Reterk tenes ADAPTED FOR SINOLALR GL, aasex 160 Reterk oo rezex BY GALE HENSLEE aesex 170 Reterk sexes ATARILLO, TX aeeee 180 ReMerk teexe JANUARY, 1987 sere 190 PEMork —_ cannaresaxreszeenresesnterencusessuenesanganseaanereee 200 ReMerk MAIN PROGRAM
218 SeTIP
220 TALE
238 CHART
248 STOP
252 DEF ine PROCedre SETUP
268 WINDOM #1, 512, 256, 0, @: PAPER #1, 270 PRINT #1, “LOADING ARRAY — 200 DIM AUS, 14) :His*"wmmun” 299 PRINT #1, “CALCLLATING ROM: 368 FOR Ret TO 16 ®
310 PRINT #1,Rs" "5
820 V-2aRr2
338 FOR C=8 TO 13
340 Te-5aC+40
352 AR, C+1) = (CO, 45+ (6 GUG1124SORTW))-C 4470412) /22. 6342 T-O1. 4))491. 4 368 NEXT C
370 NEXT R
380 PRINT #1,” DONE”
382 PRINT #1:PRINT #1, “NOW PRINTING CHART — — 402 EXO DeFine SETI
410 DEF ine PROCedure TABLE
420 Fe.
430 AT ©, 32:PRINT #F, “WIND CHILL CHART”
ING #1, 4:08 #1 PRINT #1
440 AT 3, 9:PRINT #f, "DIRECTIONS: (1) FIND TEMPERATE ACROSS TOP ROW CID” 458 AT 4, S:PRINT #F,*
un
462 AT 8, 8:PRINT #F,
In”
470 AT 7,O:PRINT wry” 480 @D = 0
(@ FINO WIND VELOCITY (PH) DOAN LEFT COL (@ INTERSECT ROW AND COL FOR WIND CHILL ¢
518 FOR K=0 10 13
820 TEPX> ~Skra0.
832 AT 7, TABCTEYPX) :PRINT #F, TEXPX;
540 NEXT K
550 ODL = 5.
560 TEPIx = 10
570 FOR Rel TO 16,
580 WINK = 2=R+2
50 AT 74R 3+ QUINDK CLO) <PRINT HF, WINER:
620 FOR C=1 TO 14
610 IF AG,C)< @ AWD AGC) > -1.5 THEN GO TO 630
620 TEP = INTAR, 0+. 5):60 TO 640
630 TEPX =O
BAO AT 74R, TARCEMPS) :PRINT HF, TEER:
650 NEXT C
60 api = 5
670 TEPIX = 10
689 NXT R
690 END CEFine TARLE
"RA UEF ine Function TAB CTEMP)
TAO CLD = ODI + 3 = CIEFPK.D="10) + 4 = CCTEPX 9-0) AND CENPX < 1) + 3_* (CEPR > “10) AND CIEFPK CO) +2 CEPR GID
720 CLDL = OLD + 2 ~ (CIEIP% < 10) MO CEFPX >= ©) + CEPK < -10) 730 TEVPAX = TOPX,
749 FETun OLD
788 BO fF ine
782 UEF ine PRODedure L
7? MANDO #1, 512, 208, 0, 0:08 #1:A8 #0
780 LIST #1
780 END DEFine L
800 DEF ine PROCedLre CHART
B10 F¥5
820 CPEN #5, SERL
830 FRINT wf, TO 92; "WIND CULL G¥RT“;ORSGO
649 PRINT #F, TO 9; "DIRECTIONS: (2) FIND TEYPERATURE ACROSS TOP ROW C;CHRS( 248) iF)” 850 PRINT #F, TO 9; w
(@) FIND WIND VELOCITY OF+D DOAN LEFT COLUM
34
Henslee
WIND CHILL CHART
DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (°F) (2) FIND WIND VELOCITY (MPH) DOWN LEFT COLUMN (3) INTERSECT ROW AND COL FOR WIND CHILL CFD
18
980 PRINT #F, CHRE (10)
60 ODL = §
978 TOPIX = 10
‘980 FOR R=1 TO 16
900 WIND = 2=R+2
1000 PRINT #F, TO 3+ QWINDX (10) sWINDK: 1010 FOR C1 TO 14
1020 IF AG.C)< @ AND AGLC) > -1.5 THEN GO To 1040 1030 TEPX = INT@R,C)+. 5) :G0 TO 1050 1040 THPX = @
1058 PRINT #F, TO TABCENP ;TEFPX: 1060 NEXT C
1079 OD1 = 5
1080 TEP1x = 10
1090 PRINT ¥#€, CHRS.C3)
1100 NXT R
1110 FOR PLINE = 1 Toa
1120 PRINT #F, CRE.C13)
1130 NEXT PLINE
1140 CLOSE #5,
1150 END DéFine CHART
(QLQ@LGLQLGLGLQGLGLQALGALGL@LALaLaL
READ ANY GOOD QL BOOKS LATELY?
HOW ABOUT A USERS GUIDE FOR ARCHIVE THAT’S COMPLETE AND WRITTEN IN PLAIN ENGLISH FOR A CHANGE!
HERE IT IS! JUST FOR YOU!
ARCHIVE MASTER
Our new book will shipping out shortly after the ist of arch, 1987. We don’t think that there is anything about ARCHIVE that we have forgotten to cover. We way have missed sone swall detail, but we can’t find it!
My book covers fl cones a (ues A FUNCTIONS in detail! yt through each of these and then go on to show you how Yo create the “PERFECT FILE’. After that we show you how to ad NEW FIELDS vo an existing file. The next step is to show you, IN DETAIL, the SEDIT or SCREEN EDIT function. Have you ever turned off your QL without Closing 3 ile and tried to open it again only to get ‘CANNOT FILE’? If so, we have included a fix for she corrupted file, THIS * 3 IS WORTH THE rT oe that: we even give e Listangs for all of our business, Softaare! ALL of this at a price of ONE PROGRAM! Y $44 .95+$3ph Over 200 8 vent pages in aay 3 ring binder ANOTHER SUPERB EXECUTIVE WORKSHOP PRODUCT FOR YOUR QL! AVAILABLE EXCLUSIVELY ou RMG ENTERPRISES 1419 1/2 7TH STREET OREGON CITY, OR 97045 503/655-7484
IAL @LQ@LG@LQL@LGL@LGLGLAL@LaLaLaL
Trouble-shooting the QL
I've now seen a total of six QL's: two assembled at the factory and four kits. I have to say that quality control leaves much to be desired, a situation I hope ill improve. This information is intended to provide \delp for new or prospective owners, to get started with alittle less trouble than I had when a defective computer is received. The two defective parts I've ex- perienced were keyboard leads (1 of 6) and Microdrives (2 of 12). All were replaced under warranty.
The Microdrives can cause you a lot of misery if you plug in your new QL computer and follow the in- structions in the User Manual. It tells you to “make at least one backup on a blank cartridge" before you use any QL program. This is good advice, EXCEPT, if one of your new, untested Microdrives is defective, you may destroy the original copy of the program. This happened to me with my first QL, and it took three exchanges of the PSION programs before I (and the dealer) realized that it was the Microdrives causing the problem. You see, Microdrive One worked fine, but Microdrive Two did not. A new tape would load and run fine in MDV1, so I would follow the manual and put a new cartridge in MDV1 and the original cartridge in MDV2 (following the User Manual) and enter LRUN MDV2_CLONE. The new cartridge would format and as soon as MDV2 started verifying the first file copied, the damage was done. The ominous message "At line_bad or changed medium" would appear and copying would stop. This was hard to believe, since the program had just been loaded and run to make sure it was ok. Soy try it in drive 1 again, right? Wrong! the tape was not readable. Ok, call the dealer and explain what happened...they'll say the QL must be ok because it loaded and ran the tape once and everything looked
good...so send the tape back for replacement and try it again. Same results. Alright, so how do you avoid getting into this
situation? It's really easy, you just assume that sone- \ thing will go wrong and go through the following test procedure before trying a tape with anything important on it. If the test is successful, your Microdrives are both in the 10 out of 12 group that are good. 1, Reset the QL and press Fl or F2, as appropriate. 2. Put a blank cartridge in drive 1. 3. Format it with "format mdvl_testl".
By Gale Hensle
4, Enter "dir mdvl_" and you should get a message like: testl 220/221 sectors 5. Weite a short program and save it to mévl. Lrun
the program. If it works you can feel confident that mdvl is a good drive.
Repeat the above steps 2 through 5 When you are sure both drives are then proceed to make backup copies of your programs. You will