Forum

Author(s): Ed Burton; Paul Donnelly; R. Burke Mawby; Robert Gray; Larry Desch; Chia-Chi Chao; Tony Gomez; Dennis Silvestri
Publication: SyncWare News
Pub Details: SyncWare News v2 n3 (Volume 2, Issue 3)
Date: Jan-Feb 1985
Pages: 4-6

There is a smart terminal program for the TS1000, 1500 and ZX81, but it has not been marketed. I contacted the Micro-Systems Software Company, and they told me that they DO have a Terminal II program for the 1000. I understand that there are a lot of people who would like this program. We need to know your interest in the idea of getting this program on the market. There is a company that will market it, but they need a demand for the program in order to release it.

We Sinclair computerists have to stick together and see if we can get them to sell the program so that we can up and down load, just like the 2068 computer can. The 1000 may be small but we were first on the market and I think that its our turn to stand up and let people know who we are.

If you would like to show your support in getting the Terminal II program out, please let us know. Let your user groups in on it, tell everyone you know and print it in your group periodicals.

Please show your support. Send your letters to:

Ed Burton
Timex User Group
[address omitted]
Merced, CA 95340.


As more and more “Spectrum” look-a-likes are appearing, the need to have a standardized bus conversion is necessary. This is so peripherals for one persons machine will work on another, whether they are homemade or bought from England.

A buffered bus board is clearly required, but how should it look? For instance:

1. Should the address lines be bi-directional (for DMA)?

2. How should the y, U and V signals be handled? Should they be ignored or converted to RGB (that is, put RGB where these pins are on the Spectrum bus)?

3. What about ROMCS? How should we decode or otherwise handle this and other signals, which don’t mean anything to a 2068? (or do you mean Spectrum?- ed.)

We are looking for comments on from anyone who is making and/or buying devices or comtemplating it.

Please send your comments to:

Paul Donnelly
LIST User Group
PO Box 438
Centerport, NY 11721-0438


Gary Smith reports that a lot of Forth 2068 software has been sold. He thanks all of you. The current issue of his Xforth Xchange is almost totally 2068 related improvements and refinements. If you have not received this issue, then make sure you drop him a line and get this important stuff. His address is elsewhere in this issue.


The Aerco Disk User Group is being formed. This national group caters to the interests of those who interface their computer with the Aerco disk interface. Contact:

R. Burke Mawby
ADUG
PO Box 89
Matawan, NJ 07747


Dear Editor, there is a mysterious character (~) that appears in program listings in several places, for example, the ZX/Profile manual. This character is nonexistent on my TS1500. What does it mean?

Robert Gray
[address omitted]
Morristown, NJ 07960

This Mysterious character is a tilda. It is better known as CHR$126 on a large printer. On a Sinclair computer, CHR$126 has another very important meaning. When you LIST a program, and come across this character (7E hex), it says “the next five bytes are a floating point number so skip over me and the next five bytes.” To the Memotech parallel printer interface, it has another meaning. The first line of a listing done with this interface will show this character instead of the inverse > (cursor). It is practically a trademark for this device. Another thing to remember about this CHR$ is that you cannot edit it in a REM line (see LEDout, SWN 2/2), or you will lose six bytes of code in the middle of your program. The machine code mnemonic for 7E is LD A,(HL).


Dear Editor, I have purchased a Byte-Back RS 232 unit for my 1000. This has worked great for telecommunications at a low cost. Although the Modem 2 software works great, it is somewhat inconvenient for upper and lowercase conversions. Do you know anyone who has or knows how to improve this problem? Byte-Back sent me the machine code listing, but I don’t know where to start. Does anyone know how to get this RS232 port to run at 1200 baud, and will the Modem 2 software run that fast? Also, could I possibly use the 2050 modem software instead?

Larry Desch
[address omitted]
Iowa City, Iowa 52240

Sure, you can use the 2050 modem software. Just be sure to pick up a 2050 (Westridge) modem with it (see the first letter). For the upper and lower case problem, look around the listing until you find an IN command (such as, IN A,(C)), and follow the listing back (to find the conversion table) and look for an ADD A,14 or SUB A,14 (also SUB A,7) surrounded by a bunch of CP (compares) instructions. This should place you squarely in the middle of an ASCII conversion table. You can compare your manual to the RS232 character table instructions and change these conversions to print out any characters that you want. As for the 1200 baud rate changes, I’ll have to forego that one for the time being as I don’t have the interface. Does anyone else know? Let us know.


Dear Editor, I am planning on converting Spectrum software and I was wondering if you could answer a few questions.

1. Which is better, Zeus Assembler or JRC Z80 Assembler?

2. Which is a good machine language book for the 2068?

3. Which book has information on Spectrum system variables and memory map, and is Dr. Ian Logan‘s, “The Complete Spectrum Rom Disassembly” worth buying?

4. Do you know the difference between the two ROMs? (The 2068 uses 8K more than the Spectrum.)

Chia-Chi Chao
[address omitted]
Moraga, CA 94556

Good questions! First, if you are planning on converting Spectrum software, you’ll need a good disassembler too. Since many Spectrum programs are quite large, I suggest Hot Z-Aros, because you can load large programs in memory with HZ plugged in the cartridge port. (This is the only program currently available that can accomplish this feat.) I have not used either Zeus or the JRC assemblers at this time, so I can’t say which is better (Anyone out there care to do a comparison? Let us know.) Since the 2068 has a Z80 CPU, the obvious advanced machine language programming manual is Rodnay Zak’s, which is available everywhere (I’m not fond of it myself). I suggest a good community college course to learn this, because you must do the work. Hands on is the only way to learn this abstract concept. You can pick up applications books for tips, but there really is no good way to learn machine code (only the hard way). I strongly suggest Dr. Ian Logan’s book. The code for most of the routines is identical between the two machines. The location of the code has been changed and some of the routines have been expanded in the 2068 (see Ray’s article in this issue). For the changes (if you don’t want a Romswitch), I suggest that you subscribe to LIST or otherwise get in touch with Nazir Pashtoon c/o LIST, [address omitted], Centerport, NY 11721. He has cross referenced all of the conversions between the two machines. Lots of Luck!


Dear Editor, I have the Compusa disk drive system that I use with a 1000 and a 1500. With the 1500 computer, RAMTOP is set properly no matter how much extra ram I have plugged in, but with the 1000, RAMTOP is always set at 31379. If I poke ramtop to another value, it doesn’t work.

Tony Gomez
[address omitted]
Thousand Oaks, CA 91362

The problem of improper RAMTOP is due to the value in the BC register pair on powerup. In the 1000 on startup, BC holds 7FFF. In the 1500, BC holds 0000 (uninitialized). Subsequent decrementing leaves RAMTOP all the way up in a 1500, and has it somewhere less than 16K in a 1000. However, if you can decifer the abstract program at the back of the manual, you can set both ramtop and the directory pointer at will.

In the following listing, RT=Ramtop and PT=Directory pointer. PT can be any value above Ramtop or in the 8-12K block (needs enough room for two screens). This listing sets Ramtop at the level for 16K increments with PT at 2 bytes above it.

   0▒REM COMPUSA FDC-100  V.5
10 LET RT=PEEK 16388+256*PEEK 16389
20 PRINT "CURRENT RAMTOP IS ";RT
30 PRINT "ENTER COMPUTER/RAM COMBINATION"
40 PRINT "1- ZX-81/TS-1000 WITH 16K"
50 PRINT "2- ZX-81/TS-1000 WITH 32K"
60 PRINT "3- ZX-81/TS-1000 WITH 64K"
70 INPUT A
80 IF A=1 THEN LET RT=31379
90 IF A=2 THEN LET RT=47763
100 IF A=3 THEN LET RT=63571
105 IF A>3 OR A<1 THEN GOTO 70
106 CLS
110 PRINT "RAMTOP WILL NOW BE SET TO ";RT
111 PRINT "FOR COMPUSA DIRECTORY"
112 PRINT "PROGRAM DELETES ITSELF"
113 PRINT "BECAUSE OF POKES TO RT AND PT"
115 PRINT "WHEN K CURSOR RETURNS"
116 PRINT "RAMTOP = ";RT
117 PAUSE 500
120 LET HI=INT (RT/256)
130 LET LO=RT-HI*256
140 POKE 16388,LO
150 POKE 16389,HI
160 LET PT=RT+2
170 LET HI=INT (PT/256)
180 LET LO=PT-256*HI
190 POKE RT,LO
200 POKE RT+1,HI
210 NEW

As a TS2068 computerist with very little programming knowledge, I rely on ready to run, friendly programs. I would like to see an article on how I can make backup copies of programs that appear to be unlistable.

Dennis Silvestri
[address omitted]
New Haven, CN 06513.

There are a few built in commands that you have to help you in your struggle. First, use your MERGE “” command. No program is “safe” from this (see Tasman and Quadrachart elsewhere in this issue). For those unlistable programs, try changing the color of the INK to see if you can then LIST it and see it. Some programs (mostly games) are headerless. There is just nothing to list in this case. I suggest an attenuator and two tape decks. A Winky 2000 (G. Russell Electronics) will allow tape to tape duplication to make backups. A Header reader (we’ll have one in the next issue) will read out the parameters of the CODE and allow you to MERGE and LOAD CODE in one line, and then SAVE everything in one command line. Quite often programs will reserve a flag somewhere in the system variables that will tattle on your copy, and cause other problems. There is no end to copy protection schemes.

One day, I was merrily strolling down the street and noticed a small square paper blowing by me in the gentle breeze. Being a responsible, civic minded citizen, I knelt down and retrieved the paper, meaning to throw it in the trash at the next available can. I had my kids with me, who still require being led by the hand, so I stuffed that paper in my pocket and went on about my business.

A couple of days later, while going through my pockets to prepare the wash, I rediscovered that little paper and this time put it in my shirt pocket. I went upstairs to toss it out and low and behold, I noticed some very faded writing on it. I said to myself, “Hmmm, this is thermal paper with some dot matrix type on it!” Upon making that discovery, I set about trying to rejuvenate and decipher the note. I tried for hours to reassemble all those faded characters, but in the end, alas, I could make neither heads nor tails from my discovery and tossed the paper in the can. All I had to show for the hours of trial and error, trials and tribulations, etc., etc., were the following two lines. They don’t do me any good, but maybe you can pick up where I left off and find a use for them.

MERGE "": POKE 23624,9: BORDER 1: INK 1: PAPER 1: CLS : LOAD ""SCREEN$ : PRINT AT 16,0: LOAD ""CODE : STOP

SAVE "VU3D" LINE 9: SAVE "VU3D"SCREEN$ : SAVE "VU3D"CODE 30720,34815: STOP

The moral of the story is: Role up your sleeves, grit your teeth and DO IT. DON’T rely on anybody, because you can’t count on being given exactly what you need. You don’t always find the answer you need, but I’ve found that picking up tips here and there can be useful if you can just apply them to your own situation.