home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpmug
/
cpmug035.ark
/
FELIX.DOC
< prev
next >
Wrap
Text File
|
1984-04-29
|
7KB
|
182 lines
FELIX MICROCOMPUTER ANIMATION SYSTEM
--VERSION 2.1--
THE UNIVERSITY OF TENNESSEE/KNOXVILLE
COMPUTER SCIENCE DEPARTMENT
SEPTEMBER 18,1979
MICHAEL MOSHELL, PROJECT DIRECTOR
LEE WITTENBERG, RESIDENT SOFTWARE GNOME
AND A FINE SUPPORTING CAST, INCLUDING:
JANE KIENENGER,JIM MCCRAE,TYE SHULTZ,CLEMENT WONG,
MUKESH SUNDARAM,AND MANY OTHERS.
1. OVERVIEW
FELIX IS A SIMPLE ANIMATION SYSTEM WHICH USES
THE CROMEMCO TV DAZZLER AND D+7A ANALOG-TO-DIGITAL
CONVERTER WITH TWO JOYSTICKS, TO PRODUCE AND
EXECUTE SIMPLE STICK FIGURE ANIMATIONS. THE
END GOALS OF THE PROJECT ARE THESE:
A: TO PROVIDE CLASS AND INDIVIDUAL STUDY PROJECTS
FOR ENTERTAINMENT,EDIFICATION AND EDUCATION
IN MICROCOMPUTER SOFTWARE AND GRAPHICS
ISSUES OF ALL SORTS.
B: TO BUILD A BASIS UPON WHICH CAN BE ERECTED A
SUPERSTRUCTURE OF SOFTWARE FOR USE IN ELEMENTARY
AND SECONDARY COMPUTER SCIENCE EDUCATION.
C: TO PROVIDE A 'COMMON GROUND' FOR HOBBYESTS AND
ACADEMICS (AND ANYONE ELSE) WANTING TO EXCHANGE
IDEAS IN ANIMATION.
FELIX IS FULLY DEFINED AN DOCUMENTED IN THREE TECHNICAL REPORTS
(FELIX REPORTS 1,2,3,OBVIOUSLY) WHICH ARE AVAILABLE
FROM THE UNIVERSITY OF TENNESSEE
COMPUTER SCIENCE DEPARTMENT
(ATTENTION: MICROCOMPUTER CLUB)
KNOXVILLE, TN 37916
FOR $10.00. THE SOFTWARE, IN
SOURCE CODE AND EXECUTABLE FORM, IS AVAILABLE THROUGH THE
CP/M USER'S GROUP OR FROM THE ABOVE ADDRESS.
TWO VOLUMES OF SOFTWARE EXIST: THE BASE VOLUME,
CONTAINING FELIX VERSION 2.1 WITH ALL SOURCE CODE, .COM
FILES FOR ALL THE UTILITY PROGRAMS, AND SOME EXAMPLES;
VOLUME 2,CONTAINING SOURCE CODE FOR THE UTILITY PROGRAMS,
AND MANY MORE CARTOON AND ARTISTIC EXAMPLE PROGRAMS.
EACH VOLUME IS AVAILABLE FOR $10.00 FROM THE ABOVE ADDRESS.
2. CONCEPTS OF FELIX
FELIX IS BASED ON THE NOTION OF A 'PSEUDO-MACHINE', WHICH IS
ACTUALLY AN INTERPRETER PROGRAM EXECUTING A LANGUAGE
THAT LOOKS LIKE MACHINE-CODE FOR SOME MICROPROCESSOR.
THE SPECIAL FEATURE OF FELIX-CODE IS THAT SIMPLE ONE-
OPCODE COMMANDS CAN CAUSE COMPLEX SCREEN EVENTS TO
OCCUR, RESULTING IN CARTOONS OR KINETIC ART BEING
DESCRIBED BY RATHER SHORT SIMPLE PROGRAMS.
THE PSEUDO-MACHINE ALSO ALLOWS US TO AT LEAST DREAM OF TRANSPORTABILITY
IN THE SENSE THAT WHEN PSEUDO-MACHINE INTERPRETERS ARE WRITTEN
FOR OTHER HARDWARE (APPLE IS UNDERWAY) THE CARTOONS,
AND OTHER CODE CAN BE CARRIED RIGHT ALONG WITHOUT A LOT OF
REWRITING.
THE MOST EXCITING CONSEQUENCE OF THIS IS THAT HIGHER-LEVEL LANGUAGES,
FELIX UTILITIES, ASSEMBLERS,EDITORS,ETC CAN
BE EXPRESSED IN FELIX CODE ITSELF, AND EXECUTE RAPIDLY ON
ANY PRESENT OR FUTURE HARDWARE YOU MIGHT CHOOSE TO FAVOR
WITH THE CREATION OF THE PSEUDO-MACHINE.
2. DETAILS: HOW DOES IT WORK?
IT'S REALLY HARD TO TELL YOU MUCH WITHOUT A FIFTY PAGE TECH REPORT,
WHICH IS NOT AVAILABLE RIGHT NOW IN DISK-STORABLE FORM.
(IT HAS PICTURES IN IT,FOR INSTANCE). IN BROAD OUTLINE WE
HAVE AN ASSEMBLER (FASM) WHICH TAKES PSEUDO-MACHINE ASSEMBLER
LANGUAGE (.FAS FILES) AND PRODUCES EXECUTABLE FELIX FILES
(.FEX). THEN THE 'DOODLER' PROGRAM IS USED TO CREATE SCREEN
OBJECTS AND BACKGROUNDS TO GO WITH THE FILES, (OBJECTS AND
SCENES CAN ALSO BE STORED USING 'LOADOB,STOREOB',ETC)
AND THE ENTIRE MESS SAVED OR EXECUTED. THE FOLLOWING SHOULD
GIVE YOU ENOUGH INFORMATION TO DECIDE WHETHER TO ORDER THE
TECH REPORTS.
3. AN EXAMPLE
THE PROGRAM 'PAINTER' IS A GOOD STARTING PLACE. THIS PROGRAM MOVES
SEVERAL (PAINT-BRUSHES) ABOUT THE SCREEN; THE BRUSH TO MOVE
IS SELECTED IN YOUR SWITCH REGISTER (HOPE YOU HAVE ONE).
PUSHING THE BUTTONS ON THE CROMEMCO JOYSTICKS SELECTS COLORS
IN WHICH TO PAINT. AN ADDED A/D CHANNEL (CHANNEL 1D,EASY
TO PATCH INTO YOUR JOYSTICK-2; SEE TECH REPORT 3 FOR HOW )
ALLOWS CONTROL OVER THE ROTATION OF THE JOYSTICK-MOVED
PAINTBRUSHES....IF YOU HAVEN'T MADE THIS MOD, USE THE
VERSION CALLED 'PAINT' RATHER THAN 'PAINTER'.
THE COMMANDS.
A>FELIX
--THIS LOADS IN FILES FELIX.OBJ AND SINCOS.OBJ IN HIGH RAM
(5000 AND 4000 RESPECTIVELY),FOR USE BY EVERYONE ELSE.
A>EXEC PAINTER&
--THIS EXECUTES A VERSION OF PAINTER WHICH INCLUDES OBJECTS 0
THROUGH 7,PRE-DEFINED FOR YOU.SELECT WITH SWITCH-
REGISTER,GO TO IT. PAINT SOME STUFF.
TYPE CONTROL-C TO EXIT THE EXECUTION OF A PROGRAM.
A>TYPE PAINTER.FEX
--THIS LETS YOU LOOK AT THE PROGRAM YOU JUST RAN,JUST INCASE IT
MIGHT BE COMPREHENSIBLE.
A>DOODLE
--THIS LETS YOU DEFINE SOME NEW OBJECTS TO PAINT WITH.
SELECT OBJECT NUMBER:1 --YOU DECIDE TO DRAW OBJECT 1.
R --YOU SELECT A RED COLOR TO PAINT.
! --YOU MAKE IT HIGH-INTENSITY
IIIII --YOU TYPE KEYS AROUND THE 'K' KEY TO MOVE AND DRAW
WITH THE MOVING CURSOR. ZERO '0' TURNS OFF THE COLOR
TO MOVE THE CURSOR. YOU CAN TURN IT ON AGAIN WITH ANOTHER
COLOR SELECTION.
CTRL/N --SELECTS ANOTHER OBJECT TO WORK ON.
Z --CLEARS SCREEN (NOT THE ACTUAL STORED OBJECTS)
CTRL/C --RETURNS YOU TO CP/M
A>EXEC PAINTER -EXECUTES A 'PAINTER' WITHOUT DEFINED OBJECTS
SO YOUR DOODLED ONES WILL BE MOVABLE NOW.
4: CONVENTIONS
FILENAMES: .FEX ARE 'EXECUTABLE' - WITH OR WITHOUT OBJECTS,ETC.
.FAS ARE 'FELIX SOURCE'
.PRN ARE LISTINGS, PRODUCED BY FASM.INCLUDES ERROR MSGS.
.PIC ARE OBJECTS, STORED BY SAVEOB.
.SCN ARE BACKGROUNDS,STORED BY SAVEBACK.
'&' IN A FILENAME (TYPE .FEX) MEANS THE OBJECTS ARE
INCLUDED WITH THE FILE (SEE HOW SHORTLY)
'#' IN A FILENAME (TYPE .FEX) MEANS THE OBJECTS AND BACK-
GROUND ARE INCLUDED.
5: HOW DOES IT WORK?
IN VERY BRIEF OUTLINE, FELIX MAINTAINS 'SDATA OBJECTS' IN A
LINEAR LIST STORAGE SYSTEM; WHENEVER THE 'SHOW' OPERATOR IS EXECUTED
THE OBJECTS ARE ROTATED IF NECESSARY AND PROJECTED ONTO
THE SCREEN. FELIX IS DEFINED WITH A 255 X 255 DISPLAY SPACE AND ONLY
A FEW ROUTINES RELY ON THE TV DAZZLER, CROMEMCO JOYSTICKS, OR ANY OTHER
SPECIFIC HARDWARE. YOU ARE INVITED TO EXPLORE THE SOURCE CODE.
6: EXTENSIONS AND OTHER VERSIONS
ONE REASON WE ARE DISTRIBUTING 'FELIX' IS THAT WE WANT FOLKS TO
EXPERIMENT IN ANIMATION; TO TRY OTHER IDEAS AND TO SEND THEM
TO US! YOU ARE FREE TO DO ANYTHING YOU LIKE EXCEPT TO
PROMULGATE ANY 'OFFICIAL' EXTENSIONS TO FELIX. TO FACILITATE
EXPERIMENTATION WE HAVE INCLUDED FOUR OPCODES, 'USER1,...USER4'
IN THE FASM ASSEMBLER,PRODUCING OPCODES C0,C1,C2,C3. YOU CAN
USE THESE TO TRY NEW STUFF. YOU CAN OF COURSE GET COPIES OF
THE FASM ASSEMBLER FROM VOLUME II OF THIS DISTRIBUTION AND
PATCH THE LOOKUP TABLE TO INCLUDE YOUR OWN OPERATORS; OR
BUILD .FEX FILES DIRECTLY. WE DID IT FOR A YEAR...IT AIN'T
IMPOSSIBLE.
OUR FUTURE PLANS INCLUDE AN ADVANCED FELIX, VERSION 3, ABOUT THIS
TIME NEXT YEAR; THIS WILL INCLUDE A HOST OF NEW OPERATORS
AND OBJECT MAKERS,ETC, AND A HIGHER-LEVEL LANGUAGE WITH
STRUCTURED CONTROL WHOSE COMPILER RUNS ON THE PSEUDO-MACHINE.
WE WELCOME SUGGESTIONS AND INPUTS.