TIMER-SINELAIA USERS CLUB

NEWSLETTER

Toronto, Ontario

PRINTED IN CANADA

Se _ ~~

Trade Mark

B6146

NOVEMBER 1984 VOL 2/NO.6

EXECUTIVE OFFICERS

PRESIDENT: George Chambers LIBRARIAN: Martin Mauk ASS’T LIBRARIANS: Y. Franken,

D. Cooper,

T. Haller TREASURER: Greg Lloyd NEWS EBITORS: Stan Protrawski;

John Roach ACTIVITY DIRECTOR: Ian Roberts LIASON OFFICER (Qut-of-town members): Chris Hart Dike Mitchell

LETTER FROM THE PRESIDENT

It fs just a year since our club commenced operating with a little more formal structure to it. Overall, we have had a successful

year. Two areas in particular have been outstanding, 1.0. our newsletter Aas been published on a regular basis and with substantial content; and we have had a good series of hardware-software

demonstrations at our meetings,

We have planned some Improvements to cur newsletter, namely two or three menmber-columnists, who will cover Specific areas of interest 1.6,: telecommunrcations; 2868; new products.

Improvements are also being made to our program library and in Servicing eur out-of-town members needs. These two aspects consume a lot of time and we are attempting to streamline this operation.

Your executive will be considering other ways of improving club operation. However, often these proposals Entail more work, therfore; they can only be implemented on the basis of faving volunteers come Forward. This has not been a problem to date, but we invite anyone to come forward and volunteer your services,

Keeping the previous comment in mind we would welcome your comments-suggestions on how the club could better serve member needs. O0ut-o0f-town members may write to me at 14 Richome Court, Scarborough, Ontario, MLK 2Y1

incidentally, at our last meeting 15 out of the 38 members present stated that they had the 752829 computer. A whole new world is opening fer our club!

Yours in Computing George Chambers (President)

PAGE 2

STORE BASIC ON EPROM WITH AN EPROM PROGRAMMER by Virgil Roman

Now you can store all your Basic or Machine Code programs on an Eprom chip and read them back in an instant. If you need a piece of hardware that can program the 2716, 2732 and 2764 Eproms compatible with all ZX-S81/Timex computers, the "Programmer" is just what I recommend because it is very cost efficient.

Before I describe the system, let me say a few words about its simplicity; there is nothing complicated about it! The schematics have been improved by Rompak. The board design and artwork have been done by a small electronic company here in Toronto. The circuit is very simple and works very well. It comes completely assembled and tested, or in kit form for people with electronic background.

Eproms are solid state non-volatile (does not lose memory when computer switched of) circuit memory devices. They can be programmed by .applying the necessary voltages and enable signals. It will not lose the stored data when the computer is turned off. They can be erased and then reprogrammed by exposing them by exposing them to ultra-violet light which will set all switches to one.

The Eprom Programmer plugs into the back of the computer and can ne accessed with POKE commands or Machine Code. A 25 volt regulated power supply is required for 2716 and 27352 Esroms and a 21 volt power supply is required the 2764 Eprom. A "read board" is mapped to the unused 88-15: area for retrieving the programs stored on Eprom is also necessary (like the Hunter board).

Operating The "Programmer"

Pigg the Eprom (2764) chip into the 28-pin socket, and note the polarity. I you are using as Eprom with 24 pins (2716 or 2732), pin #1 of ‘the Eprom should go into pin H3 of the 28-pin socket íi.e. down 2 positions). Turn the computer on and make sure the "K" cursor appears. If it does, you are ready to "burn" an Eprom. Turn the external power supply to the appropraite voltage. fi.e. 21 or 25 volts).

Hiemary Allocations

The Eeron burner operates above Ramtop starting at address 32768: i.e. POKE 32768,2405 will burn 295 into the first address of the Eprom, which can be read back into a READ board (Hunter, Rompak, etc.) at address 8192. The new Ramtop will be:

POKE 16388,254 POKE 16389,116 NEW

ENTER

PAGE 3 This puts the new Ramtop at 29950 (74FE Hex).

To burn a Basic program on Eprom, we need a Machine Code routine to take the Basic program from the computer's memory and put ("burn") it into the Eprom. This M/L routine is called "Burning Routine". Once the Basic program is safe on the Eprom, we need a Machine Code routine, when called by a RAND USR command (i.e. RAND USR 8192), to stuff it back into RAM memory and run it. This machine code routine is called the "Booter Routine”. Both routines are provided in the instruction sheets and should be POKEd above the new RAMTOP.

Circuit Description

There are two separate circuit sections. Reter to the schematic. The first section is memory write, the second circuit will decode the pulse, invert the signal and time enable the pulse to S6 ms. maximum all which is necessary for burning an Eprom.

Component Level Description

When a memory write is performed, the P4LS138 chip will decode this. The address range of 32768 - 4959 is outside of your 16K RAM pack and will not interfere with the normal function of your ZX/Timex computer. This pulse is inverted with a 79500 chip to clock the address and data into the 74LS273 chips. The signal also is used to trigger the 355 timer chip which will "burn" the Eprom with data and addresses stored in the ?4LS273 chips. A 39€6K resistor and .1 uf capacitor controls the length of the timing pulse.

Recommendations

After using the "Programmer" for awhile, I have found it to be most useful. AS a matter of fact, I consider it to be the most useful piece of hardware I have ever bought besides the computer itself. I strongly recommend it. The "Programmer" follows the programming specifications of INTEL memory devices and will be compatible with most Eproms on the market.

For more details on Eproms, read the article, "COMPATIBILITY BETWEEN EPPONS" by H. Pun - Electronics Today (October 1784 - page 299).

If vou deide to purchase the "Programmer", by all means, go ahead and order it and you will be glad you did:

Integrated Data Systems: (416) 466-3371 D& D Electronics Engineering Design: (416) 491-7993

PABE 4.

SYNCBITS by Ian Robertsan

This column will, hopefully, be a regular item for our future newsletters. It 15 our intent ta try and keep you up te date on what is happening in the world of TIMEX SINCLAIR computers, i.e., ZX-81, TS18800. TS1S5908, T5269 and the GL. Maybe even an item, now and then, on the Spectrum. “' = Resources ZX81/7S18989;

There are still some local vendors to draw on. For example; Integrated Data Systems- operated by fellow club member Ian Singer, Gladstone Electronics, Software Shop and from the publishers of Electronics Today or Computers Now magazines. A large source of Timex products is Timex themselves in Markham, on Hood Ave., but you must shop. in person at their Warranty Service store located at their plant. If you phone they will simply tell you that Timex is no longer in the computer business. The price list is; TS1999 $49.99, TS1816 RAM 16K $25.080,T92040 printer $89.69 and all software at $5.90 each. Gladstone have reduced their TS199@ price to $29.95, i

7582468

Again there are a couple of local sources; Integrated Data. Systems and Gladstone Electronics. Gladstone have just reduced their price for the 2968 to $179.95, aS well they have the Timex 2968 Technical Manual for $34.95, Sams, the Indianapolis technical book publisher now has the Timex Sinclair 2468 Intermediate/Advanced Guide available at $9.95 US. - I purchased my copy from E. Arthur Brown and the book seems to —-Ccüampliment the Timex Technical Manual.

QL

Constant monitoring of the U.K. computer press indicates that all is not well with the current model of the SL. Everyone agrees that while the 8L is a great idea, the implimentation of this idea is less than great. For example- "superbasic" is far from super, in fact ot's reputed to be slow and tedious - GSDOS needs a lot of work to meet industry standards and the microdrives do not load and save with the integrity required in business or serious use. The biggest complaint is with the size of memory, apparantly 128K is not large enough to utilize the much vaunted "multi-tasking" aspect of the 68982880. ther are even complaints about the quality of the PSION software packaged with the QL. Hopefully, all of this will be corrected prior to the GL entering the North American market by Sinclair Research in Boston via: mail order, next Spring

PAGE 5

Hardware/So/tware:;

The big item in the news lately seems to be the number of "spectrum Compatible” ROM devices being sold. I have ordered the Russell Electronics ROMSWITCH" from E, Arthur Brown and look forward to being able to use some of those 5,999 or so Spectrum programs that are available in the U.K. There is also a U.K. supplier of the Spectrum ROM, which we will report on when the club receives pur goods ordered.

Apparantly the 2868 could be revived, as rumours persist that several parties are interested in either manufacturing or distributing this product. Only time (definately MOT Timex) will tell.

I have learned from Westridge Communications that their new version of the 28056 modem software is issued ffor distribution and that they will not be producing the 2958 "expansion box". In fact they say that they never even heard of this item before. Rumour laid to rest!

Magazines;

If you are looking for newstand magazines tor our computers there are only 2 available, and they are both from the U.K.: "Your Computer", published monthly and "ZX Computing", published bi-monthly. Both are available from Litchmans bookstores in the Toronto area.

If you want really good (510090 and 2068 U.S. dedicated magazines there are only 3: "Syntax" published monthly by The Harvard Group, Bolton Road, Harvard, Mass. @1451, at an incredible price of $98.848 U.S. per year. "Syncware News” published monthly by Thomas B. Woods (of ZX PRO/FILE tame), P.O. Box 64, Jefferson, N.H., 93583, at a more reasonable $16.95 U.S. per year.

"T-S Horizons” published monthly by T-S Horizons, Subscription Dept., 2002 Summit Street, Portsmouth, OH., 45662, at $21.00 U.S. per year.

8K EEPROM BOARD by John Roach

In this project we are going to build a non-volatile memory expansion board that doesn’t require batteries or a separate PROM blaster card. Everything we need will be on one simple card. Your cost to buy one of the popular PROM cards along with a separate programmer would probably be at least $158 dollars. Our project, hopefully, should cost less than $59.

The heart of the board is a Seeq Technology &8K x EEPROM, a memory chip that can be both erased and written to with only 5 Vdc. Once the chip has been programmed and the power to the computer turned off, the memory is permanent - even if you remove the chip from the board. This chip is also the most expensive component on the board. In

^.

PAGE 6

Single quantity the price is $35. However, if there is enough interest in building the project we can get a good quantity discount.

Circuit Operation

Our circuit is designed to let the 8K of memory reside in the empty 8K to 16K portion of the memory map. When addressing this area, address lines A15 and Alá will be low and line 13 high. The MREG, memory request line is alsa low. Line A13 is first inverted through ICia so that when 102 sees all its inputs low, it puts its output low. This signal has 3 jobs to do. The first is to disable the ROM in the computer to prevent memory ghosting. This we do by inverting the low output of IC2 through ICib putting a high on the ROMCS line on the 1/0 bus. The second job is to enable our memory chip IC4 by putting a low on its CE chip enable pin. The third job we'll skip untill we look at a memory write cycle. For now we'll assume we are going to do a memory read.

So far we've decoded the address, enabled the memory chip and if we're doing a read the RD line on the I/O bus should be low, it's directly connected to IC4's output enable pin, OE. At this point the byte at the memory location we've addressed is plopped out onto the 1/0 data lines to D? ending the read cycle. So far everything has been fairly simple, but now let's take a look at a write cycle.

A write to the EEPROM only requires 3 volts but in order to program the chip the write pulse has to be 1 millisecond long. This is a lot longer than the 280 write pulse which is about 19 nanoseconds. Here's where IC3 comes into play as well as the third job required of IC2. When 102 sees an address in the 8K to 16K area of memory its Output goes low, as we saw above, the output is inverted through ICib and is used to enable 1C3 which forms part of a single shot pulse stretching circuit. When the write pulse from the 1/0 bus is applied to an enabled IC3, its output delivers a 1 ms. low pulse to the write enable pin of our memory chip and the byte on the 1/0 bus line to D? is implanted forever into the EEPROM, or untill you do another write cycle to the same address. One limitation fo the chin is that you can only do 16,888 write cycles to any one individual byte address.

One other requirement in writing to the chip is that you can Only overwrite a byte that is all 175. This is not a problem, if you refer to Listing i which is a simple program to POKE data to sequential addresses you will see that a check is made by PEEKing first and if the location does not contain all 175 we just stuff them in before we write in the data we want there. Typically it shouldn't take more than about 88 seconds to write SKbytes to our memory chip. In spite of all the timing requirements and only being able to overwrite a byte thats all 1's it's probably a good idea to include the write protect switch shown on the diagram.

As far as applications for the EEPROM board, it can be used to store machine code programs that will run right from addresses on the board as the read time is 239 ns. and the computer sees it as RAM. It can (also store BASIC programs although they can't be run from the

PASE 7

board, you would simply down load the biock of memory containing the tokenized program to the EEPROM and up load it back to the BASIC area in RAM when you want to run it.

In the conciudins portion o* this project, appearing in the next newsletter, we wili over construction details, PC board layouts, where to get parts, more software ior loading and some sugestions for modifications to make ine board usable oan the 2868 - both on the

expansion bus and the cartridse dock,

m 23

ES

c

Program Listing d

18 REM XX EEPROM LOADER XX 26 REM S= STARTING ADDF. GF 3d REM DATA IN RAM,

49 REM N= NUMBER OF BYTES -i. 50 REM E= EEPROM START ADDRES. 58 LET 5= 14426

76 LET N= 20682

38 LET E= 8280

8S8 FOR I= D TO D+N

99 IF PEEK (E) = 255 THEM GUTC 1.50 19@ POKE P, 235

119 FOR J= 1 T3 Z

120 NEXT J

138 POKE P, PEEK (1)

14@ NEXT I

159 PRINT "I’M LGADED, EH!” 168 STOP

PROGRAM CREDITS hy G.F. Chambers

In locking through our library of pragrams, I am struck by the number of contributions which contain no hint of their source or origin. They are something like a ship without a name or a letter without an address, This is unfertunate because, at the very least, someone who went to the troubie of creating the program or entering it does not get appropriate credit. it also makes it difficult for the next user to refer back to its Grisins should the need arise.

The introduction could be as simple 23 a two-line entry as follows:

19 REM GRAPHICS DEMONSTRATICN 26 REM FROM 22:81 PROGRAMMING MANUAL CHAPTER 18, PAGE 121

An original program probably deserves that more credit be given the maker. Take a lock at the partial listing shown in the example. Here, the program is "n "Autco-REun"; that is. if it is SAVEd by a direct command - GOTO 22292, it will SAVE itself. Then, when you LOAD it into your computer, it will automatically RUN or continue at 9919. (If you wish to use RUN ar GOTO ta start a program, the initial line in the program should be: 20508 9919 to enter into this routine and line 99348 should read PETURN?).

oo

PAGE 8

To get back to the original subject, note line: 9919 LIST 9978. This will cause the program to be listed automatically on the screen from line 9978 onwards. This will display any notice about the program you care to present.

Several points should be noted. The listing to be displayed needs to be at the end of the program and not to be so lengthy that it exceeds the screen size (21 lines). If the listing called up in line 9918 exceeds the screen size, it will cause a CODE S report and the program will stop.

Motice that lines 9997 & 9998 contain an instruction to the user to press a key. This is because although the listing appears on the screen, the computer is still in the program operation mode and in fact is at line 9929 PAUSE 464: i.e. waiting for a key to be pressed (waiting "forever" - 4E4 sounds like the word *forever”). After a key is pressed, the program will proceed to the next line: 9939 GOTO 2999 which happens to be start of the main program in the particular program this example was taken from. (PAUSE 4E4 = PAUSE 499@ = PAUSE FOREVER. See Sinclair/Timex manual, Chapter 19),

PROGRAM EXAMPLE OF CREDITS

9998 SAVE "METRIC" 9918 LIST 9979 9926 PAUSE 4E4 9938 GOTO 2099

9974 REM

9971 REM

9972 REM METRIC CONVERSION 7978 REM 9 -—-----9----2----2-—- 9979 REM

99880 REM

9982 REM AN ORIGINAL PROGRAM 9983 REM

9984 REM WRITTEN BY 92985 REM G.F. CHAMBERS 9988 REM (C) 1984

9989 REM

9991 REM

9992 REM DATA TAKEN FROM 9993 REM THE BOOK ENTITLED 9994 REM "COMPLETE HANDYMAN'S 9995 REM ENCYCLOPEDIA" 9997 REM TO START PROGRAM 9998 REM PRESS ANY KEY

9999 REM

uM

PAGE 9

TS 2068 PROGRAMMING by John Roach

Recognizing UDG’s

As you know from the manual, there are 21 User Defineable Graphic characters which can be assigned from CODE 144 to CODE 164. To show what you are doing and to keep program LISTing as clear as possible, it's best to use the CHR$ function rather than shifting to the Graphics mode.

18 PRINT CHRE 144; CHRS 1455 CHRS 146 It's instantly recognizable as UDG's. UDG Loader

This routine is not in the manual but it saves a lot of typing time not using all the BIN values.

9888 FOR g-144 TO 164 (or less) 9819 FOR n-8 TO 7

9929 READ a : POKE USR CHR$ q + n,a 9938 NEXT n

99849 RESTORE : RETURN

90560 DATAN aras a

Each data statement contains 8 numbers per line; each number is the decimal value for the binary bits in UDG character row. Each data statement defines one character.

Fancy Titles

Assign a string to T$ less than or equal to 32 characters for the title and a value to the variable "pa" less than 22 for PRINT AT line number:

19 LET T$ = "HERE IS A PROGRAM TITLE" 28 LET pa = 1C 39 GOSUB 199

44 STOP

180 LET M = LEN T$ : IF M/2 < > INT (M/2) THEN LET T$ = T$ + " " : LET M = M #1

119 FOR N = 1 TO M/2 : PRINT AT pa, 16-N5 T$ ( TO N); T$ (M N +

TO ): BEEP .92,2 X* N : NEXT N : RETURN

PAGE 19 MACHINE CODE PROGRAMMING

The +oliowing is a list of the keyboard values when K-SCAN called in Msi (CALL 699 or in code: 205, 187, 2) which returns the value in the HL register. Note, these are all computed values so to find the value in H? & ?*L? we must find it ourselves. e.g., the value returned to HL when the number °P? 15 pressed (or left arrow) is 57335. Therefore, to find the value contained in 'HL',:

19 LET H = INT (57335/256) £223 28 LET L = 57335 - (H * 256) :247 39 PRINT "H-"jH, "L="3L

49 STOP

Therefore, if we were testing to see if the user was pressing the 75? key tor left arrow), we would first CALL 699 then LD B,223 te LD 0OC,247; LD A,H & CP B; LD A,L & CP C. If they matched, then continue on with the program.

Whenever you're programming in machine code, do not forget that there are many routines in ROM that we can use (which will be discussed as we go along). Also, when reading articles about machine code, they sometimes have a useful routine which can be called. For example, in Toni Baker's book, "MASTERING MACHINE CODE ON YOUR ZX-S81", has many useful subroutines. We will be using some of them such as printing numbers to the screen for increasing/decreasing the scores; or on page 59 is a very useful routine for printing a complete picture or text to the screen in machine code.

TRIVIA:

258 baud means about 25 bytes per second; 1568 baud means about 158 bytes per second: for LOADing or SAVEing values which is why the ZX-81 takes so long to LOAD or SAVE!

BASIC PROGRAMMING Side Scroli a Message

190 LET AS = "print your message with as many characters as you like but not less than 33, then S spaces then an asterisk (X)" 118 LET N= 1

120 IF AS (M + 31) = "X" THEN GOTO 119

138 PRINT AT 18,8; AS (N TO N + 39)

iae FOR I = 1 TO 3

158 NEXT I

169 LET N = M + 1

179 GOTO 120

LETTER FROM THE NEWS EDITORS

Well that's it again for this Newsletter. AS you can see, with more submissions, we can print a varied type of Newsletter that should appeal to the various interests of club members.

When submitting articles,

write neatly

article.

of it

is a written submission. re-typed into the Newsletter and

PAGE 11

please use double spacing when typing and

All articles have to be.

it 15 much easier for us. Also, we don’t have an Art Department so any drawings, submitted; make them neat and on a separate piece of paper from your

etc.

will be entered as

So until the next flewsletter (in January), have fun programming.

Table of ‘Key Values’

fO 0 00 &QIN -+

ZOXACIONON»>VO7CXAD

EWLINE

eZ20<OXN

| Hex. Value |

' GRAPHICS

RUBOUT

FUNCTION

MIN UI

m-

Stan & John News Editors

Dec. Value

FCEF FCFB FAFB F6FB

EEFB DEFB DEDF EEDF F6DF FADF FCDF FCFD FAFD F6FD

EEFD DEFD DEBF EEBF F6BF

FABF FCBF FAFE F6FE

EEFE DEFE DE7F EE7F F67F

FA7F

FC7F

64751 64763 64251 63227 61179 57083 57055 61151 63199 64223 64735 64765 64253 63229 61181 57085 §7023 61119 63167 64191 64959 64254 63230 61182 57086 56959 61055 63103 64127 64639

A13

Al2 All A1O A9 A8 AT A6 AS 4 A3 A2 Al AO

8K EEPROM BOARD

Ici - 74LS04 IC2 - 74L532 IC3 - 74L5I23 1C4 - 52B33H

O GND

RI 4.7 k RIT

ROTECT

O^ O Sw-1

HEX INVERTER QUAD OR GATE MONOSTAELE MULTIVIBRATOR 6Kx8 EEPROM