Newstetter of the

VANCOUVER SINCLAIR USERS GROUP

e e k e e dede ode SEE See REE SSE SESE REESE EERE RE Te Fe Fe Te Te Fe ode cede Fe e Fe Je e Te ke ke SEER ERE REESE ESSERE ESE kkk kk kkkkkkkkkkkkkkkkkkkkkkkkkkkk*kkkkkk

* ZI - * * NEXT HEETING: + XxQiliNSIDEX£it dec o an m m m ee ee * * * * KILLARNY COMMUNITY CENTRE * * 6260 KILLARNY ST., VANC * * * THIS ISSUE..... AN ia A SEPT. 12, 7:00PM x BITOR PICIS a 2 E ELE, PROGRAM READER. cocoa á * INTERRUPTS..... Chips vh nt A : AFTER OUR SUMMER BREAK , NRI Uu IT. erigens. AS 5 kkkkkkkkkkkkkkkkkkkkkšžxkkkkkkkkkkkk*kxk TIPS». 2k EA, JA AC JXAPPEAL IS A MONTHLY j FAT LETTERS..... Ng igh eo fU 7 NEWSLETTER PUT OUT BY THE ag AR s uo TRU VANCOUVER Meri re ia COMPU TER- FATE: . 221343038055 9 OR MORE INFORMATION EANCEISTITLESR. sic UE :210 D ZXAPPEAL SEE THE BACKCOVER. CLUB AND Z mMiaiscawy a 92906, 110 142 3 11 ei E A : ER 1000 SCROLLING. ........ AS 1000..SCRÓLL.AGÁTN .soasioñonis 14

This AI eee

We probably all thought that it wouldn't end but the sad fact is that SUMMER IS OVER! The darkness closes ina little earlier each evening and the nights are getting cooler. What this means is it's time to put away the barbeque and get down to some serious computing. Before I forget HAPPY BIRTHDAY!! Twas September 8/82 when 8 of us met up in

Al W.'s office to see if we could get a club together. Well, we're still here and going as strong as ever.

This issue is a potpourri - odd bits and pieces from here and there. I hope our exchange partners don't mind but I'm borrowing quite heavily from other newsletters now and then. of course the other groups can use any material from our newsletters at any time. This way the many thousands of Sinclair and Timex nuts across the land and over the border can all share the very best of all the newsletters. I'm even able to include a couple of items from the newsletter of the Users Group in Mexico thanks to the translation services of a friend of Ken A.

Bits & PlaecoH PLA ew vw O E. EZ

Sorry about that:--It is quite possible that the video monitors I mentioned last issue are not compatible with the 2068. Marie K. bought one but found some screen distortion. A replacement unit also exhibited the same problem. Make sure you are able to return the unit if buying one. R & P are usually pretty good about this sort of thing.

--The listing for the graph plotter program in last issue didn't print clearly on one or two copies. The faded lines are:

bh

ane

lh ue m] m

JU ns] sd

pul n ul n

ro ea

fi alle fool 1

c

= E See rt E =

Qr»

--The "2068 Tips" in last issue were for the SPECTRUM. «++ if anyone is looking for Radio Shack TP10 paper and can't find any, here's why. HAV-INFO, the database service, is now marketing their dumb terminals. They bought all the TP10 printers and paper they could find. More is on the way and this time the RS dealers will be holding stock back for their own customers. «++ if you are presently using an 80 column Epsom-compatible printer but wish you could afford one of the new Near Letter Quality printers then read on. Dresselhaus Computer Products of Glendora, California, is marketing a neat little hardware add-on that not only allows NIQ on any Epsom or Epsom-compatible machine but also panel button font selection, switch selectable Epsom or I.B.M. character set, and all Graftrax-Plus features. --$80.00US. new printer! Karl B.'s robot course is again coming up at V.V.I. The first class will be on Tuesday, Sept.23 at 6:30 to 9:30. The course runs 10 weeks and will set you back $135.00. Not bad when you consider you'll end up with a fully funtional, completely programable, mobile, talking robot as well as 30 hours of instruction on both theory and pratice of robot design and construction. If you'r interested in taking this course then hurry down to register NOW as the seating is very limited

Price? Better than buying a

_ and it's first come, etc.

Karl tells me that BYTE magazine has accepted and paid for his article on "Building Your Own Robot" but has yet to tell him when it will appear print. Speaking of robots: I finally , with the help of Wilf R., came up

with a way to program my robot utilizing the 2050 modem serial port add-on from ZEBRA SYSTEMS and the Mterm I software. Now the house is full of the pitter-patter of little wheels.

I wanted to mention something else but it's slipped my mind. Next

time then. Now I remember —------ edem ----RENEW YOUR MEMBERSHIP!!

PORRO OOOO IOI IOC IO TOO IO IOC ITO IO IO II IO IOI III I A TA RS ek RAR

a = == m, = = mal Program Reader 1 REM SET UP REM STATEMENT WI TH AT LEAST 75 SPACES.

19 LET AS="CD23GFCDSA4G1 SFRGES “lave you at one time or another 196003E7FDBFED3FF1FD2A29031717381 forgotten the name of a particular 1189F1F1CDGA49CB7A77?2640681D717236€8F41 1000 program but didn't want to 81DDS1E940651A1DDBFE17CB7B7B38F51 wait the 10 minutes to see what it GFSD1208d04rFES630CB3FCB1130C3C?C?^ was? Help is at hand! This : routine will read and print the 29 LET X=16514 name the program was saved under, 39 IF AS="S" THEN STOP all in a few seconds and without 49 POKE X,14XCODE AS+CODE A$(2 affecting the saved program. )-476

56 LET X=X+1 Type in the progran, remembering 33 PRINT ASC TO 233" "3 the 75 character REM statement. Sg CRT i) pics E. D. Run the program. After running the 18 BO d

program, delete lines 10 to 70 and add line 10 Rand Usr 16514. CD 23 GF CD 3A 46 3 FB

: : gE Ol Y 3E 7 DB FE To use the routine just run the

program and start the tape recorder. A few seconds after the E program load pattern appears, the i program will stop with the program 1D DB FE 17 CB 7 ZB s name on the screen. FS 19 FS Di 20 04 FE 38 (08 SF 408) 41 36 ¢3 This would be a good routine to c?

keep in the 8K NVM you built from

last issues Hardware project

instructions. When typing in the

program just change line 20 to I have quit a few neat little whatever address in the 8-16K area machine code routines I keep in my you wish to use. Then NEW the HUNTER BOARD NVM. Eack month I'11 machine and call the routine give you a couple you can try out whenever you like by simply and perhaps keep in your NVM. RAND USR X, X being whatever address you chose for X in line 2D,

38 11 19 Fi Fi CD 2A 46 ED 2A Q29..29 01 D? 17 3 F4 18 1D DS 1E 94 66

Ú 1 dy

This article is reprinted from the August /86 edition of "SMUG BYTES", the newsletter of the Sinclair Milwaukee Users

Group.

INTERRUPTS

by Lloyd Dreger

A discussion of interrupts was a bit too advanced a subject to cover in detail in my book “Introduction to 2068 Machine Code," since the beginning student has enough other things to learn, so here is a short discussion of them.

There are two kinds of interrupts available for the Z80 CPU, the maskable (MI) and nonmaskable (NMI) interrupts.

As the name implies, the maskable interrupt can be masked, which is another word for defeated. Machine code students will remember the disable interrupt (DI) and its opposite, the enable interrupt (EI). These commands only work on the maskable interrupt. Since a maskable interrupt comes along every 1/60th of a second, the Sinclair computers use this signal to refresh the screen. In addition, the 2068 also uses this signal to check the keyboard for an input. The ZX81/1000 computers have a SLOW (refresh the screen) mode and a FAST (don't bother with the screen) mode, which obviously are but little more than enabling or disabling the maskable interrupt. Certain machine code routines, such as data or code transfers, must be done without an interrupt until finished. Forgetting to do an EI before coming out of code back to BASIC results in a dead keyboard, which is equivalent to a crash.

HALT is another instruction which requires an interrupt to start the computer again. It works with either type of interrupt. However, since the MI can be disabled with the DI statement, the 1/60th second delay may not work on many programs. The NMI, on the other hand, always gets through. However, a word of caution is in order so read on.

What really happens with a MI is that all the registers are saved and the machine jumps to address 56 (38H) and follows the instructions given there. When a return is encountered, the registers are all restored as the machine goes back to working on whatever it was doing before the interrupt occurred.

The NMI is a hardware or peripheral interrupt. A line inside the computer called NMI normally has 5 volts on it. If for any reason it temporarily goes low, like being grounded, a NMI has occurred. The registers are again all saved along with the status of the MI as the machine jumps to address 102 (66H). On the ZX81/1000 machine it checks for SLOW and continues without any provision for adding another NMI routine. On the 2068 we have a problem as it checks for an address in the System variable located at address 23728-23729. If you check your 2068 Users Manual you will find that these addresses are not used. This is due to a bug in the next instruction in the ROM (whether this bug is deliberate or not is open to some debate). The instruction in effect reads "jump to the address only if it is 0000," effectively doing a wipeout or restart. If for some reason you poked something into this address, the NMI is ignored and a return to the program is made.

This is NOT the way an NMI should work. The errant instruction at address 109 should be JR Z, not JR NZ. This - change would cause the computer to return immediately if the NMI interrupt address at 23728/9 was 0000 or jump to the address contained there and handle the interrupt with a routine you could write, finally returning to the program when finished. Unfortunately, the error is in ROM and nothing short of burning a new ROM on an EPROM will permanently correct it. Unless.

Unless you are NOT in the home bank. If you are in the dock bank with an LROS program, your technical manual states

that you MUST write both a MI and NMI routine to handle interrupts at the addresses given above. If you are lucky enough to have an Aerco disk drive you have 64k of the RAM in the dock bank

at all times. Every time you use the disk drives you run the routines put there by the Aerco interface ROM. It thus would be possible to correct the NMI handling routine since the Aerco program first starts at address 256 with only the LROS identification, the MI, and NMI routines below address 256. There is only one problem with this and that is that the computer does not run BASIC programs from the dock bank, but from the home bank, so it spends most of its time in the home bank and would use the home bank ROM NMI interrupt, with its error, most of the time. You are really lucky with the RP/M version of the Aerco disk drive, as it is loaded and run exclusively from the dock bank. Of course, the present Aerco NMI routine would have to be rewritten to handle an automatic jump to an NMI handler routine.

Why use the NMI? Certain peripheral devices, notably the keyboard, can give an NMI to the CPU indicating that they are in need of attention. Most computers use the NMI to indicate input coming from the keyboard. As you saw above, Sinclair computers use the MI

to scan the keyboard, not the NMI, but that is no reason to disable the NMI. Other devices such as a printer or a modem could be made to give an NMI when they need attention as well.

For example, most printers have a 2k to 8k buffer which is loaded and then printed out. When empty, it is reloaded with the next batch, etc. All the time that the printer is emptying the buffer it is sending a signal saying "I'm busy, don't send more yet." The way it stands at present, the driver program monitors this signal in a wait loop and is really wasting time. Instead the "busy" signal could be put on the NMI line thus freeing the CPU to do something else and return for another buffer reload only when needed.

Ji

FI POE E AA AAA ee See eee eee AAA AAA AMA AAA AMAN

“d peb ~ TW

^"

EIS "d

| qa

“~d ^"

|

Or for another example. Your modem is monitoring the phone for calls. Nothing might happen for hours, but when it does the modem needs attention immediately. Or yet another, your computer is set up to play watchdog for your house, yet you would like to do an iterative program that takes hours to run overnight and have the answer in the morning. You could do both with a working NMI. Sinclair had the right idea with the NMI routine address at 23728. This routine with the same error is also in the Spectrum ROM. Why did they chicken out?

3E 2E EE CO Q0 KKK AHHH AAA AAA OIX ODIO OE X OG X

" TURN OFF THE BUBBLE MACHINE "

Well it's not Lawrence Welk but it is 'music' on the 2068. This program uses just the BEEP command. If only someone would come up with a friendly easy-to-use, full-blown 3-part harmony music program utilizing the full potential of the 2068. That I would like to seel

S 60 TO se

i9 DATA 19,16,18,15,19,-12,16, E p gU, ,F a ASA RI

is CATA 7,-12,9,5,11,2,12,4,14 ~3216,7,17,-18,14,9,14,7,14,-5

29 DATA 17,14,16,12,17,-19,14,

¿13,18,14,-5,11,7,18,8,11,-18,

2,7,-1,7,—-5,12,31,18,180 ats CATA 19,-10,21,17,19,.16,17, 2,15,11,14,5,12,—12,12,—-8,12,-5 12,2

JO CATA 14,2,14,.7,-6 14,9,5,9, 1o /91,9:12,4,12,6,-5,12,11,7,11, ~ s p

35 DATA 14,11 34,7,14,-6,9,6,3 $,2;719,12,5,8,2,11,-5,9,2,7,2, .-

48 CATA 14,9,14,7,14,-6,9,6,20, 10 119,12,.6,14,6,12,-5,11,7,11, -—,. ii

435 Para 14,9,14,7,14,-12,16,7,

27412,-6,11,7,9,8,7,-5,7,-1,7,

a 2

28 LET co=068: LET pl-

OG FUR n-1 TO co

GG BERD a,b

55 FOR c-1 TD 3

¿8 BEEP .92,a BEEP .62,6

79 NEXT c

Ge HEXT n

GS LET pi=p1+1

38 RESTORE : LET co=48: GO Ta

p ul

This article is reprinted from the June/86 edition of the "THE DATA EXPANSION", the newsletter of the T/S Users Goup of Fort Worth, Texas

TIMEX TIPS By Chuck Dawson

QUESTION: I have a Byte-Back Modem and would like to down load Programs for Bulletin Boards which have been sent in HEX. Is there any way?

ANSWER? The softuare supplied with Byte-Back modems will not translate Hex, so a good way would be to download the program into the buffer and then convert it after signing off. This is not as easy as it sounds, but it is possible. Belou is a program that can be loaded from tape, then the terminal program activated by using RANDOMIZE USR 61187 (which does not wipe out the buffer.) .

When using this or any other buffer dounload, it is important to remember that the buffer must be opened just before receiving the program. That is, avoid extra characters captured in the buffer ahead of the first byte of the download. Some BBS's automatically open your buffer for you by sending a Control-R (this uorks for M-TERM, Z-TERM 64, or the Byte-Back S-TERM softuare.) Other BBSs allou time for you to open the buffer before beginning the dounload. A feu extra bytes at the end before closing ^ the buffer does not seem to make any difference. Here is the program:

1 LET VARS=PEEK 23627*256xPEEK 23628: LET J=27128: PRINT #13 'STANDBY"

2 FOR I=J TO VARS-2 STEP 2: IF PEEK 1<48 OR PEEK 12571 THEN LET I=I-1: GOTO 6

3 LET A-PEEK I: LET B-PEEK (1+1)

4 LET A=A-48-7x(A>57): LET B=B-48-7x(B>57)

3 POKE J,16*A+B: LET B=J+1

6 NEXT I

7 LET A-INT (J/256): LET B=J-256xA

8 POKE 23728,8: POKE 23729,A: POKE 23627,PEEK 23728: POKE 23628,PEEK 23729: CLEAR . ]

9 STOP

Now, to check for accuracy, PRINT PEEK 23627, If you have not made any errors, you should see 5. Before SAVEing to tape, POKE 23627,6: POKE 23641,7. You can now SAVE the program to tape to be LOADed before each download. After the download is

completed, exit to BASIC. GOTO 1 to translate the program to usable form. The word STANDBY should appear at the bottom of the screen while the translating is taking place. When you see the program has been completed, look at the listing. . If the dounloaded program has the lines in the range of 1-9, there vill be duplicates since the translator has lines 1-9. Do not use the DELETE key because this will delete all lines numbered 1-9, Instead, type 1 and ENTER. Continue until the first 9 lines are gone and just the downloaded program remains. Before trying it out, SAVE it to tape. By the way, don’t expect to get a good dounload every time, but keep at it and you uill be successful.

QUESTION: I am neu to machine code programs and I would like to ask a basic cuestion: If I call a short MC routine from within a BASIC program, hou do I gest the result back to a BASIC variable so I can use it? i

i

ANSWER : This question keeps being asked, so I am glad to try

to help. There are two ways to approach this problem. When number has been manipulated by the various registers, it can be stored for later use by loading it into an unused memory

location (or more usually two). After returning to BASIC, the number can be recovered by LET A=PEEK loc + 256xPEEK (loc+1). Several numbers could be calculated by the MC part of the program and stored in different locations. All you have to do is remember where you put them. If the MC routine produces only one answer to be transferred to the BASIC program, a short-cut method is to leave the answer in the BC register (TS-2062 anc Spectrum) or the HL register (TS-1000 or TS-1500). If the routine was called by the line LET a=USR (64000), then when the MC routine RETURNs control to BASIC, the value that was in BC will now be in the BASIC variable A. If you called the routine with PRINT USR (64000), then the answer will be printed on the screen upon RETURN :

QUESTION: I have a problem with a program uhich includes user defined characgers. It works just fine in the normal mode, but when run with the 0S-64 (64 column cartridge), the user characters do not work.

ANSWER: When the TS-2068 is switched into one of the enhanced display modes like the 64 column, the user defined graphics are moved from 65386 to 63256. If you have defined a character for GRAPHIC A, for example, by POKING values into addresses starting at 65336, then you have poked the wrong location when in enhanced mode. It should have been 63256. You would have to change that location each time you switch from one mode to the other. A good way out of this is to use the built-in GRAPHIC ADDRESS CALCULATOR. That is, calculate the starting address oF GRAPHIC A by the expression LET address=USR 'A'. Then you can POKE address and address+1 and address+2, etc. No more changing the program by hand each time you plug in or out the 64 column cartidge. By the way, if you like to put machine code in a REM statement at the beginning of your program, it, too, will move when in enhanced mode. Always use PEEK 236354256xPEEK 23636 to calculate the beginning of the program listing. Add five to cet the correct USR call location if the MC starts just after the REM keyuord in the first line of the program. XXXXXXXXKWXEXXXMEXXXXEXEXNXKXEXXXXXXEXXXXXXXXXXNEXXXXXXXXXXXXXXXXXXXX

This program was developed by Dick Scoville of the Triangle Sinclair Users Group for the 2068. The program goes through the display file and darkens up each pixel. The resulting program listing printout is nice and dark - especially when photocopyiny.

12 CLERR 555285

15 LET a-552587

28 RERE n: POET a.n

238 1 a-cas1: $0 TO 28

46 DATA 17.8,221.2313,1,98,3,42, 354,22,28,125,157,31,192,18,35,19 113,32, 245,15,214,225,37,34,54,39 2,281

"j

The following is reprinted from June/86 edition of

Expansion", the newsletter of the T/S Users Group of Fort Worth, Texas.

PASCAL By David Baulch

One of the many reasons that I wanted to Own a personal computer was for wordprocessing, grades (Mr.Baulch is a teacher - Ed.), keeping records (database), and for learning. I learded from a book with questions to the proper people to help me over the tight spots. I was told many times, "The only way to leard to write programs is to write programs." I never knew there was to be a plan or flow-chart. After learning BASIC, I found there were many other computer languages. One of these was PASCAL. PASCAL, I discovered, had the structure I was missing in my earlier learning. I had to go back and re-learn all Over again.

Dr. Niklaus Wirth, inventor of PASCAL in 1968, wanted a teaching aid to be used as a hypothetical language to teach others programming and structured, top-down design. Thus, PASCAL was born of a necessity. By 1970, he had a working implementation. After using PASCAL in the commercial and acedemic world for a few years, he found many shortcomings, many nonstandard extensions and awkwardness for large programs, and defects, problems in manipulating the memory and peripherals in a computer directly. He went further to form MODULA and, finally, MODULA-2. Even though Dr. Wirth found PASCAL to be lacking, many people continue to use it and praise its virtues.

"Introduction to PASCAL and Structured Design", D.C. Heath and Company, Nell Dale and David Orshalick, is a very good book either for the beginner or for one who is more advanced in the use of computers and programming languages. This is a book I borrowed from the Computer Science classes at the school where I teach. Most of the time when you hear the term PASCAL, you think of Borland's Turbo PASCAL. If you are just beginning , PASCAL sounds like some type of musician or an artist of some sort. Of course, neither is true.

Computer programming is nothing more that the Process of planning a sequence of instructions for a computer to follow, and the program is the sequence of instructions outlining the steps to be performed. There are two phases to the programming process: the problem-solving phase (analyzing the problem, developing the algorithm, and testing), and the implementation phase (testing the program, debugging the program, and using the program). Utilizing the top-down design approach, you break the problem into a set of sub-problems until it has expanded every task to the smallest detail (hierarchical or tree structure). This makes the problem easier to handle. Once the problem is

3

broken down to smaller problems, the task of encoding your program becomes a relatively simple procedure.

One of the nice things about PASCAL is the statements that

are used in the constuction of a program.

The heading gives

you the name of the module or program and what is expected to be used. The declarations are like LET statements and can be broken up into things like constants, variables,

characters, and Boolean.

"BEGIN-END" pair. something that even

The statements are the executable part of the program or module,

and are set off with a

This makes the documenting of the program a non-programmer can read. Many times

the declarations and statements are self-documenting. Once

the program is written and de

bugged, it is compiled -

because PASCAL is a compiled language. Therefore, when the code is RUN, it is run as assembly code.

I still have much to learn, but it seems to be somewhat easier learning PASCAL after learning BASIC.

000000000000000000000000000000000000000000000000000000000000000000000009000

The following is extracted from a recent West Coast Computer Society Newsletter:

PACIFIC COAST COMPUTER FAIR ASSOCIATION (PCCFA)

At its April l4th meeting the PCCFA voted to take some drastic steps that will allow it to continue to put on events in this and future years.

Instead of a flashy, expensive, 2-day event at Robson Square such as in past years, future fairs are envisioned to be simpler l-day shows, with a swap-meet/flea market (like the one at S.F.U. in January) as an integral feature.

Why the change? Firstly the fair was organized mainly by volunteers in their 'spare time'. The people who have put in most of the work (often during business hours) to put on past fairs, can no longer do so, and not enough new faces have stepped forward to replace them. the nem format will only take a fraction of the effort.

Y

Ll PEED

Secondly, the losses experienced in the past two years have reduced the financial reserves to the point where putting on another large fair would be difficult and risky. But we should be able to put on the simpler fair once or maybe even twice a year for years to come.

Thirdly, home computers are no longer the novelty they were 5 or 6 years ago. As a result, fewer people are looking to buy their first computer, and more are looking for software, peripherals, and accessories (especially bargains) to use with the computer(s) they already have. The addition of the swap-meet/ flea-market section caters to these people. Finally, the reduced costs of the new fair will allow a reduction in the admission charge.

The date of the next fair has not been finalized, but will likely be sometime in September.

FANCY TITLES From YOUR SINCLAIR and ZX COMPUT ING

Have you ever wanted to have the title of your oun personal program to have something special? The people from ‘across the pond" have come up with some interesting variations for you to try. Since these are so short, I suggest that you just type them in and give them a try. Then, change 'things' around and experiment with them. I have been "playing" and they: are quite interesting.

From Eddie Duncan-Dunlop, Bridgend, Mid Glamorgan, a program that ‘shoots’ titles onto the screen with a sort of Laser Effect.

1 REM YOUR SINCLAIR

10 REM Shooting Titles

20 REM By Eddie Duncan-Dunlop

60 PRINT AT 0,0; INK 7; * YOUR SINCLAIR' 70 FOR x=0 to 127

80 FOR y=0 to 7

90 IF NOT POINT (x,y+168) THEN GOTO 150 100 PLOT 2xx,3xy+80

110 PLOT 0,0: DRAW OVER 1; 2¥*x,3%y+79 120 PLOT 0,0: DRAW GVER 1; 2¥*x,3xy+79 130 BEEP ,091,2

140 PLOT 2xXxx,3xy+81

150 NEXT y 160 NEXT x

TWO VARIATIONS: the first will invert the title and the second will 'darken' the effect. Just substitute either or both lines to see uhat they will do.

90 IF POINT (x,y+168) THEN GOTO 150

AND/OR 70 FOR x=0 TO 127 STEP 1/3

Jasner Visser sent in this short routine to Print in a rather original style.on the screen. From ZX COMPUTING:

1 REM characters

100 LET 1=0: LET h=0

130 INPUT "A word please..': LINE as

140 IF LEN at>10 THEN PRINT AT 10,0; FLASH 1i BRIGHT Lett -: 10 CHARACTERS !!*: PAUSE 50: PRINT AT 10,0;,,: GO TO 130

e

PRINT AT 0,0: INK 7; as

-OR a=0 TO LEN asx8

FOR b=175 TO 158 STEP -1

iF POINT (a,b)=1 THEN GO SUR 220

LET h=h+3: NEXT b: LET h=0:LET 1=1+3: NEXT a

PRINT AT 0,0;,,

210 STOP

220 PLOT 1,50-(h*3): IF POINT (a-i,b)=0 THEN ORAU 0,3

230 PLOT 1,50-h: IF POINT (a,b+r1)=0 THEN DRAW 3 a

os C)

C

VR Fs pe pes Wo SJ] 2. 60

o (Cc

240 PLOT 1*3,50-h: IF POINT (a+i,b)=0 THEN DRAWN 0,-3

258 PLOT 14+3,50-(h+3): IF POINT (a,b-1)=0 THEN DRAW -3,0

2 RETURN

E E

i8

This program is reprinted from the June 1986 edition of TIMELINEZ - the joint newsletter of the three Timex-Sinclair User Groups in the San Francisco Bay area:

EBZUG PUG SVSTUG

M E M S c A N by Russell English

This is a short machine code routine that displays a memory map of the computer. It is 2968 specific, but can easily be altered for the Spectrum with two pokes.

It works by scaning every other address, checking for zeros. If something other than a zero is found, it assumes that the address is being used and a point is plotted on the screen.

It teste relocatable, called up with RANDOM-ZE USR n, where n is the first address; Overwrites the screen, ie, it does NOT clear the screen first; does not scan the last few bytes of memory!

ignores the external ROM; is interactive with the display file(s).

To scan every byte in the first half of memory, POKE

6353519,8. To scan every byte in the second half of memory, POKE

65592,128: POKE 65519, Ø. For SPECTRUM, POKE 65515,229 : POKE 65516, 34.

A title can te added to a display with: PRINT AT 1,193 "name " The display may be compared to the memory mao on p. 254 of the 2968 User Manual.

11

3 33 Io x £x 2. 2237 a re = 237 A HI £2 43 = a == = al Pe ree Pm | ia: ¿1305 oa Le toe E £z 32 2,82 So 13: 23,2 MT Heascan 34 I 2c oe zx f - =< = SFPOCTRUH POHES Fi-223; 42-34

(burfer area)

ROM Doris VU

9909009000090000000000000000000000000000

900000000000000000000000000000000

a NEW 2068 PRINTER INTERFACE! -Works with all printers which use the Centronics parrallel standard.

-Includes all connecting cables. No other purcha es are required.

-Uses the LPRINT and LLIST commands directly from basic. No USR commands necessary.

-Allows for full page, high resolution graphic Screen copys.

-Allows for full page, high resolution color screen copys using a grey scale system.

Similar to the Macintosh screen.

-Compatible with ALL software designed for the Aerco Centronics Interface. e.g. MSCRIPT `

-Compatible with ALL software designed for the Tasman Interface. Including Tasword II. (Some POKES are necessary to customize Tasman Software to the Hacksel Interface. These are included of course.)

Compatible with a great many programs that use the LPRINT and LLIST commands such as VU-CALC or PRO-FILE.

-Compatible with Omnicalc II.

-Quite simply the most compatible printer interface availiable for the Timex 2068! And as we area Canadian company, there is no exchange or duty. Ordering a Tasman Interface from the States would cost well over $100.00!

-Availiable in two types of boards.

CARTRIDGE BOARD 23.93 REAR EDGE CONNECTOR BOARD 75.99

Please add $4.00 Postage and Handling. Ontario Residents please add 7% sales tax. Send Cheque or Money order to:

Hacksel Elecironics

247 QUEEN ST. WEST TORONTO ONT. CANADA M5V1Z4 (416)596-1663

ph n

[REN

F

Di

E

Er. 6a un At 4 ty DNE: ior be LE - A. A rr

ed

MS wd (aed ui

NT tr > aop

VUE Hep 5

LN ee Ti :

úl xx TEX] Mer we dr un e ple

PEWA:

o000000000000000000000000000000000

"obo WE neg QOL CE v d i [6 «1 eng 4 Wet ob BH

worm ca Cad e e rum Warp ene eu pp eg eu vd core IA ene «sd Ferr rar cn ap eu tno Ung Cup sd un mr Hee or ep Nr C ri " mer Me e an ea n pP LS ul ap d un Cac ed - M Avila pe uu «deo t. Ca va pe Ur: MENE «ll Ea at n ro ro rm ui p On ed mua ns Uu ns a ee wed M. Et. (ur | ("epe ctr qe eu en 63 d u EE uu

H j

1 " mai wary. Pr. tf

Ti ! sl [E] "i

DNE. TIS TIEN

Zn TEC vd ed

LISTING 1

Here's an oldie that first graced 1 REM 11111111112222222222333

fa: 4 1 i E 33333334444444444555555555566666 our pages back in the spring o 8665567777777777855858855559999992 '83, originating in Sinclair 23920090000001111111111222222222 Programs Jan/Feb '33. /— 2 LET S1=16626 3 LET S2-16514 4 LET S3-15653 S LET $4=16559 7 Cer S7-16819 ; : T LET = E isa owe e pro 3 Ler 38-16525 ram to move the display across 9 LE = 2 ; is Í aad rs 19 LET A$="2A6C49ES11218819010 the screen in any one of eight Looe San Ta o oE Ea oO OE DS2ES112 irecti fofi ; 1lO0GEDS2D191BSO 2n 95629 directions, Enter Listing 1, keying 59819F5ECI2A9C4811D068219906162B4E5 126 characters in the REM statement 30337555 752582 ¡893182097 2b ise in line 1. The variables S1 to S9 SROs OCDS EITA ESIE E ¡ 2CD31 4 248C9CDCCA correspond to the compass points GCDS24O0Cg- NW, N, NE, W, E, SW, S and SE. ` 19 FAST RUN the program and the machine 28 LET I-16514 code will be POKEd into the REM $9 DOR J=l TO LEN AS STEP 2

40 POKE I, (CODE FHEROUJX-2SFRIÍIG64C

statement. Then delete lines 10 to 70 ODE R$ tJ+1) -28

4 LET I-I«1 and replace then with the demon- SS IF PEEK I-118 THEN GOTO 79 ; me a A ical 62 NEXT J

stration routine in Listing 2. If the Se SLOU

direct command “GOTO 10" is then

entered, the versatility of this scroll LISTING 2

program will be demonstrated. Sub- iSBR ET As="sa"

mitted by Stephane Crainic, of Paris. , 89 LET AS(2)=STRS CUAL AŞA) +1

(16K ZX-81] . 88 IF A$(2):"5" THEN GOTO 20 48 FOR I-1 TO 22 PRINT “===SINCLAIR USER AND PROGRAMS ==="

Ge NEXT I ? FOR I-1 TO 32 29 RAND ven URL As

LS : coTO 20

X wl" "m

4 | Ml ]

" al Y PRE qe

7 ia "i

tr

' jn

f

"AVR

bs at, Y its Vi, oy t pu

nm uh wu

EE

* (uU C ve Qu

TE

ui du

T Jh.

Another goodie from the mists of time. This also appeared in our pages in the Spring of '83 and comes from Sinclair Prograns.

1 REM 244 q- 10 LET As="* 20 in gl. ni Bg="s" THEN -STOP

40 LET AG=A

50 CLS di

== ES INT $

7 INT “LEN = "; . oe BYTES" GTH ¿LEN A$ 7D;

80 GOTO 2a

109 LET X-16514

185 FAST

110 IF AS="" THEN GOTO 168 ae ee X,16£*CODE AS$+CODE AS (2 130 LET A$=A$13 TO 3

140 LET X=Xei1

150 GOTO 110

168 SLOU

178 STOP

10 SAVE “FAST TAPE ROUT INR" 26 PRINT “FAST TAPE ROUTINE 30 PRINT "TO SAVE RAND USR 325

28 PRINT “TO LOAD RAND USR 325

50 PAUSE 158 6@ RAND USR 16738

>

UICK TAPE, a machine code

tape routine, will allow you to

save and load 16K programs

on the ZX-81 in less than a minute. In technical terms the pro- gram increases the machine baud rate to 1,500. To put in the program for the first time, type-in and run the hex loader, which is the first pro- gram in the listing. In answer