The MOS Technology 6502 and the Commodore 64
Ever heard about the micro computer madness which took off in the early 1980s?
All kinds of personal computers began to be accessible to ordinary people at home.
CPUs
This includes micro computers build up around all kinds of 8-bit CPUs designed during the 1970s and dominated by
the Zilog Z80 (Z80) and
the MOS Technology 6502 (6502),
which was an offspring of the Motorola 6800.
At around the same time,
the IBM Personal Computer (PC)
had become popular too.
The PC was much less common among home users due to its much higher price.
The PC used Intel CPUs
8086,
8088 and
80286,
and these were all 16-bit micro processors.
At the time, the PC was not comparable to the 8-bit micro computers and did not become common among ordinary people at home before from around 1990.
The current MOS Technology 65xx micro processors are made by a company named
Western Design Center (WDC).
Commodore International
Many micro computers came into existence.
A number of these were produced by Commodore International.
There first home computer was
the Commodore PET
from 1977.
They introduced
the Commodore VIC-20
in 1980.
This became available at an affordable price at radio stores and warehouses.
It was a great machine, but somewhat limited mostly due to having only very little RAM of 5 KiB.
The nearly identical form factor of the Commodore VIC-20 was used in
the Commodore 64 (C64)
from 1982.
This had 64 KiB RAM.
This size of memory was somewhat expensive but Commodore and
Jack Tramiel
- which just died in the spring of 2012 at the age of 83 - had foreseen that RAM prices were falling.
The Commodore 64 was the single best-selling model of all time and as a result of
the machine having a unique combination of sound and graphics chips together with an adequate amount of memory.
All I/O was memory mapped on top of RAM and ROM at up to six levels.
The software was present, but nothing special.
Later models was
the Commodore 16,
the Commodore Plus/4 (which was compatible with the Commodore 16) and
the Commodore 128
(which included full hardware compatibility with the Commodore 64),
which were all 8-bit computers.
Later came
the Commodore Amiga
in multiple models.
This was a 16-bit computer with an actual operating system.
It was highly popular, but it never topped the popularity of the Commodore 64.
The Commodore 64 was released in August 1982 and contained the MOS Technology 6510 processor
- essentially identical to the MOS Technology 6502 processor -
together with a number of dedicated chips for audio, graphics and timing.
This original 6502 processor contained as little as 3,510 transistors.
The current high-end CPUs of today contain in the order of 5,000,000,000 transistors.
How Commodore absorbed MOS Technology and by the mid 1980s had effectively abandoned further development of the 6502
in favour of producing micro computers is a story in itself.
The Life of the Commodore 64
All kinds of applications became available for the C64.
This includes office applications and games.
The first computer games were somewhat simple.
They used the internal
MOS Technology SID
sound chip and
the
MOS Technology VIC-II
graphics chip with 16 colours and eight hardware sprites in a somewhat simple manner.
Things changed during the 1980s.
The hardware was pushed well beyond its original intentions.
Colours were manipulated, all kinds of raster manipulations were made.
This included advanced sprite multiplexer routines
to produce more sprites then the eight originally intended - an arbitrary number,
for pratical applications the limit was around 24-48,
for the visible area around 72, including the borders up to a total of 112,
but never more than eight on the same horisontal line.
To study these things, books and printed magasines were a much needed resource.
The most important book to get hands on for a description of all the basic stuff and
all the registers of the machine was "Commodore 64 Programmer's Reference Guide".
The game of pushing the hardware became more and more elaborate - in fact it has continued to this day and has been exploited by the demoscene.
Today, both all basic and all obscure exploits of the machine can be found on the internet.
Since the C64 was mostly used for gaming, the world of computer games is a good reference for a timeline.
A selection of games is this:
- Bruce Lee (1984)
- Impossible Mission (1984)
- Paradroid (1985)
- Uridium (1986)
- Paradroid - Competition Edition (1986)
- Delta (1987)
- Morpheus (1987)
- Maniac Mansion (1987)
- IK+ (1987)
- Hunter's Moon (1987)
- Zynapse (1987)
- Nebulus (1987)
- Morpheus (1987)
- The Last Ninja (1987)
- Katakis (1988)
- Armalyte (1988)
- Hawkeye (1988)
- The Last Ninja 2 (1988)
- Zak McKrackenand the Alien Mindbenders (1988)
- Impossible Mission 2 (1988)
- Citadel (1989)
- Paradroid - Metal Edition (1989)
- Turrican (1990)
- The Last Ninja 3 (1991)
- Turrican II (1991)
- Enforcer (1992)
- First Samurai (1992)
- Fred's Back (1993)
- Mayhem in Monsterland (1993) - "Variable Screen Positioning"
- Heavenbound (1994)
- Newcomer (2001)
- Metal Warrior 4 (2003)
- Metal Dust (2005) - a SuperCPU-specific game
This selection deliberately indicates a concentration of titles around 1987-1988.
During the life of the C64,
more than 10,000 titles were released.
The Classical Period - 1982-1988
After a few years beyond the initial release of the C64 in 1982 and
with simple games like Frogger, Asteroids and Defender type of stuff,
the better-to-good things came.
Programmers knew the platform, people owned it and knew it in minute detail.
For a period of five to six years,
the software created exploited the hardware better and better.
This went on until 1987-1988 at which time the most sofisticated games came out.
This is the end of the classical period in which personalities like e.g. Andrew Braybrook and Martin Walker peeked.
The Extended Period - 1988-1994
Beyond the classical period dominated by 8-bit home micro computers and as the 16-bit micro computers rised,
the C64 had an extended period of life from 1988 and to this day in 2012.
Some of the late coders and the mostly skilled people continued to code for the C64.
Good things continued to be released - things with extraordinary scroll and graphics techniques like
First Samurai,
Fred's Back and
Mayhem in Monsterland.
The Period of Enthusiasts - 1994-2012
After the bankruptcy of Commodore in 1994,
the world of the C64 was no longer driven by commercial business,
but by enthusiasts.
The demoscene has lived on to this day,
but may at now have squeeshed the very last colour, the last byte,
and the last, current
nuvie
video player out of the machine.
The period lead by enthusiasts has lead to new hardware, new games,
fantastic software emulators and new hardware implementations.
Mental Procreation
The classical period had many heroes.
It was a time,
when a single individual could make a computer game and inspire a whole world of followers.
Many such individuals existed,
but some protuded more than others.
Andrew Braybrook
One such individual was a programmer named Andrew Braybrook.
He was skilled beyond most people and had a physical appearance with a big smile, long hair and large glasses.
He also had humor and often worked together with another, clever guy named Steve Turner.
Zzap!64
Andrew appeared in multiple, printed magasines,
which back in the 1980s was a main resource of inspiration.
One of the magasines was the British
Zzap!64.
Some of the historical content can be accessed online.
Andrew appeared twice in a series called Diary of a game.
Paradroid
The first appearance was in
The birth of a Paradroid.
This was about a high-tech game named
Paradroid
and which is one of the best C64 games ever made.
Contrary to many of the games for the C64,
this one was not a one-way, scripted game,
but had the character of a maze and which the player could examine freely.
The game was also a multi-scroll game and it did scroll not only the character map,
but also the colour map.
This was hard to do with little processor power and
is presumably the reason why "only" 16-17 lines of the 25 lines are moved.
The game represents a masterpiece in what could be crammed into the memory of the C64
and was state-of-the-art anno 1985.
Uridium
In 1986 Andrew made the fast, arcade-like shoot'em up game
Uridium,
which once again very carefully pushed the computer to its limits.
The Dreadnoughts of the game can be seen in
the review of Uridium in Zzap!64.
The game is suppossedly the very first scrolling game to present a background with a fixed starfield.
This too was a fantastic game and once more pushed the machine to its limits.
This game can still be played through emulators,
but it may be hard to find an emulator which does synchronize the update of the raster with the actual screen.
The original ran flawlessly.
Morpheus
In 1987 the second diary made by Andrew was for a game called
Morpheus
and appeared under the title
Mental Procreation.
Once again the diary ran for multiple issues of the monthly Zzap!64 magasine.
At first glance - and in particular today - it may appear as if there is a lot of nonsense in the text of this diary.
There is - but it can be completely disregarded once some of the thoughts about how to put functionality into the game are presented.
For one thing, there was something about Andrew not wanting to have the directional scrolling be based on a simple XY-based scheme
(which tends to produce animations, where things come to a halt in a grim way stopping along one of X and Y before the other)
but on polar coordinates.
Who did use polar coordinates for anything back in these days?
From the article of Andrew's and where he explains something about the unit circle split up into 256 directions,
you can just imagine that preserved memory and made a table with two bytes per direction and kept only one eights leading to a table of only 32*2 bytes.
No matter what is the truth here,
the article was a great inspiration to many people.
The diary contains lots of other goodies like talk and indications about how sprites are compressed,
and how there exists transitions between characters and sprites and to reserve sprites.
You have to be a Commodore 64 programmer to understand and value this.
Morpheus had less immediate appeal as compared to the fast scrolling shooter Uridium.
The game also requires a manual to be understod.
Patience is easily lost before an insight into the depths of the game is reached.
While Paradroid and Uridium was ported to multiple 8-bit and 16-bit platforms,
Morpheus was not.
While the game may have been a commercial failure,
it appears to be one of the best, technical masterpieces of the classical period of the C64.
Fragments of the history of Graftgold, Hewson, Steve Turner and Andrew Braybrook can be found.
Interviews with Andrew and Steve and comments about their transition from 8-bit to 16-bit can be found here:
According to what can be found on the internet,
it appears as if Andrew still lives on to program -
he has been working as a software developer for an insurance company.
The past performance of his was incredible.
Andrew Braybrook - one of the most talented C64 programmers.
Protovision and Jeri Ellsworth
The original hardware from Commodore Business Machines was produced in a number of revisions from 1982 to 1994.
The height of the gaming period for 8-bit machines and the C64 was from 1982 until around 1988,
where 16-bit machines like e.g. the Commodore Amiga took over.
Prices and popularity fell with time after 1988 and until Commodore went bankrupt in 1994.
During the last part of the 1980s,
home computers switched from 8-bit to 16-bit.
Commodore themselves made the series of Amiga computers,
but ended up mishandling the different models and finally lost to the competition,
the rise of the modern PC, and time.
Today, a hardware platform like the C64 is not produced as long as 12 years.
Protovision
In the historical movie
War Games
(1983),
a young hacker named David Lightman
(Matthew Broderick)
tries to hack into a game company called Protovision
and with the intention to play their games.
In the movie, this was a fictional company.
A company actually named
Protovision
has existed and appears to still exist.
It is a German company founded in 1997 and its does game development and game distribution.
This company is one of more keeping life in the C64 and producing hardware and software for the machine.
How the old electronics of the machines built between 1982 and 1994 happens to be still functional,
is hard to tell,
but some of them continue to work.
Among other things,
the company distributes an add-on with two additional joystick ports and a number of four-player games.
C64 enthusiasts continue to develop new hardware,
including Ethernet cards,
specially adapted hard disks and flash card interfaces.
The SuperCPU
During the lifetime of the C64,
different cartridges containing a compatible replacement
65C02
CPU running at e.g. 4 Mhz were produced during the 1980s,
but they never gained popularity.
Since everything inside the C64 is memory mapped and accessible through the expansion port used by cartridges,
the idea was clever.
In the mid 1990s,
the company
Creative Micro Designs
(CMD)
produced a large cartridge called the
SuperCPU.
This cartridge contained a replacement CPU - a
WDC
65C816 (65816),
which is a 16-bit processor compatible with the 65C02 and the 6502 and
capable of addressing 16 MiB of RAM.
The 65C16 does not have a linear address space,
but a 24-bit address space segmented into 256 banks with 64 KiB of memory in each.
The processor in the SuperCPU ran at 20 Mhz and could execute all original C64 programs
at least to the extent that these were not tied too hard to the original 1 Mhz timing of the original 6502 and the raster of VIC-II.
Few programs were made specifically for the SuperCPU.
The SuperCPU did not operate without a C64 host,
since the host had the chips for sound, graphics and input devices.
Protovision continue to have a set of pages about a shoot'em up named
Metal Dust
and made specifically for the SuperCPU.
The pages contain a fascinating trailer and
a story about the making of the game including the programmers Stefan Gutsch and Chester Kollschen.
This game appears to have been produced at some time between 1998 and 2005 and released in 2005.
The SuperCPU is no longer produced and can hardly be obtained.
A most clever device.
Software Emulators
Something else happened in the mid 1990s - software emulators began to appear.
These have been refined in numerous ways and the best of today are cycle exact
and reproduce the original computer in all cumbersome detail.
To this day these emulators keep life in the C64 and its very large software base.
One of the best of these is the
Versatile Commodore Emulator
(VICE).
The RAM Expansion Unit
Commodore in the mid 1980s made a range of RAM cartridges known as a
RAM Expansion Unit
(REU).
This refers to specific models 1700, 1750 and 1764 having from 128 KiB to 512 KiB of RAM.
Creative Micro Designs made a special version 1750 XL having 2 MB of RAM.
Back then memory was still expensive and the units were produced in smaller numbers.
The way these REUs were mapped in memory allowed for a total of 16 MiB of RAM,
and emulators like VICE implement this in all detail.
In fact, the emulation of REUs are cycle-exact - including the
direct memory access
(DMA)
offered by these
units.
The C64 itself can not move memory around like the DMA of the REU.
Memory can be moved around one byte at a time by painstakingly
performing load and store instructions over multiple cycles.
The DMA offered by the REU can move one byte per cycle which is much faster
than possible by the native C64.
By moving memory back and forth between the memory of the C64 and the REU,
it is possible to move memory around at about five times the speed of what is possible without the REU.
The expansion units were originally used mostly by
the
GEOS
operating system.
Due to chip shortages of the 1980s the REU was produced in a small number
which ended up in the company behind GEOS to produce an alternative cartridge named
geoRAM.
The geoRAM was much slower in operation since it did not offer DMA like the REU.
The C64 is often credited with starting the computer subculture known as the demoscene.
Today, the demoscene takes advantage of the original REUs in the form of VICE
(which can emulate a number of other, possibly less common types of RAM expanders).
For some expressive examples,
look up
BLUREU by Crest
and find examples of
nuvie
players.
Sadly, since the REUs were uncommon among ordinay C64 owners,
no games really take advantage of REUs
(except for a few, some of these are possibly still available from Protovision).
With a native C64 machine,
it is very hard to populate the 16 MiB RAM of the REU,
but using VICE it is easy.
Using an original REUs to do DMA back and forth,
memory and e.g. scroll effects can be done more effectivly than the native C64.
The Commodore 64 Direct-to-TV
In 2002 the initial version of a single-board computer named
CommodoreOne
(C-One)
was made.
The board was intended as an enhanced C64,
but was reengineered to allow cloning of other 8-bit computers.
The default CPU was the 65C816 processor equal to the processor of the SuperCPU.
Today, the board is also called the C-One Reconfigurable Computer.
The C-One was designed by
Jeri Ellsworth
and
Jens Schönfeld,
and there appears to exist active communities around the board and its different configurations.
Jeri EllsWorth - which happens to be a self-taught computer chip designer -
went on and designed the
Commodore 64 Direct-to-TV
(C64DTV),
which is a single-chip implementation of a C64 housed in a joystick modelled after
the very popular Competion Pro
joystick of the 1980s.
The C64DTV came out in 2004 and 2005 and was intended as a toy.
It runs on batteries and has only two cables for video and audio.
Internally, it emulates a 6510 CPU, a VIC-II, a CIA and more in a single ASIC.
There were different versions with slightly different functionality and RAM sizes from 128 KiB and 2 MiB.
They all had a 2 MiB ROM or flash containing 30 original, pre-installed games managed by a
dedicated software loader.
The electronics inside is dirt cheap,
but has been dissected in great detail by the C64 community.
Hackers can change the ROM and add other games.
Modders have scrutinised the electronics and have found internal connectors for keyboard,
joysticks, floppy, power and more.
Many modifications of the C64DTV joystick and it electronics exist.
The C64DTV contains new functionality not found in the original.
It has DMA,
it has a blitter for fast image transfer,
it has 256 colours,
and even new graphics modes including a 320x200 mode with 8 bits per pixel
(one might well assume this is placed in the second 64 KiB bank of the RAM).
The C64DTV contains some bugs and faults relative to the original C64.
This includes possible problems with how the keyboard is read
and it includes some faulty wiring of the circuitry for handling the colours,
which happens to be fixable by enthusiasts.
Even though the electronics is cheap,
the C64DTV has become very well known and
even adopted in VICE as a special type of C64.
The demoscene has also taken advantage of the C64DTV and its new possibilities.
The toy was produced in 250,000 units.
Sadly, it can no longer be bought.
According to the internet,
in early 2012 Ellsworth was hired by Valve Corporation (along with several other notable hardware hackers) to work on gaming hardware.
Presumably, this might well be something beyond making C64 compatible devices.
The Commodore 64x
In 2011 the current owners of the Commodore brand made the
Commodore 64x
(C64x).
This is basically a 64-bit Intel x86 home computer within a cabinet looking somewhat like the original C64.
The hardware is a well-chosen ATX board but has nothing in common with the original.
The keyboard has been adapted to be more modern and PC-like, and
the orignal graphics of the keys is missing.
The C64x is a great gimmick,
but does in itself and without a software emulator not provide native C64 compatibility.
The Turbo Chameleon 64
Regarding native compatibility, something most interesting exists.
What appears to be in direct relation to the work of the C-One,
a man named Peter Wendrich has produced a C64 compatible cartridge named
Turbo Chameleon 64.
The cartridge provides VGA and keyboard connectivity and has a slot for a SD flash card.
To produce the image for the VGA signal,
the cartridge emulates the VIC-II completely by bus snooping - is quite a nice trick.
It emulates a 6510 at the order of 10+ times of the native speed.
It also has a cycle exact emulation of the original series of REUs.
It has lots of other features including the implementation of a second SID chip to provide stereo audio
(equal to a lot of the modifications of original C64's done by enthusiasts).
Not to mention the emulation of a lot of the original cartridges of the C64 era.
The cartridge is so complete in its emulation that it can even run in stand-alone mode without a C64 host.
The cartridge has an optional docking-station with four joystick ports and keyboard connectivity
(possibly equal to the add-ons sold by companies like Protovision and Individual Computers).
It appears that this rich platform continues to be in active development.
There even exist firmwares for other platforms than the C64 -
mentioned are e.g. the ZX Spectrum.
This cartridge is quite extraordinary.
The Future of the Commodore 64
Now, what could the future bring? Is there a future at all?
Well, die hard fans of the C64 will continue to exist and for as long as they can remember their childhood dreams.
They will keep the platform alive in the form of software emulators and hardware implementations and
to continue to run the estimated 10,000 titles made for the platform.
Possibly on a rare occasion a new game will be made;
using just simpler, present extensions like the old, existing REU and its DMA
some possibilities for making something new does still exist.
Keeping the compatibility with the native C64 is of the outmost importance,
since this touches upon the mentioned childhood dreams.
The community around the 6510/6502 processor is alive,
since many companies continue to use the processer in all kinds of embedded products.
In fact, it is said, that there have never been produced so many 6502 processor as right now.
How about expanding aggressively upon the processor capabilities - while gaining access to a large, linear address space?
Why not go beyond the 16-bit processor of the SuperCPU and
its 16 MiB address space and continue with a 32-bit processor and a 4 GiB address space?
The Next Generation C64
The best, very cool thing for a
Next Generation C64
(C64-NG)
would be a 32-bit processor with 6502 compatibility and providing access to a 4 GiB linear address space.
It may not run very fast, perhaps in the range of 10 to 100 Mhz, still intended for coding close to the steel,
and still intended for low power.
Imagine this manifested in a smaller form factor not unlike some of the devices already made.
What would the requirements to such a processor be?
Well, within each bank of 64 KiB of memory,
the original 8-bit instruction set should operate and with all the original opcodes.
Otherwise all the original programs and all the known routines would not operate.
The stack allowing for only 256 bytes would possibly need to be moved out of its default location at [$0100;$01FF]
and to an upper 64 KiB memory bank,
but then again if the stack is enlarged then e.g. the stack pointer would have to be widened too.
Then a new set of instructions addressing 32-bit functionality and a 4 GiB linear address space should be present.
If such a system was to be build and connected with older hardware,
it could become important to be able to connect with the old, 8-bit based address busses of the original C64.
Does such a 65xx processor exist?
Well, the current state-of-the-art 6502 compatible processors seem to be made by WDC.
The faster 8-bit 6502 processors of today and from WDC run at 20-200 Mhz.
The faster 16-bit 65C816 processors run at 20-100 Mhz.
WDC has once made specifications of a 32-bit successor to the 8-bit 6502 and called
W65T32 Terbium.
This is from the mid 2000s and was thought to be the next generation 65xx processor.
It seems that this processor has never been finalized and produced.
A complete instruction set does appear to exist - if looking hard on the internet,
some specifications can be found.
This W65T32 Terbium processor has compatibility with both the 8-bit 6502 and the 16-bit 65C816.
It continues to be intended for low power system designs.
It is a striking thought that a 32-bit, 6502-compatible processor is 10 to 20 years too late for commercial applications
and is never going to be produced.
Different kinds of
ARM processors
in 32-bit and 64-bit implementations have for a long time ruled the world and will continue to do so.
For commercial applications,
the 65xx platform may end up dying with the 8- and 16-bit embedded world.
There still exist large interests in the 65xx platform.
When examining the subject,
it becomes evident,
that multiple, other efforts have been made to formulate af 32-bit 65xx platform:
-
A processor called 65GZ32,
which appears to be RISC-like in nature and not really faithful to the original 6502.
-
The 6502 microprocessor resource
mentions
65Org16
and 65Org32, which both are referred to from
"65Org16 thread summaries".
-
65k.
-
T65.
-
Extended 6502 for 8-bit and 32-bit embedded systems
(6502EX)
and which appears to have a mode named
6502EX-VS
and possibly suitable for an old, physical C64.
Actually, this 6502EX appears to be worth examining in further detail.
At a quick glance it is unclear,
which of these custom processors provide compatibility with the instruction set of the 8-bit 6502,
and which just expand all addresses and registers without keeping the original instructions.
However, it is clear, that thoughts have been made.
It would be interesting to know more about which of these 32-bit 65xx platforms have backup from the 65xx community.
The C64-NG could look like this:
-
A 32-bit 65xx processor compatible with the original 8-bit 6510 and providing access to a 4 GiB linear address space.
All I/O of the original C64 should continue to be mapped in the first 64 KiB memory bank.
Possible modes should include i) a cycle exact, 8-bit based, 1 Mhz mode together with
ii) a mode running at a full blown frequency somewhere around 10-100 Mhz.
-
Tweaks and extensions compatible with the MOS Technology SID chip and its mapping in the original C64.
This could include a second SID chip for a stereo option and while keeping the original sound.
Likely some interesting ideas regarding sampling rate and effective bits and channels exists and
have already been played around with on the original C64 hardware.
-
Tweaks and extensions compatible the the MOS Technology VIC-II chip and its mapping in the original C64.
A great gimmick would be a second sprite engine to support more sprites and as a replacement of the advanced,
somewhat error-prone sprite multiplexer solutions.
These sprites should be of the known, standard 24x21 kind and up to some larger count like ... 64, 128 or 256.
Possibly including a better, revised scheme for the detection of sprite-to-sprite collisions.
This would extend the sprite capabilities but keep the graphics recognizable and
the second sprite engine usable within the strict limits of the 64 KiB of the original C64.
To what extend this should be cycle exact and relative to a processor and its addressing of memory and
busses and would steal CPU cycles or not ... well, this may require some further thoughts.
The possibility to edit the standard 16 colours and select these from a larger palette of colours.
New colour modes not faithful to the original C64 - perhaps starting with a 320x200 pixel, 8-bit per pixel mode like the C64DTV.
Sprites and the VIC-II may have nothing to do here,
but as a replacement some blitter functionalities would be nice.
-
The addition of more advanced memory handling schemes to move memory around fast.
This should include movement of memory within a single 64 KiB memory bank.
Relative to physical busses, could this be made faster than the DMA of the REU, which moves one byte per cycle?
-
Regarding the physical connections of such a device, many possibilities exist.
Existing cartridges can be used for inspiration.
Would anybody use such a 32-bit C64?
Well ... what do you think?
If you ask the hardcore enthusiasts,
the answer is quite clear,
since discussions about the subject continues to go on to this day.
Many C64 enthusiasts fancy the unattainable SuperCPU of the mid-to-late 1990s.
Hardcore fans of the 6502 processor continue to talk about a version with a large address space.
The 32-bit capabilities would appeal to enthusiasts within both the world of the C64 and
the world of 65xx embedded programmers - individually.
A blast from the past. Time is hard upon things.
This includes the products of our heros like Andrew Braybrook and the raw metal of the C64.
The C64 is nostalgia at its best. 30 years and counting.
Morpheus,
the god of dreams, has the ability to take any human form and appear in dreams.