[Coco] Feralcore: An Internet Protocol Based on the 6809

Aaron Wolfe aawolfe at gmail.com
Fri Jun 25 17:04:02 EDT 2010


On Fri, Jun 25, 2010 at 1:44 PM, Sean <badfrog at gmail.com> wrote:

> In the Windows world, I have the best luck with VLC media player

> (www.videolan.org).  It's compact, and free!  I've had it as my

> default player for a couple of years now.

>


VLC is great. I use it on Windows, Mac, and Linux boxes. Plays
everything I throw at it and stays out of my way. Highly recommended
for any supported platform.


>

>

> On Fri, Jun 25, 2010 at 11:38 AM, Wayne Campbell <asa.rand at gmail.com> wrote:

>> Adam,

>>

>> I downloaded the MPEG-4 version of the video. Quicktime Player opened it,

>> but only in audio mode (no video screen). WMP could not play the video. Real

>> Player stated it needs a MPEG-2 decoder installed to play the video.

>>

>> I downloaded the Microsoft ASF version. WMP plays it without a problem.

>>

>> I downloaded the Feralcore.zip file. Upon trying to extract the archive, I

>> am asked for a password. I have no password to provide, and WinZip won't

>> extract the files, or even show me what's in the archive.

>>

>> Is there something I need to know?

>>

>> I am running Windows XP Professional (all service packs and updates

>> installed) on a HP/Compaq nx9020 notebook (Intel Celeron M 1.5 GHz), 2 GB

>> RAM, 80 GB HD (28% free).

>>

>> Wayne

>>

>> ----- Original Message ----- From: "Adam Young" <ay235 at yahoo.com>

>> To: <coco at maltedmedia.com>

>> Sent: Thursday, June 24, 2010 6:19 PM

>> Subject: [Coco] Feralcore: An Internet Protocol Based on the 6809

>>

>>

>>> All,

>>>

>>> Based on the responses of Brett, Aaron, Sean, and

>>> Andrew regarding Darwin, Corewar, and Network Tierra,

>>> it seems like there might be some interest in

>>> Feralcore (thanks for your feedback guys). Moti and I

>>> (along with other contributors) are actively researching

>>> Feralcore and welcome experimentation and feedback. It

>>> is written in C++ and is POSIX compatible for the most

>>> part. Below is a blurb on what it is.

>>>

>>> A Feralcore network is a network consisting of n nodes.

>>> Each node in the network has a unique personal identity

>>> (R. Pandya. Emerging mobile and personal communication systems.

>>> IEEE Communications Magazine, vol. 33, pages 44-52,

>>> June 1995). Every node can send a message to every other

>>> node. So, the network forms the complete graph on n vertices.

>>>

>>> Feralcore was inspired in part by the computer game Darwin

>>> (Aleph-Null. Computer Recreations. Software: Practice and

>>> Experience, vol. 2, pages 93-96, 1972). Core war was also

>>> inspired by Darwin. Each player submits a set of programs,

>>> called a species, to the game. An umpire program

>>> oversees the execution of the programs in memory. Programs

>>> can clobber one another since they run in the same address

>>> space. The last species standing wins. We adopt the term

>>> feralcore kernel to describe the program that

>>> oversees program execution.

>>>

>>> In feralcore each node has 256 memory cores.

>>> Each memory core consists of 65536 bytes. The kernel can

>>> run up to 256 processes at once spread out across the 256

>>> cores. Each process has a set of private registers that

>>> includes the program counter. Each process also has an

>>> associated integer corresponding to which core the process

>>> is in. The program counter points to the next instruction

>>> to be executed in this core. The privacy of the registers

>>> is not ensured, since one process can indirectly read

>>> or write the registers of another.

>>>

>>> At any given time, m processes are running in a node.

>>> The kernel implements a time sharing strategy to

>>> execute them. They are not executed in parallel (at least

>>> when viewed at the C++ source code level). For the purposes

>>> of illustration, suppose the processes are labeled from

>>> 1 to m. Let c be an m-sided coin having sides labeled from

>>> 1 to m. The kernel flips c to get a result r. The kernel lets

>>> process r execute a single instruction. The kernel flips

>>> c to get a result r. The kernel lets process r execute

>>> a single instruction, and so on. If one process dies

>>> then a coin having m - 1 sides is used, etc.

>>>

>>> This randomized strategy is clearly fair, especially when

>>> you consider the issue of which process gets to execute

>>> first. This design was chosen over a deterministic

>>> round-robin scheduler since it simplifies the

>>> implementation of break-points in the feralcore

>>> debugger.

>>>

>>> The kernel implements a virtual machine based on the

>>> feralcore instruction set. This instruction set is

>>> similar to the Motorola 6809 instruction set.

>>> So, processes execute 6809 instructions.

>>> However, 6809 instructions relating to hardware interrupts

>>> are not part of the feralcore instruction set. Also,

>>> an instruction using opcode 0x02 is included in

>>> the feralcore instruction set. The opcode 0x02 is

>>> not a valid instruction for the 6809. The 0x02

>>> instruction implements the feralcore API call.

>>> It is 0x02 followed by a 16-bit API vector.

>>>

>>> The API calls supplement the 6809 instructions by

>>> providing some very powerful functionality. There

>>> is an API call that lets a process spawn another

>>> feralcore process. There is an API call that

>>> lets a feralcore process move itself to another

>>> core within the same node. There is also an API

>>> call that lets a process move itself to another

>>> feralcore node in the network instantly.

>>>

>>> The kernel terminates a process when that process

>>> executes an invalid instruction. Executing an

>>> invalid instruction is the normal way for a process

>>> to terminate itself. Process A can clobber process B

>>> by writing an invalid instruction at the memory

>>> location pointed to by the program counter in

>>> process B.

>>>

>>> There are other situations that can cause a process

>>> to be terminated. When the 256th process is created,

>>> a random process is terminated. A node that is

>>> spammed with incoming feralcore programs may drop

>>> some incoming programs.

>>>

>>> Feralcore is an experiment. The documentation is

>>> currently available at:

>>>

>>> http://www.feralcore.com/download/tfcdocuments/feralcore.pdf

>>>

>>> A video of the 6809 program slowhopper is available

>>> at: www.feralcore.com

>>>

>>> slowhopper hops randomly around the feralcore network.

>>>

>>> Please let us know if you are interested in learning

>>> more or experimenting with it. It is not ready for

>>> general distribution due to unresolved bandwidth issues.

>>>

>>> I view feralcore in many different ways. The CoCo nut

>>> in me likes it since it is a new way to bring the 6809

>>> to life. I am wondering if any of you will feel the

>>> same way.

>>>

>>> regards,

>>>

>>> Adam

>>>

>>>

>>>

>>>

>>>

>>> --

>>> Coco mailing list

>>> Coco at maltedmedia.com

>>> http://five.pairlist.net/mailman/listinfo/coco

>>

>>

>> --

>> Coco mailing list

>> Coco at maltedmedia.com

>> http://five.pairlist.net/mailman/listinfo/coco

>>

>

> --

> Coco mailing list

> Coco at maltedmedia.com

> http://five.pairlist.net/mailman/listinfo/coco

>




More information about the Coco mailing list