Extended BASIC
Programming: BASIC · ZX-Spectrum 48K · 1 players · English
CP Software · 1983 · Pound sterling 9.95
Also known as Advanced BASIC (English)
Discussion
Nobody has started a thread about this yet.
Remarks
additional BASIC commands for programming - 48k only
Play
- ExtendedBASIC.z80.zipSnapshot image English4 KB
- ExtendedBASIC.tzx.zipTape image English4 KB
Documents
- ExtendedBASIC(EN).pdfInstructions English219 KB
- ExtendedBASIC(FR).pdfInstructions French391 KB
Files and rights
No permission is on record either way. Screens and pictures are copied here on a take-down basis: if you hold the rights and want something removed, say so and it goes.
Credits
- R. Falkcredited
Sign in to credit somebody, or say what these people did.
Scores
In the magazines
- Sinclair User #241984 · Gilbert Factor7/10
- Sinclair User #251984 · Gilbert Factor7/10
- Sinclair User #511986 · Overall3/5
In the magazines 17
Sinclair User #51Jun 1986 · p.303/53/5
Overall 3/5
John Gilbert 3/5
Publisher: CP Software Price: £9.95 Memory: 48K ZX Basic is regarded as one of the best Basic variants in the world. Even if it is slow, it is almost certainly the most widely used version of the language. It does have its deficiencies, though, which CP Software has tried to put right with its Extended Basic package of keyword extensions. The package, compatible with the 48K Spectrum only provides extra commands which are meant mostly for direct input rather than for use within programs. Extended Basic is loaded in the same fashion as a Basic program and the new keywords it gives are implemented using an asterisk as a prefix to each command. For instance, commands include *Clock, *Delete and *Trace. CP has also retained the single key-word entry system, made famous by Sinclair. Just enter the * and the first letter of the command. There are 10 commands, most of which are used for Basic error trapping, but the package also includes the statutory digital clock. The clock - displayed permanently on-screen when the program is running - is activated by typing C1 and can be set by following the Clock command with a starting time in hours, minutes and seconds. If you keep losing programs you have on tape by forgetting their identity the Examine command will scan the tape for their file headers. The computer sets up for a normal load, you start the tape and when the header is read the information stored in it, which includes file name, file type - program or code - and length in bytes is displayed. Once the Basic program is in memory you can check the machine's memory status. The read-out gives the address of Ramtop, the number of bytes used by your program and variables, together with the amount of free Ram. CP's extension package occupies less than 5K of Ram leaving approximately 36K to play with when the machine is initialised. An automatic line numbering command is included. You just type in Auto and the first line number will appear on the screen followed by a cursor. Type in your first Basic line, press Enter and the next line number will appear. When you've finished entering your program delete the last line number which has popped up, type Enter and the routine switches off. You can set the start number of the auto-line and the interval between each number by putting two parameters after the command. For EXTENDED BASIC instance, *Auto 10,5 numbers a program from 10 in jumps of five. Another annoying trait of the Spectrum that CP's package takes care of is the 'Scroll?' message you get after more than 22 lines have been displayed. You can suppress the 'Scroll?' message and produce a continuous scrolling motion when you list your programs by activating the package's continuous scroll routine. Once it's in operation you won't have to press Enter to scroll any more. The remaining commands deal with error trapping. Trace shows line numbers of a program as it is being run and slows down the execution of the code by a factor of approximately 20. The Trace display replaces that of the clock and shows the line and statement numbers as they are scanned. The effects of your program, such as screen printing, are not affected by the Trace facility but you should be careful if you are using Pokes : You never know what damage you might do to the package's code. When you've run your program you can scan the variables area to see they've been set up properly. The package will display numeric string and array variables. Each element of a numberic array is displayed - even if you haven't put something in it - but only the names of string arrays are shown together with a quotation mark to show that they contain strings. A trace facility also exists to track specific strings within variables and Print statements. The Find command is followed by the string you want to find which is enclosed within square brackets. The computer then finds and displays the line which contains the string. Unfortunately, it only finds the string the first time it appears but you start the Find trace anywhere within the program. Once you've fiddled around with your program and are confident that all the bugs have gone you can re-number it. The package provides a flexible and easy-to-use routine which requires two parameters: the start line number and the interval. It would be even better if you could re-number specific parts of a program. All Basic extensions run interactively with your programs allowing you to run and list programs without having to toggle in and out of the toolkit. It is not tremendous value for money. It provides only 10 new commands. Compare that with the thirty or so error trapping routines in a package like Beta Basic, which costs only a little more. Alternatively the OCP Master Tool Kit offers more routines and a UDG generator. Cut the price of this package in half and it would be excellent.
Big K #9Dec 1984 · p.69
Fin Fahey
THE EXTENDED SPECTRUM Fin Fahey checks out a smattering of utility programs for Old Rubber Keys. System Software, as we old computer industry hacks call programming tools, is hardly destined to set the world alight. It smacks of hard work and late night sessions over a hot keyboard and seems light years away from the glamour and fun of, say, a new Melbourne House adventure release. But for people interested in stretching their minds, and their machines, some of these trusty workhorses may well turn out to have hearts of gold. But why go beyond the facilities offered by Sinclair BASIC? (One may well ask.) Quite simply, no machine, and particularly no BASIC interpreter, fills all the needs of the budding programmer, and for a lot of requirements like arcade games, just hasn't got the speed. There area fair number of - packages which just add a few useful commands to BASIC extensions r programmer's toolkits, these generally give you the sort of goodies you've always needed to develop your BASIC programs. There's no line Renumber command on the Spectrum, and for this you'll have to buy a toolkit. The same goes for many other 'system' commands. Trace, to give you a continuous listing of program lines being executed, Map, to tell you which variables have been specified, and Block Delete, so you can get rid of more than one line at a time, to name but a few. Super Toolkit, from Nectarine, has all of these plus such things as a Crunch command, to get all those useless spaces and REMs out of your program before running. It clocks up a total of 12 commands, as does Toolkit from IMS Software, which includes an Auto line-numbering routine. Slightly fewer facilities on CP Software's Spectrum Extended BASIC, only 10 commands in this case, and the only one unique to this package is Find, which will look fora specific string text in your program. CP, however also do Supercode, a machine code toolkit, incorporating a hundred off-the-shelf machine code routines. These include an impressive range of scrolling effects, high-resolution diagonal scroll, low-resolution shutter and ripple scrolls and many others. There are four sound effects generators too, but the truly impressive thing is that you can include CP's code in your own BASIC and machine code programs, an amazing bit of altruism. Each routine has full in-program documentation and a demo mode shows you what they can do. It's got to be good value. From off-the-shell machine code to creating your own. If you've decided that BASIC's too slow for your program design, then you'll probably want to write machine code. Some people seem quite happy programming this byte by byte as BASIC POKEs, but for really effective development you'll need an assembler. Assemblers allow you to put Z80 code in assembly language, a much more understandable form, even though it's a lot more obscure looking than BASIC. A good assembler will allow you to specify addresses and constants as meaningful labels which makes the code a lot easier to follow. In such a symbolic assembler, the JP instruction (equivalent of BASIC GOTO) could be rendered JP LOOP instead of giving an actual address, say JP $4000. But before actually using one of these things, you may need to learn what it's all about. To help you, there are a number of tutorial programs, and some of these actually allow you to set up and test code. Sinclair's Beyond BASIC offers a tutorial on the internal structure of the Z80 plus lessons on each assembler instruction. These are illustrated with simple moving graphics. There is an experimenter section where you can watch the effects of your own code on memory and registers. Sadly, this one doesn't cover the entire instruction set. More complete is New Generation's Machine Code Tutor. This comes on two cassettes and covers everything. Once again, you can write your own code and 'run' it on a diagrammatic simulator. Although this is rather harder work than Sinclair's, I think it gives a closer feeling to using an actual assembler. Dream Software also have a simulator. This has much nicer printed documentation than the other two, but unfortunately it describes an imaginary chip which resembles the Z80 in many respects. I think that this may be unnecessarily confusing, but as long as its borne in mind, the transition to the real chip shouldn't be too hard. So now you can get down to some real coding... Sinclair themselves market the Zeus Assembler, which allows full symbolic instructions. Lines of code are entered much as in BASIC, and editing is similar, so this should be an easy one for beginners to move to. Picturesque's Editor/Assembler, on the other hand, has a rather better editor than the Spectrum, but the key response seemed a bit slow to me. This latter program is very tolerant about the format in which you enter code. Very different from these two is Oasis Software's Spectre Macro-assembler, and I certainly wouldn't recommend this one for beginners. It's a very professional product, but using it is more like learning a new computer language than anything else. It doesn't use Z80 instructions directly; they have to be set up as procedure definitions much as in high-level languages like Forth or Pascal. This makes it very powerful, since it's just like building your own interpreter. But, as I say, not for newcomers. An indispensable tool when developing machine code is some sort of Monitor. A Monitor provides easy ways of getting at memory, moving it, changing it, searching it for particular values, that sort of thing. You can also usually get dumps of Z80 register values and step through a machine code program. The Zeus assembler has a reasonable monitor with it, but Sinclair do a more extensive version as a separate product. This also allows you to Disassemble code, which means to translate machine code back to assembly format. Useful for looking at the ROM, but maybe you'd be better off buying one of the 'Spectrum ROM disassembled' type books which also give explanatory notes. Picturesque's Editor/Assembler has no attached monitor and you have to buy theirs separately, although both programs can be loaded at the same time. Agai, there's a disassembler. Assembly language isn't the only way of getting fast code. Scope II, from ISP, is a simple language aimed at producing fast machine-code animation. The makers call it a medium-level language, as it's mid-way between BASIC and assembler. I feel it's rather closer to machine code, but it's certainly a lot easier to use. Once you've written code in SCOPE II, it is boiled down by the program to machine code routines, which can be run without Scope being present, so you develop commercial products, or give copies of your games to your friends without fear of committing piracy. This process of boiling down machine code is known as compilation, and it's possible to do it to BASIC. The only BASIC compiler we had available to look at was Softek's. This is certainly fast. From running a few simple loops, it looks roughly about 150-200 times faster than interpreted BASIC. It does have some serious drawbacks, though. For one, there a quite a few BASIC functions it can't translate, floating-point arithmetic and arrays among them. More seriously, compiled programs will not run without Softek's run-time routines being present. Unfortunately, the company is being quite prickly about this, and are claiming that if you develop your program and compile it with their program. then they've suddenly acquired a share in it, Whatever the legal position, this seems a little dubious to me, and it's certainly a discouragement to using Softek's product for commercial development. The final approach to fast code is to use Forth. This high-level language is closer to machine code than BASIC, and for most purposes runs up to ten times faster. Not spectacular maybe, but it can make a difference. The speed saving is nice, but it's not really the central point about Forth. The language takes a fundamentally different approach to BASIC, and one which provides a much sounder design discipline. It would certainly be easier to write good machine code after a grounding in it. Forth is known as a 'procedure-oriented' language. That means there's no more complaining about there not being a command in BASIC to do something. If it's not there in Forth, then you just write your own command, which is compiled into the language vocabulary. Although you can theoretically do this in BASIC by using subroutines, compiled procedures are much faster and easier to use. Forth is easier to structure too. There are at least four versions of Forth available on the Spectrum. It's hard to decide between them, but Melbourne House's Abersoft Forth is the only one recognised by the independent Forth interest Group. Sinclair also do a Forth which to my relatively untutored mind seemed much the same, both in terms of speed and usability. Both versions have minimal printed documentation, since they rely on the user going out and acquiring a Forth manual. The sad thing about Forth is that. unless you're a fan of the ill-fated Jupiter Ace, you can't market any of your programs since they won't run without someone else's product. While on the subject of languages, Logo has been stirring up interest as a teaching language, particularly for younger children. Unfortunately, the version I looked at, Snail Logo by CP Software, really merited its name. Logo is high-resolution graphics oriented, and the user commands a 'turtle', or in this case a snail, to draw shapes on the screen. The CP interpreter turned out to be written in BASIC, so every command is interpreted twice. Slow? I can't imagine anyone, adult, or child, having the patience to work through the manual, let alone use it. Something of a weirdie, but one I find particularly fascinating, is Micro -Prolog, from Sinclair. Prolog represents yet another direction in new languages, and is particularly suited for Artificial Intelligence and linguistic purposes. Its very odd to use after command oriented type languages like BASIC, or even Forth, because a program in Prolog (it stands for PROgramming in LOGic) is mostly a way of organising data, not of setting up a fl ow of commands. Now I've got the point, I want to know more about this one. Sinclair Micro-Prolog's documentation isn't bad either. Dr Ming back to the problem of generating programs, if you're an adventure game writer, you haven't really got one, The Quill, from Gilsoft, and Dream's Dungeon Builder can both be used to generate adventures of any complexity. We've reviewed them before, and they're both good value. Dungeon Builder has the edge in user-friendliness, and can be used to add graphics to adventures, while Quill has a more mechanistic approach. Both Gilsoft and Dream are perfectly happy for people to market games produced with their packages. Right on! On which cheery note I'll roll the credits and fade to black, but not before noting that this is far from being a complete survey, so if you've discovered an utterly wonderful, or unspeakably awful bit of useful/useless software in this field let us know. BASIC EXTENSIONS: SUPER TOOLKIT from NECTARINE TOOLKIT from IMS Software SPECTRUM EXTENDED BASIC from CP Software Price: £9.95 SUPERCODE from CP Software Price: £9.95 MACHINE CODE TUTORIALS: BEYOND BASIC from Sinclair Price: £9.95 THE COMPLETE MACHINE. CODE TUTOR from New Generation Software Price: £7.95 MACHINE-CODE FOR BEGINNERS from Dream Software Price. £0.00 ASSEMBLERS: ZEUS ASSEMBLER from Sinclair Price: £12.95 EDITOR/ASSEMBLER from Picturesque Price: £8.50 SPECTRE MAC-MON from Oasis Software Price: £14.95 MONITORS: MONITOR/DISASSEMBLER from Sinclair Price: £12.95 SPECTRUM MONITOR from Picturesque Price: £7.50 COMPILER from Softek Price: £9.95 LANGUAGES: SCOPE II from ISP Price: £11.95 FORTH from Sinclair Price: £14.95 ABERSOFT FORTH from Melbourne House Price. £14.95 SNAIL LOGO from CP Software Price: £9.95 MICRO-PROLOG from Sinclair Price: £24.95 ADVENTURE GENERATORS: THE QUILL from Gilsoft Price: £11.95 DUNGEON BUILDER from Dream Software Price: £9.95
Sinclair User #25Apr 1984 · p.547/107/10
Gilbert Factor 7/10
John Gilbert 7/10
PACKAGES TO HELP YOU HELP YOURSELF John Gilbert reviews the programming aids now available for the Spectrum Most people buy computers with some purpose in mind. A few of them may want to learn about computing and to write programs. It is when that happens that utility routines may be needed to make the task easier. There is a great variety of utilities available for the Spectrum which compensate for some of the inadequacies. One of the most common types of utility is the toolkit or language extension. The Spectrum Super Toolkit, from Nectarine, provides all the necessary function a Basic programmer would need. It is also very user-friendly and should help anyone who has the slightest interest in developing programs, no matter whether they be beginner or an expert. The toolkit will run on the 16K and 48K machine and occupies approximately 2.5K. That means at least 6K on the 16K Spectrum will be available for user programs. That is an achievement for the author, who has included 12 routines in the package. The exceptional characteristic of the Super Toolkit is the one-key entry system which invokes each of the 12 commands. All you have to do to use a command is hold down the ENTER key and press the command key, such as 'L' for list all variables. The package is one of the most comprehensive on the market. As well as generating a full re-number of Basic programs, deleting blocks of lines, listing variables and showing the memory used by a program, it will also produce a map of the memory in the computer, including Microdrive and channel information, and read the tape header of any piece of code. There are no complicated POKEs involved in making any of the utilities work. All you need is a RAND USR instruction to enable and to disable it. You will also have to use the keywords PRINT or REM to re-enable its facilities after running one of your programs. You should have no difficulty using any of the routines, as the toolkit will produce prompts on the screen for information it needs to perform its work. For instance, when you ask for line renumbering the screen will clear and the computer will ask at which number you want your program lines to start. It will then ask for the step size between each line number. The automatic default, if you press ENTER for each of those prompts, is a line-numbering system starting at 10 and rising in stages. The manual with the package is just as good as Super Toolkit. It explains each utility command in turn and on the back page provides an uncluttered index of how to access them. It also shows how to turn off the toolkit when you want to use interrupt-driven machine code routines in your programs. Super Toolkit cannot be recommended strongly enough. It costs £9.95 and fills a big gap in the market. Spectrum Extended Basic, from CP Software, uses a one-keyword entry system similar to that of the Nectarine toolkit. Once invoked, all the user has to do as type an asterisk and then press the key to activate a desired command. For instance, the 'A' would be pressed if the user wanted to use AUTO line numbering. The Basic uses approximately 5K of memory in which to operate. Although that is not bad for a package which allows the use of 10 new commands, when compared to the Nectarine product it takes much more memory. The use of memory by a utility is all-important. A good utility will reside in memory almost invisible to the programmer, who should be able to do anything with the machine except initialise it, and it should utilise as little memory as possible, so that users can write long programs. A utility which uses a great deal of memory defeats its own purpose. The Extended Basic could be described more accurately as another toolkit and not a set of machine code patch routines on the existing Sinclair Basic. It will operate with the Sinclair language but the routines included in the package are more in line with a toolkit than an extension of a high-level language. It includes an auto-line number routine, a real-time clock, continuous scroll function, block code delete and an indication of the current state of the computer memory. It is almost as easy to use and as helpful as the Nectarine toolkit and many of its commands can be incorporated into user programs. Extended Basic is not a competitor to the toolkit but it is, however, a useful companion package. Spectrum Extended Basic costs £9.95 and is expensive for what it offers. The other type of utility which is helpful on the Spectrum is the graphics package Although Sinclair Research included exciting graphics capabilities with the Spectrum, it is often difficult for the programmer working in Basic or the amateur programmer to get the most from the graphics potential. One of the best ways to highlight a program or give it a title is to increase the size of the lettering and characters on the screen. It could be done with a number of PRINT statements but it is possible, using machine code or POKE routines, to magnify the original character set from the ROM. A new utility package, Print Utilities, from Sinclair Research will allow you to magnify the character set and also to increase or decrease the width of lettering on the screen or on a printer. The software will allow you to use four widths and two heights. There are two versions of the package, one for the 48K and one for the 16K, although each performs identical tasks. Once it has been initialised you can set up the character height and width using a print command which employs a hash. After that you must put a CHR$ command and a number. For instance: PRINT 15; CHR$ 28 would select a double-height character set. Other CHR$ settings would give 32, 42, 16, and 21 characters a line and will also move the cursor left and right and clear the screen. The different-sized character sets can be used in programs but they can also be used to reproduce listings to make them easier to read. Unfortunately the manual infers that the package is set up for the ZX printer, although with Interface One, which is catered for, output to a dot matrix printer or daisywheel would be possible, using the correct software. Output to a printer is more difficult than to a screen, as the double-height mode is cancelled after one line is printed and it is not possible to mix different heights in one line of text. Print Utilities can be obtained for the 48K Spectrum and costs £9.95. For the usefulness of the product that is expensive. Paintbox is a more powerful graphics utility for the 48K Spectrum. It includes the capacity to manipulate 84 user-definable graphics which are set up in four switchable memory banks. Any one of the four sets can be switched into the 'present' mode, taking the place of the letters A to U. It is possible to change any of the example characters set up in the package and to save them on tape if you want to use them in your Basic or machine code programs. Paintbox contains a special facility which enables the user to put several UDG graphics on the screen together to examine the effect. It is also possible to rotate, inverse, and mirror the graphics with the press of a key. Another facility is the precision plotter, which will allow you to draw pictures on the screen using lines, circles and arcs. The pictures can be shaded with a selected colour and the colour for INK and PAPER can be changed. The utility looks like the one on the Sinclair Horizons tape, although it is set out slightly better and is more usable so far as Basic programming is concerned. The screen planner uses a combination of UDG graphics which can be created using the UDG banks and the Precision Plotter. It allows you to see the finished result of all your work. The package is a powerful graphics aid and, if the demonstrations are any criterion both in the manual and on the tape you could produce some professional screen displays. It is possible for even a beginner to draw reasonable pictures using the package. Paintbox can be obtained from Print and Plotter and costs £7.50. There are still few utility packages available for the Spectrum and the computer has been on the market for nearly one-and-a-half-years. It seems that most software companies are concentrating on producing arcade games of one kind or another. That is unfortunate, as many Spectrum owners could produce original and interesting programs if they had access to more utilities. It might also encourage more people to start programming if the see what can be done with the utilities available, Some people may say that it is a little late to start thinking of producing more utilities for Spectrum owners but there are still many users trying to find interesting things to do with a computer. It would certainly be helpful if the few utilities on the market at present became many in the near future. Nectarine, [redacted]. CP Software, [redacted]. Sinclair Research, [redacted], Print and Plotter, [redacted].
'It is often difficult to get the most from the graphics potential.'
Sinclair User #24Mar 1984 · p.77/10
Gilbert Factor 7/10
Memory: 16K Price: £9.95 Many programmers would say that there is not much you could do to make Sinclair Software better, apart from making it faster, but Extended Basic for any Spectrum has proved them wrong. The extensions are more like toolkit routines and most of them are for use outside Basic programs. There are 10 commands available in the package and they include auto line numbering, renumbering, memory left and the variables being used in a program. The program will also allow errors in Basic listings to be tracked using a TRACE command. A real-time clock is also included in the package and it can be switched on to and off the screen at any time. It can also be used in other Basic programs and will continue to operate while the computer is doing other things. The commands are entered as keywords, just as are those of Sinclair Basic, with the push of only two keys. That makes usage easy and provides a compatibility of use with the rest of the Basic on the Spectrum. The package is called Extended Basic but the commands which are included form what could more correctly be described as a toolkit rather than an extension to a language. The utilities, however, are useful in writing long programs and can increase the efficiency of the machine. Extended Basic can be obtained from CP Software, [redacted].
Advert10
- Sinclair User #24Mar 1984 · p.53
- Sinclair User #23Feb 1984 · p.57
- Your Computer #1Jan 1984 · p.23
- Sinclair User #22Jan 1984 · p.159
- Personal Computer News #39Dec 1983 · p.9
- Your Computer #12Dec 1983 · p.88
- Popular Computing Weekly #49Dec 1983 · p.46
- Popular Computing Weekly #50Dec 1983 · p.62
- Popular Computing Weekly #51Dec 1983 · p.37
- Personal Computer News #38Nov 1983 · p.73
Feature2
- Big K #9Dec 1984 · p.69
- Sinclair User #25Apr 1984 · p.54
Review1
- Home Computing Weekly #66Jun 1984 · p.31
Related
- Tags
- g109
- Same entry at
- Spectrum ComputingZXInfo
Reviews from people here
Sign in to write about this, or make an account. It takes a minute and lets you correct the catalogue too.
Everything ZXDB can hold about this is here.
Sign in to correct or add to this.
Hold the rights to this and want it taken down?
