Felix Animation System on CP/M

  /     /   CP/M     Retro    

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.

Related Articles

DIR Alternatives on CP/M

There are lots of great alternatives to the standard CP/M DIR command, which add extra functionality and combine features that normally have to be accessed through other CP/M commands such as STAT or S...   Read More

Mission: Impossible on CP/M

Mission: Impossible simulates a foreign espionage mission based on the TV series. Your mission, should you decide to accept it, is to recover the objects or person taken by enemy agents and hidden in ...   Read More

Hunt the Wumpus on CP/M

Hunt The Wumpus was created by Gregory Yob in 1973 after seeing some of the hide and seek style games distributed by the People's Computer Company. Games such as Hurkle, Snark and Mugwump were all ba...   Read More

CP/M Standard Console Control Characters

CP/M helped provide a consistent console interface for the user by supporting a number of standard control characters through the BDOS console functions. This was great for the user and made life much...   Read More

Transferring Files to and from CP/M .D71 Disk Images Using ctools

Using Vice to emulate a Commodore 128 running CP/M works very well, but it isn't easy to get CP/M files directly onto and off a .D64/.D71 disk image. The easiest way to do this under Linux is to use c...   Read More

Sign up to get new articles straight to your inbox.

Delivered by FeedBurner

Comments

blog comments powered by Disqus