Project Initiation
Commencement of Realization of Architecture for Autoproject/Amoeba
A culmination of the initial research begun in the summer of 1993.Author: Bruce Damer
Saturday, March 25, 1995, 10:31 PM
![]()
Record Structure Definition
Message Token Structure
Pointer to Design Space (4 bytes)
Disposition of Token (1 byte):
i)in pool, travelling in channel, assigned to a function, in deadpoolID of Message Represented by token (2 bytes)
General Purpose data area:
i) counter for channel travel countdown
ii) other functions
Pointer to the Message Stor (4 bytes)
![]()
Data Structure Definition
//
// Token Queue Structure - TQ (Evolution I)
// Fixed length array of fixed length Message Token records
// Pointer at the end of the Queue Structure to the next 'lot', an optimized
// sized array continuing the list if there is overflow. Lots are dynamically
// allocated and deallocated as needed.The Token Queue (TQ) is allocated a certain
// percentage larger than the stored tokens or anticipated token population to handle
// operation of a fluctuating population within the queue without the need to add
// on lots.
//
![]()
// Token Queue (Evolution II)
// The Queue will be structured with more hierarchy to allow more optimal outer-to-
// inner processing of tokens or other algorithms to handle token flow in more heavily
// laden systems.
![]()
Sample Application
// Purpose of Sample Application
// This application will test the ability of an AoP Object to absorb and channel
// messages from the Windows environment.
// A pure C windows app can therefore be built and run against this application to
// contrast execution speeds of compiled code and the execution of a design in memory.
![]()
// First WORLD:
%%FileIs=AoP_World: 1.0
%%WorldName=ProtoWorld;
%%WorldDescription=First World to test AoP Concepts
and to begin the AutoProject;
%%WorldCreator=Bruce Damer Esq.;
%%WorldCreationDate=March 29, 1995;
%Environment Map
MessageMap=Windows.mmp;
FunctMap=AoPBase.fmp;
%Resources
FunctLib=AoPBase.dll;
FlicStor=AoPFlic1.res;
%World Design and Incorporated Designs
-mtimer-mmove-keys-mclick1-ProtoWorld;
Designs="MsSWm1.des";
%End world
![]()
// First Design MsSWm1.des
%%FileIs=AoP_Design: 1.0
%%Name=Message Swimmer;
%%Description=This "Message Swimmer" ingests messages from the Windows
environment and 'digests' them, producing varying responses.;
%%Creator=Bruce Damer, Esq.;
%%CreationDate=March 29, 1995;
%%Comment=the swimmer takes all messages from the outside into its 'gut' from which various
counters test and count the messages, without removing them from the gut. The counters
perform some display and filtering, sending new messages onto the 'countpool'. The
'count checker' then uses the tokens from the various counters to send another type of message
back to the 'gut'. This new message will turn on the 'message shunter' which will remove
all messages from the swimmer gut, halting the accumulation.
-swimmer gut>mtimer-timecounter-countpool;
swimmer gut>mmove-movecounter-countpool;
swimmer gut>keys-keycounter-countpool;
swimmer gut-message shunter;
swimmer gut>mclick1-clickcounter-countpool-countcheck-swimmer gut-;
timecounter=func:1,count-aopbase, func:up, blue,uibar-aopbase;
message shunter=func:messagetrash-aop;
![]()
// First Message Map: Windows.mmp
%%FileIs=AoP_Message_Map: 1.0
%%Name=AoP Message Map for Windows;
%%Description=This Message Map maps Windows 3.1 and 3.11 messages into internal AoP
names and defines the structure of message contents for the Message Stor. This remapping
permits aliasing for easier name recognition, and provides for future operating system
independence when AoL objects move between different OSs.;
%%Creator=Bruce Damer, Esq.;
%%CreationDate=March 29, 1995;
mtimer=msg:WM_TIMER;
mmove=msg:WM_MMOVE[int=posnX, int=posnY];
keys=msg:WM_KEYSTROKE[int=keyval];
mclick1=msg:WM_LBUTTONCLICK;
![]()
// Basic AoP set of 'built-in' functions AoPbase.fmp
%%FileIs=AoP_Function_Map: 1.0
%%Name=Function Map for AoP Basic Library;
%%Description=This "Message Swimmer" ingests messages from the Windows
environment and 'digests' them, producing varying responses.;
%%Creator=Bruce Damer, Esq.;
%%CreationDate=March 29, 1995;
FunctLib=AoPBase.dll;
%Mapping of function calls and params onto the .DLL;
FunctLibAlias=aopbase;
Funct=aopbase, count=23, int=1;
Funct=aopbase, uibar=24, enum=[up=1, down=2];
![]()