Felix Animation System on CP/M

In 1979 the University of Tennessee/Knoxville's Computer Science Department released Felix v2.1 for CP/M, which is available on the Walnut Creek CD. It aimed to provide a basis for computer animation experiments and projects for education and hobbyist use.

The system used an early graphics card for S-100 bus computers called the Cromemco Dazzler to display the animations on a television screen. The Dazzler was released in 1976 and could display a maximum resolution of 128x128 in monochrome or 64x64 using 8 colours with or without intensity.

Felix uses a VM to display and control the animations with the hope of creating a portable animation system across computing platforms. The animations are created in a form of assembly language targeted at the Felix VM which is assembled using the FASM command to produce a .FEX file which is then run using the EXEC command.

An example file called BEE.FAS is included in the archive and listed below:


; 8 SEPT 79 - MOSHELL
;
; BLOOMING FLOWER; BEE LANDS,FLIES AGAIN.BIRD
; COMES ALONG AND EATS BEE.
;
SPEED	EQU	0
GROUND	EQU	0
STEM	EQU	1
LEFTPETAL EQU	2
RIGHTPETAL EQU	3
BEE	EQU	4
BEEPATH	EQU	5
B2PATH	EQU	6
BIRD	EQU	7
BIRDPATH EQU	8
;
	DELAY	SPEED
	ONLIST	2,STEM,GROUND
	MOVE	15,.COUNT
;
;FIRST THE PLANT GROWS AND BLOSSOMS.
;
STEMLOOP:	FLY	STEM,0,1
	SHOW
	SUB	.COUNT,1,.COUNT
	JNZ	STEMLOOP
;
	BACKGRND	STEM
	ONLIST	4,LEFTPETAL,RIGHTPETAL,STEM,GROUND
	MOVE	5,.COUNT
	DELAY	150
;
PETALOOP:BACKGRND	LEFTPETAL
	BACKGRND	RIGHTPETAL
	SPIN	LEFTPETAL,-1
	SPIN	RIGHTPETAL,1
	SHOW
	SUB	.COUNT,1,.COUNT
	JNZ	PETALOOP
;
	CALL	PAUSE
	ONLIST	1,BEE
;
;NOW A BEE WANDERS ACROSS THE SCENE,SETTLES ON FLOWER.
;
BEELOOP:PATH	BEE,BEEPATH
	SHOW
	JNZ	BEELOOP
;
	CALL	PAUSE
	ONLIST	2,BEE,BIRD
;
;NOW THE BEE LEAVES THE FLOWER,MEETS BIRD.
;
B2LOOP: PATH	BIRD,BIRDPATH
	PATH	BEE,B2PATH
	SHOW
	JNZ	B2LOOP
;
	ONLIST	1,BIRD	;BEE DONE BEEN ET.
;
; BIRD NOW FLIES AROUND THE SCREEN FOREVER.
;
BIRDLOOP:PATH	BIRD,BIRDPATH
	SHOW
	JUMP	BIRDLOOP
;
;- - - - - - - - - - - - - - - - - - - - -
;
PAUSE:	DELAY	250
	MOVE	5,.COUNT
PLOOP:	SUB	.COUNT,1,.COUNT
	JNZ	PLOOP
	DELAY	SPEED
	RETURN
;
COUNT:	DB	0
;
	END

You can see a couple of animations using Felix in the following video. It demonstrates Felix using z80pack to emulate an IMSAI 8080 with a Dazzler, running CP/M 2.2. Unfortunately, I'm not able to fully test Felix because the emulator doesn't emulate the required analog-to-digital converter to use the joysticks. However, it was fun to play with and I think it's nice to see the system in action.

Creative Commons License
Felix Animation System on CP/M by Lawrence Woodman is licensed under a Creative Commons Attribution 4.0 International License.

Share This Post

Feedback/Discuss

Related Articles

Modula-2 Compilers on CP/M

Modula-2 is a great language in general and is a good choice for programming on CP/M. There are three good compilers available for CP/M which all require a Z80 processor and we'll compare each in turn...   Read More

XCCP: A Shell Extension for CP/M

XCCP describes itself as an Extended Console Command Processor for CP/M. It supports the 8080 and v1.0 was released by Anton R. Fleig in 1984. Like EPEX, XCCP doesn't require installing so we can begi...   Read More

EPEX: An Environment Extension for CP/M

Epex is an evironment extension for CP/M. It stands for Environmental Processing EXecutive, and v1.1 was released by James H. Whorton in 1986. It can make using CP/M much more comfortable at the cost...   Read More

File Comparison Utilities on CP/M

There are many utilities available for CP/M to compare the differences between files and to distribute those differences. All the utilities in this article can be found on the Walnut Creek CD. Binary ...   Read More

Breakout Style Games on CP/M

Breakout style video games were pretty popular at one time both at Arcades and on home computers. The games are based on a simple concept where you have to destroy a group of 'bricks' at the top of t...   Read More