indice gZone ZX Spectrum Directorio       tutoriales enlaces contacto  

+ roms de Spectrum
Busca mas Roms de Spectrum en las bases de datos.
Tienes cuenta de FaceBook, Hotmail, Yahoo...?...Opinas algo?...Deja tus comentarios!

Información disponible del juego en la base de datos.

Utility 2 - Renumber, Block Delete and Lister 27-NOV-1997 Geoff Wearmouth.
---------------------------------------------------------------------------

This is the second in a series of screen-resident utilities for the
ZX Spectrum range and emulators. These programs are different because
the loading screen is the program. They are called using INPUT USR
16384. All three are self-deleting and have to be reloaded every
time they are required.

The file is saved to a tapfile with a demo basic program that explains
most features and is a good practice file for renumbering. All you really
need is the SCREEN$. Resave it to your tools tapfile or microdrive.
A snapshot is no good but a .scr file can be handy.

The advantage of screen-resident utilities is that they are easy to load,
easy to delete and can be used regardless of the size of your program
and without altering RAMTOP.

I developed 'u2' to provide customised output on my Alphacom 32 thermal
printer. Once I had the line selection routines developed, it made sense
to use these for a Block Delete and then the more challenging Renumber.

Printer Output
--------------

The ZX printer output looks fine with the standard Spectrum font but the
thermal Alphacom doesn't get a chance to warm up so single-pixel
characters can be a bit faint especially with blue paper.
I started using a thick character set and eventually developed a
routine that emphasized characters on the fly. When the 128K Spectrum
came out the program had another advantage as it didn't use the printer
buffer but printed lines invisibly on line 15. The 128K Spectrum editor
had it's faults but one nice feature was that it kept line numbers and
program code separate. I introduced this formatting option although
because of differences in the way 128K Basic prints some keywords, it
does not give identical printouts to the 128K LLIST routines.

I never imagined that this program could output to a more
sophisticated printer but, as I was writing it, Gerton was developing the
Z80 Spectrum emulator, which includes emulation of the ZX printer.
No need for thick characters there, but it's nice to see Spectrum
listings emerging from my laser printer.

Select the portion of code you wish to print using the horizontal
arrow keys while the bar is on the First Line/Last Line sections.
To indent the code press the right arrow while on 'Format'. To
deselect use the left arrow.
To print using an emphasized character set press ENTER while the bar
is on 'Character Set'. Pressing ENTER again will toggle the selection.
Finally move to LLIST and press ENTER. While the ZX printer will
burst into life, the emulated printer will just print to an internal
buffer and the only indication that it has completed is when you can move
the cursor keys again. I intend to improve this in v1.3.

Block Delete
------------

This hardly requires an explanation except that, to prevent accidents
on first entering the screen, entire program deletion is inhibited.
Make a note of how much the free memory increases.

Renumber and Subroutine Relocator
---------------------------------

Most Dartford BASIC programs I've seen have sections identified by
a significant line number eg. 1000, 2000 etc.
A simple renumber would ruin this structure so I used the line selection
routines to define an area to be renumbered. I added a step selection
line and also a destination number line ie. the number the program or
subroutine renumber process would start with.
This also enables a section of code to be moved past another section
to a new location - something I'd always wanted.
During renumbering the original two-byte line numbers are written to
the top third of the screen and the new line numbers to the middle third
of the screen. The utility then searches the entire Basic program for
qualifying line numbers substituting the number from the middle section.
For a large program this can take quite some time and there's no room
left to display anything.
The 128K RS232 baud setting command FORMAT LINE 9600 will be incorrectly
renumbered, so inhibit this by using FORMAT LINE VAL "9600". There's no
room left to alter the utility.

History
-------

Jun 89 v1.1 published on Outlet magazine.

Nov 97 bar changed from green to cyan.
Green spot indicator left when changing Destination increment -
I prefer this.
Main menu title changed to 'u2'.
Basic demo tidied a bit.
Wrong Outlet address removed from screen.
v1.2 uploaded to ftp incoming directories.

Limitations and Features
------------------------

Size limit of 1024 lines in BASIC program.
In the unlikely event of program running out of memory during renumber
menu bar changes to red. There will be something like
GOTO VAL "line number" in the program.
On the emulated ZX printer last page of listing is produced by placing
printer offline and pressing Print or FormFeed.
No indication when emulated ZX printing is complete.
Program calls routines in 48K Rom but works with all variants I've
tested.
Not likely to work on standard TS2068.

There may be others.
Send bugs to geoff@wearall.demon.co.uk