A>type felix.doc 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. A> The ARK contains volume 1 of FELIX v2.1 I quess. The university's computer doesn't seem to have any of the other docs. The technical reports before 1989 seem to be erased/lost. At least they are not where they are/were/supposed to be. Rodger