JRS SOFTWARE

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

JRS SOFTWARE

Post by David G »

After having my interest piqued by the Interface magazine thread, i've been digging into JRS advertisement seen on page 20

Dunno how good these games were but the advertising copy text is superb!

JRS advert, Interface 1982 February page 20
JRS advert, Interface 1982 February page 20
ZX80 JRS SOFTWARE ZX81
19 WAYSIDE AVENUE, WORTHING, SUSSEX, BN13 3JU
TELEPHONE WORTHING 65691 (Evenings and Weekends only)


ZX81 - SLALOM (16K RAM PACK REQD.) *NOW ENCHANCED*
Slalom events always draw great crowds to the ski resorts and the T.V. cameras are never far behind. Now the skier on your T.V. screen is directly under your control and his success in negotiating the slalom posts and achieving a fast time relies entirely on your skill with the ZX81 keys.

ZX81 - BLACK HOLES (16K RAM PACK REQD.) *NOW ENCHANCED*
Your starship is in an unknown galaxy consisting entirely of back holes which continually threaten to swallow you. Your skill at the controls and your ability to look and think many moves ahead is the only thing that stands between you and destruction. How long can you survive?

BOTH programs on one cassette £4.95


NEW - An ESSENTIAL addition to your 1K RAM ZX81 (or ZX81 8K ROM)

TOOLKIT (written by PAUL HOLMES)

Provides the following additional facilities:

Line renumber - you state starting number and increment value.

Seach and replace - changes every occurence of a character as you require.

Free space - tells you how many free bytes you have left.

SPECIAL GRAPHICS ROUTINES

Hyper graphics mode - graphics never seen on a ZX81 before.

Open - instantly sets up as many empty print lines as you require.

Fill - used in conjunction with OPEN fills your screen instantly with your specified character.

Reverse - changes each character on your screen to its inverse video.

TAPE ROUTINE - provides a system WAIT condition until a signal is received in the cassette ear jack - many uses!

All these routines are written in machine code and together take up only 16 BYTES of your precious RAM - an incredible achievement!

The price is incredible too! ONLY £3.95 for cassette, including FULL instructions and example programs:

ALSO available 16K version ONLY £4.95 which includes all the above PLUS:

GOTO's an GOSUB's included in line renumber.

Search for and list every line containing specified character.


16K RAM pack WHY PAY MORE! £35
black case, fully tested and guaranteed
(please allow 14 days for delivery)
Full refund is not delighted.


OVERSEAS CUSTOMERS PLEASE NOTE Payment must be made in Sterling by International Money Order (available at your bank). Please add 50 pence to cover overseas postage. (£2 RAM pack).
JRS SOFTWARE
19 WAYSIDE AVENUE, WORTHING, SUSSEX, BN13 3JU
TELEPHONE WORTHING 65691 (Evenings and Weekends only)

Today in 2022 this address is a residential apartment building, so perhaps JRS was a side business back in the day -- that would explain the "evenings and weekends only" blurb

Slalom events always draw great crowds to the ski resorts and the T.V. cameras are never far behind. Now the skier on your T.V. screen is directly under your control and his success in negotiating the slalom posts and achieving a fast time relies entirely on your skill with the ZX81 keys.
Wow!
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Review: JRS TOOLKIT

Post by David G »

TOOLKIT (written by PAUL HOLMES)

A Solid Programmer's Toolkit: JRS software toolkit Version: 16k (1982)

and they are not kidding. The machine will crash if the loading instructions are not followed

Toolkit by Paul Holmes, sold by JRS Software (UK) for 4.95. Available from 1981, it is a very early ZX81 BASIC programming utility featuring Renumber, Free, Search and Replace and a few screen routines. There is also a 1K version with less features (notably, 1K Toolkit has a primitive Renumber).

advert - Interface 1982 February page 20
advert - Interface 1982 February page 20

The eight machine languages routines are:
* Renumber (with GOTO and GOSUB renumbering)
* Search and Replace
* Search and list
* Free memory
* Screen Hyper Graphics Mode
* Screen Fill line
* Screen Reverse (invert) line
* Tape wait


The Toolkit takes up 1K of memory, so there is still plenty of RAM left for working on your BASIC programs. The Toolkit machine code resides in A$, and on loading it is copied above RAMTOP. This allows you to type in or load another program and have Toolkit at the ready.


The first you notice upon loading -- and it's very nifty -- is it has a splash screen!

TK16 splash screen
TK16 splash screen
TK16 splash screen.png (6.71 KiB) Viewed 861 times

On loading, the line 10 REM statement is autorun and copies TK to the 15K block ($7C00). If you forgot to set RAMPTOP before loading, the ZX81 will hang. You can re-power it to start over (unplug the power cord, then reinsert it).

Code: Select all

POKE  16389, 124
NEW
LOAD "TK16"
After showing this screen, what to do? This is where the instructions come in handy: press '1' to exit the splash screen. At which time the ZX81 will perform the NEW command and return to the L cursor. But TK is now in high memory, ready to be called by a USR command. Pity it doesn't indicate this on the splash screen with a "PRESS 1 TO CONTINUE" or something. There is plenty of spare room in the machine code for this -- at least in the 16K Toolkit. In the 1K version I'm sure they wanted to keep it as small as possible (164 bytes!), and it appears they didn't change it for the 16K version.


The most basic utility routine is FREE:

Code: Select all

PRINT USR 32304
TK will display how many free bytes you are left available for a BASIC program. This is important to know if you are trying to write a large program and fit it into available memory.

The FREE machine code is straightforward:

Code: Select all

     FREE:   LD      HL,0000H
             ADD     HL,SP
             LD      BC,(STKEND)
             SBC     HL,BC
             LD      B,H
             LD      C,L
             RET
On the ZX81, the USR command will return with the contents of BC -- providing the way for the machine code to pass a value back to BASIC -- and then the PRINT command will print it on the screen.


RENUMBER works well, except for -- as with many ZX81 renumber utilities -- you first need to edit the GOTO lines to have four digits in order to work properly, for example:

Code: Select all

change
       GOTO 30
to
       GOTO 0030

Search and Replace routine: This is a single-character Replace. Helpful for changing variable names.


Search and List routine: Find and list every line that contains the single character searched for.


Some technical bits
Toolkit uses a typical PRT routine. The screen printout strings are in-line with the code, after the CALL PRT, and it is copied to the screen until a NEWLINE is encountered. In other words, it uses NEWLINE-terminated strings. And with the strings being in-line with the code, there is no need for a separate string table or even needing to look up the address of a string.

TK uses only one ROM call, to ENTER-CH, which being in the lower part of the ROM is the same in all ROM versions. So, it should work with either the original ZX81 '550' ROM or with the improved '622' or final '649' ROM.

TK does use as variable space both MEM-5 and UNUSED2, so there is a potential for conflict with other machine code programs -- if they also use the same memory locations. And of course, the entire block from 15K-16K is used by the Toolkit.
Post Reply