[Zx81:Type-Ins] "SyncWare News" campaign...

Discussion about ZX80 / ZX81 Software
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

[Zx81:Type-Ins] IREG 1000 - SyncWare V4 No 1

Post by David G »

When the I register is changed, the screen turns to chaos, which is great for getting peoples attention and simulating explosions

IREG 1000 from SyncWare News Volume 4 No. 1 Sept.-Oct. '86 pages 23-24

by Wes Brzozowski, secretary of SINCUS
Ireg 1000 by Wes Brzozowski

The TS1000 owners manual states (p. 123) that upon return from machine code, the I register must have the value 1Eh. However, it can be a lot of fun breaking the rules. The I register points to the upper byte of the character generator table in the ROM. If we change it, the character set changes to a random hash, which can be a useful effect.

This program works by setting a basic variable, IREG, equal to what we want in the I register. RAND USR 16514 will the change the value in the I register. When this register is changed, the screen turns to chaos, which is great for getting peoples attention and simulating explosions.

Only the 1 REM line is necessary for the program to operate, so after you enter and test the program, you may delete all of the other lines. The REM line must contain at least 38 spaces. Use your favorite POKEr program to enter the data. To make this routine relocatable, you would have to change the first instruction (LD HL, 40A3) to point to the name of the variable that you would like to look up the value of(IREG in this case). If you would like to change the name of the variable, then you can change the data at address 40A3 to any variable name that you desire. Just end the name with a + sign.

The Basic program listing has several REM lines containing the source listing of the machine code. It is not necessary to enter these lines into the program.

Enter the data left to right and top to bottom.

Code: Select all

     DECIMAL POKE TABLE
33  163 64  34  22  64  14  0
205 28  17  48  2   207 1   35
237 91  28  64  205 246 25  235
34  28  64  205 205 21  237 71
201 46  55  42  44  21

Code: Select all

 IREG Basic Listing

   1 REM 5ÝRND6-RND: LN 0)K¢INT ¡7GOSUB [0RNDLN PLOT ; FOR 60RNDLN LN + GOSUB ?TAN IREG+ 110 REM LD HL,/1000
 120 REM LD (H4016),HL
 130 REM LD C,0
 140 REM CALL H111C
 150 REM JR NC,/180
 160 REM RST 08
 170 REM DATA H01
 180 REM INC HL
 220 REM LD DE,(H401C)
 230 REM CALL H19F6
 240 REM EX DE,HL
 250 REM LD (H401C),HL
 260 REM CALL H15CD
 270 REM LD I,A
 280 REM RET
1000 REM DATA "IREG+"
2000 REM END
4000 LIST 110 
5000 FOR J=0 TO 30 STEP 2
5010 LET IREG=J
5020 RAND USR 16514
5025 NEXT J

Code: Select all

IREG Disassembly 
4082 21A340   LD HL,40A3
4085 221640   LD (CHADD),HL
4088 0E00     LD C,00
408A CD1C11   CALL 111C
408D 3002     JR NC,4091
408F CF       RST 08H
4090 01        ERROR 2
4091 23       INC HL
4092 ED5B1C40 LD DE,(STKND)
4096 CDF619   CALL 19F6
4099 EB       EX DE,HL
409A 221C40   LD (STKND),HL
409D CDCD15   CALL 15CD
40A0 ED47     LD I,A
40A2 C9       RET
40A3 2E37     LD L,37
40A5 2A2C15   LD HL,(152C)
40A8 76       HLT
40A9 00       NOP
40AA 6E       LD L,(HL)
40AB 0D       DEC C
40AC 00       NOP
IREG_16K.p
P file for ZX81
(1.25 KiB) Downloaded 70 times
IREG_16K.ASM
Assembly file with comments
(3.98 KiB) Downloaded 69 times
Moggy
Posts: 3267
Joined: Wed Jun 18, 2008 2:00 pm

Re: [Zx81:Type-Ins] "SyncWare News" campaign...

Post by Moggy »

Over the years I've posted a number of UDG conversions in the games section which start with a short M/C routine to alter the I reg state to allow UDGs to then be used, I find this quite a useful feature of the 81.
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

[Zx81:Type-Ins] v3n3 TS1500 Is More Than Meets the Eye

Post by David G »

Unfortunately the scan is missing a bit

The 1500 did not use the Ferranti ULA and so it had slightly better memory circuitry

"TS1500 Is More Than Meets the Eye" from SyncWare News v3 n3 Jan-Feb 1986 page 23 by fn [presumably, Fred Nachbaur, Technical Director of SyncWare News]

Image
TS1500 IS MORE THAN MEETS THE EYE

We've all (well, almost all) used and loved the ZX81 and TS1000, and many of us have become enthralled with the TS2068. Yet there is another Timex/Sinclair, the TS1500, which somehow "fell through the cracks," as it were, and is only occasionally even mentioned, even within these pages. If anything, the only thing we've heard were reports about bugs in the ROM, some rumours about "bank-switching ability," and reports about SOME units not working with SOME software or add-ons.

The TS1500 is just a fancy ZX81, right? WRONG! Recent discoveries by Greg Harder (1st-prize winner of the TS1000 category in our screen contest) demonstrate that the 1500 is capable of FAR SUPERIOR "software-only hi-res" than ever was seen on a ZX81! All but the highest bit can be EXACTLY CONTROLLED! For low- to medium-density plots, the results are most impressive. Oddly enough, this only works if: 1) the 8-16K region is fully decoded, as with a Hunter board or 64K pack, OR 2) if the ROM is replaced with a TS1000 ROM. (?!) To see if it will
work with your particular unit ... Mr. Harder's
...[missing]...

Code: Select all

   1
  10
  20
  30
  40
  50 POKE L+3,71
  60 POKE L+4,201
 100 FOR N=0 TO 32
 110 POKE L+1,N
 120 RAND USR L
 130 NEXT N
 140 FOR N=0 TO 255
 150 PRINT CHR$ N; 
 160 NEXT N
 170 FOR N=0 TO 100
 180 NEXT N
 190 POKE L+1, 30
 200 RAND USR L
"The machine-code in the REM line is:
LD A,nn
LD I,A
RET

"For values of I from 0 to 29 the screen fills with garbage as the computer reads the space character pattern at different ROM addresses [just as on the ZX81/TS1000]. For values 30 and 31 the normal pattern is addressed.

"However, if I is set to 32, then something strange happens, and the pattern printed to the screen consists of:

A) Chr. codes 0-63, a direct binary equivalent is printed.

B) Chr. codes 128-191, a complimented pattern is printed.

"This means that 128 binary patterns are directly available, from 0000 0000 through 0111 1111, Binary patterns with bit 7 set are not available, as the complimented form is automatically sent, and patterns with bit 6 set (64-127 and 192-255) are output as the "binary equivalent" of the token characters." -G.C. Harder

Greg is presently working on a comprehensive hi-res package using this discovery, and yours truly is threatening a TRUE 64-column utility. If you try this with a TS1000, you'll only get a black screen.

Internal circuitry is also far superior to the ZX81/TS1000, employing LS244 and LS245 bidirectional buffers instead of resistor strings. Could this be part of the "secret?" Tom Bent reports that the TS1500 SCLD has THREE UNUSED PINS (chip selects? bank switching?). Answers to these and other questions hinge on the following: is there a TS1500 tech manual? As far as we can gather, the answer is "NO." Yet there is the occasional bit of corporate (Timex) technical memos which suggest that one was perhaps under construction. Are there any ex-Timex engineers out there reading this column? If so, let yourself be known! -fn
There are only a few differences between the ZX81 ROM and the 1500 ROM. See Wilf Rigter's web site
Post Reply