Автор: Ben Machin,Fred O'Rourke
Год: 1988
Издатели: Your Sinclair
Языки:
Английский
Формат:
TAP лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1988
Издатели: Your Sinclair
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
BORDER PATTERNS
by Ben Machin & Fred O'Rourke
from Your Sinclair #26 (February 1988)
[files BORDPATT.*]
[NOTE: This is unlikely to work on many emulators, because of timing ]
[problems, and also because they don't have a border as wide as a real ]
[Spectrum in order to show a legible border display. Using WinZ80 with ]
[the "wide borders" setting gives some idea of what should appear, ]
[although even that is not very good. JimG]
I liked this program from Ben and Fred (sounds like a couple of Flint-
stones), partly because it was so well presented, and also because it
was so frivolous. By well presented I mean that they supplied a tape,
hex dump, assembly listing, a page of information about the program, and
demo listing. (If all the submissions were as well presented it would
make this job so much easier!) The demo program shows border graphic
units zooming along above normal screen limits.
The routine occupies RAM from 50000-50213 and 64980-65281. [This doesn't
tally with the printed listings, which end at 50215 and 65027. JimG] The
latter of the two addresses holds the interrupt handler and the vector
table, whereas the first area is the border display handler. Borderprint
is compatible with the 48K and 128K/+2 Spectrums. It automatically works
out which computer it is running on, and modifies itself to run on the
slightly faster 128k/+2 processor.
POKE 50005, lo-byte of display file start
POKE 50006, hi-byte of display file start
POKE 50008, (1-64) amount of pixel lines to be printed
POKE 50107, (1-255) scroll speed, 255=fast, 1=slow
POKE 50141, (1-8) size of chars printed by routine 50131
POKE 50168, (1-7) ink colour of chars
POKE 50176, (1-7) paper colour of chars
POKE 50212, 0=scroll on, 1=scroll off
POKE 50167,237: POKE 50168,95 multicolour chars
POKE 50167,62: POKE 50168,0 normal black chars
RANDOMIZE USR 50131 when scroll is off captures character at 0,0
RANDOMIZE USR 64980 turns the border display off
RANDOMIZE USR 65000 turns the border display on
The Basic listing of the demo program below requires a few lines of
modification, 'cos as it stands it doesn't load the machine code. Add
these lines for full operation:
140 STOP
150 CLEAR 49999
160 LOAD "BLOCK1" CODE
170 LOAD "BLOCK2" CODE
180 GO TO 5
When you save the Basic use SAVE "demo" LINE 150. The reason for this
omission was that there was a short program on the tape that loaded the
CODE before the Basic demo.
I haven't bothered to give you the assembly listing for three reasons:
1) There were no comments anyway; 2) It would have taken up space, and
finally; 3) Disassembling code is a good way to learn about it!
The authors add this small note: "If this routine is published in
Program Pitstop, please mention that readers can use it in their own
programs, but not in any commercial or published programs / games. Thank
you." Well, thank YOU, Ben and Fred.
by Ben Machin & Fred O'Rourke
from Your Sinclair #26 (February 1988)
[files BORDPATT.*]
[NOTE: This is unlikely to work on many emulators, because of timing ]
[problems, and also because they don't have a border as wide as a real ]
[Spectrum in order to show a legible border display. Using WinZ80 with ]
[the "wide borders" setting gives some idea of what should appear, ]
[although even that is not very good. JimG]
I liked this program from Ben and Fred (sounds like a couple of Flint-
stones), partly because it was so well presented, and also because it
was so frivolous. By well presented I mean that they supplied a tape,
hex dump, assembly listing, a page of information about the program, and
demo listing. (If all the submissions were as well presented it would
make this job so much easier!) The demo program shows border graphic
units zooming along above normal screen limits.
The routine occupies RAM from 50000-50213 and 64980-65281. [This doesn't
tally with the printed listings, which end at 50215 and 65027. JimG] The
latter of the two addresses holds the interrupt handler and the vector
table, whereas the first area is the border display handler. Borderprint
is compatible with the 48K and 128K/+2 Spectrums. It automatically works
out which computer it is running on, and modifies itself to run on the
slightly faster 128k/+2 processor.
POKE 50005, lo-byte of display file start
POKE 50006, hi-byte of display file start
POKE 50008, (1-64) amount of pixel lines to be printed
POKE 50107, (1-255) scroll speed, 255=fast, 1=slow
POKE 50141, (1-8) size of chars printed by routine 50131
POKE 50168, (1-7) ink colour of chars
POKE 50176, (1-7) paper colour of chars
POKE 50212, 0=scroll on, 1=scroll off
POKE 50167,237: POKE 50168,95 multicolour chars
POKE 50167,62: POKE 50168,0 normal black chars
RANDOMIZE USR 50131 when scroll is off captures character at 0,0
RANDOMIZE USR 64980 turns the border display off
RANDOMIZE USR 65000 turns the border display on
The Basic listing of the demo program below requires a few lines of
modification, 'cos as it stands it doesn't load the machine code. Add
these lines for full operation:
140 STOP
150 CLEAR 49999
160 LOAD "BLOCK1" CODE
170 LOAD "BLOCK2" CODE
180 GO TO 5
When you save the Basic use SAVE "demo" LINE 150. The reason for this
omission was that there was a short program on the tape that loaded the
CODE before the Basic demo.
I haven't bothered to give you the assembly listing for three reasons:
1) There were no comments anyway; 2) It would have taken up space, and
finally; 3) Disassembling code is a good way to learn about it!
The authors add this small note: "If this routine is published in
Program Pitstop, please mention that readers can use it in their own
programs, but not in any commercial or published programs / games. Thank
you." Well, thank YOU, Ben and Fred.