Skip to main content

Full text of "Syntax Magazine"

See other formats


SYNTAX 


Serving Timex-Sinclair 
Personal Computers 


A PUBLICATION OF THE HARVARD GROUP 


VOL.5 NO .1 


ISSN 0273-2696 


JAN.. 1984 


IN THIS ISSUE 


8K Programs 

Biorhythms.9 

Kaleidoscope.19 

Not Entirely Clear.9 

Pi.18 

Renumber.14 

Reuseable Loops.6 

Classified Ads.22 

Dear Editor.12 

Games.9,19 

Hardware Review 
UM-64 Memory Module....4 

ROMPAK ROM Card.5 

Hardware Specifications 
2068 Connector Pinouts.8 
2068 Port Assignments.22 

Machine Code.14,19 

Math.18 

New Products and 

Services.3 

News 


Sinclair Announces QL..1 
New Timex Peripherals..4 
Program Improvements 


ROM Calls.2 

Cassette Labeler.2 

Software Hint 

RAND and AutoRUN.7 

Software Review 

Timeblasters.6 

Mazeball.6 

Syntax Errors.2 

Users' Groups.2 

Utilities.6,14 

Vendor Report.2 


Index of Advertisers 
Byte Back Co.17 


SINCLAIR ANNOUNCES QL; PLANS US MKT RE-ENTRY 

Sinclair Research, Ltd announced in London a 
new machine—the Sinclair QL—using the 68008 
processor running at 7.5 MHz. Late February 
should see initial shipments in the UK, with 
production building to 20,000/mo by summer. 
Introductory price in the UK is $599, but the 
US price will likely be $499 when the machine 
arrives here, perhaps by fall of 84. Specs 
call for a word-processing quality, 65-key 
keyboard with 5 keys for functions & 4 cursor 
control keys. With a monitor, you'll get 85 
char, by 25 lines, but only 40-60 characters 
with TV display. Display outputs to both BW 
RGB monitors and PAL UHF TV characterize the 
UK version. Standard memory of 128K with two 
improved microdrives (100K each) plus bundled 
software from Psion for word-processing, data 
base, spreadsheet & graphics make a powerful 
machine. Although the QDOS operating system 
& Sinclair SuperBASIC set the machine apart, 
the multiple-window feature and export/import 
of files between programs place this design 
well ahead of similarly priced machines. Up 
to 6 more microdrives & a Sinclair Local Area 
Network can attach to this processor. Other 
features include 32K ROM with provision for 
64K ROM cartridges & 4-color high-resolution 
(512x256) screen or 8-colors at 256x256 dots, 
2 RS-232C serial ports and a realtime clock. 

Sinclair SuperBASIC is fully procedure- 
structured and extendable. Execution speed 
does not depend on program size. 

Thorn-EMI produces the QL. Sinclair 
plans to distribute in the US by mail-order. 

SYNTAX expects this machine to be in 
short supply since it competes functionally 
with machines currently selling at 2-3 times 
its projected price. Sinclair interfaces for 
parallel printers, Winchester disks, & IEEE- 
488, as well as 500K memories, will follow. 

In other news, Micro-Prolog (a training 
AI language) is available for the Spectrum. 

See page 4 for more ZX/TS news from CES. 


i 


























SYNTAX ERRORS: Change First- 
loader's translation table to 32 at 
44125 and 14 at 44126. Some Upload 
tapes from E-Z Key share the error. 
This doesn't affect translations, & 
both programs run correctly. Use a 
Winky Board II to load ZX/TS tapes. 

Connector diagrams in this 
issue supercede information 
published in SYNTAX Dec.83 pi. 

PROGRAM IMPROVEMENTS 

To see more ROM calls in Marty 
Iron's program translated for the 
2068, you must change lines 100 and 
210 to use 14446 instead of 7679. 
Expect run time of about 1 hour. 

Cassette Labeler needs changes 
in lines 27 0 and 370 if you want to 
use full 30-character lines on a 
2068 version. Insert PRINT AT 18,0 
in both locations. 

John Slattery, Chatham Township, NJ 

VENDOR REPORT 

SYNTAX expects to get its act 
together by March 84. 

Larry Weigel of Synergistic 
Designs can be reached by telephone 
through 312/252-6356. Larry says 
the company expects to move to a 
new location in the Chicago area by 
the end of the first quarter. 

E. Arthur Brown does not have 
thermal labels in stock, nor does 
any other vendor known to SYNTAX. 

ECC publications professed no 
knowledge of any problem with issue 
7 of Timex-Sinclair User on 5 Jan 
1984. SYNTAX has not received its 
subscription copy, and we have no 
report from the UK parent company. 
If you wish to complain, your bank 
or credit card company and your 
postmaster should assist you. Or 
you may write to Mr. Richard Hease, 
Chairman, ECC Publications, 196-200 
Balls Pond, London, UK Nl 4AQ. 

Although the New York Attorney 
General sends form letters claiming 
inability to locate any assets, you 


should file complaints about FROG. 
SYNTAX believes the FROG case could 
be serious—it's crucial to build a 
substantial file in Albany. Call 
518/474-5481 for complaint forms. 

ZXLR8 orders will be filled by 
G. Russell—Electronics. Send new 
orders to RD 1 Bx 539, Centre Hall, 
PA 16828 ($11 ppd). Advanced 
Interface Designs no longer sells 
this high-speed load-save program. 

We have two more complaints 
about non-delivery from KOPAK. The 
complainants have neither product 
nor refund. KOPAK informs us they 
will ship EZ-LOADER starting Feb.8. 

ZX/TS USERS' GROUPS 


To check for a local group that's 
not listed, or to announce a new 
group, call 617/456-3661 or write 
SYNTAX, RD 2 Box 457, Bolton Rd., 
Harvard, MA 01451. Send SASE for 
name of group in your area. 

Dayton, OH: T/S Research Computer 
Club, Steve Douglas, 1515 Canfield 
Ave., Dayton, 45406, 513/278-8163. 

Long Island, NY: L.I. Sinclair 
Timex Group, Paul Donnelly, 10 Idle 
Day Dr., Centerport, NY 11721. 

Send phone number or SASE. 

Roanoke, VA: Roanoke-Franklin 
County Timex-Sinclair Area User's 
Group meets the first Monday of 
every month, Salvation Army Hqtrs, 
7th St. and Dale Ave., 7-SK pm. 
Contact Gary Preston, 703/576-2390, 
or Capt. Jim Worthy, 703/343-5335. 

Franklin County, VA: Sinclair 
Local User Group has changed its 
name to the Southern Virginia Timex 
User's Network. Their newsletter, 
SLUG, now goes by the name of TUG¬ 
LINES. Contact Gary Preston, Rt 1 
Box 21, Glade Hill, VA 24092. 

Mexico: ZX/TS Users Group of 

Mexico. Contact Miki Kronish, 

Apdo. Postal 5-450, Guadalajara, 
Jalisco, MEXICO. 


2 



NEW PRODUCTS AND SERVICES 


Prentice-Hall publishes two new 
books for the ZX/TS: TIMEX/Sinclair 
Interfacing; Tested Interfacing 
Projects for the ZX80, ZX81. and 
Timex/Sinclair 1000 (includes 
instructions for building a relay 
controller, A-D and D-A converter, 
joystick interface, printer 
interface, memory, etc., including 
pin-outs and specs for chips used) 
for $10.95 paperback/$17.95 
clothbound, by James Downey and Don 
Rindsberg; 30 Games for the 
Timex/Sinclair Computer 
(simulation, fortune telling, 
graphics) for $4.95 paperback/$9.95 
clothbound, by William Behrendt. 
Available from Prentice-Hall, 
Englewood Cliffs, NJ 07632, 
201/592-2640. 

G. Russell Electronics announces 
four new products; The SRS Speech 
Recognition System includes an 
amplifier and software on cassette 
for recognizing up to eight spoken 
words. For TS2068 and 16K ZX/TS at 
$34.95 assembled, $29.95 kit. 
COMPCOOLER allows you computer to 
run cooler by reducing the voltage 
at the 9VDC jack. $7.95 for ZX/TS 
(except TS1500). KEY cassette 
program provides UNLOCK to LIST and 
SAVE normally unlistable programs, 
PROTECT to shift programs above 
RAMTOP, MERGE to combine programs, 
and BYTES REMAINING to give RAM 
available. $10.00 for 16K ZX/TS. 
WINKY 2000 makes loading TS2068 
tapes easier and lets you copy any 
program you can LOAD. Includes 
monitor jack and LED (avail. Mar. 
84). G. Russell Electronics, RD 1 
Box 539, Centre Hall, PA 16828. 

DO-CALC consists of six linked 
routines; Calculator© Factorial, 
Accounting/Statistics, Running 
Balance, Tranform/Regression, and 
Compound Interest. Written 
in BASIC for 16K ZX/TS. $16 ppd. 
from B.V. Gerber, 3707 Downey Dale 
Dr., Randallstown, MD 21133. 


Banta Software offers three new 
packages for the 2068. SCREEN- 
SOLV, an electronic worksheet for 
engineers and scientists, capable 
of solving algebraic or 
trigonometric equations and 
definite integrals, allows up to 48 
user defined variables and six 96 
element arrays, incorporation of 
final formulae into BASIC programs, 
and 288 step SCREEN-SOLV programs. 
Results can be tabulated or 
plotted. Available March 84 for 
around $35. SCREEN-CALC, a 
Visicalc-like spreadsheet program, 
allows up to 1008 cells containing 
an 8 letter label and a number. 

All standard TS BASIC functions may 
be entered into cells. Other 
features include sums, averages, 
conditionals, loops, and menu- 
driven operation, all for $19.95. 
FOOTBALL, a colorful, challenging 
strategy game, offers both 
offensive and defensive plays for 
one or two players. $14.00, from 
Banta Software, 8088 Highwood Way, 
Orangevale, CA 95662, 916/722-4895. 

Robotec Inc. introduces RAMPAGER, a 
machine code monitor for 16K ZX/TS 
machines. Allows entry of bytes in 
hexidecimal, inserts bytes (bumping 
all other bytes up), displays and 
prints memory in decimal, hex, and 
characters. It is NOT an assembler 
or disassembler, but it is written 
entirely in machine code and loads 
in under 75 seconds. $9.95 + $1.25 
P&H from Robotec Inc., 59 C St., 
Ampoint Ind. Park, Perrysburg, OH 
43551, 419/666-2410. 

Color Graphics deals with practical 
applications of high resolution 
graphics on the TS2068. Includes 
techniques for 3-D drawing, maps, 
geometric figures, pie, bar, and 
line charts, characters and shapes, 
and moving objects on the screen. 
Contains 45 tested program listings 
with notes. By Nick Hampshire, 
$12.95 paperback from Hayden Book 
Co., 10 Mulholland Dr., Hasbrouck 
Heights, NJ 07604, 201/393-6306. 


3 


TIMEX SHOWS NEW PERIPHERALS 

Model Description Avail Price 

TS2050 Modem Now $120 

TS2060 Interface 2Q 84 $110 

TS2080 80 Col. Printer IQ 84 $325 

TS2065 Microdrive 2Q 84 $65 

Timex displayed these products 
at the 1984 Consumer Electronics 
Show in Las Vegas. Prices and 
availability are approximate. 

Timex's new TS2050 Modem works 
with all Timex-Sinclair computers 
and includes menu driven software 
on cassette. It features direct 
modular connection, auto-dial, and 
auto-answer. An optional command 
cartridge for the 2068 dials up to 
14 numbers and contains automatic 
logon procedures. 

For expanding the capabilities 
of the 2068, the TS2060 Interface 
provides buffered bus expansion, 
RS232-C serial and Centronics 
parallel ports, a port for an extra 
32K RAM. RGB color monitor output 
with audio, a networking facility 
for up to 64 TS2068s, and a port 
for up to 8 microdrives. 

Plugging into the Centronics 
port of the interface, the TS2080 
printer provides 80 columns of dot 
matrix output, including all the 
characters in the TS2068, in normal 
or italicized format. It looks 
like a full sized computer printer, 
and has a price to match. 

The most exciting item shown, 
the TS2065 Microdrive, reads and 
writes tiny tape cartridges about 
the size of a thin book of matches. 
Each cartridge contains 20 feet of 
tape in a continuous loop and can 
store 80 to 100K bytes of data. 
During formatting, the drive looks 
for faulty portions of the tape and 
locks them out; thus the storage 
figure is expressed as a range. A 
perfect tape holds 100K. The tape 
runs at 30 ips, so the entire loop 
passes in 8 seconds. This 
translates to a transfer rate of 
102,400 baud on a perfect tape. 

The Microdrive system supports both 
program and data files using 


standard TS2068 commands such as 
CAT, ERASE, FORMAT, OPEN, etc. The 
CAT(alog) command reads the entire 
tape; there is no single directory 
area on the tape. The Microdrives 
are powered from the computer. 

Timex imports them from Sinclair 
while gearing up their facilities. 

Sinclair Research demonstrated 
their flat-screen black and white 
pocket television, with automatic 
television standard selection, 
focus, horizontal and vertical 
hold, brightness and contrast. It 
measures 5.5x3.5x1.25 inches, 
weighs 12 oz., and costs $100. 
Slated availability: Mid 1984. 

Cedric Bastiaans, Los Angeles CA 

HARDWARE REVIEW 

Product: UM-64 Memory Module 

Machines: ZX/TS (not TS2068) 

From: Byte-Back Co. 

Rt. 3 Box 147 Brodie Rd. 
Leesville, SC 29070 
803/532-5812 

Price: $119.95 Assembled 

$109.95 Kit 
+$4.95 P&H 

Using bigger memories creates 
opportunities for greater losses in 
a crash. Byte-Back's battery-back- 
up scheme cuts this risk. You'll 
also get the possibility to have 
your operating system in RAM (all 
but the characters), compatibility 
with the TS1500, switch-selectable 
banks in the 8-16K area, an EPROM 
socket you can switch-select into 
8-16K, and reasonable documentation 
from a company that maintains an 
evening help line. 

When power fails, 6 alkaline 
batteries (AA size) keep power on 
your system for up to 30 minutes. 
These backup batteries supply 9V to 
the entire system, including other 
peripherals. Don't run high-drain 
items—like a ZX printer—from the 
backup system. Also, if you're 
going to SAVE to tape, you'll need 
a battery-powered tape recorder. 






You'll need fresh batteries to 
get protection with this circuit 
because the regulator will drop out 
at 1.22V per cell. Most cells are 
rated at end-point voltages of 1.1V 
or less—you can expect about 1/3 
rated life in this circuit. The 
batteries only operate when power 
fails, so the calendar time can be 
quite long. SYNTAX recommends 
testing the backup feature 
regularly, with non-crucial data. 

If you need longer backup 
times, you can change to a larger 
battery holder, mounted externally, 
or modify the circuit to use a re¬ 
chargeable pack similar to the ones 
described in SYNTAX (Aug.82 p.5). 

Don't use the Reset function 
during battery operation. Doing so 
would wipe out all memory—not just 
16-32K. When you lose power, this 
backup runs your whole system. 

With your UM-64, you get MC & 
instructions to move your operating 
system into the RAM, where you can 
modify the code as you wish. Our 
simple test modified the graphic 
character codes to make both the 1 
& 2 keys print the 1-key graphic— 
not sophisticated, but enough to 
see that we really operated from 
RAM. Changing the character set 
code in the RAM will not suffice to 
change the characters, though. The 
part of your ZX/TS that reads these 
codes is isolated electronically 
from the edge-connector where the 
UM-64 attaches. One use is to 
change printer USR calls to use 
LLIST, LPRINT and COPY. 

Byte-Back's UM-64 will work on 
your TS1500, as well as on the 
other ZX/TS machines. Of course it 
doesn't work on Spectrums or 2068s. 

SYNTAX could not get the UM- 
64, TS1500 and MW-100 printer to 
function together. By telephone, 
Jerry Minchey informed us that this 
is a timing problem for which Byte- 
Back provides a fix incorporated in 
later production models than we 
tested. This fix also allows you 
to LOAD 32K BASIC programs directly 
and Jerry will provide it at no 


charge to people who need it. 

In a nice touch, this memory 
provides two sets of switches to 
control the 8-16K block. Four of 
these disable 2K blocks of internal 
RAM; four control the address of 
the built-in PROM socket. If your 
system uses one set configuration, 
you won't mind having to open the 
case to set the switches. SYNTAX 
constantly reconfigures systems and 
suggests that you may want to cut a 
slot in the case. 

Documentation includes a parts 
list, schematic, component layout, 
and clear directions for use. You 
also get a clearly stated warranty, 
a real address, and a phone number. 

Construction of this unit uses 
generally good practice. You will 
find one piggy-backed IC, a diode, 
a resistor, and a 3-inch wire that 
provide a ROM CS function. Also, 
the battery leads can extend out of 
the case for your convenience. None 
of these are, by themselves, bad— 
but all can cause you trouble in a 
place with lots of vibration. For 
most uses, expect no trouble. We 
like the gold, bifurcated contacts 
on the connector. 

HARDWARE REVIEW 

Product: ROMPAK ROM Card 

Machines: ZX/TS Machines (not 2068) 
From: Rompak, 8206 Blackburn 

Ave., Los Angeles, CA 
90048, 213/653-9741 
Price: $16.95 Assem., with ZIF 

$9.95 Kit, without ZIF 
+$2.00 P&H 

ROMPAK permits you to use many 
programs instantly—cartridges in 
the rough. An adaptor plugs onto 
your ZX/TS and provides a socket to 
contain the program ROM. A simple 
machine code routine in the ROM 
moves the program into RAM in under 
a second, and you're ready to go. 

You can buy the assembled type 
with ZIF (Zero Insertion Force) 
socket, or the kit with regular 
socket (ZIF socket separately 


5 


$4.95). Both versions include an 
extender to connect other 
peripherals. Rompak recommends the 
ZIF socket and SYNTAX advises using 
the regular socket only for ROMs 
you will never change. 

This product reads 2764 or 
2732 EPROMs in the unused 8-16K 
block of ZX/TS memory. The newest 
version has a jumper for 2716s. 

One page of instructions give 
all the necessary cautions. Every 
word on this sheet is important— 
read before destroying (your ROM, 
computer, adaptor, or all three). 

Components and design of this 
product show good judgement. Our 
assembled version is well-built, 
and uses a bifurcated, gold-contact 
connector that fits very tightly. 
Tin-plated extender pins allow you 
to connect other peripherals. The 
double-sided glass circuit board is 
cleanly laid out and well-marked. 

Changing ROMs with the Rompak 
attached to your computer will test 
your dexterity, as the bottom of 
the ROM socket lies too near the 
top of the computer—hold the ROM 
by the ends. Also, the "1" 
referred to in step 4 of the 
instructions is at the top right of 
the ROM socket. There's also one 
below and to the left, so watch it. 

SYNTAX tested two EPROMS 
available for this product, one no 
longer available. The other 
contains Dan Tandberg's programs 
Timeblasters & Mazeball. Both 
require 16K of RAM. 

Timeblasters is an arcade game 
with moving graphics. Your space 
ship travels to the right (we must 
be the good guys) and fires at 
enemies moving leftward. Actually, 
the background moves by you. Your 
moves are up, down and fire. But 
as you miss, time speeds up. With 
6 levels of play, you can spend a 
lot of time getting good at it. 

Mazeball extends the classic 
pong game by bouncing the ball 
through one of seven mazes. All 
you gotta do is keep the ball 
bouncing—HA! 


REUSABLE LOOPS—8K/1K 

You can shorten and clarify 
some of your programs by using one 
loop and several flag variables to 
perform related operations. For a 
sample, let's take a utility that 
creates, modifies, moves, checks, & 
prints a ten-byte MC routine. 

You could write separate loops 
for each operation. But, since we 
always need 10 steps, one FOR-NEXT 
sequence (100 & 190) will do. Once 
inside the loop, we do some things 
on every pass, so we put them first 
at lines 102-107. Next we test the 
flag variable, K$, to see which of 
the choices we want to execute this 
time. If we cannot complete the 
task in one statement, we use a 
GOSUB to a lower line number. When 
we finish, we send the program back 
to our elementary menu to choose 
the next step. 

This sample program also 
includes several methods to save 
memory. Single-letter variable 
names, a space variable (S$), and 
tokens in the menu cut the memory 
required for this program. You can 
cut more by substituting variables 
for numbers, then assigning values 
to the variables in command mode. 

Before you enter this program, 
set RAMTOP to 17376 (16514+862) on 
your ZX/TS. This value corresponds 
to RAMTOP for Syntactic Sum in IK. 
You can now load ten bytes into the 
REM statement and manipulate them. 
Using the POKE option, you over¬ 
write 10 bytes of Syntactic Sum. 

When you enter this program, 
use only keywords following the 
colon in line 2. When you operate 
the program, just touch the key 
that controls the keyword—0 for 
POKE—and the program responds. 

One feature needed here, but 
not implemented, is a test of K$ 
for keys not on the menu. If you 
push an unflagged key, the program 
doggedly traverses the loop ten 
times, doing nothing, then returns 
the menu message. SYNTAX would 
love to see a memory-efficient way 


6 



to test for "none of the above" in 
an arbitrary menu. 

INPUT lets you enter decimal 
code that will transform the REM 
statement to a short machine-code 
routine. You see the address, put 
in the code, see the code next to 
the address, and proceed. Enter 0 
to create a NOP, or 201 to for a 
return, in spaces you don't use. 

LPRINT lists the byte number, 
REM address, code in REM, MC 
address above RAMTOP, and content 
of that address to your printer. 

PRINT generates the same 
display on your monitor or TV. 

POKE takes the bytes from the 
REM statement and inserts them 862 
bytes higher, above the RAMTOP you 
set prior to loading the program. 

STOP lets you break out of the 
program to perform other operations 
of your choice. 

To alter the BASIC program for 
Spectrum or 2068 operation, locate 
the beginning address of program 
space, add 5 and substitute the 
result for the constant 16514. 

PEEK 2 3635+256*PEEK 2 3636 gives the 
address for your 2068 or Spectrum. 
Set RAMTOP where you want, then 
change the constant 862 to reflect 
the difference in REM and RAMTOP 
addresses. 

Spectrum and 2068 users gain 
nothing by storing machine code in 
REM statements; these machines let 
you SAVE machine code. But these 
instructions will let you try this 
reusable loop example. 

You can expand this program to 
handle up to 32 bytes by expanding 
the REM statement and changing the 
upper value of I in line 100. Do 
not make those changes until the 
short version works. This program 
is slow and will annoy you during 
testing if you also make it long. 

Expanding the concept, you can 
use several flag variables and more 
complex tests to make user-friendly 
routines with one master loop, but 
many functions. Arrange the tests 
(IF statements) so the most likely 
choice is tested first. 



RAND AND AUTORUN 


RAND will not work properly on 
ZX/TS machines if the program RUNS 
automatically when LOADed. Type in 
this program and SAVE via GOTO 40: 


i_ k_- r\ n i '4 l- - 



Now LOAD "RANDOM" and watch the 
numbers on the screen. LOAD again 
and you will see the same sequence! 
RAND works by counting the frames 
displayed between the time the 
program started running and the 
execution of RAND. When RUN 
automatically, this number is 
always the same. Using 50 GOTO 10 
instead of RUN yields the same 
result. To solve this problem, add 
a PAUSE before RAND, so your 
program looks like this: 


r~: T~i T iv iT 
£=. xJ T- r*. -L I I 



Harold Miller, Ph.D., Clayton GA 
7 















TS2068 CONNECTOR PINOUTS 

This information, from TIMEX 
Technical Memo #6, is supplied by 
TIMEX for publication by SYNTAX. 

Boldface indicates active low 
or inverted signals (normally 
indicated via an overline). The 
letter B appended to the end of a 
signal name indicates the TS2068 
buffers the signal. 

REAR EDGE CARD CONNECTOR 

Solder Side Component Side 


Sig GND 

IB 

1A 

Sig .GND 

SPK/TAPE 2B 

2 A 

EAR 

+15V 

3B 

3A 

A7RB 

+5V 

4B 

4A 

D7 

Unused 

5B 

5A 

DZIN 

Slot 

6B 

6A 

Slot 

POW GND 

7B 

7A 

D0 

POW GND 

8B 

8A 

D1 

0 

9B 

9A 

D2 

A0 

10B 

10A 

D6 

A1 

11B 

HA 

D5 

A2 

12B 

12A 

D3 

A3 

13B 

13A 

D4 

A15B 

14B 

14A 

INT 

A14B 

15B 

15A 

NMI 

A13B 

16B 

16A 

HALT 

A12 

17B 

17A 

_ MREOB 

All 

18B 

18A 

IOROB 

A10 

19B 

19A 

RDB 

A9 

2 0B 

2 0A 

WRB 

A8 \ 

21B 

21A 

BUSAK 

A7 

22B 

22A 

WAIT 

A6 

2 3B 

2 3A 

BUSRO 

A5 

24B 

24A 

RESET 

A4 

25B 

25A 

Ml 

DZOUT 

2$B 

2 6A 

RFSHB 

R 

27B 

27A 

EXROM 

G 

28B 

2 8A 

ROSCS 

B 

29B 

2 9A 

BE 

BUSISO 

3 0B 

30A 

IOA5 

VIDEO 

31B 

31A 

SOUND 

Sig GND 

32B 

32A 

Sig GND 


Pins 4-26 comprise the ZX/TS 
compatible pins. Use a 64 pin 0.1" 
dual readout edge card connector to 
mate with this card edge. Case 
clearance: 0.20" (top), 0.25" 
(bottom), and 0.15" (sides). 


ROS (a/k/a DOCK, TCC) CONNECTOR 
Solder Component 


_A14B 

1 

2 

+5V 

A12 

3 

4 

A13B 

.00 

5 

6 

D7 

D1 

7 

8 

A0 

D2 

9 

10 

Al 

D6 

11 

12 

A2 

D5 

13 

14 

A3 

D3 

15 

16 

A15B 

D4 

17 

18 

MREOB 

IOROB 

19 

20 

A7RB 

RDB 

21 

22 

Ml 

WRB 

23 

24 

.A8 

A7 

25 

26 

A9 

A6 

27 

28 

Al 0 

A5 

29 

30 

All 

A4 

31 

32 

RFSHB 

BE 

33 

34 

EXROM 

ROSCS 

35 

_3£_ 

GND 


ROS stands for ROM Oriented 
Software; TCC stands for Timex 
Command Cartridge. Use a 36 finger 
0.1" double sided edge card with a 
slot between pins 4 and 6 to mate 
with this connector. Cartridge bay 
dimensions: 2.25" (width at 
bottom), 2.55" (width at top), 

0.45" (height), and 3.35" (depth, 
including edge card fingers). 


JOYSTICK CONNECTOR 


/ 

/ 

/ 5 
9 

4 

8 

3 

7 

2 

6 

\ 1 

\ 

\_ 


Pin STICK Signal Meaning 

1 1 DIR1 Up 

2 2 DIR2 Down 

3 4 DIR3 Left 

4 8 DIR4 Right 

5 Unused 

6 1 BUTTON Button Input 

7 +5V +5V DC Power 

8 RDSTB Read Strobe 

9 Unused 

(See pp 173-5, 2068 Manual) 


Use a female 9-pin D connector 
(DB9S, Atari Standard) to mate with 
this. The value STICK returns 
appears above. STICK reads through 
the 8912 sound chip I/O port. The 
actual bit value for the button on 
this port is 128. 


8 





SIGNAL NAMES AND MEANINGS 


BIORHYTHMS—8K/16K 


Symbol 

Meanina 

Signal GND 

Logic Ground Ref 

Power GND 

Power Supply Ground 

+15V 

+15V DC Power 

+5V 

+5V DC Power 

SPKR/TAPE OUT 

Tape MIC jack signal 

EAR 

Tape EAR jack signal 

R 

Red Color (TTL) 

G 

Green Color (TTL) 

B 

Blue Color (TTL) 

VIDEO 

Composite Video 

0 

System clock 

A0-A12 

Address Lines 0-12 

A13B-A15B 

Address Lines 13-15 

A7RB 

Refresh Addr bit 7 

D0-7 

Data Lines 0-7 

BUSISO 

Bus Isolate 

DZIN 

Daisy Chain In 

DZOUT 

Daisy Chain Out 

INT 

Interrupt Request 

NMI 

Non-maskable Intrpt 

HALT 

CPU Halt Output 

MREQB 

Memory Request 

IORQB 

Input/Output Request 

RDB 

Read 

WRB 

Write 

BUSAK 

Bus Acknowledge 

WAIT 

CPU Wait Output 

BUSRQ 

Bus Request 

RESET 

CPU Reset Input 

Ml 

CPU Ml State Output 

RFSHB 

Refresh 

EXROM 

Extension ROM Enable 

ROSCS 

ROS Chip Select 

BE 

Bank Enable 

I0A5 

8912 I/O Port bit 5 

SOUND 

8912 Sound Output 


BUSISO tristates all buffered 
signals (those ending in B). IOA5 
is the 8912 I/O port bit not used 
by the joystick circuitry. RGB 
color signals do not include sync 
(sync must be stripped off VIDEO). 

NOT ENTIRELY CLEAR—8K/1K 

Enter this line by hitting 1, 
CLEAR, cursor back, REM, NOT, /. 
Execute via RAND USR 16514. 


Dan Tandberg, Albuquerque NM 


I wrote this program as a 
result of a great disappointment I 
experienced after purchasing a 
Biorhythms program from one of the 
prominent software companies. The 
program did not print an accurate 
set of curves, and did not print a 
mathematically correct result. 

I developed a printing routine 
first, which works on a PLOT, 

PRINT, UNPLOT basis, allowing a 
sine plot made of letters. The 
positive half of the curve usually 
prints first, then the rest of the 
curve in reverse (negative STEP). 

Biorhythms computes time (T) in 
days and divides it by each cycle 
length to get the number of cycles 
since birth. It decides where to 
print each curve by converting the 
fraction of each cycle remaining to 
X PLOT coordinates (J) relative to 
the date line. The date line 
displays 2 pixels offset (column 
16) to make it read accurately. 

With 15 days on each side of 
the graph date, the completed chart 
represents a 31-day time spread. 
Relevant information appears at the 
top and bottom of the display, for 
a permanent record if you COPY. 

Each date displays after 
INPUT. After you enter a name, 
Biorhythms goes into fast mode, 
usually making the time and offset 
computations in under 3.5 seconds. 
The graph printing, taking about a 
minute and a half, is rather 
interesting to watch (you wonder 
where the next curve will hit). 

After typing the program, SAVE 
it with GOTO 1000. It will run as 
soon as SAVEing completes and after 
LOADing. Prompts are adequate, but 
if the program stops a simple "GOTO 
150" will bring it right back. 

Important variables: 

T = Time in days 

W = Number of cycles since birth 
J = Sets start pt of sin print 
L = Sets start pt of back print 


9 



Lines 5-45.Intro display 

Lines 145-275 .... Prompts and Input 
Lines 297-360....Graph Print + Info 
Lines 370-600....Sin Print P,E,I 
Lines 610-710....More prompts and 

terminate display 
Lines 820-885 ....Time Computation 
Lines 890-986....X-Axis Offset 

Computations 

This program uses up about 
6.2K of RAM. I have an enhanced 
version with more user-friendliness 
and error-trapping features that 
also prints out a compatibility 
factor between two persons when 
given the birth dates of each, 
within a 10% range for each curve. 
It uses a little more than 15K of 
RAM and includes a brief 
explanation of biorhythm theory. 

I will furnish the extended 
15K version by mail to anyone for 
$10.00 post paid. 

Doug McRoy 
5 Pfister St 
Laurel, MD 20707 





lO 



























































DEAR EDITOR: 


For a TS2068 version of Dave 
Wood's HIGH LINE NUMBERS (SYNTAX 
Dec.83 p4) you need only add two 
PEEKS which locate the line number 
bytes in memory. Line numbers 
store as high byte followed by low, 
reversed compared to most other 16- 
bit quantities. 

On your TS2068, enter as line 
1 the line which will be last in 
the listing (highest line number). 
Then use this direct command: 

LET a=PEEK 23635+PEEK 23636*256: 
POKE a, (hi byte): POKE a+l,(lo byte) 
Write down decimal values of POKEd 
lines (high byte*256+low byte); any 
line numbered higher than 16383 
(63*256+255) won't show on-screen. 

To add more high-number lines, 
enter the next highest line in the 
listing as line 1. As long as RUN 
or CLEAR have not been used after 
defining a in memory, use the 
direct command: 

POKE a, (hi byte):POKE a+l,(lo byte) 
The highest possible line number is 
32767 (hi byte=127 & lo byte=255). 

Only lines numbered less than 

16383 will function with a normal 
RUN command, GO TO, or GO SUB. 

Lines numbered from 16384 to 32767 
will function only by a direct RUN 
or GO TO and then execute only the 
statement contained in that line— 
useful only as a curiosity or to 
store listings off-screen. When 
lines numbered 1-9999 are pushed 
off-screen by a line numbered from 

16384 to 32767, and a GO TO is then 
made to the high-numbered line, it 
will be processed along with the 
normal lines which follow it in the 
listing order. 

To EDIT the last line entered, 
if it doesn't show on-screen, enter 
the direct command POKE a,l. Lines 
10,000 to 16383 may be brought down 
with EDIT, re-numbered to less than 
10,000, revised, and POKEd back to 
a high number. You can calculate 
the location of line number bytes 
after the first line in a listing, 
but otherwise the only way to EDIT 


a line POKEd above 9999 is to 
delete all preceding lines in the 
listing, both on- and off-screen. 

For locating start of 2nd line: 

1 LET a=PEEK 23635+PEEK 23636*256 

2 PRINT "Demo" 

3 FOR n=a TO a+1000 

4 IF PEEK n=l3 THEN LET a=n+l: 

GO TO 10 

5 NEXT n 

10 POKE a,10 
20 LIST 

In comment on the "New image" 
Timex now has for their 1-800- 
24-TIMEX customer support service, 
in contrast to the rather vague 
responses most of us received in 
the past, they very helpfully 
provided me with a schematic, I/O 
map, and pin-out as well as an 
approximate availability date on 
the forthcoming TS2 000 Advanced 
Programming Concepts Manual . I 
greatly appreciate this kind of 
support and, judging from the 
amount of time it took me to get a 
free line on the TIMEX number, I am 
sure there are many others. 

Robert Hartung, Palmyra, NY 

SYNTAX (Aug.82 pl9) describes the 
illegal line number 3E00H (15872) 
as the marker for the top of the 
GOSUB stack in ZX/TS machines. The 
Spectrum uses the same marker, but 
we don't know about the 2068.—KO 


MAINTAINING THE ZX81 

Calling 1-800-24-TIMEX seems 
an exercise in futility. After 4 
days of 20-30 calls per day, I gave 
up. Only twice did I get a ring. 

On these two occasions the nice 
recorded voice told me "everyone is 
busy, please be patient, someone 
will soon help you." In about ten 
seconds, the line disconnected. 

I was trying to call about a 
replacement ULA chip for my TS1000, 
out of warranty, modified circuit 


12 


board system. I guess I zapped it 
with body electrostatic charge, 
although it broke out while typing 
in a program. 

Testing the system using an 
oscilloscope I found no clocked 
signals associated with ROMCS and 
RAMCS (6.5 Mhz clock was OK). 

Since contacting TIMEX was a 
total failure, I then spent about 
$30.00 on phone calls, eventually 
locating a TS1000. Believe me, the 
inventory of TS1000 computers in 
the US is very close to zero. If 
Syntax readers want to obtain a 
"spare" for their upgraded ZX/TS 
systems, I advise them to act now. 
Sunset Electronics (415/665-8330), 
still has a few at $29.95 as of 
this writing. Some twenty other 
suppliers I called have none and 
cannot get more. For $29.95 plus 
shipping I can get a spare set of 
ULA and ROM chips for my future 
needs. I suspect a spare ULA chip 
would, itself, cost up to $20.00, 
if one could be found. 

US replacements for British 
transistors: Sylvania ECG-123AP 
replaces ZTX-313; ECG-391 replaces 
ZTX-750 and ZTX-752. Almost any 
"signal diode," such as 1N34A, will 
replace any diode on the board. 

The crystal located in the circuit 
between pin 35 of the ULA chip and 
pin 26 of the Z80 CPU, can be 
replaced with an ordinary JAN 6.5 
MHz crystal (smallest metal can 
crystal with axial leads). All 
other parts on the circuit board, 
except the ULA and ROM chips, may 
be purchased off the shelf. 

Bill Jones, Panama City, FL 

Use 1N914 or 1N4148 diodes for the 
higher forward drop of Silicon.—KO 


I think your readers would 
appreciate the answers to the 
following questions: 

1) Why does the Timex 2 04 0 
printer emit heat from its top vent 
even though I have pressed the 


"OFF" button and haven't used the 
printer in days? 

2) The new Timex 2068 computer 
only seems to have 38K available 
for programming (16K "BASIC" and 
22K "VARS"); why? 

3) What peripherals can be 
used safely with the Timex 1500 
computer? (e.g. when I plugged in 
my 16K Sinclair Rampak the computer 
went blank and I had to send it 
back to the supplier. I hear there 
are problems if you use a Memopak 
64K and other hardware not 
manufactured by Timex). 

Wm. McConaghey, Pembroke Pines, FL 

TS2040 printers emit heat when off 
because the switch doesn't turn off 
the 24V printhead power. 

Most computers use some RAM to 
perform functions that permit your 
programs to operate. Sharon Aker 
reports that the Commodore 64 also 
allows only 38911 bytes for users 
compared with 38652 in the TS2068. 
Page 254 of the user's manual shows 
how a 2 068 uses memory. I know of 
no 16K BASIC limit in 2068's, but 
SYNTAX has discussed it at length 
for ZX/TS operation, including ways 
to get around it. (Sep.82 pl3; SQ 
Summer 83 p47 & Nov.83 pl2) 

TS1500 computers will operate 
with any accessory that doesn't use 
RAMCS to disable the internal RAM. 
On 1500's, RAMRM moves the internal 
RAM to 32-48K and leaves it active. 
Sinclair RAMpaks do work, and Byte- 
Back memories and modules operate 
(SYNTAX Nov.83 pl4). We hear that 
some 15 00's would not drive Timex 
printers, and the 2040 printer will 
destroy the data-line timing. See 
SYNTAX Nov.83 p2 for details of the 
fix for 2040-generated problems—KO 


PLEASE: Check SYNTAX back issues 
before you write. We can't reply 
to individual technical letters or 
republish data. We must devote our 
resources to new problems. Phone 
617/456-3661 or buy a Works. 


13 



RENUMBER— 8K/16K 

Utility programs for 
renumbering the lines of BASIC 
programs facilitate merging with 
other programs, spreading out line 
numbers to make room for additional 
lines, and neatening up finished 
programs. Changing line numbers is 
easy, but a useful renumbering 
utility must also fix the 
destination line numbers in GOTOs 
and GOSUBs, a more difficult task. 
This program does the job, although 
slowly since it is written almost 
entirely in BASIC. 

If you have a program merging 
utility, RENUMBER can be appended 
to, and used to renumber, any BASIC 
program of less than about 12,000 
bytes (provided its line numbers 
initially extend no farther than 
9722). Even without a merge 
utility, RENUMBER can still be 
useful. LOAD it first, then key in 
your main program as you develop 
it. 

Note the partial Syntactic 
Sums given at several points in the 
listing. When typing in RENUMBER, 
get a Syntactic Sum at each of 
these checkpoints and correct any 
mistakes before proceeding. This 
will reduce the number of lines you 
need to search to find your error. 
Since this is a self-starting 
program, the final Syntactic Sum 
reflects the program after it has 
been SAVEd and then LOADed from 
cassette. 

After typing in RENUMBER, SAVE 
it to cassette with the command 
GOTO 9976. Whenever LOADed it will 
self-start and execute Lines 9978 
to 9994, storing two machine 
language subroutines into high 
memory. You must set RAMTOP to 
address 32512 or lower, and NEW to 
reinitialize the machine stack 
prior to loading RENUMBER. The 
machine code loads at addresses 
32512 to 32542. It is relocatable, 
but this requires appropriate 
changes in Lines 9890, 9892, 9904, 
9982, 9990, and 9996. 


RENUMBER ignores any GOTO or 
GOSUB whose destination line number 
does not begin with a digit. With 
this exception, RENUMBER correctly 
handles the renumbering of all (or 
any part of) a BASIC program. 

You must specify what part of 
the target program is to be 
renumbered, the new starting line 
number, and the desired increment 
between line numbers. If only a 
portion of the target program is 
renumbered the user must be very 
careful in selecting the new 
starting number and the increment. 
The line numbers that result from 
renumbering must be consistent with 
(i.e., in correct numerical order) 
the rest of the program, otherwise 
the resulting program may crash. 
Note that entering 0 in response to 
the first prompt renumbers the 
entire program. 

RENUMBER starts by searching 
the entire program, line by line, 
(main search routine starts at line 
9826) looking for IF, GOTO, or 
GOSUB statements. When an IF 
statement is found, the rest of 
that statement is scanned to see 
whether it contains a GOTO or 
GOSUB. If so, the program jumps to 
the GOTO/GOSUB processing routine 
at Line 9848. Otherwise it jumps 
back to the main search routine. 
Line 9842 avoids misinterpreting 
bytes within floating point numbers 
as GOTO or GOSUB tokens, ignoring 5 
bytes following code 126. 

The core of the prpgram begins 
at line 9848, the GOTO/GOSUB 
processing routine. After the 
token for GOTO or GOSUB Sinclair 
BASIC puts the codes for the 
decimal digits of the destination 
line number, then a "number" token 
(code 126), then five bytes holding 
the number in floating-point binary 
form, then a newline character 
(code 118). Lines 9848 to 9860 put 
the characters following GOTO or 
GOSUB into D$ if it is a number, 
but if the first destination 
character is non-numeric it jumps 
back to the main search routine. 


14 



Lines 9862 to 9874 determine 
whether or not the number in D$ is 
a bona-fide line number within the 
part of the program being 
renumbered. If not, RENUMBER jumps 
back to the main search routine, 
without making any changes. 
Otherwise, it determines what 
position that line occupies in the 
section of the program being 
renumbered and puts that position 
number into variable DC. The new 
line number will be the position 
number times the step size plus the 
new starting line number. 

Both the old line number and 
the new line number may have 
anywhere from one to four digits (1 
to 9722). If the new number is 
shorter than the old, lines 9886 
and 9888 put enough leading zeroes 
in front of the new number to make 
it the same length as the old. But 
when the new number is longer than 
the old, RENUMBER makes room for it 
in the program line by moving the 
rest of the target program 
(including all of RENUMBER itself) 
upward in memory by one, two, or 
three bytes. There is a suitable 
"make room" routine already 
available in the system ROM, at 
address 2459. It moves the memory 
block starting at the address 
pointed to by register pair HL and 
ending at the end of the program, 
one byte up, adjusting the system 
variables accordingly. 

Lines 9890 and 9892 POKE into 
memory locations 32512 and 32513 
the address to load into HL. The 
FOR...NEXT loop beginning at line 
9894 makes one or more USR calls to 
the machine code routine at address 
32514, which in turn loads the 
stored address into register pair 
HL and calls the ROM routine to 
"make room". This loop also 
adjusts the length bytes of the 
newly expanded program line. 

The "make room" routine moves 
the bytes of the BASIC line that 
called it, resulting in the return 
address being off by one byte and, 
normally, a crash. BASIC can 


easily be tricked into returning to 
the correct address: Line 9902 
gets the address of Line 9904 from 
system variable NXTLIN and POKES 
the length of line 9904 so it is 
one byte too high (15 instead of 
14). After the "make room" routine 
executes, it returns to the 
location 15 bytes after line 9904. 
Line 9904 is 14 bytes long, plus 
the one byte it has been moved by 
the "make room" routine, so the USR 
routine returns to the correct 
address. Immediately after each 
USR call the phony length of 15 is 
corrected to the proper figure of 
14 by Line 9906. This line gets 
the address of line 9908 from 
system variable NXTLIN and looks 
backward 77 bytes (the total length 
of Line 9906 plus part of Line 
9904) to the address of the low 
length byte of line 9904. 

Lines 9910 to 9914 POKE the 
codes for the decimal digits of the 
new line number into the program 
line. Then Line 9918 gets the 
address of program variable ND from 
system variable VARS. Variable ND, 
originally defined in line 9738, 
contains the value of the new line 
number in floating-point form, so 
Lines 9920 to 9924 simply copy 
those five bytes into the program 
line, over-writing the original 
number. This process repeats for 
each line in the program containing 
GOTO or GOSUB. Finally, lines 9940 
to 9950 renumber the lines within 
the range initially specified. 

You can erase RENUMBER 
completely with these two commands: 

GOTO 9996 ENTER 

9724 ENTER 

Line 9996 invokes the machine 
code routine at address 32521, 
which calculates the total length 
of RENUMBER and POKES that number 
minus 4 into the length bytes of 
line 9724. Thus when you delete 
line 9724 the entire RENUMBER 
program goes with it, leaving your 
finished main program intact. 

C. C. Stalder, Orlando FL 


15 






I 










16 
















































































































ADDR 

7F00 

00005 

00006 

DFILE 

40 OC 

00003 

00016 

ERASE 

7F09 

00010 


MAKER 

7F0 2 

00006 





In Stock! ALL NEW MD-2 

SMA * T MODEM $119.” 

ASSEMBLED & TESTED $149.95 

• Send Text from Memory 

• Send and receive Programs by Phi 

• Copy Information into memory i 
Print it. Review it. Save it on Tapei 

• Use Timex 2040 Printer or RS-232 ^ 

• RS-232 Printer Port provided 

• No extra memory Required. 

COMPUSERVE PACKAGE WITH5'FREE HOUI^^iY$3995 

64-K MEMORY $109’ 5 k.t 

the “ULTIMATE MEMORY” $119. 95 ASSEMBLED 
FEATURES: 

• Battery Backup • PROM/ROM socket 

• Reset Switch • BYTE-BACK EXCLUSIVE FULL 64-K 

WHY PAY MORE FOR LESS FEATURES? 

GET THE “ULTIMATE MEMORY” 8 YTRSACI^S UM-64 

KEYBOARD.$59. 95 

GORILLA/BANANA PRINTER.$239.” 

NEW ZX PRO/FILE Including shipping 
Clearly the Best File Management Program Available. 
RS-232 PRINTER INTERFACE Only $59.* KIT$69. M ASSEMBLED 
CONTROL MODULE 8 Relays,8 Inputs, $59.” KIT $69. w ASSEMBLED 
16K MEMORY UM16 $59.» 5 KIT$69.» 5 ASSEMBLED & TESTED 
Battery Backup, reset switch, PROM/ROM socket PLUS . . . 

1 year, 100% Trade-in credit towards the UM-64. 


BYTE BACK CO. 

Rt. 3, Box 147, Brodls Road 
Leesville, S.C. 29070 
ORDER PHONE 803-532-5812 
Add $4.95 shipping and handling 
90 Day Warranty On All Modules. 10—Day Return Prlviledge 


400C 


00001 

00002 

00003 

DFILE 

7F00 

7F00 

0000 

00004 

00005 

ADDR 

7F0 2 

2A007F 

00006 

MAKER 

7F05 

CD9B09 

00007 


7F0 8 

C9 

00008 


7F09 

21FC25 

00009 
0001 0 

ERASE 

7F0C 

CDD809 

0001 1 


7F0F 

23 

0001 2 


7F1 0 

23 

0001 3 


7F1 1 

23 

0001 4 


7F1 2 

EB 

00015 


7F1 3 

2A0C40 

00016 


7F1 6 

A7 

0001 7 


7F1 7 

ED52 

0001 8 


7F19 

EB 

00019 


7F1A 

IB 

00020 


7F1B 

72 

00021 


7F1C 

2B 

00022 


7F1D 

73 

00023 


7F1E 

C9 

00024 



; RENUMBER MACHINE CODE 


EQU 

1 6396 

ORG 

32512 

DEFW 

0 

LD 

HL,(ADDR) 

CALL 

RET 

2459 

LD 

HL,9724 

CALL 

2520 

INC 

HL 

INC 

HL 

INC 

HL 

EX 

DE , HL 

LD 

HL , (DFILE) 

AND 

A 

SBC 

HL ,DE 

EX 

DE , HL 

DEC 

DE 

LD 

(HL) , D 

DEC 

HL 

LD 

RET 

(HL) , E 


;ADDRESS POKED IN BASIC 
; GET ADDRESS IN HL 
;CALL "MAKE ROOM" 

; BACK TO BASIC 

; FIRST LINE # IN RENUM 
; LOOK UP ADDRESS 
; POINT HL TO HIGH 
; TEXT LENGTH BYTE 
;OF LINE 9 724 
; SAVE HL IN DE 
;HL=ADDRESS OF DFILE 
; CLEAR CARRY FLAG 
; HL=# PROG BYTES MINUS 3 
; RECOVER LEN PTR IN HL 
; DE=# PROG BYTES MINUS 4 
;CHANGE HI BYTE LEN 9 724 

;CHANGE LOW BYTE LEN 9 724 
; BACK TO BASIC 


17 





























































PI—8K/16K 

This program can calculate PI 
to over 8000 decimal places— but 
don't hold your breath. It takes 
over 12 hours for 512 digits! The 
algorithm uses base 100 arithmetic, 
storing each digit in one byte of a 
character string (codes 0-99). It 
is based on the Taylor series for 
the arctangent. 

First PI prints out 8 digits, 
then it starts all over again and 
does 16, then 32 , 64 , etc. If you 
don't have a printer, change all 
the LPRINTs to PRINTS and add a 
STOP at line 6095. Go on to the 
next calculation with CONT. 

Since the program allocates 
12K of RAM for the accumulators 
A$ (1), A $(2), and A$(3), CLEAR 
before SAVEing to avoid storing 
lots of variable space to tape. 

Blanchard D. Smith 
Alexandria VA 




For the TS2068, translate with 
FIRSTLOADER (SYNTAX, Dec. 83), then 
delete lines 60 and 70, add 55, and 
replace 180: 



18 



















KALEIDOSCOPE—8K/16K 

I resorted to machine code in 
an effort to write a fast program 
to display a kaleidoscope pattern 
on the ZX/TS screen. The resulting 
images may be viewed on the screen 
and printed out at will. 

In order to get random numbers 
for the plot locations in machine 
code, I used the FRAMES system 
variable (locations 16436 and 
16437) to set a pointer into the 
ROM. The program reads bytes out 
of the ROM and increments the 
pointer for each random number. If 
the pointer goes too high, it is 
reset to 0. This method shows no 
visible signs of repetition. 

To enter KALEIDOSCOPE, type in 
listing 1. Put 145 spaces after 
the message in line 1, and no space 
between "KALEIDOSCOPE" and "PRESS". 
Line 20 contains 32 spaces. RUN 
the program and enter the numbers 
in table 1. For each number, the 
display will show an address and 
wait for you to enter the contents. 
After you enter a number it will 
appear on the screen. If correct, 
hit ENTER, otherwise press any 
letter key and reenter the number. 
After entering all 144 numbers, the 
Syntactic Sum should be 29651. 

Now delete lines 10-100 by 
entering each line number. Type in 
lines 10-50 as shown in listing 2. 

Be sure you are in SLOW mode, 
then set your cassette to record 
and RUN. The program SAVEs 
automatically and RUNs when LOADed. 
When done SAVEing, the title will 
appear on the screen for a few 
seconds, and then the screen will 
begin flashing somewhat random 
patterns. Press any key and the 
main part of the program will 
begin. To print a copy of the 
screen, hit any key. You can save 
a picture on tape by changing line 
30 to SAVE "KALEIDOSCOPE". The 
program stops if you press BREAK. 

[This program can generate 
three-dimensional effects if you 
print out the screen twice with a 


small time for the pattern to 
change in between. Hold the output 
sideways and cross your eyes until 
the two patterns merge; some points 
appear to recede into the paper and 


some appear 

to 

jump 

out, 

i 

Ed.] 


Scott 

H. McGur 

r in. 

Macedon NY 

42 

12 

64 

1 

2 08 

0 

9 

2 35 

33 

130 

64 

1 

12 

0 

2 37 

176 

2 35 

1 

25 

1 

9 

2 35 

1 

22 

0 

237 

176 

17 

0 

200 

27 

122 

179 

32 

251 

237 

87 

60 

237 

71 

2 05 

187 

2 

36 

40 

245 

62 

30 

2 37 

71 

2 05 

42 

10 

2 05 

187 

2 

36 

32 

250 

42 

52 

64 

203 

180 

203 

188 

70 

35 

2 03 

176 

2 03 

184 

62 

43 

184 

56 

245 

78 

35 

203 

177 

2 03 

185 

126 

35 

203 

71 

32 

3 

175 

24 

2 

62 

128 

245 

2 05 

41 

65 

62 

43 

144 

71 

241 

245 

2 05 

41 

65 

62 

63 

145 

79 

241 

245 

2 05 

41 

65 

62 

43 

144 

71 

241 

2 05 

41 

65 

229 

2 05 

187 

2 

36 

225 

40 

186 

2 01 

197 

229 

50 

48 

64 

2 05 

178 

11 

225 

193 

2 01 


Table 1. Numbers to POKE 



19 





















































00001 

;KALEIDOSCOPE MACHINE 

CODE 



00002 




400C 


00003 DFILE 

EQU 

16396 


4034 


00004 FRAMES 

EQU 

16436 

• 

4082 


00005 

ORG 

16514 


4082 

2A0C40 

00006 PRINT 

LD 

HL, (DFILE) 


4085 

01DD 00 

00007 

LD 

BC,208 


4088 

09 

00008 

ADD 

HL, BC 


4089 

EB 

00009 

EX 

DE , HL 


408A 

218240 

0001 0 

LD 

HL,16514 

;PRINT MESSAGE ON SCREEN 

408D 

010C00 

0001 1 

LD 

BC, 1 2 


4090 

EDBO 

00012 

LDIR 



4092 

EB 

0001 3 

EX 

DE ,HL 


4093 

011901 

0001 4 

LD 

BC,281 


4096 

09 

00015 

ADD 

HL, BC 


4097 

EB 

00016 

EX 

DE , HL 


4098 

011600 

0001 7 

LD 

BC , 2 2 


409B 

EDBO 

0001 8 

LDIR 



409D 

1 100C8 

00019 PAUSE 

LD 

DE,51200 

;TIMING LOOP 

40A0 

IB 

00020 PLOOP 

DEC 

DE 


40A1 

7A 

00021 

LD 

A ,D 


40A2 

B3 

00022 

OR 

E 


40A3 

2 OFB 

00023 

JR 

NZ,PLOOP 


40A5 

ED57 

00024 DISP 

LD 

A,I 

;DISPLAY SCRAMBLING 

40A7 

3C 

00025 

INC 

A 

;ROUTINE 

40A8 

ED 4 7 

00026 

LD 

I,A 


40AA 

CDBB02 

00027 

CALL 

699 

;KEY PRESS? 

40 AD 

24 

00028 

INC 

H 


4 OAE 

28F5 

"00029 

JR 

Z,DISP 


40B0 

3E1E 

00030 FIX 

LD 

A, 30 

;RETURN TO NORMAL 

40B2 

ED47 

00031 

LD 

I,A 

; DISPLAY 

40B4 

CD2A0A 

00032 

CALL 

2602 

; CLS 

40B7 

CDBB02 

00033 WAIT 

CALL 

699 

;WAIT UNTIL NO KEY 

4 0BA 

24 

00034 

INC 

H 


40BB 

2 OFA 

00035 

JR 

NZ,WAIT 


40BD 

2A3440 

00036 

LD 

HL,(FRAMES) 

;POINTER INTO ROM 

40C0 

CBB4 

00037 RESET 

RES 

6 , H 

;TRIM OFF EXCESS BITS 

40C2 

CBBC 

00038 

RES 

7,H 


40C4 

46 

00039 VALS 

LD 

B, (HL) 

;RANDOM Y VALUE 

40C5 

23 

00040 

INC 

HL 

t 

40C6 

CBBO 

00041 

RES 

6 , B 

i 

40C8 

CBB8 

00042 

RES 

7,B 


4 OCA 

3E2B 

00043 

LD 

A,43 


40CC 

B8 

00044 

CP 

B 


40CD 

38F5 

00045 

JR 

C,VALS 

;GO BACK IF TOO HIGH 

40CF 

4E 

00046 

LD 

C, (HL) 

;RANDOM X VALUE 

40D0 

23 

00047 

INC 

HL 


4 GDI 

CBB1 

00048 

RES 

6 , C 


40D3 

CBB9 

00049 

RES 

7,C 


40D5 

7E 

00050 

LD 

A,(HL) 


40D6 

23 

00051 

INC 

HL 


40D7 

CB47 

00052 

BIT 

0 , A 


40D9 

2003 

00053 

JR 

NZ ,UNPLOT 


4 ODB 

AF 

00054 

XOR 

A 

;0 FOR PLOT, 

40DC 

1 802 

00055 

JR 

DOPLOT 

;12 8 FOR UNPLOT 


20 



40DE 

3E80 

00056 UNPLOT 

LD 

A, 128 


40E0 

F5 

00057 DOPLOT 

PUSH 

AF 

;SAVE AF 

40E1 

CD0741 

00058 PLOT1 

CALL 

PLOT 

;PLOT THE POINT 

40E4 

3E2B 

00059 

LD 

A,43 

;GET SECOND POINT 

40E6 

90 

00060 

SUB 

B 


40E7 

47 

00061 

LD 

B, A 


40E8 

FI 

00062 

POP 

AF 


40E9 

F5 

00063 

PUSH 

AF 


40EA 

CD0741 

00064 PLOT2 

CALL 

PLOT 

;PLOT THE POINT 

40ED 

3E3F 

00065 

LD 

A, 63 

;GET THIRD POINT 

4 OEF 

91 

00066 

SUB 

C 


40F0 

4F 

00067 

LD 

C, A 


40F1 

F5 

00068 

PUSH 

AF 


40F2 

F1 

00069 

POP 

AF 


40F3 

CD0741 

00070 PLOT3 

CALL 

PLOT 

;PLOT THE POINT 

40F6 

3E2B 

00071 

LD 

A, 4 3 

;GET FOURTH POINT 

40F 8 

90 

00072 

SUB 

B 


40F9 

47 

00073 

LD 

B,A 


40 FA 

FI 

00074 

POP 

AF 


4 OFB 

CD0741 

00075 PLOT4 

CALL 

PLOT 

;PLOT THE POINT 

40FE 

E5 

00076 COPY 

PUSH 

HL 


40FF 

CDBB02 

00077 

CALL 

699 

;KEY PRESS? 

4102 

24 

00078 

INC 

H 


4103 

El 

00079 

POP 

HL 


4104 

2 8 BA 

00080 

JR 

Z,RESET 

;LOOP IF NOT 

4106 

C9 

00081 

RET 


;OTHERWISE RETURN 

4107 

C5 

00082 PLOT 

PUSH 

BC 

;SUBROUTINE TO PLOT 

4108 

E5 

00083 

PUSH 

HL 


4109 

323040 

00084 

LD 

( 16432) ,A 

;PLOT STATUS 

4 1 OC 

CDB20B 

00085 

CALL 

2994 

;PLOT/UNPLOT 

4 1 OF 

El 

00086 

POP 

HL 


4110 

Cl 

00087 

POP 

BC 


4111 

C9 

00088 

RET 




COPY 

40FE 

00076 

DFILE 

40 0C 

00003 

DISP 

40A5 

00024 

DOPLOT 

40E0 

00057 

FIX 

40B0 

00030 

FRAMES 

4034 

00004 

PAUSE 

409D 

00019 

PLOOP 

40A0 

00020 

PLOT 

4107 

00082 

PLOT 1 

40E1 

00058 

PLOT 2 

4 0EA 

00064 

PLOT3 

40F3 

00070 

PLOT 4 

40FB 

00075 

PRINT 

4082 

00006 

RESET 

4 0C0 

00037 

UNPLOT 

4 ODE 

00056 

VALS 

40C4 

00039 

WAIT 

40B7 

0 0 0 3 3 


00006 

00029 

00055 

00036 

00023 

00058 

00070 


00080 

00053 

00045 

00035 


00064 

00075 



21 



TS2068 PORT ASSIGNMENTS 


CLASSIFIED ADS: 


Timex provided SYNTAX with the 
following chart, referred to on 
page 214 of your 2068 manual. This 
chart is what you would receive if 
you contacted Timex Corporation for 
port assignments. 


012345678 

0 

1 

2 

3 

4 

5 

6 


7 9 9 

8 6 6 6 6 A 6 

9 6 6 6 6 6 

A 6 6 6 6 6 

B 6 6 6 6 6 

C 6 6 6 6 6 

D 6 6 6 6 6 

E 6 6 6 6 6 


F666624586 

012345678 


9 A B C D E F 

0 

1 

2 

3 

4 

5 

6 
7 


6 6 6 8 

6 6 6 9 

6 6 6 A 

6 6 6 B 

6 6 6 C 

6 6 6 D 

6 6 6 8 E 


6667713F 
9 A B C D E F 


In the table, the vertical borders 
show the most significant hex digit 
and the horizontal borders show the 
hex digit of less significance. 
Table entries indicate devices from 
the numbered list that follows. 


1. RD 
WR 

2. RD/WR 

3. RD/WR 

4. WR 

5. RD/WR 

6 . 

7. 

8 . 

9. 

A. RD/WR 


Keyboard/Cassette 
Border/Beep/Cassette 
Dock Horizontal Select 
Enhancement Port 
Sound Chip Address 
Sound Chip Data 
TS2040 Printer 
Bank Switching 
Micro-Drive 
Modem 

Centronics Interface 


Blanks in the table indicate ports 
available for use as of 2 Nov. 83. 


Reach thousands of ZX/TS users—for 
just $9/line! Send your typed copy 
(35 characters per line) with check 
or MO to reach us by the 15th to be 
published in the next issue exactly 
as typed. No fractions or cent 
symbols. Include your phone No. 
SYNTAX Classified, 

RD 2, Box 457, Harvard, MA 01451. 

Just 300 bargains available—order 
only by phone, pay only by credit 
card—The ZX81/TS1000 Home Computer 
Book by David C. Foyt. Shipped to 
you for $10+$1.5 0 P&H: 617/456-3661 

STARBURST SOFTWARE now has 18 soft¬ 
ware programs:Business,Hobby,Games, 
Educational,Utility. Send SASE+$1 
to:2214 Horine Rd.,Festus, MO 63028 

E-Z KEY Has a SPECIAL SALE! 

TS1016 16K RAM $19.95 Supply 
limited-Phone orders only- 
(617)773-1187 Also available WORD 
SINC II $19.95 a full featured 
WORD PROCESSOR for your TS1000 or 
TS1500 & TS2040 printer. 

XFORTH, FORTH-79 FOR 16K ZX/TS WITH 
ONE PASS LOAD,FULL THREADED CODE,ZX 
CODE TABLES. SUPPORT VIA USER NEWS¬ 
LETTER. XFORTH $25.00. W/ F.P. EXT 
ADD $15.00. ADD $1.00 EACH P. & H. 
***NEW***HAWG WILD "HAM HACKER" (TM) 
SERIES FOR ZX/TS RADIO AMATEURS**** 
MORSE CODE (16K)/TW0 K CODE-BOTH ON 

ONE TAPE.$14.95 + $1.00 P&H 

MINIMUF 3.5 - 16K RADIO PROPAGATION 
(DXERS MUST!) ..$17.95 + $1.00 P&H 
CE AMP (FROM SYNCWARE) 16K CIRCUIT 
DESIGN/TEST....$19.95 + $1.00 P&H 
FOOTBALL FORECASTER NOW AVAILABLE 
FOR U.S.F.L.. $17.00 PLUS $2.00 P&H 
ARK RES ADD 5% TAX. **HAWG WILD 
SOFTWARE,BOX 7668, LITTLE ROCK AR 
72217**WE HAVE THE JUPITER ACE** 


Next month in SYNTAX we'll 
discuss the advanced video modes of 
the TS2068. You can find some 
information on this subject in the 
2068 manual, appendix C. 


"TS1000/2068 CANADIAN FEDERAL IN¬ 
COME TAX RETURN. $9.95 + 1.50 P 
and H. Ont. res. add 7 pc PST. 

JM SOFTWARE, 1852 Appleford St., 
Gloucester, Ontario, K1J 6T4" 


22 





SYNTAX is published monthly by a wholly- 

owned subsidiary of The Harvard Group. 


Syntax ZX80, Inc. 

RD 2, Box 457, Harvard, MA 01451. Telephone 
617/456-3661. 

12 issues, $29. Single issue, $4. 


Publisher: 
Consulting Editor: 
Technical Consultant: 


Kirtland H. Olson 
Ann L. Zevnik 
Kirtland H. Olson 


© Syntax ZX80, Inc., 1984. All rights reserved. 
Photocopying prohibited. ISSN 0273-2696 


OUR POLICY ON CONTRIBUTED MATERIAL 

SYNTAX invites you to express opinions related to any Sinclair computer or 
peripheral, or the newsletter. We will print, as space allows, letters discussing items 
of general interest. Of course, we reserve the right to edit letters to a suitable length 
and to refuse publication of any material. 

We welcome program listings for all levels of expertise and written in either 
Sinclair BASIC or Z80 machine code. Programs can be for any fun or useful 
purpose. We will test run each one before publishing it, but we will not debug 
programs; please send only workable listings. Programs submitted on cassette can be 
tested more quickly and with less chance of error. 

In return for your listing, we will pay you a token fee of $2.00 per program we 
use. This payment gives us the nonexclusive right to use that program in any form, 
world-wide. This means you can still use it, sell it, or give it away, and so can we. 

We will consider submissions of news and hardware or software reviews. Please 
keep articles short (350-400 words). Again, we reserve the right to edit accepted 
articles to a suitable length. We will pay 7 cents per 6 characters, including spaces 
and punctuation, for accepted articles. 

When you send in programs for possible publication in SYNTAX, please 
include the following information: 

• How to operate the program, including what to input if it does not contain 
prompts. 

• Whether you can run the program over again and how. 

• How to exit the program. 

• The Syntactic Sum (program published in Feb. 81 and Jun. 81; send SASE 
for a free copy). 

• What RAM size program requires. 

• What ROM program uses. 

We pay for this explanatory text at the same rate as for articles in addition to 
payment for the program itself. 

If you want us to return your original program listing or article, please include 
a self-addressed, stamped envelope. Otherwise, we cannot return submitted material. 


16K* * * * * CAVE M AZE * * * * *16K 
Fast action 3D Maze. MC display 
Never the same. Only $7.00 P.P. 
Doc's Software 4339 Keysville Ave. 
Spring Hill, Fla. 33526 

HOW TO MARKET YOUR T/S SOFTWARE 
Turn your program into profits with 
this comprehensive guide - pricing, 
advertising, publishing, royalties, 
market trends, plus many references 
$14.95 VISA, MC, MO, check 
SOFTMARK ASSOCIATES, DEPT SX2 

210 Fifth Ave, New York, NY 10010 

***** LEARN ASSEMBLER EASILY ***** 

* Machine code doesn't load? * 

* Find textbooks confusing? * 
*********** ZX81 - 16K *********** 
Loader/saver program on cassette 
with instructions and intro booklet 
$14.95 (CA add 6%) + $1.00 P&H CK/MO 

ORANGE COAST SOFTWARE CORPORATION 
PO Box 951, Midway City, Ca. 92655 

16K PERSONAL FINANCE PROGRAM TAPES 
****RETURN ON INVESTMENT**** 
Evaluate stocks, real estate, money 
funds, savings, etc. Rate of return 
& Gain/Loss. Compare investments. 

******INCOME PORTFOLIO****** 
Monthly & annual record & graphics. 
Excellent income tax data record. 
**Self prompting & Printer copies** 
$14.95 each, $24.95 both. Check or 
money order. RAE, 604 Danley Drive, 
Fort Myers, FL 33907 


Fill out the coupon below and mail it to: SYNTAX RD2 Box 457, Harvard, MA 01451 


sl/84 


□ My check is enclosed. □ Please charge my □ VISA 

Make checks payable to: □ Diners Club D American 

SYNTAX ZX80. Inc Express □ Mastercard 

□ Carte Blanche account 

Account number 


YES! Please send me: 

□ The Combination II (13 issues of SYNTAX and SQ Winter 

82-Summer 83).$39 

□ The Catch-up II (SYNTAX Jan. 82-Jan. 84, SQ Winter 82- 

Summer 83, plus 1 binder) .$77 


Exp. date_Bank number (MC only) _ 

Signature ____ 

Name_ 

Address ___ 

City_State _Zip_ 

Day phone ( ) _Evening phone ( ) 

□ My subscription number is:_ 

□ This is a new subscription 


□ The Works II (SYNTAX No. 80-Dec. 83, SQ Winter 82- 

Summer 83, plus 2 binders).$97 

□ 12 issues of SYNTAX.$29 

□ 3 issues Syntax Quarterly (Winter 82-Summer 83).$25 

□ 1 issue Syntax Quarterly □ Winter 82 □ Spring 83 

□ Summer 83.$9 

□ 1 Binder.$9 □ 1 issue of SYNTAX.$4 

Telephone orders call 

617-456-3661 

These offers expire 3/31/84 —SUBSCRIBE NOW. 


23 














LAND SURVEYING PROGRAMS : Prog.No. 
l- ,, COORDlNATES" -computes survey 
coordinates,area of any configura¬ 
tion; incl . inverse mode. Prog.No.2- 
"VERTICAL CURVE" -computes Vert. 
Curve data in tabular form, inc. 
Tan.&Vert.Curve Elev.,Low Pt.,High 
Pt.Sta.& Elev. $14.95 for each prog 
chk/MO to Paul F. Seymour, P.E., 


P.O. Box 11, Hamburg, N.J. 07419. 


TS USER, the full and candid news¬ 
letter is now 16 pages a month 
with no ads. All of volume 2 is 
available for $10.95. Get a manual 
on office automation with your 
Timex. Subscribe now to avoid a 
March 1st price increase. Send a 
check or M/0 for $16.95 for 12 
issues to: YAGSEE PUBLISHING, POB 
155, VICKSBURG, MI, 49097. Save 
yourself hours and dollars by sub¬ 
scribing now to the largest sell¬ 
ing unsponsored Timex-related pub¬ 
lication in the Universe!!I!!!!!!! 
Sample issue $2.95. Write now to 
see who had most material in 1983. 


DO SOMETHING USEFUL WITH A COMPUTER 
Useful software with useful manuals 
(16k ZX & T/S). How to use it, how 

it works, how to modify it. 

Menu driven, just load and go!!!!!! 
SEND FOR CATALOG..Kendric C. Smith, 


927 Mears Court, Stanford, CA 94305 



H\RV\RD 

GROU-* 


Bolton Road, Harvard, Mass. 01451 



MR WILLIAM TOMLINSON 
3635 RIVEREDGE OR. 
JACKSONVILLE FL 


NEW RELEASE 

Now you can translate your BASIC 
programs from your TS1000 tapes 
to TS2000 tapes. This program 
UPLOAD 2000 will do this for you. 

All available TS products sold 

UPL0AD2 000 -$19.95 

Blank C10 Data tapes $9.95/10 Tapes 
You can purchase these items 
from E-Z KEY, Suite 75-STXA, 711 
Southern Artery, Quincy, MA. 

02169 (617)773-1187 MC or VISA 

PRINTERS $49.90 —30 Mindware MW100 
available. Prints all symbols for 
TS1000/1500, three modes, 16 col., 
ribbon on plain paper. Solves power 
and extender problems. Pyramid Elec 
2174 Gulf Gate, Sarasota, FL 33581. 
COD, Visa, MC. Ph. (813) 922-9574. 

CRYPTOGRAPHY SOFTWARE for T/S-1000S 
w/2K or more. For cryptosecure re¬ 
cords, communication? also fun and 
learning. Instructions, descrip¬ 
tion and listing. $5.95 

DEL PRODUCTS, INC., 13512 Keating 
St., Rockville, MD 20853 

CRYSTAL COAST SOFTWARE. Educational 
Entertaining and Practical Programs 
Send for FREE catalog: 

PO BOX 233, MOREHEAD CITY, NC 28557 


U.S. Postage 
PAID 

Harvard, MA 
Permit No.8 
01451 


First Class 


058SXU68 J 
U