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

Hamurabi and Similar Games on CP/M

Hamurabi is probably the best known land and resource management game on CP/M. However, there are a few other similar text-based games that sought to extend the concept such as Dukedom and Kingdom. T...   Read More

Advanced Use of .LBR files on CP/M

Lots of utilities make use of .LBR (Library) files to provide extra facilities such as the ability to run commands from archives or mount them as if they were drives. This article shows some more adva...   Read More

Working with .LBR files on CP/M

The .LBR (Library) file format was the most common form of multi-file archive on personal computers at one time. It was created by Gary P. Novosielski in 1982 for use by his LU (Library Utility) progr...   Read More

Re-execute Programs in Memory on CP/M

After a transient program terminates on CP/M it's often possible to re-execute it in memory without having to reload it from disk. This is a great little trick if using slow disks as it's much quicke...   Read More

I Love ED on CP/M

I love ED on CP/M. It's often derided but I think it's just misunderstood and with a little practise its true value can shine through. It's elegant, easy to learn and only has about 25 commands but t...   Read More