Автор: Chris Somerville
Год: 1985
Издатели: Your Spectrum
Языки:
Английский
Формат:
TAP лента
Требования:
ZX Spectrum 48K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1985
Издатели: Your Spectrum
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
!0.......^.........^.........^..
!B
\H11\H07\H10\H00 PiC 'N' MiX!
!2.......^.........^.........^.........^.........^.........^....
Pick up a handful of your old screen pics and mix them together
to create some stunning new visuals. Chris Somerville sketches
out the possibilities.
!1.......^.........^.........^.........^........
All the graphics packages on the market have one
thing in common; the large amounts of time and
effort it takes to create a decent picture. Like
me, you'll probably have a fair-sized library of
picture SCREEN$, each one representing several
hours of careful work. But to save time, there
must have been occasions when you wished you
could incorporate an existing screen dump into
your current masterpiece without starting from
scratch.
Well, now you can. This program allows you to
combine any two pictures that you've previously
SAVEd by SCREEN$. The resulting mix can produce
some very unexpected and unusual effects. And
even if the finished product's not quite the
masterful mosaic you'd hoped for but a bit of a
mess, you can always feed it into a standard
graphics program for re-touching.
And how about adding titles to your pictures?
Say you've drawn a picture of Castle Rathbone -
a flourish of gothic script could make all the
difference.
So, if you're in the mood to add moustaches to
your Mona Lisas, then you'll have some fun with
this program.
!2.......^.........^.........^.........^.........^.........^....
!B
This easy-to-use program is compatible with both the 16K and 48K
Speccy. Once you've typed it in you can SAVE it using SAVE
"picturemix" LINE 40.
!0.......^.........^.........^..
10 GO TO 40
20 LET aflag=1: PRINT AT 20,0;
" CHOOSE PAPER AND INK COLOURS":
INPUT "PAPER (0 to 7)?:";p$;"IN
K ?:";i$: IF CODE p$<48 OR CODE
p$>55 OR CODE i$<48 OR CODE i$>5
5 THEN BEEP .25,45: GO TO 20
30 LET att=VAL p$*8+VAL i$: PA
PER VAL p$: INK VAL i$: CLS : RE
TURN
!2.......^.........^.........^.........^.........^.........^....
Lines 20-30 Set up initial screen colours and attribute
variables
!0.......^.........^.........^..
40 DATA 17,87,228,33,0,64,1,0,
27,237,176,201,17,87,228,33,0,64
,6
50 DATA 24,197,6,0,197,126,245
,26,71,241,168,119,35,19,193,16,
243,193,16,237,201
!2.......^.........^.........^.........^.........^.........^....
Lines 40-50 Data for machine code subroutine
!0.......^.........^.........^..
60 RESTORE : LET cl=58414: IF
PEEK 23733<>255 THEN LET cl=256
46
!2.......^.........^.........^.........^.........^.........^....
Line 60 PEEKs P_RAMT to discover whether you're using a
16K or 48K Speccy.
!0.......^.........^.........^..
70 CLEAR cl: LET cl=(PEEK 2373
0+256*PEEK 23731)
!2.......^.........^.........^.........^.........^.........^....
Line 70 This line lowers RAMTOP to allow space for 40
bytes of machine code and room to store the
picture. It again PEEKs P_RAMT to re-establish
CL since this variable has been lost with the
previous CLEAR command.
!0.......^.........^.........^..
80 LET st=cl+1: LET mx=cl+13
!2.......^.........^.........^.........^.........^.........^....
Line 80 Initialises the start of the machine code
routines
!0.......^.........^.........^..
90 FOR i=st TO mx+27: READ x:
POKE i,x: NEXT i
!2.......^.........^.........^.........^.........^.........^....
Line 90 POKEs the machine code into place
!0.......^.........^.........^..
100 RANDOMIZE cl+41
!2.......^.........^.........^.........^.........^.........^....
Line 100 Starts the randomise seed going from a specific
point
!0.......^.........^.........^..
110 POKE st+1,PEEK 23670: POKE
st+2,PEEK 23671
120 POKE mx+1,PEEK 23670: POKE
mx+2,PEEK 23671
!2.......^.........^.........^.........^.........^.........^....
Lines 110-120 This POKEs the two-byte value of SEED into two
separate locations
!0.......^.........^.........^..
130 PAPER 6: INK 1: BORDER 5: C
LS
140 PRINT ' PAPER 2; INK 7; BRI
GHT 1;" PICTURE MIXER
"
150 PRINT '" This program will
combine any two pictures or
graphic lay-outs which hav
e previously been SAVEd by SCRE
EN$."
160 PRINT '" You will be asked
to LOAD each picture in turn. Y
ou will LOSE the ATTRIBUTES of
the picture you first LOAD in.
"
170 PRINT '" You can choose to
retain the ATTRIBUTES of the
picture next LOADed, or
to have your composite picture
in INK and PAPER colours of y
our choice."
!2.......^.........^.........^.........^.........^.........^....
Lines 130-170 This prints up the instructions for the use of
the program. If you follow the exact spacing,
you'll end up with a well laid-out screen and
justified text.
!0.......^.........^.........^..
180 PRINT AT 19,0;" PREPARE YOU
R CASSETTE & ENTER THE NAME OF
YOUR FIRST SCREEN$"
190 PLOT 1,1: DRAW 0,173: DRAW
253,0: DRAW 0,-173: DRAW -253,0
200 INPUT "Picture name";i$: IF
LEN i$>10 THEN GO TO 200
205 CLS : PRINT AT 10,10;"PLAY
THE TAPE": LOAD i$SCREEN$
!2.......^.........^.........^.........^.........^.........^....
Lines 180-205 This part of the program loads in your first
SCREEN$ file
!0.......^.........^.........^..
210 RANDOMIZE 0*USR st
!2.......^.........^.........^.........^.........^.........^....
Line 210 Stores the picture, but retains the RND
properties
!0.......^.........^.........^..
220 CLS : PRINT '" Your first
picture has been stored. No
w prepare to LOAD the second p
icture."
230 PRINT '" Do you wis
h to RETAIN the AT
TRIBUTES of the second
picture?"
240 PRINT '" PRESS Y (yes) O
R N (no)"
250 IF INKEY$<>"" THEN GO TO 2
50
260 LET i$=INKEY$: IF i$="" THE
N GO TO 260
270 LET aflag=0: IF i$<>"y" AND
i$<>"Y" THEN GO SUB 20
!2.......^.........^.........^.........^.........^.........^....
Lines 220-270 These lines find out if you want to keep the
attributes on the second picture
!0.......^.........^.........^..
280 PRINT AT 21,0;" NOW LOAD TH
E SECOND PICTURE.": INPUT "Pictu
re name";i$: LET i$=""+(i$ AND L
EN i$<=10): CLS : PRINT AT 10,10
;"PLAY THE TAPE": LOAD i$SCREEN$
: IF aflag=0 THEN GO TO 300
!2.......^.........^.........^.........^.........^.........^....
Line 280 Loads in the second SCREEN$ file
!0.......^.........^.........^..
290 FOR i=22528 TO 23295: POKE
i,att: NEXT i
!2.......^.........^.........^.........^.........^.........^....
Line 290 Adds attributes as necessary
!0.......^.........^.........^..
300 RANDOMIZE USR mx
310 INPUT "ENTER 1 to SAVE,or 0
";i$: IF i$="" THEN GO TO 310
320 IF i$="1" THEN INPUT "PICT
URE NAME? ";p$: IF LEN p$>10 THE
N LET p$=p$( TO 10)
330 IF i$="1" THEN SAVE p$SCRE
EN$
340 STOP
!2.......^.........^.........^.........^.........^.........^....
Lines 300-340 Save the new mixed-up screen pic and then stop
the program
Once you've finished mixing your pics remember to re-establish
RAMTOP otherwise you'll receive an OUT OF MEMORY or RAMTOP NO
GOOD error. After the program has stopped you can restart by:
CLEAR 32599: RUN (for 16K users); CLEAR 65367: RUN (for 48K
users).
!1.......^.........^.........^.........^........
!B
--
from Your Spectrum #15 (Jun.1985)
--
!$
!B
\H11\H07\H10\H00 PiC 'N' MiX!
!2.......^.........^.........^.........^.........^.........^....
Pick up a handful of your old screen pics and mix them together
to create some stunning new visuals. Chris Somerville sketches
out the possibilities.
!1.......^.........^.........^.........^........
All the graphics packages on the market have one
thing in common; the large amounts of time and
effort it takes to create a decent picture. Like
me, you'll probably have a fair-sized library of
picture SCREEN$, each one representing several
hours of careful work. But to save time, there
must have been occasions when you wished you
could incorporate an existing screen dump into
your current masterpiece without starting from
scratch.
Well, now you can. This program allows you to
combine any two pictures that you've previously
SAVEd by SCREEN$. The resulting mix can produce
some very unexpected and unusual effects. And
even if the finished product's not quite the
masterful mosaic you'd hoped for but a bit of a
mess, you can always feed it into a standard
graphics program for re-touching.
And how about adding titles to your pictures?
Say you've drawn a picture of Castle Rathbone -
a flourish of gothic script could make all the
difference.
So, if you're in the mood to add moustaches to
your Mona Lisas, then you'll have some fun with
this program.
!2.......^.........^.........^.........^.........^.........^....
!B
This easy-to-use program is compatible with both the 16K and 48K
Speccy. Once you've typed it in you can SAVE it using SAVE
"picturemix" LINE 40.
!0.......^.........^.........^..
10 GO TO 40
20 LET aflag=1: PRINT AT 20,0;
" CHOOSE PAPER AND INK COLOURS":
INPUT "PAPER (0 to 7)?:";p$;"IN
K ?:";i$: IF CODE p$<48 OR CODE
p$>55 OR CODE i$<48 OR CODE i$>5
5 THEN BEEP .25,45: GO TO 20
30 LET att=VAL p$*8+VAL i$: PA
PER VAL p$: INK VAL i$: CLS : RE
TURN
!2.......^.........^.........^.........^.........^.........^....
Lines 20-30 Set up initial screen colours and attribute
variables
!0.......^.........^.........^..
40 DATA 17,87,228,33,0,64,1,0,
27,237,176,201,17,87,228,33,0,64
,6
50 DATA 24,197,6,0,197,126,245
,26,71,241,168,119,35,19,193,16,
243,193,16,237,201
!2.......^.........^.........^.........^.........^.........^....
Lines 40-50 Data for machine code subroutine
!0.......^.........^.........^..
60 RESTORE : LET cl=58414: IF
PEEK 23733<>255 THEN LET cl=256
46
!2.......^.........^.........^.........^.........^.........^....
Line 60 PEEKs P_RAMT to discover whether you're using a
16K or 48K Speccy.
!0.......^.........^.........^..
70 CLEAR cl: LET cl=(PEEK 2373
0+256*PEEK 23731)
!2.......^.........^.........^.........^.........^.........^....
Line 70 This line lowers RAMTOP to allow space for 40
bytes of machine code and room to store the
picture. It again PEEKs P_RAMT to re-establish
CL since this variable has been lost with the
previous CLEAR command.
!0.......^.........^.........^..
80 LET st=cl+1: LET mx=cl+13
!2.......^.........^.........^.........^.........^.........^....
Line 80 Initialises the start of the machine code
routines
!0.......^.........^.........^..
90 FOR i=st TO mx+27: READ x:
POKE i,x: NEXT i
!2.......^.........^.........^.........^.........^.........^....
Line 90 POKEs the machine code into place
!0.......^.........^.........^..
100 RANDOMIZE cl+41
!2.......^.........^.........^.........^.........^.........^....
Line 100 Starts the randomise seed going from a specific
point
!0.......^.........^.........^..
110 POKE st+1,PEEK 23670: POKE
st+2,PEEK 23671
120 POKE mx+1,PEEK 23670: POKE
mx+2,PEEK 23671
!2.......^.........^.........^.........^.........^.........^....
Lines 110-120 This POKEs the two-byte value of SEED into two
separate locations
!0.......^.........^.........^..
130 PAPER 6: INK 1: BORDER 5: C
LS
140 PRINT ' PAPER 2; INK 7; BRI
GHT 1;" PICTURE MIXER
"
150 PRINT '" This program will
combine any two pictures or
graphic lay-outs which hav
e previously been SAVEd by SCRE
EN$."
160 PRINT '" You will be asked
to LOAD each picture in turn. Y
ou will LOSE the ATTRIBUTES of
the picture you first LOAD in.
"
170 PRINT '" You can choose to
retain the ATTRIBUTES of the
picture next LOADed, or
to have your composite picture
in INK and PAPER colours of y
our choice."
!2.......^.........^.........^.........^.........^.........^....
Lines 130-170 This prints up the instructions for the use of
the program. If you follow the exact spacing,
you'll end up with a well laid-out screen and
justified text.
!0.......^.........^.........^..
180 PRINT AT 19,0;" PREPARE YOU
R CASSETTE & ENTER THE NAME OF
YOUR FIRST SCREEN$"
190 PLOT 1,1: DRAW 0,173: DRAW
253,0: DRAW 0,-173: DRAW -253,0
200 INPUT "Picture name";i$: IF
LEN i$>10 THEN GO TO 200
205 CLS : PRINT AT 10,10;"PLAY
THE TAPE": LOAD i$SCREEN$
!2.......^.........^.........^.........^.........^.........^....
Lines 180-205 This part of the program loads in your first
SCREEN$ file
!0.......^.........^.........^..
210 RANDOMIZE 0*USR st
!2.......^.........^.........^.........^.........^.........^....
Line 210 Stores the picture, but retains the RND
properties
!0.......^.........^.........^..
220 CLS : PRINT '" Your first
picture has been stored. No
w prepare to LOAD the second p
icture."
230 PRINT '" Do you wis
h to RETAIN the AT
TRIBUTES of the second
picture?"
240 PRINT '" PRESS Y (yes) O
R N (no)"
250 IF INKEY$<>"" THEN GO TO 2
50
260 LET i$=INKEY$: IF i$="" THE
N GO TO 260
270 LET aflag=0: IF i$<>"y" AND
i$<>"Y" THEN GO SUB 20
!2.......^.........^.........^.........^.........^.........^....
Lines 220-270 These lines find out if you want to keep the
attributes on the second picture
!0.......^.........^.........^..
280 PRINT AT 21,0;" NOW LOAD TH
E SECOND PICTURE.": INPUT "Pictu
re name";i$: LET i$=""+(i$ AND L
EN i$<=10): CLS : PRINT AT 10,10
;"PLAY THE TAPE": LOAD i$SCREEN$
: IF aflag=0 THEN GO TO 300
!2.......^.........^.........^.........^.........^.........^....
Line 280 Loads in the second SCREEN$ file
!0.......^.........^.........^..
290 FOR i=22528 TO 23295: POKE
i,att: NEXT i
!2.......^.........^.........^.........^.........^.........^....
Line 290 Adds attributes as necessary
!0.......^.........^.........^..
300 RANDOMIZE USR mx
310 INPUT "ENTER 1 to SAVE,or 0
";i$: IF i$="" THEN GO TO 310
320 IF i$="1" THEN INPUT "PICT
URE NAME? ";p$: IF LEN p$>10 THE
N LET p$=p$( TO 10)
330 IF i$="1" THEN SAVE p$SCRE
EN$
340 STOP
!2.......^.........^.........^.........^.........^.........^....
Lines 300-340 Save the new mixed-up screen pic and then stop
the program
Once you've finished mixing your pics remember to re-establish
RAMTOP otherwise you'll receive an OUT OF MEMORY or RAMTOP NO
GOOD error. After the program has stopped you can restart by:
CLEAR 32599: RUN (for 16K users); CLEAR 65367: RUN (for 48K
users).
!1.......^.........^.........^.........^........
!B
--
from Your Spectrum #15 (Jun.1985)
--
!$