Автор: Angelo Colucci
Год: 1995
Издатели: Outlet
Языки:
Английский
Формат:
TAP лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Описание:
Screen Compressor— это утилита, разработанная Анджело Колуччи в 1995 году для ZX Spectrum 48K. Эта бесплатная программа предназначена для эффективного сжатия экранных данных с целью экономии памяти и места на дисках или кассетах.
Процедура сжатия занимает всего 134 байта и полностью перемещаема, что обеспечивает гибкость в использовании. Она работает, сканируя экран на наличие неиспользуемых байтов, резервируя один в качестве флага и сжимая последовательности повторяющихся байтов в компактный формат. Этот метод значительно уменьшает общий размер экранных данных.
Для использования компрессора пользователи должны загрузить данные экрана в память, выполнить определенную команду для сжатия и затем сохранить сжатые данные для последующего использования. Программа также включает демонстрацию, демонстрирующую ее возможности, сжимая 60 различных экранов в краткую анимацию.
Таким образом, Screen Compressor предоставляет практическое решение для пользователей, стремящихся эффективно управлять экранными данными на ZX Spectrum, что делает его ценным инструментом для программистов и энтузиастов, работающих с этим классическим оборудованием.
Год: 1995
Издатели: Outlet
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
Описание:
Screen Compressor— это утилита, разработанная Анджело Колуччи в 1995 году для ZX Spectrum 48K. Эта бесплатная программа предназначена для эффективного сжатия экранных данных с целью экономии памяти и места на дисках или кассетах.
Процедура сжатия занимает всего 134 байта и полностью перемещаема, что обеспечивает гибкость в использовании. Она работает, сканируя экран на наличие неиспользуемых байтов, резервируя один в качестве флага и сжимая последовательности повторяющихся байтов в компактный формат. Этот метод значительно уменьшает общий размер экранных данных.
Для использования компрессора пользователи должны загрузить данные экрана в память, выполнить определенную команду для сжатия и затем сохранить сжатые данные для последующего использования. Программа также включает демонстрацию, демонстрирующую ее возможности, сжимая 60 различных экранов в краткую анимацию.
Таким образом, Screen Compressor предоставляет практическое решение для пользователей, стремящихся эффективно управлять экранными данными на ZX Spectrum, что делает его ценным инструментом для программистов и энтузиастов, работающих с этим классическим оборудованием.
OUTLET'S EXTRA
INSTRUCTIONS
SCREEN COMPRESSOR
FREEWARE by Angelo Colucci
--------------------------
The following program is a very
efficient utility which can make
considerable savings of memory
and storage space on disc or
tape.
The routine is just 134 bytes
Long, and is fully re-Locatable.
There are instructions in the
progam about how to extract and
save the code.
HOW IT WORKS: -
The routine first scans through
the screen to find a byte which
is not used. This valve is then
reserved as a flag. tWe have not
yet been able to ascertain what
it does if it cannot find one!
Please write to OUTLETTERS if
you do come across such a rare
occurrence).
Next, the screen bytes are again
scanned for four or more of any
byte in sequence.The repetitions
are then compressed in sequences
of three bytes: -
Byte 1 = flag signalling the
start of a sequence.
Byte 2 = number of repeats.
Byte 3 = value of byte repeated
HOW TO USE THE COMPRESSOR: -
Extract and install the routine,
Following the instructions in
the program. Note the start
address that you Loaded the code
to (This will replace ST Later) .
To COMPRESS a screen and then
store it at address NNNN : -
1.Load the picture to the screen
2.Enter the command: -
RANDOMIZE NNNN : LET Z=USR ST
(ST is the start address of the
compression routine, and after
execution of this command,
wiLL hold the Length of the
compressed screen code.)
To SAVE a compressed screen: -
After the compression stage I
described on the previous page,
the compacted code will now be
stored in memory at address NNNN
with a Length of 'Z' bytes. 50,
enter : -
SAVE D* "NAME" CODE NNNN,Z
[omit the D* for +3]
You could combine the Loading,
Compression and Saving commands
above in a few Basic Lines, and
this would mean that you don't
Lose the bottom two Lines of
your screenCif entered as direct
commands rather than in program
Lines].
TO DISPLAY a compressed screen: -
Make sure that the compression
routine code is in memory, then
Load in the compacted screen
code to address NNNN.
Then enter : -
RANDOMIZE NNNN: LET Z=USR ST+100
Note that 'ST' is the start
address of the compression
routine and that Z now contains
the next free byte in memory
(This is very useful for multi-
screen animation sequences) .
Experienced programmers will
have noticed the decompression
routine starts at one hundred
bytes above the beginning of the
compressor, so will be able to
save even more bytes by Loading
only the final 34 bytes of the
routine for the display purp-
oses. Most effectively, this
could be tagged onto the start
or end of the the compacted
code-
TO COMPRESS ONLY PART SCREENS: -
Not only is the compression
routine totally relocatable, but
also it is very flexible so that
parts of screens can be compact-
ed and re-expanded.
As saved on this OUTLET disc,
the routine is set to save the
total display file inclusive of
the attributes. Provided you
know HOW the Spectrum screen is
Laid out (No need to know WHY!)
it is fairly easy to POKE a few
bytes in the routine to make the
necessary adjustments. Viz: -
To alter the starting point on
the screen to be compressed and
to expand it back to the same
Location, just 3 double bytes
need POKEing tor, if you are
using neat thirds of screen only
3 single bytes will need it up-
'em Mr. Mainwaring!). Let's name
the start address of the
Compression routine "C_START"
then the addresses to be POKEd
with the required screen-start
address will be: -
C_START + 5/6
C_START + 24/25
C_START + 106/107
The only other parameter is to
know when to stop, and the rout-
ine does this by using the
slightly restrictive technique
of Looking at the high byte
(single byte comparison) of the
address following the end of the
required display bytes. ie. "If
you've reached here, you've gone
too far, so please do something
else.
There are 4 such checks and so
four addresses to POKE with the
delimiting byte. These are : -
C_START + 35
C_START + 72
C_START + 95
C_START + 117
+++++++++++++
EXAMPLE: -
Start Stopper
----- -------
WHOLE SCREEN: 16384 91
#4000 #5B
MIDDLE THIRD: 18432 80
#4800 #50
The preceding are examples of
the double bytes which need to
be poked to the three starting
points and the four single byte
delimiters Each are shown first
in decimal with the Hex. equiy-
alent below.
DEMO:
We have explained how it works
and hopefully how to use the
screen compressor, so to
compLetely spoil you, we have
folLowed up with a Little dem-
onstration which stretches the
routine and the Spectrum's
memory Limits to almost the
Limit! Guess how many compacted
screens make up the animation?
Did I hear 6? Did I hear 16??
No sir - there are actually 60
(Yes sixty) separate compacted
screens which make up this nice
"though brief demo. (Alright,
I'LL admit that the screens are
only the middle thirds, but I'm
still ever so impressed!).
Angelo Colucci
INSTRUCTIONS
SCREEN COMPRESSOR
FREEWARE by Angelo Colucci
--------------------------
The following program is a very
efficient utility which can make
considerable savings of memory
and storage space on disc or
tape.
The routine is just 134 bytes
Long, and is fully re-Locatable.
There are instructions in the
progam about how to extract and
save the code.
HOW IT WORKS: -
The routine first scans through
the screen to find a byte which
is not used. This valve is then
reserved as a flag. tWe have not
yet been able to ascertain what
it does if it cannot find one!
Please write to OUTLETTERS if
you do come across such a rare
occurrence).
Next, the screen bytes are again
scanned for four or more of any
byte in sequence.The repetitions
are then compressed in sequences
of three bytes: -
Byte 1 = flag signalling the
start of a sequence.
Byte 2 = number of repeats.
Byte 3 = value of byte repeated
HOW TO USE THE COMPRESSOR: -
Extract and install the routine,
Following the instructions in
the program. Note the start
address that you Loaded the code
to (This will replace ST Later) .
To COMPRESS a screen and then
store it at address NNNN : -
1.Load the picture to the screen
2.Enter the command: -
RANDOMIZE NNNN : LET Z=USR ST
(ST is the start address of the
compression routine, and after
execution of this command,
wiLL hold the Length of the
compressed screen code.)
To SAVE a compressed screen: -
After the compression stage I
described on the previous page,
the compacted code will now be
stored in memory at address NNNN
with a Length of 'Z' bytes. 50,
enter : -
SAVE D* "NAME" CODE NNNN,Z
[omit the D* for +3]
You could combine the Loading,
Compression and Saving commands
above in a few Basic Lines, and
this would mean that you don't
Lose the bottom two Lines of
your screenCif entered as direct
commands rather than in program
Lines].
TO DISPLAY a compressed screen: -
Make sure that the compression
routine code is in memory, then
Load in the compacted screen
code to address NNNN.
Then enter : -
RANDOMIZE NNNN: LET Z=USR ST+100
Note that 'ST' is the start
address of the compression
routine and that Z now contains
the next free byte in memory
(This is very useful for multi-
screen animation sequences) .
Experienced programmers will
have noticed the decompression
routine starts at one hundred
bytes above the beginning of the
compressor, so will be able to
save even more bytes by Loading
only the final 34 bytes of the
routine for the display purp-
oses. Most effectively, this
could be tagged onto the start
or end of the the compacted
code-
TO COMPRESS ONLY PART SCREENS: -
Not only is the compression
routine totally relocatable, but
also it is very flexible so that
parts of screens can be compact-
ed and re-expanded.
As saved on this OUTLET disc,
the routine is set to save the
total display file inclusive of
the attributes. Provided you
know HOW the Spectrum screen is
Laid out (No need to know WHY!)
it is fairly easy to POKE a few
bytes in the routine to make the
necessary adjustments. Viz: -
To alter the starting point on
the screen to be compressed and
to expand it back to the same
Location, just 3 double bytes
need POKEing tor, if you are
using neat thirds of screen only
3 single bytes will need it up-
'em Mr. Mainwaring!). Let's name
the start address of the
Compression routine "C_START"
then the addresses to be POKEd
with the required screen-start
address will be: -
C_START + 5/6
C_START + 24/25
C_START + 106/107
The only other parameter is to
know when to stop, and the rout-
ine does this by using the
slightly restrictive technique
of Looking at the high byte
(single byte comparison) of the
address following the end of the
required display bytes. ie. "If
you've reached here, you've gone
too far, so please do something
else.
There are 4 such checks and so
four addresses to POKE with the
delimiting byte. These are : -
C_START + 35
C_START + 72
C_START + 95
C_START + 117
+++++++++++++
EXAMPLE: -
Start Stopper
----- -------
WHOLE SCREEN: 16384 91
#4000 #5B
MIDDLE THIRD: 18432 80
#4800 #50
The preceding are examples of
the double bytes which need to
be poked to the three starting
points and the four single byte
delimiters Each are shown first
in decimal with the Hex. equiy-
alent below.
DEMO:
We have explained how it works
and hopefully how to use the
screen compressor, so to
compLetely spoil you, we have
folLowed up with a Little dem-
onstration which stretches the
routine and the Spectrum's
memory Limits to almost the
Limit! Guess how many compacted
screens make up the animation?
Did I hear 6? Did I hear 16??
No sir - there are actually 60
(Yes sixty) separate compacted
screens which make up this nice
"though brief demo. (Alright,
I'LL admit that the screens are
only the middle thirds, but I'm
still ever so impressed!).
Angelo Colucci