Skip to main content

Full text of "ZXir QLive Alive"

See other formats


Volume &■ IHTo. 3 








Information and Chairmen — TreaSury Note$ 
Input/Output — by Abed Kahale 

Larry Kenny (LarKen) 

Sir Clive Sinclair speaks 


More Software - Jack Boatwright 
Rod Gowen E-mail 
Sinclair E-Mail List 

QL Today Notes - Robert Hartung 

From the Chairman's Disk - Donald Lambert 







5 QL Today Notes - Robert Hartung 

7 Font Loader - HiSOFT Pascal - David Solly 

8 Save on Ink- Jet Ink 

8 West Coast Sinclair Show - Tim Swensen 

9 TS-2068 ROM Bypass I - WIDJUP 


12 How to Hack on the ZX Spectrum — Les Cottrell 


Unclassified Ads 

ZXir QLive Alive! © 
Established 1991 The Timex/Sinclair NorthAmerican User Groups Newsletter 

T/SNUG Information 

We wish to support the following 
platforms : ZX-80/8 1 , TS- 1 000, 
Spectrum, TS-2068, Z88 and QL. If 
you have any questions about any of 
these fine Sinclairs, contact the: 


Chief Motivator 
Donald S . Lambert (ISTUG) 
1301 KiblingerPl. 
Auburn, IN 46706-3010 
219 925-1372 


Tape & JLO PD Library 

D G Smith 
415 Stone St 
Johnstown, PA 15906 
814 535-6998 

Z88 Library 

Dave Bennett (HATSUG) 
1275 Timber View Dr 
Mechanicsburg, PA 17055-9146 
717 732-4374 

QL Hacker's Journal 

Timothy Swenson 
2455 Medallion Dr . 
Union City, CA 94587-1914 
swensontc@geocities com 


Rod Humphreys (VSUG) 
10984 Collins PI 
Delta, BC V4C 7E6 Canada 
604 583-2819 

QL PD Library 
John Donaldson (CATUG) 

835 Foxwood Cir. 
Geneva, 5L 60134-1631 
630 232-6147 

AERCO & Z80 Emulator 
Keith Watson 
41634 Amberly Dr. 
Mt. Clemens, MI 48038 

BBS — ==GATOR=— 

Bob Swoger (CATUG) 
613 Parkside Cir. 
Streamwood, JL 60107-1647 
630 837-7957 Work 847 576-8068 

Any of the above can also be 
reached by E-Mail through the 
Club BBS 847 632-5558 

ZXir QLive Alive! 

Is the newsletter of T/SNUG, the 
Timex/Sinclair North American User 
Groups, providing news and 
software support to the T/S com- 
munity in a VOLUME of four 
newsletters per year, beginning with 
the Spring (March) issue. 

T/SNUG's main goal is to 
preserve and encourage the 
use of Sinclair computers 

by providing an open 
forum for the exchange of 
knowledge, building and 
maintaining of software 
libraries. Providing 
vendors, repair service and 
members with free ad 

It is the user groups and individual 
subscribers, rather than the vendors, 
that provide the pecuniary support 
for this newsletter Vendors and 
developers receive this newsletter 
free of charge, though contribution 
from vendors and user groups is 
gratefully accepted Please support 
our vendors and service providers 
whenever possible. 

If you have a problem or you have 
solved a problem, please share it with 
the rest of us No problem will be 
considered unimportant. 


fou can keep T/SNUG alive by 
an annual contribution of $12 
for one VOLUME made payable to 
Abed Kahale Send check to - 

SIERRA VISTA AZ 85650-6874 

520 378-3424 

Back copies are available for 
$1.00 each postpaid. 

<&s of June 29, 1999, we have a 
balance of $880.22 


Send in your articles by disk, hardcopy or 
mail, e-mail and your inputs to — 

Abed Kahale 


n f n 


iu % ii si iL 

ClBi^teD fair 

To better inform the Sinclair Community, 
three 24-hour a day BBSs are now 
provided to serve you You are encouraged to 
exchange mail and use the files sections of 
these boards Bulletins and ads are available to 

Q-Box BBS 810 254-9878 

Utica, Michigan 
SOL BBS 520 882-0388 

Tucson, Arizona 
Club BBS 847 632-5558 

Arlington Heights, Illinois 
WebPages clubbbs/tsnug/ 

If you know the Internet E-Mail address of a 
Sinclair user, but do not have access to Internet, 
simply address your E-Mail to GATOR Sinclair on 
the 24-hour Club BBS and include the name and E- 
Mail address of the user you wish to reach Then 
check the Club BBS from time to time if you expect 
a reply. 

We encourage you to exchange mail and 
contribute to the UPLOAD section.. Call 
and register using your first, last name and phone 
number along with a password you won't forget. 
Write It Down! Do not try to do anything else at 
this time. 

When you call-in the next time, you will have 
Level 5 security and be able to enjoy full 
user privileges. The BBS has smaller sections 
called conferences. Select "J " for "Join a Confer- 
ence". Select "TIMEX" to get into the Sinclair 
Section The mail you then read will only be from 
other T/S users Use extension .ART for articles, 
ADS for ads and .NWS for news when 

For help, contact the SYSOP, Bob Swoger, by 
leaving a message, mail, E-Mail or phone 

ZXir QLive Alive! 

Summer 1999 



Hello Abed 

I was talking to Larry Kenny recently and he tells me 
that he is willing to release all his information on LarKen 
DDIs to the public domain. All he is asking for is a working 
Timex/Sinclair 2068 and the last version of his T/S 2068 
DDI in return. (It seems that both were "lost" during a 
move.) This is very little to ask for this information and the 
possibility that a LarKen disk access could be built into one 
of the existing Sinclair emulators such as Gerton Lunter's 
Z80 emulator or the Warajevo emulator. (Much of my best 
T/S 2068 software is locked up on LarKen formatted 
diskettes as NMI saves that can not be accessed by any 
other means.) 

Perhaps the best way for anyone who wishes to make 
an offer of either one would be to write Larry Kenny 
directly. His e-mail address is Just 
remind him what the offer is in aid of. There is also a 
LarKen Electronics web site. 

Also, for the benefit of those who subscribe to ZQA! 
but not to the list, you could put an announcement to this 
effect in the next publication. 

David Solly 

Hello Larry, 

I just got a letter forwarded to me from T/SNUG by 
Abed Kahale from Dave Solly. 

I am Bob Swoger, ~=GATOR==-- of GATOR Software 
Development - the author of LogiCall for the LarKen Disk 
Interface on the TS2068. 

Next time you are surfing the INTERNET check out: (to see my picture - 
ugliest thing you'll ever see) (where all North 
American Sinclair happens) com/clubbbs/catug (our little Chicago 

Let me know what you think about our homepages — 
— ==GATOR=— 

Hello Abed..". 

Program listings are best done in a fixed pitch (or 
mono spaced) font like OCR-A or Courier. This is 
especially true of QL BASIC and Pascal where the 
indentation is an indication of program flow which is useful 
for debugging. 

People should also be encouraged to use a font in 
which a 1 (one), does not look like an 1 (el), or a 0 (zero) 
does not look like an O (oh) and so on. It helps reduce the 
frustration levels of those who are trying to type in and run 
programs from listings 

I think, in the long run, this will also save you a lot of 
work as well as making ZXir QLive Alive! a consistently 
high quality newsletter. (Sometimes the paralinguistics 
don't come though in the written form of the language. I 
hope this is coming through as positive suggestions. :) ) 

David Solly 

Mr. Swoger: 

I'm a recently revived ZX-81 user and happened to 
stumble onto the T/SNIJG site. I noticed you have a page 

with many items for sale at very reasonable prices . 

Whom should I contact about purchasing some of these 


Also please forward T/SNUG membership 
information as I wish to support groups such as yours who 
keep the Sinclair line of computers alive Regards, 

Glen Goodwin 

Hi Abed, 

Here's another news article I found on the 'net about 
the next Sinclair machine. 

Jack Boatwright 
Linux Tempts Sinclair Back Inventor Promises to 

Undercut PC Market With Linux Machine. 
Inventor and entrepreneur Sir Clive Sinclair is 
planning a return to the IT market with a low-price 
portable machine based on Linux and non-Intel chips, 
writes Robert Juman Blincoe. 

Sinclair believes the product will receive support from 
the corporate and academic markets because Linux 
has already secured great loyalty in these sectors. 
He claims his proposed machine, which will take two 
years to come to market, will be built around a 
cheaper processor than Intel's. 

"The standard PC is expensive because of Intel and 
the software, which is demanding of memory," Sinclair 
said. "The reason why my machine will be cheaper is 
that if will use a lot less memory, a lower-cost 
processor, a simpler power suppiy and a lower-cost 
operating system .." 

Sinclair says his new machine will be released at less 

than half the price of other similar-sized PCs on the 

market. He supports the loyal Linux users who want 

Windows to be unbundled from PCs. 

"There should be one price for a machine with 

Microsoft and one price for a machine with Linux," he 


"Linux looks like a way in - a Trojan horse," Sinclair 
continued; "a lot of software suppliers are now 
supporting it. They wouldn't do that if they didn't have 
a lot of confidence in it. 1 think a dedicated Linux 
machine will be the next step." 

22 April 1999 Business Publications Ltd. 

Dear Abed, 

Peter Liebert-Adelt purchased some T/S magazines 
from me and because a couple of CTfVf mags were in 

those that I sent Peter asked if I could give him any "fill 

in" about them? Apparently they were devoted to 
computers and radios? I know nothing about the mag. I 
wondered if you (or perhaps; one of your readers) might be 
able to help Peter? Sinclairly, 

Fred Henn 

Dear Abed 

I recently snail-mailed you a memo requesting a copy 
of DUS 5.0. 1 did get a copy and thank you for your help. 
As you can see; I have finally made the jump to the 

ZXir QLive Alive! 

Summer 1999 

p. a- windows system. 

And as you can imagine I have far too many text files 
to consider printing and then re entering them into the 
windows format. 

The question then is; Is there a dos/windows utility 
that will allow a p.c. to read TS2068 LarKen text files? 

I do not plan to sell the TS2068, but for the sake of 
convenience would like to be able to read the LarKen 
diskettes with this p.c. Thank You 

Don Oviatt 

As far as I know, the only way to read TS2068 
files in a PC is through a modem, if you have a 
TS2050 modem that is. 

One way is to UPLOAD a file from the 2068 to a 
BBS for instance and then DOWNLOAD that file by a 

Or connect the PC and the 2068 modems 
together and have one computer UPLOAD or 
DOWNLOAD to the other computer. A little flaky but I 
have done it in the past But I will steer you to Robert 
Swoger (Chicago Area Timex User Group) 

I also have some software items for TS2068 that 

I have gotten in recent purchases. Profile 2068, Tasword 2 
and some others. If you want a list I will try to get it before 
the next edition I also have TS2068 cartridges; 
Crazybugs and States Capitals. 

Jack Boatwright 

Date: Thu, 3 Jun 1999 12:19:38 -0400 (EOT) 
From: jl911@cleveland.Freenet.Edu (Rod Gowen) 
Subject: Thanks for ZQA! 
Hello Abed, 

Well, I am finally able to do email. I cannot send or 
receive attachments, but I can use the mail! I received the 
disk last week with the I/O file on it. I must say that it was 
in sorry condition. The metal slide cover was so bad that I 
had to remove it even to get it into a drive. I did manage to 
get it in, load the file and then I threw it away Thank you 
for the file. 

Now, however, you can put whatever you have in or 
can put into ASCII text format and send it to me as an email 
letter. It will save a lot of trouble on your part. 

Jack Boatwright has been keeping me up to date until 
now Now I am able to get on his site and jump to other TS 
pages from there. It is interesting. I do not use windows to 
do this. I am using a DOS program called Commo V7 and 
my local library has a Telnet connection to the internet. I 
can go anywhere and even download files, I just cannot 
attach things to the mail I send. That is one of the 
restrictions of the freenet. concept. 

Well, I will quit for now Hope to hear from you when 
the new ZQA! is ready. Later, 

Rod Gowen 

Sinclair E-Mail List 

0~o "Bob Swoger Larry Sauter 
Cy Jierre John DonaCdson 
and TfiiCCvp Xtwtkowskt 

flouxw sent to nrtj W {fe^ J\rr^<il. 

Albrecht, Alvin 

aralbrec@concentric . net 

Anderson, Paul 

p . 

Anson, Gerald 

i erry a@aztec . asu . edu 

Barker Robin 

Robin@di-ren. demon 

Bennett, Dave 

dbennett 1 0@desupernet. net 

Boatwright, Jack 

iboatno4@outlawnet. com 

Boehm, Al 

Boehm, Bill 

C. A. T. S. 

mf0002@epfl2. epfibaito .org 

Cable, Bill 

Catotti, Christopher 

kd4ace@compuserve. com 

Chambers, George 

gfchamb@pathcom. com 

Collins, Bill 

Cottrell, Les 

Cruz-Figueroa, Jaime 

Dansby, Andrew 

adansby@atlantic. net 

Davis, Frank 

Dunnet, Ron 

ron@qubbesoft . freeserve. 

England, William 

wengland@iname. com 

Feng, Al 

alfeng@j uno . com 

Fink, Mike 

domino . 

Fink, Mike 

domino . cubes@pointblank. com 

Firshman, Tony 

., si 

tony@firshman. demon, 

Floiit, Louis 

florit@wormhole.unixville. com 

Franke, John 

Ganger, Gary 

gangerg@dma. org 

Gillespie, Doua 

aa43 1 @cleveland.fieenet. edu 

Girnius, William 


Gowen, Rod 


Harbit, Ken 

krh03 @c vip . fresno . com 

Henderlight, Mike 

Henn, Fred 

Humphreys, Rod 

Hunkins, James 

Impellizerri, John 

r -J — 

J . - — -JL- ,. — Jt, . — 

Jaap, Matthias 

r ? 


Jonas, Mike 

mionas@bbn. com 

Jones, Dilwyn 

Jones, Terry 

tjones@iname. com 

Kaczor, Jon 

75363. 1 

Kahale, Abed 

akahale@compuserve. com 

Kealy, Harriet Joan 

hikealy@admin. hilconet. com 

Kenny, Larry 

Kingsley, Ed 

Konig, Urs 


Kwitkowski, Phillip 

Lancaster, Garry 

dharkhig@delphi . com 

^ v — ^ A- 

Lanciault, Francois 

francois . lanciault@energies . alstom ca 

Lassov, David 

emanon@azstarnet. com 

LaVerne, Melvin 

Lebowitz, Dave 

Lessenberry, Gary 

Liebert-Adelt, Peter 

Malloy, Bob 

74776 . 23 42@compu serve . com 

McKelvey, William 

mckelveyw@delphi. com 

ZXir QLive Alive! 

Summer 1999 

Merz, Jochen 


Simon, Thomas 


Merz, Jochen 

Skaoinski, Tom 

Miller, Seymour 

seymil@delphi . com 

Smith, Dennis 

Muth, Bob 


Soliv, David 

ac3 5 5 @freenet . carleton. ca 

Norton, Gary 

gnorton@world. std. com 

Stegman, Dan 


Parrish, Gil 

Swenson, Tim 

Pashtoon, Nazir 

Swenson, Tim 

swensont@sirclive.csd. sgi. com 

Paul Holmgren 

paulholm@indy. net 

Swentko, Wally edu 

Payne, Josh 

Swoger, Robert 

ceng 1 08@email. mot. com 

Pazmino, John 

Taylor, Jeff 

j etaylor @mdrobotics. ca 

Perry, Russ Jr 

slapdash@enteract. com 

Thoresen, Jeff 

Rigter, Wilf 

Walterman, Don 

walterm@ix. netcom. com 

Rish John 


Watson, Keith 


Shepard, Jay 


Wood, Roy 

qbranch@qbranch. demon, 


by ^Robert Uiarimg 

The QL Today news notes which I send to the ZQA! 
Editor from time to time are obviously reports on reports 
and reviews that appear in recent issues of that Newsletter . I 
don't intend this to be like some of the "talking heads" on 
TV today who seem to be only reporting on the opinions of 
other reporters instead of researching the actual news 
sources. What I'm trying to say here is that I hope these 
brief reports on QL Today news items will stir up interest 
among some QL users so they will want to "go to the 
source" and subscribe to QL Today themselves. It should 
go without saying that only if there is continued support for 
those who are supplying information, hardware, software, 
and services will these things continue to be available, here, 
as well as overseas 

One factor some state as a reason/excuse for not 
buying their own subscription to QL Today (presently 
DM75 or £30) is the difficulty of converting currencies — 
no problem when plastic is used The first of the year 
marked the introduction of the Euro dollar — sort of For a 
time it will be used only for electronic transfers and 
exchanges, not as actual currency Also, for the time being 
the UK has opted out of participation with the eleven 
members of the European community who ar e on board, so 
the British pound is still "the coin of the realm" in all 
transactions made there. Apparently, all this is giving 
headaches among European QL users as well as those here 
in making currency conversions, so an Italian users group 
has created a neat little QLiberator-compiled routine that 
only requires entering either the value of the Euros or any 
of the eleven local currencies in order to convert either way 
it runs fine under QPC and SMSQ/E. It even has a multi- 
tasking sleep mode that is toggled on/off by CTRL C 

This routine is included among the programs and 
listings that are on the bonus QL Today Cover Disk that 
comes with each final volume-issue of the newsletter, VOL.. 
3, No. 6 in this case. All the published listings, an annual 
index of articles, and several of the freeware programs 
reviewed during the preceding year are also on the V/z 
floppy in zip-compressed files, as well as the UNZIP 

The current Cover Disk includes an update 
(v.TUTK3c27) of the code module for TurboToolkit, along 

with many demo plug-in procedures which utilize this 
toolkit. Also on the disk is a full version of Mark Knight's 
K-BASE (v.2.20), which utilizes Turbo Toolkit and was 
compiled under the Turbo compiler This multi-tasking 
card-index style database program is designed principally 
for quick and easy access to records such as address lists, 
inventories, etc and will store and process up to 32767 
records. It has a comprehensive and clearly-written manual, 
stored in ASCII, and has received very positive reviews. It 
runs fine under QXL or QPC and SMSQ/E as well as 
Trump Card or Gold Card expansions of the QL. 

A new upgrade of the Perfection wordprocessor is 
likely to be released as freeware, but beta-testing of it was 
not yet completed at the time the current Cover Disk was 
made up one of the features of this version is that high 
resolution screens are used properly, so you may pre- 
configure large windows if you wish 

In other news, Richard Zidlicky, the author of uQLx 
emulator for Unix/Linus based machines, has ported Linux- 
68k to the newly-released Q40 (the hardware replacement 
for the QL, with a fast 68040 processor). This raises the 
interesting possibility that the Q40 itself might be able to 
run a QL emulator under Linux Richard is now looking to 
have full Q40 support added to future releases of the Linux 
system (Linux, so named in 1991 for a Finnish university 
student, Linus Torvalds, who has developed it from its roots 
in Unix to its present kernel version 2 2.0, runs on all major 
processors, and has become a formidable competitor to 
Microsoft Windows and NT.) (and is Free) This, in turn, 
may have the potential of creating a new market for the 
Q40 among Linux users that would enlarge its production 
base among them as well as providing QL users with a full- 
fledged platform for the powerful Linux OS. This would 
provide the best of both worlds, as well as further insurance 
of continued availability and improvement of QL har dwar e 
and software! Since the UK does not yet use the Euro, I 
wrote the following little SuperBasic routine that converts 
pounds to US dollars. The PRINT JUSING command to 
format the output requires that TK2 be activated, as is 
automatically done under QPC 

1 REMark QPC ED Listing As Displayed in 
WTV Mode 

ZXir QLive Alive! 


Summer 1999 

10 CLS 

2 0 PRINT "British pound £ to US $ 

30 INPUT \\ "Enter current $n.nnnn to £ 
rate: $";pr 

4 0 INPUT \\ "Currency in £s to convert: 
£ " ; np 

50 PRINT \\"US dollars: ";: 

PRINT_USING"$$### . ##" , pr*np 

60 PRINT W'Any key to repeat - CTRL 

SPACE to halt."\"then RUN to change RATE" 

7 0 PAUSE 1000 

80 CLS 

90 PRINT "Current $ to £ rate: $";pr 
100 GO TO 40 


Donald S. Lambert 

|H 1 nder the column Article Contributions on page 2 
H I there is a box in which it states that "Send in your 
™ — ' articles by tape or disk and your inputs to me" that 
has to be changed. Sometime between this newsletter, 
Summer '99 and Fall '99, I will be down to one computer 
and that will be a Z88 By then I will have sent all my other 
computer equipment to Jack Boatwright. I don't realty want 
to part with my 2068 BUT! wifely pressure and a move is 
forcing the issue. With that said I will continue with this 

Way back when I bought a Z88 EPROM Eraser that 
requires an AC voltage of 220 volts. Someone 
responded with the information that a supplier had a 110 
VAC to 220 VAC plug in transformer so I ordered it and it 
is a cute little thing. But before I got the transformer I had 
bought a power supply that had the ability to runoff of 1 10 
VAC or 220 VAC. So I had converted it so that it supplied 
220 VAC But that thing was a heavy and big deal. While it 
is not according to electrical code, I had ran the 220 VAC 
to a standard type 110 VAC socket and put a standard 110 
VAC plug on the line cord of the Z88 EPROM Eraser 
Today as I was cleaning and sorting things I came across 
the EPROM Eraser and I dug out the step up transformer . I 
stared at the socket on the transformer and I noted that it 
was for a round U.K. type plug prongs. BUT then I noted 
that it had also the provision for the flat plugs like on the 
US 110 VAC line cords. Yep it fits I presume it works 
since I did not test it. 

■ thought that a 2068 on the other computer desk had 
gotten contrary but today while copying a 3.5 720K 
disk to DSDD 360K disk I discovered that drive 0 (full 
height 360K) drive must be bad since drive 3 (half height 
360K) drive worked all right. That 2068 will be in the next 
box of TS goodies that I will ship to Jack I have a full box 
to send out as soon as I seal it up, put the shipping label on 
and take it to UPS for shipment 

Now the 'news' we have bought a house in Forsyth, JJL. 
And where is Forsyth IL? I you take 1-72 into 
Decatur, IL and exit going south you are in Decatur but if 
you exit going north your are in Forsyth. Decatur is not 
growing and housing is rather limited I think there are new 
houses but not located where it is easy to get to the 
shopping. BUT! the only enclosed mall and a lot of the 
stores for the area are in Forsyth They are building all over 
in Forsyth. Our oldest daughter and family live in Decatur 
and are about 7 miles from where we are buying There are 
grandchildren there and the youngest is in 7th grade going 
into 8th next year. Looking back we have averaged bout 10 
years in a house since we started buying houses 

^■kA/ e went to Decatur to see the granddaughter in show 
Tt choir of the intermediate school It was a long 
performance since they put on all their competition stuff 
We will be going back Memorial day weekend to attend the 
grandson's high school graduation party and also to meet 
with the builder on the 1st of June (our wedding 
anniversary, 48th) to pick out the flooring and such for the 
house. We picked out the siding colors and brick work and 
interior paint on May 4th and the kitchen cabinets May 5 th 
How did we find the house. Well, we were there the week 
end of April 23 rd and we arrived early so we went driving 
around Forsyth and spotted this house with workers 
working on the roof putting on the sheathing. They invited 
us to take a look at the r ough framing of the house and they 
gave us a set of blue prints. We sort of dallied along till I 
put the pressure on for my wife to make up her mind. So 
when I called on May 3rd to talk to the builder we found 
that the house was quite a few thousand less than we had 
been quoted as a possible price by the workers. 

The builder's brother was in another city 45 miles away 
talking to a prospective buyer and since the financing 
was too iffy for that party we had a verbal agreement to buy 
the house. After we had gotten the house on the evening of 
the 4th of May as I was relaxing they showed the tornado 
damage in Oklahoma. Yes! we will have a basement! I 
looked on the map and Gil Parrish is not too far east of that 
area I don't think he got any damage. 
■ realize that this is not too much about TSing but it will 
m explain my lack of input and my address change I have 
an address but I will hold that off to reconfirm it and find 
out more about the move with a tentative date of August 1st 
this year. Right now we are in the throes of getting the 
house here ready to sell and packing, sorting and disposing 
of extra stuff or no longer wanted stuff. 

It is about 310 miles one way and it seems longer 
especially with 1-74 having a lot of construction west of 
Indianapolis to the EL border. 0/0 

si p(iqo B\2ms ajlba3 sapnpui %®m put? 
Xpoqki9A8 (qun ajes aaB sn jo auou imp 
aSBssom s«VHN 9 ^ saojojuiai }snf stty, 

•ABMB Uiaq; UMOjq ptIB UO}%DB%Ojd 

-ypod Jiaq} tiA\i2jp aAeq p\noo sppf Jaqio 
eqi |[W sassBp aq^ pzjpmw uauiunS 
aq; uaq^ paoiJB uaaq peq spi>| jaqv> 
! eq; |i pauadcteq aABq jou ppoM fooqos 
j qgiq" }Bqi uo ypmVB paixiJB aq£ 

ZXir QLive Alive! 

Summer 1999 

HiSOFT Pascal 

Article and Program by David Solly 

One of the attractions of the Timex/Sinclair 2068 is its 
ability to change its screen font through the use of 
user-defined fonts. As a programmer, you may want to 
change the display font a program uses for several reasons. 
A banking or financial program, for instance, would 
require that you use a font in which no one can possibly 
mistake a letter like "el" for the number one. To better set 
the mood of a game set the Middle Ages, you may wish to 
use a Gothic font. Likewise, a game set in outer space 
may require a futuristic looking font. Perhaps you want 
your T/S 2068 to display text in Greek or Russian. In that 
case, you have to change the entire character set as well as 
the font (To the confusion of many, computer 
programmers and technical writers tend to use "font" to 
mean either a "font" or a "character set" Be aware that the 
program I am about to describe can be used to change 

Font loading and activation is much easier in HiSoft 
Pascal, (henceforth: Pascal), than in BASIC for the 
following reasons: 

Firstly, you don't have to make any changes to 
RAMTOP. To prevent BASIC programs from 
overwriting a user defined font, the usual practice is to 
lower RAM TOP and load the font into the protected area 
created above, In Pascal, a global array y which is also a 
static array y is used to reserve space in RAM into which 
the font is loaded. Pascal keeps track of such arrays and 
prevents them from being overwritten by any of its 

Secondly, you don't have to worry about where in RAM 
the font file is loaded. The built-in function ADDR(v) 
can be used anywhere in a program to locate the start 
position of any variable the program uses. Even if you 
should make modifications to your source code which 
changes the location of a given variable within the 
compiled program, ADDR(v) will still be able to locate it 

Finally, you are relieved of doing and re-doing the 
calculations needed to determine which values to poke 
into the system variable CHARS to activate the new font. 
Once ADDR(v) has been used to locate the start of the 
variable being used to store the font, all your program is 
required to do is to invoke the POKE(l, n) procedure to 
transfer this value less 256 bytes to CHARS, thus: 
POKE(23606, ADDR(v) - 256); and your new font 
becomes active. 

There are already font creation programs aplenty written 
in BASIC Most of them save the fonts they create as 
a byte file of 770 bytes Below is a demonstration 
program written in Pascal that contains source code which 
will allow you to load and activate these fonts within a 

Pascal program. 


Special note to HiSoft Pascal 1 . 7M 
users : 

This program must be compiled in 31 
column mode. 



Chars = 23 60 6/ 
{Chars holds the address of the 

variable CHARS which in turn points 

the location either in ROM or RAM 

the current font is located. 

The value stored in CHARS is always 


bytes less than the actual start 
location of the current font.} 


CharSet : ARRAY [0..770] OF CHAR; 
{Reserve space in RAM for the new 
character set} 

{Remember: CHAR takes 1 byte, 
INTEGER takes 2 bytes} 
FileName : ARRAY [1..12] OF CHAR; 
{An array for holding the file 
name of the font, to be loaded} 
StartAddr, {To hold the start address 
of the new font} 

I {A loop counter} 



PAGE; {Clear the screen} 

WRITE LN ( ' What: is the name'); 

WRITELN ( ' of the font to load?'); 

WRITELN ( ' (12 characters padded) f ) ; 


WRITE ( ' > ' ) ; 

READLN; {Required in HS Pascal} 
READ (FileName) ; 
{Load in the font.} 
TIN(FileName, ADDR (CharSet )) ; 
StartAddr := ADDR (CharSet) ; 

{Poke location of new font 
into the system variable CHARS} 
POKE (Chars, StartAddr - 256); 

{Print the new font from space to 

FOR I := 32 TO 164 DO 

WRITE (CHR (I) , 1 '); 


{Add font save code here if required} 

WRITELN ('End of test'); 


A special note for ZX Microdrive users: 

For some reason this Pascal font loader will only load 
fonts that have been saved on tape. Trying to load font file 
which has been saved to the Microdrive from BASIC will 

ZXir QLive Alive! 


Summer 1999 

generate an "invalid file format" error report. If you wish 
to use the Microdrive to load in a new font, you can, but 
first you must cr eate a special kind of font file from within 
a Pascal program for each font and save it on the 

First, add the following lines to the source code in the 
spot indicated in the main program and resave. Then 
recompile and save the new font loader/saver program 
{Save font routine) 

WRITELN ( 1 Enter a name to save'); 
WRI TELN ( ' the font to the 
microdrive? 1 ) ; 

WRITELN ( 1 (12 characters padded)'); 


WRITE ( '> ' ) ; 

READLN; {Required in HS Pascal} 
READ (FileName) ; 

{Save the font) 
TOUT (FileName, ADDR (Char Set ) , 
SIZE (Char Set.) ) ; 
Next, if you do not have your char acter sets saved on 
tape already then using BASIC you will have to load in 
each font from the Microdrive in and resave it on tape. 
(I trust that you all know how to do this.) 

Once you have your font files saved on tape then you 
can use the Pascal font loader/saver program to load them 
back from tape and save them out y and here I would 
strongly suggest using a new cartridge y to the Microdrive. 
Now you character sets are ready for you any time you 
wish to use them in a Pascal program. 

The source code for this program is available upon 
request by sending e-mail to David Solly at . 
Source code is saved as an * MDX file which is 
compatible with Gerton Lunter's Z80 ZX Spectrum 


So you got a good deal on that ink-jet printer only to 
find out later that the cost of buying new cartridges is 
breaking the bank. Each cartridge costing between $18 to $ 
34 and producing at most 300 pages It is easy to spend 
more on ink during your first year of ownership than you 
paid for the printer itself Suddenly that $ 99.95 ~ $ 149.95 
color ink jet doesn't look like such a great bargain. 

You can slash the ink cost radically by purchasing refill 
kits from various suppliers who sell those kits for various 
ink-jet (bubble-jet) printers like Cannon, Epson, HP, 

Lexmark etc for around $27 per ink bottle that is good 

for 14 re-fills in my case. 

My kit included 8 oz. of ink, a syringe and a little 
hand drill with directions. 
You poke a hole in the 
cartridge with the little 
drill, then using the syringe, 
you inject the water 
soluable ink into the 
cartridge - doing that over 
the sink or a newspaper - 
just in case!!! It is almost 
like getting ink for free 

Voila! you are back in 
business for a fraction of a penny per page 
Nu-Kote International 
800 448-1422 
Renewable Resources 

800 734-6548 
800 228-3330 



West Coast Sinclair Show 

by Tim Swenson, the show organizer 

The West Coast Sinclair Show was held in Union City, CA, 
on 5 June 1999, one week after the East Coast Sinclair Show. 
Most of the European attendees arrived the Monday before the 
show and spent the week visiting San Francisco. 

The day before the show was by Bar-B-Q at my house 
Before the show a trip was made to a local regional park to show 
the Europeans a little bit of California nature. Luckily the side trip 
was enjoyed by all. 

The attendees at the Bar-B-Q were: Simon Goodwin and his 
girlfriend Chris Lyle, Tony Firshman, Roy Wood, Jochen Merz, 
Marcel Kilgus, Dietrich and Inga Bruder, Jim Hunkins, Don 
Walterman, John Rish and Jack Boatwright As evening fell, 
Simon, Chris, Tony, Marcel, and I hopped in the Hot Tub for a bit 
of a soak. 

The day of the show I loaded up the station wagon QL stuff, 
picked up a few folks at the local Motel and headed for the venue. 

As this was the first show I've organized, I was not too sure 
on how big a place to get The venue as, shall we say, nice and 
cozy There was enough room for the vendors, but not really 
enough for a lot of milling about. 

The vendors were - Tony Firshman with his ever present QL 
controlled LEGO robot, Roy Wood demoing software on a Q40. 
Jochen Merz and Marcel sharing a table with their wares. Jack 
Boatwright was selling the last of the stuff from RMG John Rish 
(the sole US QL, Z88 dealer) had mostly Z88 stuff on his table. 
Don Walterman had a Spectrum 128 set up for all to see Simon 
Goodwin tinking on a QL (one of two) that had been given as 

orphans looking for a new home, by a QLer who had upgraded to 

Ken Harbit drove from Fresno to pick up some T/S 2068 
stuff and went home with one of the orphaned QLs. Bill Miller 
and Terry Greenlee (formerly of the Pennisula QL Group) made a 
surprise visit to the show 

The key visitor to the show was the renowned author Stan 
Kelly-Bootle, writer of many computer books, including the 
"Devil's DP Dictionary", and the holder of the first post-graduate 
degree in Computer Science (from Oxford). 

Simon Goodwin has been a reader of Stan's work for a 
number of years (so have I) and considers him one of the few that 
have really mastered the English language. When I mentioned to 
Simon that Stan was coming to the Show, Simon's jaw literally 
dropped. Simon got to spend a few hours chatting with Stan, 
smiling the whole time. 

There was no organized demonstrations or talks, just a 
whole lot of Sinclair talk going on. Since I was the organizer, I 
was not really relaxed enough to truly enjoy the show 

When the show ended at 5:00, there was a debate on where 
to have dinner held. Originally, Tony and Roy were leaving for 
the Airport right after the show. Unknown to me, their flight was 
delayed 4 hours and they had time for dinner after the show 
Luckily everyone agreed on a place for dinner and the restaurant 
easily handled a group of 13 

We are talking about plans for next year-. We have just 
discovered a local "Vintage Computer Show" that would be the 
right audience to advertise our show, Hopefully we can generate 
more local attendees next year 

ZXir QLive Alive! 

Summer 1999 

Improved TS-2068 Internal ROM Bypass 1 

A major barrier to fixing the problems in INTERNAL 
ROM is one of access Even though the ROM is socketed, 
you still have to open the case This risks damage, and even 
then, replacing ROM with EPROM requires wiring 
modifications This article shows how to replace HOME 
ROM and EXROM without touching a screw 

It is not necessary to replace ROM with EPROM.. 
Battery backed up static RAM will do as well if equipped 
with a READ ONLY switch That way the RAM can be 
written and then switched over to write-protect state. The 
saving in time over burning EPROM is impressive, 
however, you will probably elect to use EPROM once 
corrections have been made. 

Pit* Bus 




■S mm 


m coram 

mi* z 



SBC 1956) 
378 CS88> 
278 (S32> 

Slot tavict 















t-_ — 


_ IflK * 5 

D^ Vo 1 D-'* 3 " 


* 4.7K PuHop 









— >- 

-« — »- 



— «— 

<*U CU) 






jlmtiUiw mm 
\m»im for Mirtcr Output CitfiuH) 
I xxx«eif)9 for Ssnchn>no*s Input 
1=1X <H)5»V : SMft right to test 

SIMM uij jllijn bits 8 - 2 
1=1 «W MH1U WU 9MW1B1 
H=IH ( 8081*1) 
8=8 AKP 11111808 MB 
»t*=R OX 1 

When expansion banks are connected, they assume 
priority by driving the BE (Bus Enable) signal low (using 
open collector gates). This is applied at the rear connector 
and sensed by the SCLD, which then shuts down all 
LOCAL memory (except for display memory while it is 
using it) It includes ROSCS, EXROM and ROMCS signals 
which enable DOCK (cartridge), EXROM and HOME 
ROM (memory chips) respectively DOCK and EXROM 
are not true expansion banks in the sense that they have 
lower priority than external BANK #0 and #254. The 
"missing" three banks in TIMEX documentation are not 
really missing at all. The much-touted BEU would have 
contained a new operating system using them. 

The design presented here has very carefully retained 
the ability to attach a non-TIMEX BEU with expansion 
slots ~ or any other system your heart might desire 

Many users will not initially have a back-plane with 

by the late William Pedersen WIDJUP 

expansion slots. The preferred location for ROM bypass 
would seem to be the cartridge slot; however, locating it 
there disclosed a bug which involved BE signal conflict on 
rare occasions. 

Home ROM Bypass 

Home ROM is enabled by the SCLD using a signal 
named ROMCS Unlike EXROM and ROSCS, this signal is 
not available externally . 


Figure 1; HOME ROM Bypass 







ft 13 




A2 01 


CE1 " 02 3 



08D 15 

f5 1 










JUMPER 1 ,4riN5817 


« See Fig.2a,l>,c 






■—■Of O— ) 



A3 - 

114 Absent 

U5 = 27128 E?S0M 
mm to 3FFF 


U4 = 8264 RAH 
mm to 1PFF 

us = S264 mm 

2808 to 3FTF 

Baiters Backttp 
Data Retention Ho<ie: 
lQSuA mx 

A 12 


- £ Cjft4 





B5— — 


53 1 












05 C^- 

6254/ absent 



A 12 PQIP^ 2 - 



U 07 W 


^ 6254/27128 

Bl J> 1N914 
-p SL2032B 


iExt. Conn. 

mm m y? 


(RAH/'™ u ) 


i / 




47K - 

.iur T 










[C) 1988 William J. Pedersen 

Our task is to disable Home ROM, and then enable an 
external equivalent 

The first is easy. Any time HOME ROM is being 
addressed, bus signal BE can be driven low. This 
suppresses ROMCS. 

The second is a bit more complicated, but not 
difficult. HOME ROM is addressed whenever NOTHING 
ELSE is! It is a process of elimination 
Home ROM is not being addressed when: 
1. A14 or A15 is high (CHUNKS 2 thru 7 addressed), 
2 . EXROM is low (EXROM addressed), 

ZXir QLive Alive! 


Summer 1999 

3 ROSCS is low (DOCK bank addressed), 

4 MREQ is high (NOP, I/O or INTERRUPT CYCLE), 

5. BE is low (Expansion bank active), 

6. RD is high (Write cycle in process) or 

7. RPSH is low (Applies to some static RAM). 
What logic could be easier to implement? 

Before attempting operating system revisions, a copy 
of existing code can be used in the bypass. This is an 
excellent test of bypass circuitry No change in operation 
should be detectable when a bypass card is present, or 

EX ROM Replacement 

EXROM presents an interesting problem. It is enabled 
by the EXROM signal (not BANK #254), but lack of 
complete internal address decoding results in false images 
occurring in all other chunks, not just CHUNK #0 If we 
had an expansion BANK #254, it would have higher 
priority than the internal chip — but that requires a bank 
switching controller and usually a back-plane. 

Figure 2 a: EXROM Bypass 

US = 43256 HAN 

gate to in? 

= 43256 "SOU" 

em -to im 

Baiters Backup 
Data Srtention Sode: 

310UA MX 
2itt» t»p 


80CKUP ! 

Ext. Conn. 


mm oh lo 
I passive! 


(Lower = SOS) 
<UFWr = BA«) 


DI - 


CftT JU3:> 



qox 05 ^ 















— o-^b~i 








(C) 1988 William J. Pedersen 

The false images are gone, making seven CHUNKS of 
EXROM available for use as either RAM or EPROM as 
desired.. Again, this can be tested for no change in operation 
before and after the change. 

Figure 2b is a practical variant of this which allows 

jC) 1988 William J. Pedersen (not RECOMMENDED) 

The simple solution is to physically remove the 
EXROM chip from inside and remount it with full address 
decoding on a board Though it is necessary to open the 
case, no wiring changes are needed and the chip can always 
be put back. 

A tremendous advantage is gained when this is done. 
ZXir QLive Alive! 10 

EXROM Bypass 

Lacking a bank switching controller, it would seem 
impossible to use the BE signal to disable the internal 
EXROM chip and still have an external bypass take over. 
The presence of the EXROM signal from the SCLD would 
try to cancel itself, resulting in oscillation 

If the initial presence of EXROM signal can be 
latched on the bypass board, and then BE is switched low, 
this can be avoided. 

Now we have a way to leave those screws untouched. 

We need to reset the latch before the next instruction 
comes along, when an external bank exerts priority, at 
power-up and REFRESH. 

The extra cost of a safe approach might make the risk 
in removing the EXROM chip seem worth while. That is 
what Figure 2b is for. 

This is not recommended unless you are a confirmed 

Summer 1999 

Joachim Gotthard Peter Ludvwg Uwe Gemot 

jieier Thomas Herbert Stefan Norbert Gerhard Georg Hennmg Michael Socio Eckhard Thomas 
Philip Kai Ntckei Gerd Mike 




For our onqiish readers: 

The third ZX-TEAM-meeting 26-28 march in Dietges was a great success 
we had 32 participants, 21 of them stayed over night! In our "exibition" a lot of ZX projects 
could be demonstrated. All new and a big lot of some eider of our devefopements could 
be seen in action. 

Hard-disk controller with MEFISDOS. LCD-screen, hand-scanner, ZX-CAD and much 
much more. The ZX81 -mailbox demonstration from Gemot was a great success' 
New projects have been discussed like a SMD-ZX or the Jupiter-Ace project. 
On the fleamarket everyone couJd find some good bargains! 

For more information and some photos please look at ZX-TEAM-homepage, meetings- 
pages: http : / /home . t-online . de/home/p . liebert/zx-team.htm 
If you would have liked to participate, please do not be too sad: the next great ZX-TEAM- 
meeting wiil be in spring 2000. You are welcome!!!!!!!!!!!!!!! 

QLive Alive! 


Summer 1999 

Les Cottrell 

Part 6 - cont. 

CC94 3E C3 LD A, #C3 

CC96 32 32 5B LD (#5B32),A 

CC99 21 Al CC LD HL,CCA1 

CC9B 22 33 5B LD (#5B33),HL 

CC9E C3 00 5B JP #5B00 

This puts the instruction JP #CCA1 at #5B32 so the loader 
decrypter will return to our hack at #CCA1 when finished 
CCA1 21 B2 CC LD HL, #CCB2 
CCA4 11 D5 5B LD DE,#5BD5 
CCA 7 01 08 00 LD BC,#0008 

This copies the final part of our hacking routine to #5BD5, 
where it will be executed once the whole game has been 

CCAC 21 00 00 LD HL,#0000 

CCAF C3 35 5B JP #5B35 
The LD HL,#0Q00 instruction is important, because it's the 
instruction we overwrote with out JP back to the hack. 
Therefore, we've got to execute it, otherwise the loading 
system may crash. Then it resumes loading at #5B35 with 
the POKEs firmly in place. 

CCB2 3E B6 LD A, #B6 

CCB4 32 5F AB LD (#AB5F) , A 


This is the hacking routine which will be copied into 
the loading system AB5F,B6 is the POKE for infinite lives 
(which can be worked out by a forwards or a backwards 
trace), and JP #F5BC jumps to the game 

And that's about it for Bleepload! Hopefully, if you 
were hacking a different game, you still managed to do it 
(they're all virtually identical anyway) 

Remember Ultimate? They were one of the finest 
software houses of all time Most of their games from 1983 
to 1987 had the same type of loader (but a few were 
Speedlocked - more about them later) On the face of it, it 
just looks like a totally unprotected BASIC loader, but the 
appearance is deceptive The five blocks it loads are the 
loading screen, the game itself, a decrypter at #5B80, and 
two very short blocks of system variables. The system 
variables are, in actual fact the BASIC clock, and determine 
how many 50ths of a second the computer has been 
switched on for. The decrypter works using this system 
variable. The upshot of all this is that if you stop the 
program for even l/50th of a second, you'll mess up the 
decrypter. You can get round this with a Multiface by 
loading in the first three blocks of code, then replacing the 
code at #5B80 with #F3,#18 and #FE. This disables 
interrupts, so the system variable doesn't get updated, and 
causes an endless loop Load in the last two blocks, 
activate the Multiface, and find out what the system 
variable should be. Then you can put this into the decrypter 


This loading system appeared on just about every 
game released by the software house Mkro-Gen (oddly 
enough!) from about mid-84 to their demise in 1987. They 
come in two varieties, and you'll need a Multiface to hack 

some of the later ones, unfortunately. 

The first type are recognized by black and white 
loading stripes, which loads in a screen block, and then the 
main game block separately. I'll be doing Pyjamarama as an 
example, but any Mikro Gen game which fits the above 
description will do 

So the first thing to do is to *Hack the BASIC loader.. 



23627+256*PEEK 2362.8+6) 

20 POKE 23756,0: POKE 23757,0: SAVE 

USR 33040 

The BASIC loader actually features much more than 
what we can list. If you're old enough to remember the 
ZX-81, you'll recall that the best place to put a machine 
code program is in a REM statement. And that's almost the 
case here, except the machine code comes after the ASCII 
code #0D (NEW1TNE), so you can't list it, But it's there. 
It's activated by the RANDOMIZE USR command, Type 
PRINT (PEEK 23627+256*PEEK 23628+6) and you'll 
find out the start address of the code I made it 23984, 
which is 5DB0 hex (but you might find it to be something 

different), so disassemble this address , 

5DB0 F3 DI 

5DB1 31 00 00 LD SP,#0000 

5DB4 2A 4B 5C LD HL, (#5C4B) 
5DB7 11 1C 0 0 LD DE,#001C 

5 DBA 19 ADD HL , DE 

5DBB 11 16 80 LD DE,8016 

5DBE 01 E7 00 LD BC, 00E7 

5DC3 C3 16 80 JP 8 016 

Hopefully the DI and the LD SP,#0000 should be familiar , 
The next line loads HL with the two byte value starting at 
5C4B. I made it 5DAA. This then has 1C added onto it, 
making it 5DC6 The rest of the code is a simple LDIR 
command, which puts the loading system to where it should 

In our hack, we can simply use a headerless loader to 
load the code into place We know that 5DC6 goes to 
8016 BASIC always starts at the value in #5C53, which is 
#5CCB in this case We know that the length is 504, or 
#1F8 hex bytes long, and the start address is (#5CCB- 
#5DC6)+8016 = #7F1B. So, run the following routine. 

5B00 DD 21 IB 7F LD IX,#7F1B 

5B04 11 F8 01 LD DE, #01F8 

5B07 3E FF LD A, #FF 

5B09 37 SCF 

5B0A CD 56 05 CALL #0556 

5B0D 30 Fl JR NC, #5B00 

5B0F C9 RET 

I've put a JR NC,#5B00 in, so that the computer ignores 
the BASIC header, and will only return on loading the main 
BASIC block. You should also note, that in the final hack, 
we'll have to add a DI and a LD SP,#0000 sometime For 

now, disassemble #8016 

8016 DD 21 00 40 LD IX, #4000 

ZXir QLive Alive! 


Summer 1999 

LD HL, #4000 
LD BC,#1B00 

801A 11 01 IB LD DE,#1B01 

801D CD 4F 80 CALL #804F 

This code activates the turboloader, which loads in the title 

8020 21 00 40 

8023 01 00 IB 

8026 CD 3F 80 CALL #803F 

This code verifies that the screen has loaded in properly 
(the routine at #803F adds up all the memory with start HL 
and length BC, and compares it with the byte after this 
block), and resets the computer if it hasn't 

8029 DD 21 00 82 LD IX / #8200 
802D 11 AO 7A LD DE,#7AA0 

8030 CD 4F 80 CALL #804F 
8033 21 00 82 LD HL,#8200 
8036 01 9F 7A LD BC, #7A9F 
8039 CD 3F 80 CALL #803F 

This is exactly the same as with the previous code, except it 
loads and checks the main game instead of the loading 

803C C3 89 FC JP #FC89 

Put a breakpoint over this instruction. Now POKE 
#8012 with F3, #8013 with #31, #8014 with #00 and 
#8015 with #00 (because we didn't execute the DTLD 
SP,#0000 from the BASIC loader, and the game will not 
load otherwise), JP #8012 and start the tape When the 
main game's loaded, disassemble #FC89. 

FC89 21 EF B4 LD HL, #B4EF 

FC8C 11 00 40 LD DE,#4000 

FC8F 01 00 IB LD BC, #1B00 

FC92 1A LD A, (DE) 


FC94 77 LD (HL) ,A 

FC95 23 INC HL 

FC96 13 INC DE 


FC98 78 LD A, B 

FC99 Bl OR C 

FC9A 20 F6 JR NZ,#FC92 

This decrypter uses values in the screen memory, so you'll 
have to put a breakpoint at FC9C, put a JP #FC89 at 
#8029, JP to #8012 and reload the loading screen before 
you can run it Then disassemble #BEEA. 

BEEA 31 00 00 LD SP,#0000 


BEF0 C3 00 82 JP #8200 

This code puts the stack pointer back at #0000, 
CALLs another decrypter, and JPs to #8200, which is the 
start of the game Change the #8200 to a suitable place to 
put POKEs; finish them with a JP #8200 to start the game 
Here's the final hack, and I've put it at #5B00, because it 
doesn't get overloaded, apart from the byte at #5B00 itself, 
which is no longer needed by that time. Also, I've executed 
the DI LD SPJ0000 directly, as well as the code from 
BEEA to BEF2. 

5B00 DD 21 IB 7F LD IX, #7F1B 

5B04 11 F8 01 LD DE,#01F8 

5B07 3E FF LD A, #FF 

5B09 37 SCF 

5B0A CD 56 05 CALL #0556 

5B0D 30 Fl JR NC,#5B00 

5B0F 21 1C 5B LD HL, #5B1C 

5B12 22 3D 80 LD (#803D),HL 

5B15 F3 DI 
5B16 31 00 00 
5B19 C3 16 80 
5B1C 21 25 5B 
5B1F 22 9D FC 
5B22 C3 8 9 FC 
5B25 31 00 00 
5B2 8 CD CC BE 

LD SP, #0000 
JP #8016 
LD HL,#5B25 
LD (#FC9D),HL 
JP #FC89 
LD SP,#0000 

5B2C 32 ?? ?? LD (????), A 

5B2F C3 00 82 JP #8200 

The other type of Mikro Gen loader is almost 
identical, except the whole game loads in one long block. 
Then end of the BASIC loading system is missing to start 
with, and is only loaded right at the end of the main 
headerless block You can find out the missing code by 
loading the game as normal, then stopping it with a 
Multiface in the pause between the game loading, and the 
game starting (approx 3 seconds), and hack it in the same 
way as Pyjamarama 
This protection system appeared first around the start 
of 1984, and was written by "Tag" (Phil Taglione) for 
Incentive Software However, it's been used by quite a lot 
of other software companies as well, including Beyond, 
Mirrorsoft, Prism and Ariolasoft It can be recognized by 
the screen turning black, accompanied by a few ascending 
beeps It then loads one short headerless block, and then a 
longer headerless block, which includes the attribute file for 
the game coming up "backwards" i.e.; right to left, starting 
from the bottom The game also stops loading just before 
the end of the long headerless block. 

The only thing I know of that YS have put on the 
covertape that has Powerload is the Graphic Adventure 
Creator, but that's pointless hacking, so instead I'll be 
hacking Dynamite Dan Of course, most other Powerload 
games are identical apart from some addresses, and, in fact, 
the BASIC loaders are all identical 

Before we start, I need to explain a little more about 
the stack, because Powerload uses it a lot. There are four 
commands which use the stack, and they are: 

PUSH X (where X is any register) this takes the value 
in a register, and puts it onto the stack The stack pointer 
then decreases by two (to be in the right place to store 
another value). 

this takes the two byte value at the stack pointer (i.e.. 
the top of the stack), and puts them in a register . This also 
increases the stack pointer by two . 


when you CALL a subroutine, the return address (i.e. : 
the address after the call) is PUSHed onto the stack, and 
the subroutine is JPed to The stack pointer also decreases 
by two 

when a RET instruction occurs, the computer takes the 
value on the top of the stack, and JPs to it The stack 
pointer increases by two 

Now we've cleared that up, let's start hacking *Hack the 
BASIC as usual. 

D.D. LINE 0 LEN 496 

0 REM 

ZXir QLive Alive! 


Summer 1999 

10 CLEAR 59999: POKE 23693,0: POKE 
23624, 0:POKE 23697 , 0 : CLS : POKE 

23659, 0:FOR N=30 TO 36:BEEP 


100 REM 

The POKEs in line 10 just make the screen black and 
prevent you from pressing break. 24146 is #5E52 hex; but 
a breakpoint at #5E52 and GOTO 0 This is because the 

stack is set up in a specific way by the BASIC commands. 

5E52 F3 DI 

5E53 21 00 00 LD HL,#0000 

5E56 39 ADD HL, SP 

5E57 22 F2 5D LD (#5DF2),HL 

This code simply puts the value of the stack pointer into 
address #5DF2, so it can be retreived later. 

5E5A 31 95 5E LD SP, #5E95 

5E5D 2 6 5E LD H, #5E 


5E60 21 68 5E LD HL,#5E68 

5E63 E9 JP (HL) 

5E68 3E 12 LD A, #12 

5E6A 32 93 53 LD (#5E93),A 




5E7 0 C9 RET 
Put a breakpoint at 5E70 and JP to 5E52. At 5E70, the 
value on the top of the stack is #5E76, so a RET will JP to 

5E7 6 CI POP BC 

5E7 7 7E LD A, (HL) 

5E7 8 ED 44 NEC 

5E7A 7 7 LD (HL) ,A 

5E7B 23 INC HL 

5E7C 10 F9 DJNZ #5E77 

This code is, as you might realise, a decrypter The 
start value of HL is #5E12, and the initial value of B is 
#3 A. In case you're interested, the NEG instruction turns 
the value in the A register into its negative form; in other 
words, the value in A is subtracted from #100 hex. Put a 
breakpoint at #5E7E and JP #5E70 which is where we left 


5E7F 22 78 5E LD (#5E78),HL 


5E83 3E C9 LD A, #C9 

5E85 32 7E 5E LD (#5E7E),A 

5E8 8 3E 00 LD A, #00 

5E8A 32 7A 5E LD (#5E7A),A 



5E8F C9 RET 

This code changes the previous decrypter slightly, and 
RETs to 5E77 Put a breakpoint at 5E8F and JP #5E7E. 

5E77 7E LD A, (HL) 

5E7 8 ED 67 RRD 

5E7A 00 NOP 

5E7B 23 INC HL 

5E7C 10 F9 DJNZ,#5E77 

5E7E C.9 RET 

This code works with the same values as the previous one; 
HL=5E12 and B=3A. It then RETs to 5E12. Put a 
breakpoint at #5E7E, and JP #5E8F (wher e we left off last 

5E12 21 B4 5F LD HL, #5FB4 

5E15 11 B5 5F LD DE,#5FB5 

5E18 01 B8 88 LD BC, #88B8 



5E1E 54 LD D,H 

5E1F 5D LD E, L 

5E20 1C INC E 


5E22 ED B0 LDIR 

These two LDIR commands wipe all the memory that isn't 
being used by the loading system. To get round this, you 
should change #5E1B, #5E1C, #5E22 and #5E23 to #00, 
to stop them being executed Put a breakpoint at #5E24 
and JP #5E7E (where we left off) 

5E24 06 IE LD B, #1E 

5E26 El POP HL 

5E2 7 7E LD A, (HL) 

5E28 EE A3 *XOR #A3 

5E2A 77 LD (HL) ,A 

5E2B 2 3 NC HL 

5E2C 10 F9 DJNZ,5E27 
The value in HL for this decrypter is #5E2E, which is right 
after the decrypter To crack it, therefore, move the code 
from #5E24 to #5E2D somewhere safe (such as #5B00), 
put a breakpoint on the end, and run the code from there 
When that's done, put a breakpoint at #5E2E and JP to 
#5E2E (so that you're back in the right place in the loading 

Carrying on with the loader 


5E2F 22. 02 5E LD (#5E02),HL 

5E32 El POP HL 

5E33 2.2 05 5E LD (#5E05),HL 

5E36 37 SCF 

5E37 3E 07 LD A, #07 

5E3 9 CD 00 5E CALL #5E00 

This code takes some values off the stack, and puts them 
into the subroutine at #5E00, which is then CALLed. Put a 
breakpoint at #5E39 and JP to #5E2E. 

5E00 DD 2 1 40 9C LD IX,#9C40 

5E04 11 90 1 LDDE,#190 

5E07 14 INC D 

5E08 08 EX AF,AF' 

5E09 15 DEC D 

5E0A 3E OF LD A,#0F 


5E0E CD 62 05 CALL #0562 

5E11C9 RET 
This routine is a headerless loader. The start is #9C40 and 
the length is #190. Also the value of A is 7, and the carry 
flag has been set. In effect, we could have used a standard 
CALL #0556 headerless loader. Put a breakpoint at #5E3C 
and JP to #5E39 Start the tape and load in the first short 
headerless block Then continue disassembling 

5E3C D2 01 00 JP NC,#0001 
This code resets the computer if there was a loading err or 
from the first headerless block. 

5E3F 2 1 40 9C LD HL,#9C40 

5E42 06 FF LD B,#FF 

5E44 CD 77 5E CALL #5E77 

5E47 06 FF LD B,#FF 

5E49CD77 5E CALL #5E77 (to be continued) 

ZXir QLive Alive! 


Summer 1999 



Place your ads here, it is free! 

Mail to: A. KAHALE 3343 S FLAT ROCK CT SIERRA VISTA AZ 85650-6874 

Please inform and/or update the Editor of any changes in your ad/s 

SPECTRUM for your 2068 

If you are a LarKen LK-DOS owner and would like to run SPECTRUM 
programs on your system, we will supply a V2 EPROM, socket and 
74HCT32 for $12 which includes shipping and handling. The instal- 
lation instructions are in your LarKen manual We shall not be respon- 
sible for your install job. AERCO owners need only the EPROM for 
$ 1 0 forwarded to LarKen. 

Bob Swoger Address on page 2 

747 Jfltgiji JStmulaitfr 

So you like to fly, the 747 Flight Simulator for SPECTRUM by Derek 
Ashton of DACC. Requires a SPECTRUM equipped 2068. Supplied 
on LarKen SSDD or DSDD LarKen disk for $10 which goes to Derek 
now working at Motorola with Bob. 

Bob Swoger Address on page 2 

Heme Electronics 

We have been a part of the Sinclair scene since 1982, repairing 
ZX Spectrums for Sinclair Research in England. 
We provide Sales, Service, and Software for the 

QL, Spectrum, ZX-81 and Z8S. 

www. members, tripod, com/hescomputmg/hes 1 .html 

Hours of Operation is Monday - Friday 1300 lirs. to 2100 
hrs. central time zone. 
Phone 210 661-4376 
John R. Rish 
Home Electronics Service 
5222 Kazen Dr. 
San Antonio TX 78219 USA 

The John Oliger Co. 

11601 Widbey Dr. 
Cumberland IN 46229 
The John Oliger Floppy Disk System 
FOR THE TS-2068 
Disk Works 
Expansion Board 
2068 User Cartridge 
Disk Boards "A" & "B" 
2068 Parallel Printer Port 
2068 EPROM Programmer 
2068/SPECTRUM Joystick Port 
DFh Mapped Universal I/O Port board 
User Manual only : $5.00 (Read before you buy) 

Service For America's 

Favorite Home Computers and Their Accessories 



Repair Charge Examples 
TS-1000, ZX-81, 1016 RAMPack, Memotech, ZEBRA Talker, 
MIRACLE Centronics, RAM Centronics. 
$5 00 each + parts & shipping. 
TS-2020, 2040, PC-8300, ZX-80, TI-99, Z-SIO, Byte-Back, 
AERCO 2068 Centronics, BASICare, LarKen RAMDisk 
$10.00 each + parts & shipping. 
TS-2068, Spectrum, A&J MicrD, Miracle 512K, LarKen 1000 
& 2068 FDI, Kempston FDI, Cumana FDI, CST FDI. 

$15.00 each + parts & shipping. July 1, 1996 
Reasonable flat rate plus parts and shipping. 
Write or call for prices, SASE appreciated 




RT 1, Box 117 
Cabool MO 65689 

Phone 417 469-4571 417 467-4571 


QLAMBer $20 

QLuMSi $20 

SeekQL $10 

Upgrades $5 

fit Imq 

914 Rio Vista Cir SW 
Albuquerque NM 87105 
(505) 843-8414 

ZX-TEXT - Word Processor 
ZX-CALC - Spreadsheet 
Business Software 

Cycle Accounting Financial Report Generator 
ZX-CALENDAR - Time Management 

ZXir QLive Alive! 


Summer 1999 

ZX-81 TS-1000 TS-1500 TS-2068 

Albert F. Rodriguez 

A . F . R . Sof twa re® 

1605 Pennsylvania Ave 204 
Miami Beach FL 33139 

305 531-6464 

Make David an Offer 
ZX-81 /TS-1000 TS-2068 
Hardware Kits 
Real Time Clock I/O Controller RS-232 
Centronics l/F 16K & 64K RAM 300 BAUD 
Modem A-D Converter(assembled) 

536 Long Ter 
Leesville SC 29070 


Bill Cable 

ARCHIVE Based QL Software 

QLerk - A complete financial program for the QL 
QLerk software (v3.21 ) with tutorial $29 
QLerk manual $29 
QLerk software & manual $50 
DBEasy - A menu based database system 

DBEasy software (v1 .6) $24 
DBEasy upgrade from V1 .5 $7 
DBProgs - A toolkit of ARCHIVE procedures 

DBProgs software (v1 .8) $18 
DBProgs upgrade from V1 .7 $7 
DBTutor - A general purpose learning program 

DBTutor software(v1.5) $12 
PC DBEasy - Just like QL DBEasy but, you must have 
PC ARCHIVE to use It. 

PC DBEasy software (v1 .3) $12 
Wood & Wind Computing 
RR3 BOX 92 
Cornish NH 03745 USA 
Phone (603) 675-2218 
Email : 

810 254-9878 
24 hours a day 
300 to 28,800 bps 

Supporting all Sinclair and Timex users Fidonet 
echomaii areas for Sinclair computers Lots of new 
files for you to download such asTS-2068 emulator 
for those who use a PC give us a call and let us 
know what you want to see 
Message area and file area 

QL International, Quanta, QL Hacker's Journal, 
Spectrum/2068, ZX-81 /TS-1000, Z88, NetMail, 
emulators, pointer, FDFormat for QXL/QDOS, etc. 
Sysop John J Impellizzeri 
Co-Sysop Don Walterman 
Utica, Michigan, USA 

ID € rn i n © € u it) e § 

Hardware 5 Software 

352 7 th Ave. 15 th Fir. 
New York, NY 10001 
Phone 212 631-7563 
Fax 212 947-5069 Voice mail pager 917 490-8407 

LIST 1M2 Newsletter 

Tie Long Island Sinclair/Times: Users Group 

Robert Malloy, Treasurer 
412 Pacific St. 
Massapequa Park, NY 11762 


New England Sinclair QL Users Group 

Ed Kingsley, Editor 
16 Highland Avenue 
Saugus MA 01906 
(781 ) 233-3671 

Hacker's Journal 

Supporting All QL Programmers 
Timothy Swenson, Editor 

2455 Medallion Dr. 
Union City, CA 94587-1914 
http://www. geocities . com/ S ilconValley/P ines/5865/ 



The Capital Area T/S Users Group 

Barry Washington 
7044 Cindy Ln 
Annandaie VA 22003 
301 589-7407 
BBS 301 588-0579 

ZXir QLive Alive! 


Summer 1999 


Chicago Area Timex u sers Gr oup 

Robert Swoger 
613 Parkside Cir 
Streamwood IL 60107-1647 

630 837-7957 

The Ram top 


The Greater Cleveland T-S User Group 

Thomas Simon Editor 

615 School Ave 
Cuyahoga Falls OH 44221 
E-Mail CIS 73177,333 

Jon Kaczor Production 
4568 Williamson Ave 
Brooklyn OH 44144 

Peter Liebert-Adelt 

http:://home, t-oniine de/home/p. liebert/zx-team. htm 
Amateur Radio: DK4BF@DB0FC.#NDS.DEU.EU 

The ZX Spectrum 48/128 Emulator 
for IBM &l Compa tables: Z80 Version 2.01 

Turn your PC into a real ZX Spectrum 48/128! 
=*- Full Spectrum emulation, border, flash, beeper, Interface 1, 
Microdrive in cartridge file, RS232 input and output redirection 
to file, COM or LPT, joystick support, 128K sound through 
Soundblaster or internal speaker, built-in monitor, 
=*- Able to load ANY, even protected or speed-saved program 
from tape, to save to tape, to redirect tape loads and saves to 
disk for easy file access, 
=*•- 2500 line English documentation. 

=*- Z80 processor amulabon including R register, inofficial in- 
structions, inofficial flags, 

=*- Runs okay under DOS, Windows and DesqView, 
=*- Full source code of emulator and utilities included! 
Runs on any 640K PC; too slow for practical use on PC/XT's 
but fast enough on ATs ; runs at about 100% on 16MHz AT's 
(can be slowed down on faster machines), uses 
VGA/EGA/CGA or Hercules. 
This program costs US $20. You will receive a 3.5" DD disk 
(5,25" disks on request), and you'll be kept informed about up- 
dates. Please send bank notes (bills), name and address to: 

Gerton Lunter 

PO Box 2535 
NL-9704 CM Groningen 


If you send a cheque, please add US $15 extra and allow 4 
weeks for delivery 

J€cBb©&b Merz §€fUware 

The RomDisk! Fully functional! 

See previous issue of QL Today Extremely small board for the 
QL's ROM-Port, works like a permanent RAM disk, even if the 

power is taken away, contents are not lost! 
The color drivers are coming In order to be able to upgrade to 

the color drivers, you need to have SMSQ/E The normal 
SMSQ which is shipped with QXL card will not be able to han- 
dle more colors To benefit from the colors in the future, and 
benefit now from the extra features of SMSQ/E 

SMSQ/E for the QXL 

As Aurora owners will be able to use more colors when the 
color drivers are available, another offer for SMSQ/E for the 
Aurora plus GoldCard/Super/GoldCard: 

SMSQ/E for the Super GoldCard 

QL Games & Upgrades QL Applications 
ProWesS + Applications 
Jochen Merz Software 
Im stillen Winkel 12 
47169 Duisburg, Germany 
S 0203-50201 1 Fax 0203-502012 
Credit Cards accepted 

^ h[ 

Jmr HE &BNP 

QL Today is published by Jochen Merz Software Jochen 
Merz has been supplying software for the QL for several years 
and has built up a good reputation for quality and fair trading 
The representative in Britain is Mracle Systems Ltd. who take 
subscriptions and do the distribution 


Germany (+German add-on) DM 70 
England DM 60 £25 

Rest of the world DM 70 £30 

Back-issues are available for DM 12 (incl postage) 
Checks should be made payable Miracle Systems Ltd 
English Office 
Miracle Systems Ltd. 
20 Mow Barton 
Yates, Bristol 
United Kingdom BS17 5NF 
Tel. +44 1454 883602 Fax. +44 1454 883602 

Dilwyn Jones 
41 Bro Emrys 
Tal-Y-Bont, Bangor, Gwynedd 
United Kingdom LL57 3YT 
Tel. +44 1248 354023 Fax. +44 1248 354023 

ZXir QLive Alive! 


Summer 1999 

Items for the Timex\Sinclair Computer 

Timeworks Programming kit #1 For T/S 1000 & ZX81 $4.95 
Mind ware Gulp Game Timex 1000 & Sinclair ZX81 $4.95 
Timex Horace & The Spiders for the 2068. $5.95 
Timex Sinclair 1000 software on tape 
Chess ( 1 6K RAM) qty 5 price $2 . 95 ea 
The Challenger I qty 17 price $2 95 ea 
Mindware MW100 plain paper printer for the TS1000 or 

ZX81 computer made in the US $45 .00 
All items are new. Please add $3 .95 shipping to all orders. 
MC, VISA, American Express, phone 717-748-1747 

Keith Electronics 
224 North Grove St 
Lock Haven, PA. 17745 

$30 Plus $10 
for shipping and handling 
TS-2040 Printers 16K RAM 

We Do Not Ship Outside The US & Canada 
Checks, Money Orders and Visa or Mastercard 
Call 212-675-8414 FAX 212-675-8980 

Zebra Systems, inc. 
122 W26th St. Suite. 904 
New York, NY 10001 

Shipping is by UPS ground. 
Basics of Timex Sinclair 1500/1000 BASIC 

A copy of this book is shipped free with each ZX-81 kit. 
Allen Wolach, Separately priced $12.95 
BASIC Basics for the Timex/Sinclair 1500/1000 
A copy of this book is shipped free with each ZX-81 kit. 
Michael Barnett//Simon Barnett, Separately priced $12 95 
The Ins and Outs of the Timex TS-1000 & ZX-81 
Don Thomasson, $12.95 
Computer Interfacing Technique in Science TS- 1500/1 000 
Paul Field & John Davies, $12.95 
ZX-81 BASIC Programming (in Spanish language) 
Steve Vickers (Traducido y adaptado) A copy of this book is 
shipped free for asking if you just pay for additional shipping 
cost. Separately priced $10 

Sinclair Resources 

" i ' • • • i • • i -'• i : ' ' ■ ■ ■ - - 

Jack Dohany (Developer - 2068) 
627 Vera Ave 
Redwood City CA 94061 

John McMichael (Developer - Graphics) 
1710 Palmer Dr 
Laramie WY 82070 

Bill Russell (QL) 
Russel Electronics 
RR1 Box 539 
Center Hall PA 16828 

Keith Watson (AERCO & Z80 Emulator) 
41634 Amberly Dr. 
Mt. Clemens, Mi 48038 

Rod Gowen (RMG) 
14784 S Quail Grove Cir 
Oregon City OR 97045-8843 

Send them a LSASE and ask for information about 
their current products and/or services. 

Alec Carswell 


16 Montgomery Ave 
Beith Ayrshire KA15 1EL 
United Kingdom 


T/S inventory 

281 130 th ST 
OGDEN IA 50212 
< > 

BEND OR 97701 
< > 

QL. TS- 


ZXir QLive Alive! 


Summer 1999