Your Spectrum
Issue 14, May 1985 - Letters Page
Home Contents KwikPik
.

NORTH OF WATFORD?

You see, we're not all dead 'up North', it's just an act! I'm afraid that Andy Pennell's 'Dumps of Distinction' has got me. I managed to put a couple of rolls of printer paper through the firm's accounts - and out pops this. (That'll teach you to pay for your own paper in future - Ed.) The machine code prints a column about 20" long, then the Basic pauses to allow the printer to cool down! Note that the Machine Code is called straight after channel open. Incidentally, this is one of my favourite games (PSSST).
I'd like to say how much I like your magazine, but my handwriting gets shaky when I giggle. Anyway, I'd best put this picture down and while I'm at it, have I got time to tell you about the Manchester Longsight Sinclair Users Club, which meets in Longsight Library on Wednesdays? ... No?, Ah, well.
Roland Lumby
Whalley Range, Manchester
f o r u m

Write to us - there's a bundle of free Spectrum software for this month's Star Letter! Write to Forum, Your Spectrum, 14 Rathbone Place, London W1P 1DE.
.

DUMPING THE GEMINI

I have found a way of producing a Dump of Distinction with a Gemini 10X printer. You can do it by using the listing from Forum issue 8 for the Shinwa CP8O and changing the line feed to 4/144 and using dual density graphics. The lines to be changed are:

1110 DATA 127, 62, 4, 205, 20, 127, 14, 0, 62
1120 DATA 27, 205, 20, 127, 62, 75, 205, 20, 127


You'll also have to change the checksum. This will give a dense print of 11 cm by 18 cm. A more impressive print 20 cm by 27 cm can be made with:

1110 DATA 127, 62, 6, 205, 20, 127, 14, 0, 62
1120 DATA 27, 205, 20, 127, 62, 75, 205, 20, 127


Unfortunately, you will lose a narrow strip across the top of the screen with this routine.
.

TIME FOR BED

I really enjoy your machine code programs but they wear me out. I just don't have the time or the stamina to sit down and type in the whole program in one go. Press Caps Shift and 6 together to break into the Hex loader; type SAVE "file name" CODE <start address>, <length of code>; then, when you come back to your program, load back in the Hex loader and type CLEAR <clear address> (usually found in a line at the beginning
.
of the Hex loader). List the program and locate the FOR ... NEXT loop and change the first value so that it corresponds with the address you have got up to. Type GO TO 10, and away you go again. Don't forget to reset the Caps Lock again.
Martin Green
Fraserburgh


Thanks for the formula, Martin. It will work on most of the Hex loaders that we publish. Now I think I'll get some shut-eye - all that talk of sleep has worn me out. Troubleshootin 'Pete.
I'd like to say how much I like your photo, but my handwriting gets shaky when I roll around the floor laughing. Still, we have one thing in common - I like being PSSST as well. Ed. Roland Lumby with Pssst screen dump
ADDRESS
 
8000
8003
8006
8007
8008
8009
800B
800C
800E
800F
8011
8012
8013
8014
8016
8017
8019
801B
801C
801D
801F
8021
8023
8025
8027
8029
802A
802B
802D
802E
802F
8030
8032
8033
8034
8035
8036
8038
8039
803A
803D
803E
803F
8040
8041
8042
8043
8045
8046
8048
8049
804A
804B
804D
804E
804F
HEXCODE
 
210040
110058
00
00
00
0603
C5
0E08
E5
0608
E5
D5
C5
0E04
7E
0608
CB17
F5
1A
3806
CB1F
CB1F
CB1F
E607
C690
D7
F1
10EC
23
13
0D
20E4
C1
D1
E1
24
10D9
E1
C5
012000
09
EB
09
EB
C1
0D
20C9
A7
3E07
84
67
C1
10BE
00
00
C9
MNEMONICS
 
LD   HL,4000
LD   DE,5800
NOP
NOP
NOP
LD   B,03
PUSH BC
LD   C,08
PUSH HL
LD   B,08
PUSH HL
PUSH DE
PUSH BC
LD   C,04
LD   A,(HL)
LD   B,08
RL   A
PUSH AF
LD   A,(DE)
JR   C,8025
RR   A
RR   A
RR   A
AND  07
ADD  A,90
RST  10
POP  AF
DJNZ 8019
INC  HL
INC  DE
DEC  C
JR   NZ,8016
POP  BC
POP  DE
POP  HL
INC  H
DJNZ 8011
POP  HL
PUSH BC
LD   BC,0020
ADD  HL,BC
EX   DE,HL
ADD  HL,BC
EX   DE,HL
POP  BC
DEC  C
JR   NZ,800E
AND  A
LD   A,07
ADD  A,H
LD   H,A
POP  BC
DJNZ 800B
NOP
NOP
RET
  10 PRINT AT 10,0;"HUGE SCREEN$
 FANCY PRINTER COPY"
  20 PRINT ''"HAVE PRINTER READY
  LOAD SCREEN$"
  30 LOAD "" CODE 16384
  40 FOR n=0 TO 28 STEP 4
  50 POKE 32769,n: POKE 32772,n
  60 LPRINT : LPRINT : LPRINT : 
LPRINT : LPRINT : RANDOMIZE USR 
32768
  65 IF n=28 THEN GO TO 90
  70 FOR t=60 TO -20 STEP -2
  80 BEEP .1,t: PAUSE 50: NEXT t
  90 LPRINT : LPRINT : LPRINT : 
LPRINT : LPRINT
 100 NEXT n
 110 BEEP .1,30: PAUSE 2: GO TO 
110
 999 STOP
1000 LOAD "" CODE
1100 LOAD "" CODE
1200 RUN
9997 SAVE "HUGESCREEN$ " LINE 10
00
9998 SAVE "U.D.G.s" CODE USR "A",
64
9999 SAVE "McCODE" CODE 32768,120
This is the Basic part of the program which lets the poor overworked Speccy cool down after each strip-printing stint.
A255255255255255255255255
B255221255247255191253239
C255171255213255171255213
D17085170851708517085
E8585858585858585
F084042084042
G03408064216
H00000000
USR "h"+7: READ u: POKE a,u ... etc. Anyway, I'm sure I needn't go into that, 'cause you're probably sick to death of hearing about UDG generators. Get hold of an Assembler, Monitor or plain old Hex loader and type in this code. This needs to be organised from 8000 Hex, so make sure you CLEAR the space in memory for it.

Originally, I had hoped to modify the listing given for the Epson MX, but I found this too difficult. If anyone has been successful though, I'd be very pleased to hear from them.
A N Key,
Isle of Wight


So would we. This has to be the most popular dump, since Slough acquired a trading estate. Ed
.

LOWERING THE TONE

If any fellow readers are writing programs using both INPUT and INKEY$ then the following technique may be of interest. After using INPUT leave the Spectrum with Caps Lock set and subsequent INKEY$ may return upper or lower case letters. The usual answer is to laboriously check for the upper and lower case of each letter used.
A neater and more convenient alternative is to include the
following line between INPUT and INKEY$, which cancels Caps Lock if it is set, and then only lower case need be checked for.

10 LET X=PEEK 23658: LET A=X: FOR N=7 TO 4 STEP -1: LET A=A-2^N * INT(A/2^N): NEXT N: IF A>=8 THEN LET X=X-8: POKE 23658,X

It works by setting bit 3 of the system variable 23658 (FLAGS2) to 0. This acts as a toggle for Caps Lock. If you wish to modify the line to set Caps Lock instead, this requires only two slight changes.
J Sonander
Harrogate


Well done Mr Sonander, but what about turning Caps Lock on with POKE 23658,8 and then just checking for capital inputs? Troubleshootin' Pete.
.

Star Letter
MAC HACK

Thank you for printing the excellent Macman in the March issue. The only thing it needed to make it perfect was a joystick option. So, for the first time, I tried my hand at hacking and came up with the following, (without the use of a disassembler, I might add!) for use with the Kempston interface:

POKE 2956,0: POKE 2952,31: [sic] POKE 29260,95: POKE 29261,194: POKE 29265,0: POKE 29267,31 POKE 29269,87: POKE 29270,194:
POKE 29274,0: POKE 29276,31: POKE 29278,79: POKE 29279,194: POKE 29283,0: POKE 29285,31: POKE 29288,194

I admit this is not the most elegant way to use the Kempston port but it is consistent with the keyboard version and so does not affect timing. Also, it doesn't change the reference to the now disabled keyboard control in the instructions.
D W Arthur
Midlothian


Turning the tables on us, eh? The hackers hacked Ed.
.

MEGABOARD

I am half interested in buying YS Megabasic, and half interested in buying a Spectrum+ keyboard.
Is it possible for you to bundle the two together, with new keys QL-style - i.e. without multiple printing to confuse the keys? I'd buy one.
Peter Walsh
Rochdale


What do you mean, you're half interested in buying Megabasic? How can anyone still be dithering? This is the program of the year, and next year for that matter. However, we don't have any plans to bundle software and hardware yet (give us time!). If you really want a keyboard without the confusing legends, then you should take a look at the Saga 2+ or Saga 3 keyboards, both of which come with the option of having only the standard alphanumeric keys. Ed.
.

MEGABUGFIX

It had to happen. As soon as you all got hold of your copies of YS Megabasic, you turned up bugs which I had unfortunately missed during the production of the program. All I can say is that it's such a big program it was inevitable that some things would slip through.
However, I have come up with a bit of code which will fix the few bugs that have come to light. Top of the flops is the MONitor bug. First of all, to get this code into MegaBasic, load up your master copy in the normal way and then type in the given listing to the MegaBasic system. Save the MegaBasic program you've just typed in, and then RUN it. If the Spectrum NEWs itself, then all has gone well; if you get an error report - check your typing!
To save the new version of
MegaBasic, type SAVE "MB" CODE 44996,20373; or if you prefer to save onto Microdrive, type SAVE "M";1;"MB" CODE 44996,20373. When you want to load it all back in again, type CLEAR 44999: LOAD "" CODE, or from Microdrive type CLEAR 44999: LOAD *"M";1;"MB" CODE. Once loaded, Megabasic will automatically execute itself. That should stop anyone executing me!
Mike Leaman,
Torquay, Devon


Cheers Mike. If you find any more probs with YS Megabasic you can drop Mike a line at Your Spectrum, 14 Rathbone Place, London W1P 1DE, and he'll sort it out. That or we'll send the boys round to sort him out. Ed.
1000 LET c=0
1010 FOR a=47110 TO 47367
1020 READ b: POKE a,b
1030 LET c=c+b
1040 NEXT a
1050 IF c<>27311 THEN PRINT "checksum error": ST
OP
1055 POKE 53361,195: DOKE_53362,47352
1060 RANDOMIZE USR 47110
1070 DATA 62,229,50,80,222,62,255,50,115,206,1,19
5,175,205,183,30,33,36,219,34,196,175,33,50,184,9
4,35,86,35,123
1080 DATA 178,202,183,17,1,3,0,237,176,24,240,195
,6,184,37,219,195,67,184,125,219,195,90,184,78,21
0,195,227,184,0,0,58,20,255,167,202
1090 DATA 20,5,33,84,184,229,237,115,61,92,207,49
,33,0,220,195,40,219,33,200,174,34,54,92,205,110,
13,175,211,254,62,6,50,72,92,50,143
1100 DATA 92,50,141,92,205,175,13,62,2,205,1,22,1
7,173,184,175,205,10,12,58,8,92,254,46,40,3,195,1
73,207,6,69,33,112,23,126,35,50,143
1110 DATA 92,229,197,175,17,164,184,205,10,12,193
,225,16,238,195,173,207,128,4,32,76,65,82,65,32,1
32,128,22,0,0,4,89,83,32,77,69,71,65
1120 DATA 66,65,83,73,67,13,13,3,86,101,114,115,1
05,111,110,32,49,46,49,13,13,2,127,32,77,105,107,
101,32,76,101,97,109,97,110,32,49,57
1130 DATA 56,53,13,141,254,255,40,7,190,194,85,21
0,195,81,210,58
1140 DATA 52,233,167,202,179,181,193,175,201
1150 DATA 237,91,218,251,19,19,19,19,19,19,19,19,
19,195,117,208
THE YOUR SPECTRUM TRAINSPOTTER AWARD
We all make mistakes. (Yes, incredible as it may seem, even me - Ed.). Now all those of you who take great delight in pointing out all our minor misdemeanours will have the chance to achieve our highest accolade - The YS Trainspotters' Award. These certificates won't be given out lightly - you're going to have to reach previously unplumbed heights of pedantry in the reading of YS to get one. Signed with the ceremonial biro by the Ed himself, this is not a chance to be missed. So, get trainspotting those mistakes - there ain't that many of 'em! (Tee hee. - TP.).
Our first award winner has trainspotted himself to stardom by pointing out our faux-pas in the Ghostbusters article in issue 12.
"How could you do it? How can you hold your heads up? Over the last couple of months I've been slimed by green ghost and stomped on by the Marshmallow man, but this is as nothing to the indignity of having to read a copy of YS with a Commie 64 screen shot in it. There I've said it, you've forced me to mention the 'orrible brown box by name. I managed to reach the Temple of Zuul so why couldn't you? Please promise to never let it happen again."
Terribly Disappointed Chessington


Well Terry, I can call you Terry, can't I? you have become the first recipient of our coveted Trainspotters' Award. I do so hate a clever dick. Any more takers out there? Ed.
This program kills all known Megabasic bugs dead! NOTE: The version of the Ghostbusters article on this site has a correct Spectrum screen shot.
Home Contents KwikPik