home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
canada-remote-systems
/
c128
/
graphutl
/
geos2b8.sda
/
GEOSCRAP.DOCS
< prev
next >
Wrap
Text File
|
2019-04-13
|
11KB
|
168 lines
╟┼╧╙ ╨╚╧╘╧ ╙├╥┴╨ ╘╧ ┬┴╙╔├ 8 ┬╥╒╙╚ ├╧╬╓┼╥╘
╘HE FOLLOWING TUTORIAL ARTICLE IS REPRINTED HERE WITH THE
PERMISSION OF ╠OREN ╠OVHAUG AND ╘WIN ├ITIES 128. ╘HIS MATERIAL,
WITH THE EXCEPTION OF THE NOTE BY ME AT THE END, IS EXCERPTED
FROM ╔SSUE #24 OF ╘├ 128, IN WHICH THIS ARTICLE AND THE
ACCOMPANYING PROGRAMS FIRST APPEARED. ╔ WISH TO THANK THE AUTHOR,
╥ICK ╦ANE, FOR THIS EXCEPTIONAL AND LONG AWAITED PROGRAM, AND
╠OREN ╠OVHAUG FOR PERMISSION TO UPLOAD THIS ARTICLE AND PROGRAM
PACKAGE TO ╤-╠INK FOR THE ENJOYMENT AND ENLIGHTENMENT OF OUR
MEMBERS. ┼╬╩╧┘!!
┬ILL ╨ITTS
128 ╟RAPHICS ╙YS╧P
-----------------------------------------------------------------
╫E ALL LOVE TO SHOW OFF WHAT WE CAN DO WITH ╥╟┬ ╟RAPHICS ON THE
128. ┬UT WHEN IT GETS RIGHT DOWN TO IT, IT TAKES A LOT OF TIME
(NOT TO MENTION TALENT) TO DRAW ALL THOSE PICTURES TO SHOW OFF
WITH. ┴ND MANY NICE GRAPHICS ALREADY EXIST, AVAILABLE ON MANY
┬┬╙'S AND RIGHT HERE ON ╤-╠INK. ═ANY OF THESE HAVE BEEN PORTED TO
A COMPATIBLE FORMAT FROM EITHER ┴MIGA OR ═ACINTOSH FORMATS, OR
CREATED WITH ONE OF THE SEVERAL FINE PAINT PROGRAMS AVAILABLE FOR
THE 64 AND 128. ╧F COURSE EACH HAS A FILE FORMAT TAILORED TO ITS
CHARACTERISTICS. ┴ND JUST BECAUSE YOU CAN DOWNLOAD A GRAPHIC AND
VIEW IT IS NO GUARANTEE THAT YOU'LL BE ABLE TO USE IT IN YOUR OWN
PROGRAMS.
╘HEREFORE NO ONE NEEDS TO BE TOLD THE VALUE OF HAVING THE TOOLS
TO CONVERT FROM ONE FORMAT TO ANOTHER. ╫ITH THIS PROGRAM YOU WILL
BE ABLE TO TAKE A ╟┼╧╙ ╨HOTO ╙CRAP (THE FILE YOU GET WHEN YOU ├╒╘
OR ├╧╨┘ FROM THE ╟┼╧PAINT ┼─╔╘ REQUESTOR) AND MAKE AN 8╪8 COLOR
┬┴╙╔├ 8 ┬╥╒╙╚ FILE. ╘HE BRUSH CAN THEN BE PASTED, CROPPED, AND
OTHERWISE HANDLED JUST AS IF IT HAD BEEN DRAWN WITH A ┬ASIC
8-BASED PAINT PROGRAM SUCH AS ┬ASIC ╨AINT, ╙PECTRUM 128, AND
OTHERS.
┴S TO THE CONVERSION PROCESS, ╟EOPAINT PRESENTS SPECIAL PROBLEMS,
WITH ITS COMPACTION SCHEMES TO KEEP DISK ACCESS TIMES DOWN, ╓╠╔╥
FILE FORMAT AND ╒╙╥ FILES. ┬Y CONCENTRATING ON ╨HOTO ╙CRAP FILES,
WE CUT DOWN ON THE COMPLEXITY IN SEVERAL WAYS. ╞IRST, ╨HOTO
╙CRAPS ARE SEQUENTIAL IN FORMAT (THOUGH LABELED ╒╙╥), SO A
RELATIVELY SIMPLE ╟┼╘# STATEMENT WILL READ IT. ╙ECOND, A ╟EOPAINT
FILE CAN REPRESENT 640 X 800 VIRTUAL RESOLUTION. ╚OLDING THAT
DOCUMENT IN MEMORY (UNCOMPRESSED) WOULD REQUIRE 64000 BYTES FOR
THE BITMAP AND 8000 BYTES FOR ATTRIBUTES AND WOULD REQUIRE A FAIR
AMOUNT OF JUGGLING. ╘HEN IT WOULD NEED TO BE BROKEN INTO SMALLER
PARTS ANYWAY, FOR 16╦ SYSTEMS AND FOR ANY PAINT PROGRAMS WHERE
THE PICTURE REMAINS IN MEMORY. (╘HE MAXIMUM 8X8 COLOR DOCUMENT
WITH 64╦ VIDEO ╥┴═ WOULD BE 640 X 728).
┴S LUCK WOULD HAVE IT, THE ╟┼╧╙ PROGRAMMERS CHOSE TO SAVE THEIR
PICTURE DATA FROM LEFT TO RIGHT ACROSS SCANLINES, JUST LIKE THE
8563 CHIP, RATHER THAN IN THE "8 BYTES STACKED PER CHARACTER"
METHOD USED BY THE ╓╔├ CHIP. ╘HIS WAS DONE BECAUSE BIT-MAPPED
DATA COMPRESSES MUCH BETTER HORIZONTALLY. ╘HIS MAKES SENSE IF YOU
THINK ABOUT THE CASE OF THE PATTERN FILL. ╓╔├ PATTERNS ARE
GENERALLY BASED ON 8X8 CARDS, SO A PATTERN FILL WOULD PLACE THE
SAME BYTE AT THE SAME SCANLINE POSITION IN EACH CARD. ╘HIS
RESULTS IN A HIGHER PROBABILITY OVERALL THAT THE BYTE IN THE
POSITION IMMEDIATELY TO THE RIGHT (OR LEFT) OF ANY ONE POSITION
WILL BE THE SAME, LEADING TO BETTER COMPACTION. ╔N ANY CASE, THAT
TAKES SOME OF THE WORK OUT OF GETTING THE DATA ONTO THE 8563
SCREEN.
╟EOS USES THREE MODES TO MAXIMIZE COMPACTION. ╔N EACH MODE, THE
FIRST BYTE IS TAKEN AS THE ├╧╒╬╘, FOLLOWED BY THE APPROPRIATE
AMOUNT OF DATA. ╔N HE FIRST MODE, WHEN ├╧╒╬╘ <128, THIS INDICATES
THAT THE NEXT BYTE IS TO BE REPEATED ├╧╒╬╘ TIMES. ╘HE SECOND MODE
IS A STRING OF DATA -- A "WORD" -- USED SEQUENTIALLY. ├╧╒╬╘ IS
BETWEEN 128 AND 220 INCLUSIVE, AND THE DATA STRING IS THE NEXT
├╧╒╬╘-128 BYTES, USED ONCE EACH. ╘HE THIRD MODE, ┬╔╟├╧╒╬╘, ALLOWS
FURTHER COMPACTION OF PATTERNS. ╔F A STRING OF BYTES IS REPEATED
SEVERAL TIMES, ├╧╒╬╘ WILL BE BETWEEN 221 AND 255. ╘HE NUMBER OF
DATA BYTES IS ├╧╒╬╘-220. ╘HE NEXT BYTE IS ┬╔╟├╧╒╬╘, TELLING HOW
MANY TIMES TO REPEAT THE STRING OF DATA BYTES.
╘HE DECOMPRESSION ROUTINE IS NOT FAST, BEING WRITTEN IN ┬┴╙╔├,
BUT IT USES ╞┴╙╘ MODE AND REALLY ISN'T THAT BAD. ┴ ├╧╒╬╘ BYTE IS
GOTTEN FROM DISK, AND THE APPROPRIATE DECOMPRESSION ROUTINE IS
CALLED FOR EACH MODE, UNTIL THE ╨HOTO ╙CRAP'S FULL DIMENSIONS
HAVE BEEN ADDRESSED. ╫HEN ╟EOS CREATES THE SCRAP, IT DOESN'T
DISTINGUISH BETWEEN BITMAP AND COLOR DATA; THEY ARE COMPRESSED
THE SAME WAY. ╙O IT IS POSSIBLE FOR A COMPRESSION AT THE END OF
THE BITMAP TO INCLUDE BOTH BITMAP AND COLOR DATA. ╘HIS WILL
HAPPEN IF, FOR EXAMPLE, THE LAST ROW OF THE SCRAP IS 00'S (THE
SCRAP IS SLIGHTLY LARGER THAN THE OBJECT YOU CUT, PERHAPS, AND
CONTAINS BLANK SPACE) AND THE FIRST COLOR DATA IS THE SAME. ╙O
EACH MODE ROUTINE MUST CHECK IF DATA TO REPEAT IS LEFT OVER WHEN
THE LAST SCANLINE IS DONE, AND FINISH OFF AT THE START OF
ATTRIBUTES. ╔F NO DATA IS LEFT, THE SWITCH TO ATTRIBUTE MEMORY IS
HANDLED AT THE PROPER TIME BY THE MAIN ROUTINE AT 1000-1080.
├OLOR BYTES ARE IN THE ╓╔├ FORMAT, WHERE 0 IS BLACK, 1 WHITE, 2
RED, ETC. ┬UT THE ╥╟┬ COLORS DON'T MATCH THOSE NUMBERS, SO A
CONVERSION ARRAY IS SET UP. ┴LSO, THE COLOR NIBBLES AFFECT
FOREGROUND/BACKGROUND IN THE REVERSE WAY; THIS IS ALSO HANDLED
WHEN THE BYTE IS GOTTEN FROM DISK IF THE COLOR CHANGE FLAG IS
SET. ╔F THE ╨HOTO ╙CRAP IS MONOCHROME, CUT EITHER FROM THE 80
COLUMN SCREEN OR WITH THE ├╧╠╧╥ ╧╞╞ ON THE 40 COLUMN SCREEN,
THERE WILL BE JUST ONE BYTE OF COLOR DATA FOR THE ENTIRE SCRAP.
╔N THIS CASE, THE GET-A-BYTE ROUTINE AT 5000 WILL RECOGNIZE THE
END OF FILE MARKER (╙╘ <> 0) AND JUST LEAVE THE CURRENT BYTE TO
BE HANDLED UNTIL THE SCRAP IS FILLED.
╧NCE THE ╨HOTO ╙CRAP IS ON THE SCREEN, IT CAN BE @╙╘┴╙╚┼─ IN
COMPRESSED FORM TO A BRUSH STRUCTURE IN A BUFFER. ╔ CHOSE BANK 1
FOR THE BUFFER BECAUSE THE DATA IS RELATIVELY SMALL(NO MORE THAN
80*176 + 80*22, OR 15840 BYTES MAXIMUM UNCOMPRESSED), AND IT IS
AN EASY MATTER TO PROTECT ┬ASIC'S VARIABLES FROM CORRUPTION.
┴FTER THE BRUSH IS @╙╘┴╙╚ED, IT CAN BE WRITTEN TO DISK WITH THE
@╙╙╘╥╒├╘ COMMAND. ╘O GET A BETTER UNDERSTANDING OF THE FORMATS
FOR ╟┼╧╙ AND ┬ASIC 8, ╔ SUGGEST THE ╧FFICIAL ╟┼╧╙ ╨ROGRAMMER'S
╥EFERENCE ╟UIDE BY ┬╙╫, AND THE ┬ASIC 8 ═ANUAL. ┘OU DON'T NEED TO
OWN ┬ASIC 8 TO RUN THE CONVERSION PROGRAM, BUT YOU ─╧ NEED THE
╥UNTIME ╠IBRARY, WHICH IS ┴VAILABLE IN THE ┬┴╙╔├ 8 ╞ILES/─EMOS
┴ND ┴NIMATION ╙ECTION IN THE ├-128 ╟RAPHICS ╠IBRARY IN ├╔╬, AND
ALSO IN THE ╙PECIAL ┼DITION ╙OFTWARE/╠OU ╫ALLACE ╨RIVATE
├OLLECTION ╙ECTION OF THE ├OMMODORE ╙OFTWARE ╙HOWCASE ╠IBRARIES.
╘HEN USE THE PROGRAM ┬╧╧╘.╟┼╧╙├╥┴╨ TO BOOT THE ╥UNTIME ╠IBRARY
AND RUN ╟┼╧╙├╥┴╨-2┬8╓1.2. ╔F YOU OWN ┬ASIC 8 OR YOU HAVE YOUR ╥╘╠
ALREADY SET UP TO AUTO BOOT, YOU CAN SKIP THE FIRST STEP AND JUST
BOOT THE EDITOR OR ╥╘╠ AND RUN ╟┼╧╙├╥┴╨-2┬8╓1.2 FROM THERE. ╔F
YOU DO USE THE ┬╧╧╘.╟┼╧╙├╥┴╨ PROGRAM, ─╧ ╬╧╘ ┬╧╧╘ OR ╥╒╬ IT!
╔NSTEAD, YOU SHOULD FIRST ─╠╧┴─ IT THEN ╥╒╬ IT.
╫HEN YOU RUN THE MAIN PROGRAM, YOU WILL BE TOLD THAT THE MENU IS
ON THE 40 COLUMN SCREEN. ╔T THEN ASKS FOR THE SOURCE DRIVE. ╔F
YOU ANSWER "0" THE PROGRAM WILL END. ┴FTER A CATALOG OF ALL ╒╙╥
FILES ON THE SELECTED SOURCE DISK SCROLLS BY, ENTER THE FILENAME
YOU WISH TO CONVERT. ╒SUALLY, YOU CAN LEAVE IT AS THE DEFAULT
"╨HOTO ╙CRAP" BECAUSE ╟┼╧╙ WON'T LET YOU RENAME IT TO ANYTHING
ELSE. ┘OU CAN RENAME THEM IN ┬ASIC TO PUT MANY SCRAPS ON ONE
DISK, BUT THIS IS ONLY PRACTICAL IF YOU HAVE A ╥┴═ EXPANSION UNIT
TO ALLOW FOR QUICK REBOOTS EACH TIME YOU EXIT ╟┼╧╙ TO RENAME. ╘HE
PROGRAM WILL HANDLE "NOT FOUND" ERRORS, BUT ╔ MAKE NO GUARANTEES
ABOUT WHAT WILL HAPPEN IF YOU TRY TO CONVERT SOME OTHER ╒╙╥ FILE,
LIKE THE ─ESKTOP! ╫HEN THE FILE IS FOUMD, THE WIDTH AND HEIGHT IN
PIXELS IS DISPLAYED, THEN THE ╓╔├ (40 COLUMN) SCREEN BLANKS WHILE
THE BRUSH IS DRAWN. ┘OU CAN SWITCH YOUR MONITOR TO THE 80-COLUMN
MODE AT THIS TIME IF YOU WISH AND SEE THE BRUSH BEING DRAWN. ╫HEN
IT IS DONE, YOU WILL BE PROMPTED ON THE 40 COLUMN SCREEN FOR A
DESTINATION FILENAME (THE "┬╥╒╙." PREFIX WILL BE AUTOMATICALLY
ADDED TO THE NAME YOU GIVE) AND THE BRUSH IS SAVED. ╘O DISPLAY A
BRUS FILE QUICKLY, EXIT THE PROGRAM, THEN TYPE THIS LINE IN THE
IMMEDIATE MODE:
@├╠┼┴╥,0,3,15:@─╔╙╨╠┴┘,0,DEVICE,0,BRUSHNAME,0,0
╫HERE 'DEVICE' IS THE DISK # YOU WISH TO LOAD FROM, AND
'BRUSHNAME' IS THE NAME OF THE BRUS FILE YOU WISH TO LOAD
(BRUSHNAME SHOULD BE ENCLOSED IN DOUBLE QUOTE MARKS OF COURSE.
-----------------------------------------------------------------
╬╧╘┼ ╞╥╧═ ╙┘╙╧╨ ╫╨: ╔ HAVE ADDED A SHORT PROGRAM TO THIS PACKAGE
THAT WILL AUTOMATICALLY LOAD, IN FULL COLOR, ANY ┬╥╒╙ FILE TO THE
SCREEN, REGARDLESS OF WHETHER IT WAS CREATED WITH THE ABOVE
PROGRAM OR IS FROM ANOTHER SOURCE, SUCH AS ┬ASIC ╨AINT. ╔T IS NOT
NECESSARY TO ADD THE 'BRUS.' PREFIX, AS THIS WILL BE DONE
AUTOMATICALLY, ALTHOUGH NO HARM WILL BE DONE IF YOU DO. ┘OU WILL
BE GIVEN THE OPTION OF LOADING TO THE SCREEN ONLY, OR LOADING AS
A STRUCTURE TO A BUFFER. ╩UST ─╠╧┴─ AND ╥╒╬ "┬╥╒╙╚╓╔┼╫"