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

Sean badfrog at gmail.com
Fri Jun 25 13:44:41 EDT 2010


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.



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

>




More information about the Coco mailing list