Link to editorial & letters
Link to files
Previous disk program notes
Next disk program notes
Disk 9 program notes
NEW TASWORD CHARS by D.Munro
This conversion program is made up of the following 3 programs:-
"tasnewchar", "charprint" and "INSTRUCT"
"tasnewchar" converts the COUPE disc version of TASWORD2 to
enable it to print hard copy of various user defined graphic
symbols such as pi, mu, rho, square root sign, etc. by sending
control codes to set bit image mode 4 followed by 8 to 10 bytes
making up the character.
I have been trying for some time to find a way of doing this
because my printer- an Epsom RX80FT bought in 1983- does not
allow any changes in the standard character sets or fonts. But I
frequently need symbols like those mentioned when typing out
maths & electronic test papers etc. for F.E. students. So the
program may well have limited interest to other SDC members but
you never know. Anyway, it has given my printer a new lease of
life and postponed the day when it will have to be replaced by a
more modern one.
The program is not transferable to the original cassette version
of TASWORD2 since the calls to the printer are quite different.
Probably the same applies to TW3 but cannot say for certain as I
do not have TW3. However, the conversion is not very difficult
and anyone with the other versions should be able t mak the
necessary changes.
Before using "tasnewchar", a newly formatted disc must be
prepared and a separate version of "tw" and the "twcode" saved
to the disc, after changing the relevant Basic lines where "tw"
& "twcode" appear, to "tw4" and "tw4code" and changing the code
start and length to 54000,11535. The text file "INSTRUCT" gives
full details of the changes needed.
Once this has been done, loading "tasnewchar" autoruns &
converts the "tw4" version to a new version containing the
modified code needed to make the bit image mode work.
This final version is resaved to the disc. The program also
makes the necessary changes to the HELP page.
A demo text file "charprint" can then be loaded from within
"tw4" and printed out as hard copy (see sample enclosed).
There are several REM's which explain the main functions of the
program, and for anyone wanting to add/change the symbols, it is
a matter of changing the codes in the DATA lines (there are 4
unused character spaces).
A word of caution: as can be seen from the DATA BIN statements,
these are written back-to-front and sideways on to the normal
view. This is due to the way the pins in the print head form the
character from left to right with the MSB for the top of the
character and the LSB for the bottom of the character.
Also in the bit image mode the ninth pin cannot be fired and
this means characters with descenders will be slightly above the
line of print e.g. the character rho.
In each group of 16 bytes, the first 5 are typically:
27,42,4,10,0
27 = CTRL CODE coming next
42 = Set bit image mode
4 = Mode 4
10 = no. of bytes to follow
0 = no. not more than 255
The 10 can be 8 or 9 but 10 is the maximum. The number depends
on the character shape. But it must agree exactly with the
number of bytes forming the character, neither more nor less.
The next 8 to 10 bytes are the character.
Finally, the next 3, 2, or 1 bytes must be 255 as this is the
end marker. This means that 255 must not be used in the bytes
forming the character.
Also, any gaps must be filled with 255's and this is why there
are blocks of 255's in commands such as "emphasised" print which
only need 2 or 3 bytes each to set/cancel the command.
A look at the listing should clarify this.
Finally, a brief look at the machine coding. The 256 data bytes
making up the 16 characters are stored in a table at 54000 to
54255. The print routine at 60830 to 60859 is modified to look
up this new table instead of the table of 16 by 4 bytes at 60860
to 60923. Of course, this means that using the A Alter command
in the main tasword menu will have no obvious effect as the
original table is now bypassed.
Addresses 54000 to 54255 do not seem to be used by TASWORD2 and
all the normal functions including block move work.
54000 is also well above the end of file marker at 53248 so
text space is unchanged.
The code is also modified to multiply the value in the
A Register by 16 instead of 4 as it now has to look up a 16
block in the table. Fortunately, there were two NOP's
conveniently located allowing insertion of the two extra ADD A,A
commands.
Dave, this letter has become rather lengthy but feel free to
edit it. Hopefully, someone out there will find it useful. I
would welcome any comments, especially helpful ones!
Thanks again for your help with my emulator queries.
I have nothing but admiration for the programming skills of the
contributors to the Supplement. Wishing you and the team
continued success!
________________________________________________________________
INDEX by Dave
Yes, we finally have a Supplement index system. It's only a
simple one, but I think a few pointers wouldn't come amiss.
First use the SAVE option to put the index onto a fresh disc.
This will help in the future, when you have to update it.
The program is saved as "INDEX" and "INCODE", but you may change
"INDEX" to "AUTO" if you wish. Don't change "INCODE" though, or
the program won't load.
The copy on this disc has the first 8 issues already in, and
there is an update for issue 9 also on this disc. This is to
allow you to practice updating.
When loaded, you will see 3 options, plus, how many issues are
in the datafile already, (8 in this case).
Option 1 allows you to view the issues, starting with issue 1.
Whilst on view, you can print out, go to next issue, go to last
issue, print out all issues or choose which issue to view.
You can also return to the main menu.
Option 2 allows you to save the data after updating for
instance. The data is always saved as "INCODE", and
overwrites the previous "INCODE" file.
Option 3 is for adding an issue. On each issue of the mag from
no 9 onwards, there will be a file called "IS" plus the issue
number. e.g. IS9.
You will be asked which issue to load and after the correct disc
has been put into drive one, the new data will be loaded in with
the current data. You can now use option 1 to view as explained,
or option 2 to save off the new block of data.
Issues MUST be loaded in numerical order, otherwise, when viewed
the wrong issue will be under the wrong heading. So if for
instance the program says that there are 10 issues in memory,
issue 11 must be loaded next, before issue 12.
I have copies of all the "IS" files if you get into trouble, or
miss an issue.
As I mentioned, issue 9 is not in the main data, so here's what
to do..
1) Load "INDEX"
2) Select "3"
3) Input "9" when asked which issue to load.
4) Insert issue 9 and the new data will be loaded, and you will
be brought back to the main menu.
5) Select "2" and replace the "INDEX" disc in drive one.
The data on the "INDEX" disc will be updated.
You have to do this for every issue from 9 onwards, to keep the
index up to date.
I've written the program in BASIC, so you can modify PRINTOUTS
etc. to your own taste.
If you get into serious trouble with the program, simply load
issue 9 again, and resave the INDEX to a fresh disc, then
re-read all the subsequent issues in and save the new data off.
________________________________________________________________
KEYBOARD INFO by John McCabe
Keyboard is designed for users of word processors and flight
simulators, etc. who would find it useful to have to hand an
aide-memoire showing which command is assigned to which key. As
an example, load "TAS.KBD".
I have provided a skeleton keyboard layout which you may
'customise' and print for your own use.
This program is an improvement on the 'Overlay' Tas file I
published some time ago in the SDC newsletter: it is designed
for the Sam and prints out in one pass.
________________________________________________________________
EXAMINMEM by John McCabe
Simply shows in decimal what is in memory, and the ASCII
equivalent if desired.
________________________________________________________________
S-S-Sampler By Matthew Collinge (sort of!)
Well after reading the results of a sampler in YS a few months
back I felt it was time to convert an old speccy sampler onto
the Coupe. But instead of just converting it and saving it to
disk I customised it a lot so that it will use some commands
exclusive to the Coupe. I have a feeling that it was first
printed in the first few issues of YS but i'm not sure. It is
certainly much better than the sampler printed in YS or the one
in issue 4 of the Supplement
Firstly connect a tape/CD/DAT/or just about anything to the ear
socket and select a very loud volume (not too loud though as it
may distort, then you are ready to sample something. Use the
keys Q and W to set the place in memory that you want the sample
to start at, then use O and P to set the length. When it loads
up the default is maximum memory. < and > control the sample
speed (even when recording the sample) a small bar indicates
fast, and a large one (oo-er) indicates slow. Once you have
sampled something you can press T and go into the tuning stage
press the number keys to select a bar, then < and > to change
the speed, or Q to quit. You can also make a graph of the sound
by pressing G and entering the start address (normally 30000).
Edit is supposed to cut down the sample but doesn't work,
instead it just plays the tune (if anybody can fix this problem
then please write in).
Could someone also see if they can utilise all of the avalable
memory as at the moment it only uses the part below 65536. To
get the best results from this sampler you'll just have to
fiddle with it and find the best volumes and tone levels etc.
Save will save the sample with the extension .SAM so only six
letter file names should be entered. Load only needs the file
name and not the extension.
As yet I havn't tried to produce a stand-alone sample but after
my GCSE exams are over I will have a go.
STOP PRESS NEW FEATURE...STOP PRESS NEW FEATURE...STOP PRESS NEW
I have just added a new feature which is used to save to RAM and
not to disk, you can save up to 4 files in this way. All you
have to do is to press S to save in the normal way then at the
prompt type R for RAM save, select a page to put it in then
press return, the program will then return to the main menu.
The page number is like a very limited file name, so to load
from the file 1 in RAM just press L then type R then enter 1 and
the sample will be taken from memory and put into the sampler.
It is reletively easy to change the listing to add further pages
of RAM for 512K machines so I will let you do that. I would
still appreciate someone writing a mash program so that a sample
can use the whole of the memory above 65535, though it would
mean this new feature would have to be scrapped.
________________________________________________________________
Key List - By Matthew Collinge
This small program will display a list of all the basic
commands accepted by SAM (the list will change when SamDOS or
MasterDOS is installed). This list can be useful when you are
looking for new commands and hidden commands. It also has other
uses e.g:-
Say for some reason you wanted to catch the attention of a
person DIRing your disk, more than a ten letter file name would
do it, so using the list you can form very long filenames.
"LOAD ME NOW!!" might be a possibility.
To save a file like this look down the list for corresponding
commands, eg LOAD, note the number down then save the program
like this:
SAVE CHR$ 149+"ME NOW!!"
By selecting the program names carefully you can create really
long titles.
NOTE:- To load the programs you either have to type
the name exactly as you saved it, or by its number.
________________________________________________________________
BIGPRINT by Dave Tonks
If you ever wanted to make quick text title screens, this is the
program for you. It lets you print huge 32x32 pixel character
sets onto the screen at any pixel position, using 3 predefined
sets stored in memory.
The basic controls are as follows:-
C) clears the text work screen.
H) puts the cursor square back to the top left of the screen.
ENTER) moves the cursor 32 pixels down and back to the left of
the screen.
SPACE) takes you to the input screen.
S) takes you to the SAVE screen option.
To use the program, position the cursor square where you want
the first character to be printed. Now press "SPACE". You can
now input your text, which can only be maximum of 8 characters
(any extras are ignored).
Now press "ENTER" and your text will be printed on the screen
from where you specified. If the text flows off the right hand
edge of the screen it will be ignored. The cursor can now be
repositioned and more text added if required.
When you are satisfied with the result, pressing "S" will clear
the screen, and ask for a filename. Your screen will now be
saved to disc as a SCREEN$.
There are 3 fonts to choose from, and pressing "1", "2" or "3"
will swap between them. Note that swapping fonts clears any
current text...
For the technically minded, the fonts are made up of the
characters 32 to 90 inclusive, which does not include lower
case, but includes numbers and most punctuation. Each character
takes 515 bytes of memory giving 30385 bytes for the whole set.
At the beginning of each set are 16 bytes of PALETTE
information, so the whole set is 30401 bytes long.
Sets must be defined on a 32x32 pixel grid, and GRABbed and
POKED into memory one character after the other.
If you didn't understand that last bit, don't worry. In future
issues I shall be explaining step by step, how to design and
store your own sets. I also have several other sets which I will
put into future issues for you to use in the program.
________________________________________________________________
BANNERS by Darren Talbot
There were quite a few of these banner printing programs around
in the early days of the Spectrum. Mostly for use with Clives
silver paper printer. This one however, brings the genre up to
date with many new options.
You can print out your banner in single or double row text, you
have a choice of fill patterns and the finished result doesn't
look blocky.
The program is very easy to use, and has step by step
instructions contained within it. It prints out to any kind of
Epsom compatible printer, and if you have a wide carriage
printer, you could print your own wallpaper..
________________________________________________________________
GALLERY (various)
Another look at members' own masterpieces. I'm afraid that space
prevents me putting on many in one issue, but these will give
you something to look at for a while.
.
TASWORD 2 (SAM) BASIC MODS (MIKE HAINE)
These are some notes on the modifications I have made
to Tasword 2 (SAM) basic.
1. The original MENU system may be alright for the new user,
but is cumbersome and slow later on. I have replaced it with a
POPUP system with some extra refinements.
1.1 F9 still returns you from TEXT mode to the menu. To get
back to TEXT, just press RETURN (NOT "V" as the menu
suggests!!!)
1.2 "Q" gives you the option to change paper and pen. The
values put in should range from 0 to 15 (I tend to use 14 & 0) .
The border can be set in basic such as BORDER 0. (ESC from the
menu then BORDER 0, then GOTO 1 gets you back to MENU). (Having
found your best choice you can save the version by "T" from the
main menu).
1.3 LOAD (PRESS "L"): This gives you an INPUT query for a
name. For example I use a disc for letters. On it I have a
number of letterheads which were written and saved under the
names adr1,adr2 etc. So To start a letter I just LOAD "adr1".
Note that the letter header has a line " TO ??????????: DATE
HERE". This reminds me where to put the senders name and the
date which I just type in over the latter.
If you want to remind yourself of the names of the items
on the disc you press either "c" or "d". On the disc I use for
letters the version of TAS 2 has all the letters saved under
names "LC120NAME". The l means a letter C is the month (12 in
hexadecimal) 20 is 20th. 1=1991 and the name (often abreviated).
This system I used on the Spectrum.It could be modified now to
use the better DOS facilities on SAM. "c" gives a full directory
list of all the items beginning with l:whereas "d" gives the
whole directory: At the bottom an INPUT query allows you to type
in the name for loading or, by pressing RETURN, return to menu.
1.4 "SAVE"
It will be noted that the MENU page now shows the name of
the last item loaded: This is useful if, as often happens with
me, one wants to put a text on one side to continue later. One
then presses "s". First you get a query "C FOR DIR?" Press "y"
is yes or Any other key if not. You now have the name query. If
you want a new name then type it in and RETURN. If you want to
resave under the same name shown on he screen just press
RETURN. (A BIT OF CARE MAY BE REQUIRED HERE, I HAVE
WRITTEN a LETTER, THEN SAVED, THEN SCRUBBED THE TEXT ON SCREEN
AND DONE ANOTHER AND GONE BACK AND SAVED WITHOUT CHANGING THE
NAME!!!! IE OVER THE OTHER ONE!!!!
1.5 "MERGE" Same as load but allows one to merge some text
to the end of whatever is already there.(In fact LOAD does this
anyway so MERGE is surperfluous).
1.6 "Erase" To erase items from disk. Note that on
completeion it comes back for more. RETURN for the menu!
1.7 "Tas save" "T" Saves the basic prog. but not the Tasword
code: to save the latter goto basic and goto 1520:. GOTO 1 takes
you back from basic to the prog. (NOT RUN!!!!!!!!)
2. 2 COLUMN DUMP.
The normal dump for the T2 text follows the 64 character
lines shown on the screen. Now, in condensed mode, which I find
just as easy, if not easier, to read as PICA, 137 chars can be
printed on each line. This means that 2 columns of 64 chars can
be printed with an adequate gap between them.In this mode the
block graphic controls for underline etc. are acted on unless
they attempt to change from condensed mode, in which case they
are disregarded.
In operation the routine first does a little calculation.
It is going to print up to 116 lines per A4 sheet; ie 58 per
column. If the calculation finds the number of lines in the text
is less that 116 then it finds the midpoint and hence the
address of the start of the half way line. Say there are 65
lines in total then it prints line 1 and line 33 across the
sheet followed by 1 & 34 etc.
If,on the other hand the line number exceeds 116 it will
print line 1 & 58 then 2 & 59 etc. down to the bottom of the
page.It then skips on to the top of the next sheet and does
the calculation again for the number of lines left.....
The first & last lines to be printed can still be fixed
from the menu as for the normal print mode.
[Nb. The skip facility has also been included in the
normal print mode. It was nott in the original.
PLEASE DO LET ME HAVE YOUR REACTIONS..ANY PROBLEMS.
SUGGESTIONS OR QUERIES.
Mike Haine.,RIVERSIDE,WELSH RD.,OFFCHURCH,LEAMINGTON CV33 9AH
________________________________________________________________
TAPE-DISC by Mike Haine
A very useful little program for all you Spectrum owners who
still have lots of code files on tape.
It reads in the tape and saves to disc quite automatically
multiple files. This saves many hours of typing in filenames as
this program does it for you.
ICON CLIP
A slight change in clipart style this issue. A whole screenful
of small, but perfectly formed icons for you to GRAB and use in
that ultimate disc utility that you are writing!!!
PATTERN by K. Montgomery
Another one of those amazing pattern routines that show the Sam
can do very clever things, with just a little BASIC.
SCREENMOVE by K. Montgomery
This is a series of DEF PROCs for use in your own programs. They
are basically screen movers which will bring on a screen from
any address in memory, in one of several unusual ways.
There is a demo within the program, and also a fully
explaination on how to use them.
WINDOWS by Andy Wright
The Sam can handle a WINDOW command to give you control of only
part of the screen. In this DEF PROC Andy lets you use multiple
windows, each one remembering it's colour, PRINT position etc.
Tere is a demo of the routine working and the listing is fully
REMmed for you to see what's going on.
SNOOKER by Robin Clarke
A nice simple little reaction game based on the game of snooker.
To "HIT" a ball, the flashing marker must be stopped at the
correct place otherwise play reverts to the other player.
I was absorbed for quite a while with this one. (I think only
having 1 control key is what I like best).
FINDER
A useful developement tool is this one. What it does is sit at
the end of the program that you are writing, and when asked,
will list out any lines that contain the string you have asked
it to look for. There are several ways of listing, all of which
are explained within the program.
GRAB-PUT LESSON by Dave & Brian
Another in the series of short explainations of BASIC commands.
This issue deals with how to save bits of display into memory
and put the back when required.
The article is written in a "demo" fashion, and it is kept to
the simplest form so that absolute beginners can grasp the
principles.
This will be useful in future issues, as I am going to explain
how the BIGPRINT program in this issue works, and how to make
and save you own fonts for it. This will require that you have a
basic knowledge of GRAB, PUT and MEM$ which now have all been ci
overed in various issues.
Contained in the program is a screen diagram, explaining the
screen layout of the Sam in a little more detail.
.
Link to the top of this document
Link to the main index
Link to editorial & letters
Link to files
Previous disk program notes
Next disk program notes