Code Monkey home page Code Monkey logo

gylf's Introduction

gylf

An MMO Server for linux implemented entirely in x86 assembly language, using the linux kernel services for Berkeley Sockets.

Relevant data:

    Where appropriate, each directory may (or may not) contain the following:
    
    b                         Standard definitions shared by all downstream code.
    d                         Data declarations shared by all downstream code.
    i                         Inclusion anchor for tying together downstream code.
    t                         ASM code outlining the function referenced by the immediate
                              directory name.
    s                         Structural data pertinent to the function name under which
                              it occurs.

    ==============================================================================================
    
    ./                        This is the root directory for the project. the README and build
                              script live here.

    Symbolic Cross-Referencing
    
      b   a.p.type.egg                          ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/clean.socket/t

          a.p.type.ghost                        ./functions/main/active.socket.poll/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/clean.socket/t

          a.p.type.gylf                         ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/clean.socket/t

          a.p.type.login                        ./functions/main/active.socket.poll/t
                                                ./functions/socket/clean.socket/t

          a.p.data.egg                          No references.

          a.p.data.ghost                        No references.

          a.p.data.gylf                         ./commands/look/t
                                                ./commands/egg/t
                                                ./commands/think/t
                                                ./commands/gylf/t
                                                ./functions/check.admin/t
                                                ./functions/create.participant/t
                                                ./functions/set.single.attribute/t
                                                ./functions/socket/communications/send.to.world/t

          byte.l                                ./functions/get.external.data/t

          dword.l                               ./commands/area/t
                                                ./commands/help/t
                                                ./commands/look/t
                                                ./commands/shutdown/t
                                                ./functions/aggregate.arguments/t
                                                ./functions/close.descriptor/t
                                                ./functions/convert.binary.id.to.ascii.id/t
                                                ./functions/create.file/t
                                                ./functions/create.participant/t
                                                ./functions/b
                                                ./functions/d
                                                ./functions/get.external.data/t
                                                ./functions/get.new.id/t
                                                ./functions/get.participant.data.by.id/t
                                                ./functions/get.participant.data.by.name/t
                                                ./functions/get.text.data/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.active.status/t
                                                ./functions/main/system.check/t
                                                ./functions/main/text.init/b
                                                ./functions/main/text.init/t
                                                ./functions/memory.switch/t
                                                ./functions/notify.in.absentia/t
                                                ./functions/open.descriptor/t
                                                ./functions/poll.descriptor/t
                                                ./functions/read.credential/t
                                                ./functions/read.descriptor/t
                                                ./functions/set.single.attribute/t
                                                ./functions/socket/accept.socket/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/bind.socket/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t
                                                ./functions/socket/communications/send.to.world/t
                                                ./functions/socket/create.socket/t
                                                ./functions/socket/listen.socket/t
                                                ./functions/socket/recv.from.socket/t
                                                ./functions/socket/socket.send/t
                                                ./functions/write.console/t
                                                ./functions/write.credential/t

          dead.socket                           ./commands/egg/t

          e.data                                ./commands/egg/t
                                                ./commands/gylf/t
                                                ./functions/create.participant/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t
                                                ./functions/socket/communications/send.to.area/t

          d.data                                ./functions/get.participant.data.by.name/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t
                                                ./functions/socket/communications/send.to.area/t

          g.data                                ./commands/egg/t
                                                ./commands/think/t
                                                ./functions/create.participant/t
                                                ./functions/dna.lab/t
                                                ./functions/get.participant.data.by.id/t
                                                ./functions/get.participant.data.by.name/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t
                                                ./functions/socket/communications/send.to.world/t

          l.data                                ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/socket/clean.socket/t

          sys.standard.output                   ./commands/area/t
                                                ./functions/main/text.init/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/write.console/t

          word.l                                ./functions/socket/answer.active.socket/t

      s   egg.area.id                           ./commands/egg/t
                                                ./commands/gylf/t
                                                ./functions/create.participant/t

          egg.connection.area.id.index          ./functions/socket/communications/send.to.area/t

          egg.connection.descriptor.index       ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interactions
                                                  /address.login.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t

          egg.connection.external.index         ./functions/socket/communications/send.to.area/t

          egg.connection.status.index           ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t

          egg.e.parent.agility                  ./functions/dna.lab/t

          egg.e.parent.base.color               ./functions/dna.lab/t

          egg.e.parent.endurance                ./functions/dna.lab/t

          egg.e.parent.name                     ./commands/egg/t
                                                ./functions/create.participant/t

          egg.e.parent.name.l                   ./commands/egg/t
                                                ./functions/create.participant/t

          egg.e.parent.secondary.color          ./functions/dna.lab/t

          egg.e.parent.strength                 ./functions/dna.lab/t

          egg.i.parent.agility                  ./functions/dna.lab/t

          egg.i.parent.base.color               ./functions/dna.lab/t

          egg.i.parent.endurance                ./functions/dna.lab/t

          egg.i.parent.name                     ./commands/egg/t
                                                ./functions/create.participant/t

          egg.i.parent.name.l                   ./commands/egg/t
                                                ./functions/create.participant/t

          egg.i.parent.secondary.color          ./functions/dna.lab/t

          egg.i.parent.strength                 ./functions/dna.lab/t

          egg.item.id                           ./commands/egg/t

          egg.name                              ./functions/get.participant.data.by.name/t

          egg.name.l                            No references.

          egg.passphrase                        ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t

          ghost.administrative.byte             No references.

          ghost.age                             No references.

          ghost.agility                         No references.

          ghost.base.color                      No references.

          ghost.base.fur.quality                No references.

          ghost.connection.area.id.index        ./functions/socket/communications/send.to.area/t

          ghost.connection.descriptor.index     ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t

          ghost.connection.external.index       ./functions/socket/communications/send.to.area/t

          ghost.connection.status.index         ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t

          ghost.e.parent.name                   No references.

          ghost.e.parent.name.l                 No references.

          ghost.endurance                       No references.

          ghost.i.parent.name                   No references.

          ghost.i.parent.name.l                 No references.

          ghost.left.hand.inventory.id          No references.

          ghost.location.id                     No references.

          ghost.name                            ./functions/get.participant.data.by.name/t

          ghost.name.l                          No references.

          ghost.passphrase                      ./functions/main/participant.interaction
                                                  /address.passphrase.status/t

          ghost.pouch                           No references.

          ghost.right.hand.inventory.id         No references.

          ghost.secondary.color                 No references.

          ghost.secondary.fur.quality           No references.

          ghost.strength                        No references.

          gylf.abdomen.worn.item.id             No references.

          gylf.abdomen.wound.level              No references.

          gylf.administrative.byte              ./functions/check.admin/t

          gylf.age                              No references.

          gylf.agility                          ./functions/dna.lab/t

          gylf.back.spinal.wound.level          No references.

          gylf.back.worn.item.id                No references.

          gylf.back.wound.level                 No references.

          gylf.base.color                       ./functions/dna.lab/t

          gylf.base.fur.quality                 ./functions/dna.lab/t

          gylf.brain.wound.level                No references.

          gylf.chest.worn.item.id               No references.

          gylf.chin.wound.level                 No references.

          gylf.connection.area.id.index         ./commands/gylf/t
                                                ./commands/look/t
                                                ./commands/think/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t

          gylf.connection.descriptor.index      ./commands/egg/t
                                                ./commands/look/t
                                                ./commands/think/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/system.check/t
                                                ./functions/set.single.attribute/t
                                                ./functions/socket/clean.socket/t

          gylf.connection.external.index        ./functions/socket/communications/send.to.area/t
                                                ./functions.socket/communications/send.to.world/t

          gylf.connection.status.index          ./functions/main/active.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/clean.socket/t

          gylf.e.parent.name                    ./functions/create.participant/t

          gylf.e.parent.name.l                  ./functions/create.participant/t

          gylf.egg.readiness                    No references.

          gylf.endurance                        ./functions/dna.lab/t

          gylf.head.worn.item.id                No references.

          gylf.heart.wound.level                No references.

          gylf.i.parent.name                    ./functions/create.participant/t

          gylf.i.parent.name.l                  ./functions/create.participant/t

          gylf.inseminator.wound.level          No references.

          gylf.large.intestine.wound.level      No references.

          gylf.left.cheek.wound.level           No references.

          gylf.left.chest.wound.level           No references.

          gylf.left.dew.talon.wound.level       No references.

          gylf.left.ear.worn.item.id            No references.

          gylf.left.ear.wound.level             No references.

          gylf.left.eye.wound.level             No references.

          gylf.left.forearm.wound.level         No references.

          gylf.left.hand.inventory.id           No references.

          gylf.left.hand.wound.level            No references.

          gylf.left.index.finger.wound.level    No references.

          gylf.left.inside.thigh.wound.level    No references.

          gylf.left.low.talon.wound.level       No references.

          gylf.left.lower.leg.wound.level       No references.

          gylf.left.lung.wound.level            No references.

          gylf.left.main.fore.talon.wound.level No references.

          gylf.left.middle.finger.wound.level   No references.

          gylf.left.middle.talon.wound.level    No references.

          gylf.left.outside.thigh.wound.level   No references.

          gylf.left.ring.finger.wound.level     No references.

          gylf.left.shoulder.wound.level        No references.

          gylf.left.thigh.worn.item.id          No references.

          gylf.left.thumb.wound.level           No references.

          gylf.left.upper.arm.wound.level       No references.

          gylf.left.wrist.wound.level           No references.

          gylf.liver.wound.level                No references.

          gylf.location.id                      No references.

          gylf.name                             ./functions/create.participant/t
                                                ./functions/get.participant.data.by.name/t

          gylf.name.l                           No references.

          gylf.neck.spinal.wound.level          No references.

          gylf.neck.worn.item.id                No references.

          gylf.neck.wound.level                 No references.

          gylf.nose.wound.level                 No references.

          gylf.ovary.wound.level                No references.

          gylf.passphrase                       ./functions/main/participant.interaction
                                                  /address.passphrase.status/t

          gylf.pouch                            ./functions/create.participant/t

          gylf.pouch.wound.level                No references.

          gylf.right.cheek.wound.level          No references.

          gylf.right.chest.wound.level          No references.

          gylf.right.dew.talon.wound.level      No references.

          gylf.right.ear.worn.item.id           No references.

          gylf.right.ear.wound.level            No references.

          gylf.right.eye.wound.level            No references.

          gylf.right.forearm.wound.level        No references.

          gylf.right.hand.inventory.id          No references.

          gylf.right.hand.wound.level           No references.

          gylf.right.index.finger.wound.level   No references.

          gylf.right.inside.thigh.wound.level   No references.

          gylf.right.low.talon.wound.level      No references.

          gylf.right.lower.leg.wound.level      No references.

          gylf.right.lung.wound.level           No references.

          gylf.right.main.fore.talon.wound      No references.
            .level

          gylf.right.middle.finger.wound.level  No references.

          gylf.right.middle.talon.wound.level   No references.

          gylf.right.outside.thigh.wound.level  No references.

          gylf.right.ring.finger.wound.level    No references.

          gylf.right.shoulder.wound.level       No references.

          gylf.right.thigh.worn.item.id         No references.

          gylf.right.thumb.wound.level          No references.

          gylf.right.upper.arm.wound.level      No references.

          gylf.right.wrist.wound.level          No references.

          gylf.scalp.wound.level                No references.

          gylf.secondary.color                  ./functions/dna.lab/t

          gylf.secondary.fur.quality            ./functions/dna.lab/t

          gylf.small.intestine.wound.level      No references.

          gylf.stomach.wound.level              No references.

          gylf.strength                         ./functions/dna.lab/t

          gylf.testicle.wound.level             No references.

          login.connection.descriptor.index     ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/socket/clean.socket/t

    ==============================================================================================

    ./build.gylf.sh           This is the build script. It depends on the presence of nasm and ld.
                              Run the build script to produce an executable binary called 'gylf'
                              from the existing codebase, which it then places in the root
                              directory.

    ./build.gylf.data.sh      This is the build script for the external textual data used in
                              messages sent to the admin and participants. It depends on the
                              presence of nasm. Run this script to produce the file:
                              ../gylf.test.directory/external.data/m/d.

    ==============================================================================================

    ./commands                Contains code pertaining to commands available to users depending on
                              their access level.

    ----------------------------------------------------------------------------------------------

      /ai                     Contains code pertinent to the implementation of the 'ai' command; a
                              participant-level command that allows for the invoker to adjust
                              parameters associated with their avatar's behaviour while they are
                              signed out.

      d   command.ai.h                          No references.

          command.ai.l                          ./commands/ai/d

          command.ai.p                          No references.

          command.ai.s                          ./commands/ai/d

          command.ai.w                          ./functions/d


      t   command.ai                            ./commands/ai/d

    ----------------------------------------------------------------------------------------------

      /area                   Contains code pertinent to the implementation of the 'area' command;
                              an administrator command that allows for administrators to create
                              new areas without having to dig them out using the participant
                              interface.

      b   area.description                      ./functions/create.participant/t

          area.description.l                    ./functions/create.participant/t

          area.description.field.l              ./commands/area/b

          area.header                           ./commands/area/b
                                                ./commands/look/t
                                                ./functions/create.participant/t

          area.header.l                         ./commands/look/t
                                                ./functions/create.participant/t

          area.name                             ./functions/create.participant/t

          area.name.field.l                     ./commands/area/b

          area.name.l                           ./functions/create.participant/t

          area.num.contained.items              ./commands/area/t
                                                ./commands/look/t


      d   command.area.h                        No references.

          command.area.l                        ./commands/area/d

          command.area.p                        No references.

          command.area.s                        ./commands/area/d

          command.area.w                        ./functions/d


      t   command.area                          ./commands/area/d

          command.area.admin                    ./commands/area/t

          command.area.bad                      ./commands/area/t

    ----------------------------------------------------------------------------------------------

      /broadcast              Contains code pertinent to the implementation of the 'broadcast'
                              command; an administrator command that allows for administrators to
                              send a message to the entire participant base all at once,
                              regardless of their locations in the simulation.

      d   command.broadcast.h                   No references.

          command.broadcast.l                   ./commands/broadcast/d

          command.broadcast.p                   No references.

          command.broadcast.s                   ./commands/broadcast/d

          command.broadcast.w                   ./functions/d


      t   command.broadcast                     ./functions/d

          command.broadcast.admin               ./commands/broadcast/t

    ----------------------------------------------------------------------------------------------

      /dig                    Contains code pertinent to the implementation of the 'dig' command;
                              a participant-level command that allows for participant to, under certain
                              circumstances, extend the environment by creating new areas.

      d   command.dig.h                         No references.

          command.dig.l                         ./commands/dig/d

          command.dig.p                         No references.

          command.dig.s                         ./commands/dig/d

          command.dig.w                         ./functions/d


      t   command.dig                           ./commands/dig/d

    ----------------------------------------------------------------------------------------------

      /egg                    Contains code pertinent to the implementation of the 'egg' command;
                              an administrator command that allows for the forced implantation and
                              fertilization of an egg in the womb of the target gylf without
                              having to go through the normal channels of fertilization through
                              mating.

      d   command.egg.h                         No references.

          command.egg.l                         ./commands/egg/d

          command.egg.p                         No references.

          command.egg.s                         ./commands/egg/d

          command.egg.w                         ./functions/d


      t   command.egg                           ./commands/egg/d

    ----------------------------------------------------------------------------------------------

      /gylf                   Contains code pertinent to the implementation of the 'gylf' command;
                              an administrator command that allows for the creation of a complete
                              new gylf without the intervening process of mating, fertilization,
                              gestation, laying, and hatching.

      d   command.gylf.h                        No references.

          command.gylf.l                        ./commands/gylf/d

          command.gylf.p                        No references.

          command.gylf.s                        ./commands/gylf/d

          command.gylf.w                        ./functions/d


      t   command.gylf                          ./commands/gylf/d

          command.gylf.admin                    ./commands/gylf/t

          command.gylf.dna.mode                 ./commands/gylf/t

          command.gylf.nsp.mode                 ./commands/gylf/t

    ----------------------------------------------------------------------------------------------

      /help                   Contains code pertinent to the implementation of the 'help' command;
                              a participant-level command whose sole purpose is to display
                              context-sensitive help.

      d   command.help.h                        No references.

          command.help.l                        ./commands/help/d

          command.help.p                        No references.

          command.help.s                        ./commands/help/d

          command.help.w                        ./functions/d


      t   command.help                          ./commands/help/d

          command.help.found.command            ./commands/help/t

          command.help.next.command             ./commands/help/t

          command.help.next.command.jcxnz       ./commands/help/t

          command.help.no.arguments             ./commands/help/t

          command.help.parse.arguments          ./commands/help/t

    ----------------------------------------------------------------------------------------------

      /logout                 Contains code pertinent to the implementation of the 'logout'
                              command; a common command that removes a participant from the server
                              and leaves their avatar under the control of an artificial
                              intelligence.

      d   command.logout.h                      No references.

          command.logout.l                      ./commands/logout/d

          command.logout.p                      No references.

          command.logout.s                      ./commands/logout/d

          command.logout.w                      ./functions/d


      t   command.logout                        ./commands/logout/d

    ----------------------------------------------------------------------------------------------

      /look                   Contains code pertinent to the implementation of the 'look' command;
                              a participant-level command that displays information about the
                              target.

      d   command.look.h                        No references.

          command.look.l                        ./commands/look/d

          command.look.p                        No references.

          command.look.s                        ./commands/look/d

          command.look.w                        ./functions/d


      t   command.look                          ./commands/look/d

          command.look.bad.descriptor           ./commands/look/t

          command.look.default                  ./commands/look/t

          command.look.default.good.descriptor  ./commands/look/t

          command.look.targetted.find.target    ./commands/look/t

          command.look.targetted.good           ./commands/look/t
            .descriptor

    ----------------------------------------------------------------------------------------------

      /shutdown               Contains code pertinent to the implementation of the 'shutdown'
                              command; an administrator command that shuts down the server from
                              within the environment.

      d   command.shutdown.h                    No references.

          command.shutdown.l                    ./commands/shutdown/d

          command.shutdown.p                    No references.

          command.shutdown.s                    ./commands/shutdown/d

          command.shutdown.w                    ./functions/d


      t   command.shutdown                      ./commands/shutdown/d

          command.shutdown.admin                ./commands/shutdown/t

          command.shutdown.loop                 ./commands/shutdown/t

    ----------------------------------------------------------------------------------------------

      /think                  Contains code pertinent to the implementation of the 'think'
                              command; a participant-level command that allows for communication
                              between participants in a local environment.

      d   command.think.h                       No references.

          command.think.l                       ./commands/think/d

          command.think.p                       No references.

          command.think.s                       ./commands/think/d

          command.think.w                       ./functions/d


      t   command.think                         ./commands/think/d

          command.think.arguments               ./commands/think/t

          command.think.help.msg                ./commands/think/t

          command.think.untargetted             ./commands/think/t

    ==============================================================================================
    
    ./functions               Contains code pertaining to the background mechanisms that
                              contribute to the overall functioning of the codebase. Things like
                              writing to files, reading user input, etc... are all kept here.

      b   abdomen.worn.item.id                  No references.

          admin.character                       No references.

          administrative.byte                   ./functions/check.admin/t

          back.worn.item.id                     No references.

          buffer.1                              ./commands/look/t
                                                ./commands/think/t
                                                ./functions/check.login/t
                                                ./functions/create.lock.file/t
                                                ./functions/create.character/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/set.single.attribute/t
                                                ./functions/socket/recv.from.socket/t

          buffer.1.l                            ./functions/b
                                                ./functions/socket/recv.from.socket/t

          buffer.2                              ./functions/create.character/t
                                                ./functions/check.login/t
                                                ./functions/get.character.data/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t

          buffer.2.l                            ./functions/b

          e.data                                ./functions/dna.lab/t

          g.data                                ./functions/dna.lab/t

          socket.filename.entry.l               ./functions/b
                                                ./functions/main/system.check.b
                                                ./functions/socket/clean.socket/t

          sockets.left                          ./functions/main/active.socket.poll/t

          sys.lseek.call                        No references.

          sys.lseek.current.position            No references.

          sys.lseek.eof                         No references.

          sys.no.bytes.read                     No references.

          sys.read.write                        ./functions/open.descriptor/t

          sys.system.call                       ./functions/bail/t
                                                ./functions/close.descriptor/t
                                                ./functions/create.file/t
                                                ./functions/get.ticks/t
                                                ./functions/memory.switch/t
                                                ./functions/open.descriptor/t
                                                ./functions/poll.descriptor/t
                                                ./functions/read.descriptor/t
                                                ./functions/socket/accept.socket/t
                                                ./functions/socket/bind.socket/t
                                                ./functions/socket/clean.socket/t
                                                ./functions/socket/create.socket/t
                                                ./functions/socket/listen.socket/t
                                                ./functions/socket/recv.from.socket/t
                                                ./functions/socket/socket.send/t
                                                ./functions/time.in.seconds.since.the.epoch/t
                                                ./functions/write.console/t
                                                ./functions/write.descriptor/t

          sys.write.call                        ./functions/write.console/t
                                                ./functions/write.descriptor/t


      d   area.filename                         ./commands/area/t
                                                ./functions/create.character/t
                                                ./functions/d

          area.filename.l                       ./commands/area/t

          character.base.color.table            No references.

          character.base.fur.quality.table      No references.

          character.secondary.color.table       No references.

          character.secondary.fur.quality.table No references.

          command.table                         ./commands/help/t
                                                ./functions/d
                                                ./functions/main/participant.interaction
                                                  /address.active.status/t

          current.directory.marker              ./functions/check.login/t

          current.directory.marker.l            ./functions/check.login/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t

          egg.directory                         ./functions/d

          egg.directory.l                       No references.

          external.data.cursor.home             ./functions/clear.screen/t

          external.data.clear.screen            ./functions/clear.screen/t

          ghost.directory                       ./functions/d

          ghost.directory.l                     No references.

          item.filename                         ./functions/d

          item.filename.l                       No references.

          number.of.commands                    ./commands/help/t
                                                ./functions/main/participant.interaction
                                                  /address.active.status/t

          participant.directory                 ./functions/d

          participant.directory.l               No references.

          pouch.declaration                     ./functions/d
                                                ./functions/create.character/t

          pouch.declaration.l                   ./functions/create.character/t

          pouch.description                     ./functions/d
                                                ./functions/create.character/t

          pouch.description.l                   ./functions/create.character/t

    ----------------------------------------------------------------------------------------------

      /aggregate.arguments    Contains code that collects arguments from the participant command
                              line and segregates them into a predefined structure.

      b   argument.01.location                  ./commands/area/t
                                                ./commands/broadcast/t
                                                ./commands/help/t
                                                ./functions/aggregate.arguments/t

          argument.01.size                      ./commands/area/t
                                                ./commands/broadcast/t
                                                ./functions/aggregate.arguments/b

          argument.02.location                  No references.

          argument.02.size                      ./commands/area/t
                                                ./commands/think/t

          argument.03.location                  No references.

          argument.03.size                      No references.

          argument.04.location                  No references.

          argument.04.size                      No references.

          argument.05.location                  No references.

          argument.05.size                      No references.

          argument.06.location                  No references.

          argument.06.size                      No references.

          argument.07.location                  No references.

          argument.07.size                      No references.

          argument.08.location                  No references.

          argument.08.size                      No references.

          argument.09.location                  No references.

          argument.09.size                      No references.

          argument.10.location                  No references.

          argument.10.size                      No references.

          argument.entry.size                   ./functions/aggregate.arguments/t

          arguments.num                         ./commands/gylf/t
                                                ./commands/help/t
                                                ./functions/aggregate.arguments/t

          arguments.packet                      ./functions/aggregate.arguments/b

          argument.entry.size                   ./functions/aggregate.arguments/t

          arguments.packet                      ./functions/aggregate.arguments/b

          arguments.packet.l                    No references.

          arguments.num                         ./commands/help/t
                                                ./functions/aggregate.arguments/t


      t   aggregate.arguments                   ./functions/main/participant.interaction
                                                  /address.active.status/t

          aggregate.arguments.argument.found    ./functions/aggregate.arguments/t

          aggregate.arguments.arguments         ./functions/aggregate.arguments/t
            .aggregated

          aggregate.arguments.loop              ./functions/aggregate.arguments/t

          aggregate.arguments.prep.for.next     ./functions/aggregate.arguments/t
            .argument

          aggregate.arguments.quote.mode        ./functions/aggregate.arguments/t

          aggregate.arguments.quote.mode.e      ./functions/aggregate.arguments/t

          aggregate.arguments.guote.mode.l.bump ./functions/aggregate.arguments/t

          aggregate.arguments.strip.command     ./functions/aggregate.arguments/t
            .loop

          aggregate.arguments.strip.command.loop  ./functions/aggregate.arguments/t

    ----------------------------------------------------------------------------------------------

      /assemble.path          Contains code to assemble a path to a given file.

      t   assemble.path                         ./functions/get.participant.data/t

    ----------------------------------------------------------------------------------------------

      /bail                   Contains code that suspends execution of the code, unloads from
                              memory, and returns control to Linux.

      b   sys.exit.call                         ./functions/bail/t


      t   bail                                  ./commands/shutdown/t
                                                ./functions/main/text.init/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/socket.errors/t

    ----------------------------------------------------------------------------------------------

      /buffer.strip           Contains code that strips buffered data of carriage returns and line
                              feeds and replaces them with zeroes.

      t   buffer.strip                          ./functions/socket/recv.from.socket/t

          strip.char                            ./functions/buffer.strip/t

          strip.done                            ./functions/buffer.strip/t

          strip.loop                            ./functions/buffer.strip/t

    ----------------------------------------------------------------------------------------------

      /check.admin            Contains code that checks to see if the user on the current socket
                              has administrative privileges.

      t   check.admin                           ./commands/area/t
                                                ./commands/broadcast/t
                                                ./commands/gylf/t
                                                ./commands/shutdown/t

    ----------------------------------------------------------------------------------------------

      /check.login            Contains code that checks to see if a user attempting to log in is
                              already logged in from a different location.

      t   check.login                           ./functions/main/participant.interaction
                                                  /address.login.status/t

          check.login.logged                    ./functions/check.login/t

    ----------------------------------------------------------------------------------------------

      /clear.screen           Contains code that remotely clears the user's screen and places
                              their cursor in the upper left hand corner.

      t   clear.screen                          ./functions/main/listening.socket.poll/t
                                                ./functions/write.welcome/t

    ----------------------------------------------------------------------------------------------

      /close.descriptor       Contains code that tells linux that we're finished with a
                              descriptor, causing it to become disassociated with the dataset to
                              which it currently points.

      b   sys.close.call                        ./functions/close.descriptor/t


      t   close.descriptor                      ./commands/area/t
                                                ./commands/look/t                                                
                                                ./functions/check.login/t
                                                ./functions/create.character/t
                                                ./functions/create.lock.file/t
                                                ./functions/dna.lab/t
                                                ./functions/get.character.data/t
                                                ./functions/get.external.data/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/text.init/t
                                                ./functions/socket/clean.socket/t

    ----------------------------------------------------------------------------------------------

      /create.character       Contains code that builds out character data on the basis of DNA
                              sequences left behind by either parent on the associated egg.

      t   area.filename.increment.cmp           ./functions/create.character/t

          area.filename.next.digit.increment    ./functions/create.character/t

          area.filename.out.of.ids              ./functions/create.character/t

          build.pouch                           ./functions/create.character/t

          build.pouch.area.name                 ./functions/create.character/t

          build.pouch.found.open.id             ./functions/create.character/t

          build.pouch.increment.byte            ./functions/create.character/t

          create.character                      ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t

          create.character.gylf.command         No references.

    ----------------------------------------------------------------------------------------------

      /create.file            Contains code that builds a dataset on the drive, to which it
                              associates a logical descriptor.

      b   sys.create.call                       ./functions/create.file/t

          sys.rw.r.r                            ./functions/create.file/t


      t   create.file                           ./commands/area/t
                                                ./functions/create.lock.file/t
                                                ./functions/create.character/t

    ----------------------------------------------------------------------------------------------

      /create.lock.file       Contains code that creates a lock file for use in preventing
                              multiple instances of the same login from different locations.

      d   lock.extension                        ./functions/check.login/t
                                                ./functions/create.lock.file/t
                                                ./functions/socket/clean.socket/t

          lock.extension.l                      ./functions/check.login/t
                                                ./functions/create.lock.file/t
                                                ./functions/socket/clean.socket/t

      t   create.lock.file                      ./functions/main/participant.interaction
                                                  /address.login.status/t

    ----------------------------------------------------------------------------------------------

      /dna.lab                Contains code which combines the DNA left behind on an egg by both
                              parents to create an entirely new gylf.

      t   dna.lab                               ./functions/create.participant/t

          dna.lab.agility                       ./functions/dna.lab/t

          dna.lab.base.color                    ./functions/dna.lab/t

          dna.lab.base.fur.quality              ./functions/dna.lab/t

          dna.lab.endurance                     ./functions/dna.lab/t

          dna.lab.father.base.color             ./functions/dna.lab/t

          dna.lab.father.base.fur.quality       ./functions/dna.lab/t

          dna.lab.father.secondary.color        ./functions/dna.lab/t

          dna.lab.father.secondary.fur.quality  ./functions/dna.lab/t

          dna.lab.mother.base.color             ./functions/dna.lab/t

          dna.lab.mother.base.fur.quality       ./functions/dna.lab/t

          dna.lab.mother.secondary.color        ./functions/dna.lab/t

          dna.lab.mother.secondary.fur.quality  ./functions/dna.lab/t

          dna.lab.mutation.base.color           ./functions/dna.lab/t

          dna.lab.mutation.base.color.fix       ./functions/dna.lab/t

          dna.lab.mutation.base.fur.quality     ./functions/dna.lab/t

          dna.lab.mutation.base.fur.quality.fix ./functions/dna.lab/t

          dna.lab.mutation.secondary.color      ./functions/dna.lab/t

          dna.lab.mutation.secondary.color.fix  ./functions/dna.lab/t

          dna.lab.mutation.secondary.fur        ./functions/dna.lab/t
            .quality

          dna.lab.mutation.secondary.fur        ./functions/dna.lab/t
            .quality.fix

          dna.lab.secondary.color               ./functions/dna.lab/t

          dna.lab.secondary.fur.quality         ./functions/dna.lab/t

          dna.lab.strength                      ./functions/dna.lab/t

    ----------------------------------------------------------------------------------------------

      /get.character.data     Contains code which populates the character data in memory from file
                              for the character on the current socket.

      t   get.character.data                    ./functions/check.admin/t

    ----------------------------------------------------------------------------------------------

      /get.external.data      Contains code which reads data that exists outside the codebase and
                              memory.

      t   get.external.data                     ./functions/clear.screen/t

    ----------------------------------------------------------------------------------------------

      /get.text.data          Contains code that pulls string data from an external repository.

      t   get.text.data                         ./functions/socket/socket.send/t
                                                ./functions/write.console/t

          get.text.data.nz                      ./functions/get.text.data/t

          get.text.data.z                       ./functions/get.text.data/t

    ----------------------------------------------------------------------------------------------

      /get.ticks              Contains code that returns the number of clock ticks since the
                              environment was booted.

      b   sys.get.ticks                         ./functions/get.ticks/t


      t   get.ticks                             ./functions/dna.lab/t

    ----------------------------------------------------------------------------------------------

      ./functions/main        Contains all pertinent first level code, definitions, and data for
                              the main loop.

      b   active.status                         ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t

          login.status                          ./functions/main/listening.socket.poll/t
                                                ./functions/socket/active.socket.poll/t

          passphrase.status                     ./functions/main/participant.interaction
                                                  /address.login.status/t

          set.passphrase.status                 ./functions/main/participant.interaction
                                                  /address.login.status/t

          sys.poll.in                           ./functions/main/active.socket.poll/d
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t

          sys.poll.number.of.structures         ./functions/poll.descriptor/t

          sys.poll.timeout                      ./functions/poll.descriptor/t


      t   _start                                No references.

          main.loop                             ./functions/main/t

    ----------------------------------------------------------------------------------------------

        /active.socket.poll   Contains code that runs through the list of potentially active
                              connections and checks each of them for activity. Upon discovering
                              activity in a connection, the function then passes control off to
                              the answer.active.socket function for more specialized treatment.

        d   socket.data.active.requested        No references.

            socket.data.active.returned         No references.

            socket.data.active.socket           ./functions/main/active.socket.poll/t
              .descriptor

            socket.data.event.requested         No references.

            socket.data.event.returned          No references.

            socket.data.event.socket.descriptor ./functions/main/listening.socket.poll/t
                                                ./functions/socket/bind.socket/t


        t   active.socket.poll                  ./functions/main/t

            active.socket.poll.loop             ./functions/main/active.socket.poll/t

            active.socket.poll.loop.done        ./functions/main/active.socket.poll/t

            poll.active.socket                  ./functions/main/active.socket.poll/t

            poll.active.socket.done             ./functions/main/active.socket.poll/t

    ----------------------------------------------------------------------------------------------

        /listening.socket.poll  Contains code that polls the listening socket for new connection
                                attempts and sends the login message when it finds them.

        t   greet                               ./functions/main/listening.socket.poll/t

            greet.add.socket                    ./functions/main/listening.socket.poll/t

            greet.loop                          ./functions/main/listening.socket.poll/t

            listening.socket.poll               ./functions/main/t

            listening.socket.poll.done          ./functions/main/listening.socket.poll/t

    ----------------------------------------------------------------------------------------------

        /participant.interaction    Contains code that has to do with interaction between the user
                                    and the infractructure of the environment. Essentially, this
                                    code addresses all user statii and how to handle them.

    ----------------------------------------------------------------------------------------------

          /address.active.status    Contains code that parses commands issued by users with an
                                    active status and sends them to the appropriate handler.

          t   address.active.status             ./functions/socket/answer.active.socket/t

              address.active.status.found       ./functions/main/participant.interaction
                .command                          /address.active.status/t

              address.active.status.next        ./functions/main/participant.interaction
                .command.jcxnz                    /address.active.status/t

              address.active.status.next        ./functions/main/participant.interaction
                .command                          /address.active.status/t

              address.active.status.read        ./functions/main/participant.interaction
                .command.table                    /address.active.status/t

    ----------------------------------------------------------------------------------------------

          /address.login.status     Contains code that parses commands issued by users with a
                                    login status and sends them to the appropriate handler.

          t   address.login.status              ./functions/socket/answer.active.socket/t

              bad.login                         ./functions/main/participant.interaction
                                                  /address.login.status/t

              new.login                         ./functions/main/participant.interaction
                                                  /address.login.status/t

              not.logged.in                     ./functions/main/participant.interaction
                                                  /address.login.status/t

              returning.login                   ./functions/main/participant.interaction
                                                  /address.login.status/t

    ----------------------------------------------------------------------------------------------

          /address.passphrase.status  Contains code that parses commands issued by users with
                                      a passphrase status and sends them to the appropriate
                                      handler.

          t   address.passphrase.status         ./functions/socket/answer.active.socket/t

              bad.passphrase                    ./functions/main/participant.interaction
          	                                      /address.passphrase.status/t

              good.passphrase                   ./functions/main/participant.interaction
          	                                      /address.passphrase.status/t

              passphrase.cmp.loop               ./functions/main/participant.interaction
          	                                      /address.passphrase.status/t

    ----------------------------------------------------------------------------------------------

          /address.set.passphrase.status  Contains code that parses commands issued by users
                                          with a set passphrase status and sends them to the
                                          appropriate handler.

          t   address.set.passphrase.status     ./functions/socket/answer.active.socket/t

    ----------------------------------------------------------------------------------------------

        /set.up.listener  Contains code that builds a socket, binds it to a specified hardware
                          port, and tells it to listen for incoming connections. When it's
                          finished, it displays a message to the admin indicating that we're
                          online and ready to go. If at any point an error occurs, the function
                          displays an error message and passes control to the bail function so we
                          can suspend execution and return control to linux in the hopes that the
                          admin can figure out what's clogging up the works.

        t   set.up.listener                     ./functions/main/t

            socket.bind                         ./functions/main/set.up.listener/t

            socket.display.success              ./functions/main/set.up.listener/t

            socket.listen                       ./functions/main/set.up.listener/t

    ----------------------------------------------------------------------------------------------

        /system.check   Contains code that performs checks to ensure the environment is ready to
                        go live, prior to instantiation.

        b   connection.area.id.index            ./commands/gylf/t
                                                ./commands/look/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t

            connection.descriptor.index         ./commands/area/t
                                                ./commands/broadcast/t
                                                ./commands/gylf/t
                                                ./commands/look/t
                                                ./commands/shutdown/t
                                                ./commands/think/t
                                                ./functions/create.character/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/socket/clean.socket/t
                                                ./functions/socket/recv.from.socket/t
                                                ./functions/socket/socket.send/t

            connection.entry.size               ./commands/shutdown/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t
                                                ./functions/socket/communications/send.to.world/t

            connection.external.index           No references.

            connection.filename.index           ./functions/create.character/t
                                                ./functions/get.character.data/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/socket/clean.socket/t

            connection.number.index             ./functions/main/system.check/t
                                                ./functions/print.socket.number/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t

            connection.pname.index              ./functions/translate.name.to.socket.number/t

            connection.pname.index.l            No references.

            connection.status.index             ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/clean.socket/t

            connection.table                    ./commands/shutdown/t
                                                ./functions/main/system.check/b
                                                ./functions/main/system.check/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/active.socket.poll/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications
                                                  /send.to.participant/t
                                                ./functions/socket/communications/send.to.world/t


        d   socket.numbers                      ./functions/main/system.check/d
                                                ./functions/main/system.check/t

            socket.numbers.l                    ./functions/main/system.check/t


        t   system.check                        ./functions/main/t

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.0010

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.0100

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.1000

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.done

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.loop

            system.check.populate.connection    ./functions/main/system.check/t
              .numbers.over

    ----------------------------------------------------------------------------------------------

        /text.init            Contains code that initializes the ability to send messages to the
                              admin and participants.

        b   text.data.indices                   ./functions/main/text.init/b
                                                ./functions/main/text.init/t

            text.data.index.num                 ./functions/main/text.init/t

            text.data.index.local.data.accept   ./functions/main/listening.socket.poll/t
              .error.message

            text.data.index.local.data.active   ./functions/socket/answer.active.socket/t
              .socket.message

            text.data.index.local.data.area.bad ./commands/area/t
              .syntax.message

            text.data.index.local.data.area     ./commands/area/t
              .created.message

            text.data.index.local.data.area.out ./commands/area/t
              .of.areas.message

            text.data.index.local.data.bad.area ./commands/look/t
              .id.indicator.message

            text.data.index.local.data.bad      ./functions/main/participant.interaction
              .login.error.message                /address.login.status/t

            text.data.index.local.data.bind     ./functions/main/set.up.listener/t
              .error.message

            text.data.index.local.data.carriage ./commands/area/t
              .return.message                   ./functions/socket/answer.active.socket/t

            text.data.index.local.data          ./functions/main/listening.socket.poll/t
              .connection.notifier.message

            text.data.index.local.data.create   ./functions/main/set.up.listener/t
              .error.message

            text.data.index.local.data.listen   ./functions/main/set.up.listener/t
              .error.message

            text.data.index.local.data          ./functions/main/set.up.listener/t
              .listening.message

            text.data.index.local.data.out.of   ./functions/create.character/t
              .area.ids.message

            text.data.index.local.data.populate ./functions/main/system.check/t
              .connection.numbers.over.message

            text.data.index.local.data          ./functions/main/system.check/t
              .populating.connection.table
              .message

            text.data.index.local.data.second   ./functions/main/participant.interaction
              .login.error.message                /address.login.status/t

            text.data.index.local.data.session  No references.
              .open.error.message

            text.data.index.local.data.shutdown ./commands/shutdown/t
              .message

            text.data.index.local.data.smoked   ./commands/shutdown/t
              .sockets.message

            text.data.index.local.data.system   ./functions/system.check/t
              .check.message

            text.data.index.local.data.system   ./functions/system.check/t
              .check.done.message

            text.data.index.socket.data.area    ./commands/area/t
              .created.message

            text.data.index.socket.data.bad     ./commands/look/t
              .area.id.message

            text.data.index.socket.data.bad     ./functions/write.bad.command.error/t
              .command.error.message

            text.data.index.socket.data.bad     ./functions/write.bad.help.command.error/t
              .help.command.error.message

            text.data.index.socket.data.bad     ./functions/main/participant.interaction
              .login.error.message                /address.login.status/t

            text.data.index.socket.data.bad     ./functions/main/participant.interaction
              .passphrase.message                 /address.passphrase.status/t

            text.data.index.socket.data.command ./commands/ai/d
              .ai.help

            text.data.index.socket.data.command ./commands/area/d
                                                ./commands/area/t
              .area.help

            text.data.index.socket.data.command ./commands/broadcast/d
              .broadcast.help

            text.data.index.socket.data.command ./commands/dig/d
              .dig.help

            text.data.index.socket.data.command ./commands/egg/d
              .egg.help

            text.data.index.socket.data.command ./commands/gylf/d
              .gylf.help

            text.data.index.socket.data.command ./commands/help/d
              .help.help

            text.data.index.socket.data.command ./commands/logout/d
              .logout.help

            text.data.index.socket.data.command ./commands/look/d
              .look.help

            text.data.index.socket.data.command ./commands/shutdown/d
              .shutdown.help

            text.data.index.socket.data.command ./commands/think/d
              .think.help

            text.data.index.socket.data.egg     ./functions/create.character/t
              .hatch.message

            text.data.index.socket.data.login   ./functions/main/listening.socket.poll/t
              .message

            text.data.index.socket.data.no      ./functions/main/listening.socket.poll/t
              .connection.available.message

            text.data.index.socket.data.out.of  ./functions/create.character/t
              .area.ids.message

            text.data.index.socket.data.out.of  ./commands/area/t
              .areas.message

            text.data.index.socket.data         ./functions/main/participant.interaction
              .passphrase.message                 /address.login.status/t

            text.data.index.socket.data.prompt  ./functions/write.prompt/t
              .message

            text.data.index.socket.data.second  ./functions/main/participant.interaction
              .login.message                      /address.login.status/t

            text.data.index.socket.data.session No references.
              .open.error.message

            text.data.index.socket.data         ./commands/shutdown/t
              .shutdown.message

            text.data.index.socket.data.welcome ./functions/main/participant.interaction
              .message                            /address.login.status/t


        d   local.data.populating.textual.data  ./functions/main/text.init/d
              .indices.message                  ./functions/main/text.init/t

            local.data.populating.textual.data  ./functions/main/text.init/t
              .indices.message.l

            local.data.text.data.failed         ./functions/main/text.init/d
                                                ./functions/main/text.init/t

            local.data.text.data.failed.l       ./functions/main/text.init/t

            text.data.filename                  ./functions/main/text.init/t


        t   text.init                           ./functions/main/t

            text.init.pop.loop                  ./functions/main/text.init/t

            text.init.fail                      ./functions/main/text.init/t

    ----------------------------------------------------------------------------------------------

        /world.maintenance    Contains code pertinent to the passage of time in the environment.

        t   maintain                            ./functions/main/t

    ----------------------------------------------------------------------------------------------

      /memory.switch          Contains code that allows for dynamic memory management from within
                              the program.

      b   sys.mem                               ./functions/memory.switch/t


      d   break.pointer                         ./functions/memory.switch/t


      t   memory.switch                         ./functions/get.text.data/t
                                                ./functions/main/text.init/t
                                                ./functions/socket/socket.send/t
                                                ./functions/write.console/t

          memory.switch.initialize              ./functions/memory.switch/t

          memory.switch.initialized             ./functions/memory.switch/t

    ----------------------------------------------------------------------------------------------

      /open.descriptor        Contains code that associates a logical descriptor with an existing
                              dataset on disk. If the code is unable to associate a descriptor, it
                              instead returns an error code, which is detectable via a check on
                              the sign of eax.

      b   sys.open.call                         ./functions/open.descriptor/t


      t   open.descriptor                       ./commands/area/t
                                                ./commands/look/t
                                                ./functions/check.login/t
                                                ./functions/create.character/t
                                                ./functions/dna.lab/t
                                                ./functions/get.character.data/t
                                                ./functions/get.external.data/t
                                                ./functions/get.text.data/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/main/text.init/t

    ----------------------------------------------------------------------------------------------

      /poll.descriptor        Contains code that uses a logical descriptor associated with a
                              Berkeley Socket to ask the socket whether or not there is currently
                              data on it that requires the attention of a handler.

      b   sys.poll.call                         ./functions/poll.descriptor/t


      t   poll.descriptor                       ./functions/main/active.socket.poll/t
                                                ./functions/main/listening.socket.poll/t

    ----------------------------------------------------------------------------------------------

      /print.socket.number    Contains code that prints a socket number associated with an event
                              in the administrator console.

      t   print.socket.number                   ./functions/socket/answer.active.socket/t

    ----------------------------------------------------------------------------------------------

      /read.descriptor        Contains code that pulls data from an existing dataset using a
                              logical descriptor previously associated with the dataset in
                              question.

      b   sys.read.call                         ./functions/read.descriptor/t


      t   read.descriptor                       ./commands/look/t
                                                ./functions/create.character/t
                                                ./functions/dna.lab/t
                                                ./functions/get.character.data/t
                                                ./functions/get.external.data/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/text.init/t

    ----------------------------------------------------------------------------------------------

      /set.single.attribute   Contains code that sends a vt100 escape sequence to the remote
                              terminal which changes a single attribute about the printed text.
                              Attributes can be found in external data.

      d   set.att.b.blk                         No references.

          set.att.b.blu                         No references.

          set.att.b.cyn                         No references.

          set.att.b.grn                         No references.

          set.att.b.mag                         No references.

          set.att.b.red                         No references.

          set.att.b.yel                         No references.

          set.att.b.wht                         No references.

          set.att.bnk                           No references.

          set.att.brt                           No references.

          set.att.dim                           No references.

          set.att.f.blk                         No references.

          set.att.f.blu                         No references.

          set.att.f.cyn                         No references.

          set.att.f.grn                         No references.

          set.att.f.mag                         No references.

          set.att.f.red                         No references.

          set.att.f.yel                         No references.

          set.att.f.wht                         No references.

          set.att.hdn                           No references.

          set.att.mod.1                         ./functions/set.single.attribute/t

          set.att.mod.2                         No references.

          set.att.mod.3                         ./functions/set.single.attribute/t

          set.att.rst                           No references.

          set.att.rvs                           No references.

          set.att.und                           No references.


      t   set.single.attribute                  No references.

    ----------------------------------------------------------------------------------------------

      ./functions/socket      Contains code that governs the 'behind the scenes' mechanisms
                              surrounding the operation of Berkeley Sockets under Linux in X86
                              ASM.

      b   socket.data.connected.socket          ./functions/socket/accept.socket/t
            .descriptor

          socket.data.queue.l                   ./functions/socket/listen.socket/t

          sys.socket.address                    ./functions/socket/create.socket/t
                                                ./functions/socket/d

          sys.socket.call                       ./functions/socket/accept.socket/t
                                                ./functions/socket/bind.socket/t
                                                ./functions/socket/create.socket/t
                                                ./functions/socket/listen.socket/t
                                                ./functions/socket/recv.from.socket/t
                                                ./functions/socket/send.socket/t

          sys.socket.padding                    ./functions/socket/d

          sys.socket.port.number                ./functions/socket/d

          sys.socket.protocol.family.inet       ./functions/socket/create.socket/t
                                                ./functions/socket/d

          sys.socket.queue.l                    ./functions/socket/listen.socket/t

          sys.socket.type.stream                ./functions/socket/create.socket/t


      d   socket.data.sockaddr.address          No references.

          socket.data.sockaddr.l                ./functions/socket/bind.socket/t

          socket.data.sockaddr.padding          No references.

          socket.data.sockaddr.port.number      No references.

          socket.data.sockaddr.protocol.family  ./functions/socket/bind.socket/t
                                                ./functions/socket/d

    ----------------------------------------------------------------------------------------------

        /accept.socket        Contains code that calls the linux kernel to associate a descriptor
                              with an incoming Berkeley Socket.

        b   sys.socket.accept                   ./functions/socket/accept.socket/t


        d   socket.data.accept.buffer.pointer   No references.

            socket.data.accept.sockaddr.pointer No references.

            socket.data.accept.socket           ./functions/socket/accept.socket/t
              .descriptor


        t   accept.socket                       ./functions/main/listening.socket.poll/t

    ----------------------------------------------------------------------------------------------

        /answer.active.socket Contains code that determines the status of an active socket and
                              routes the data to the appropriate handler.

        t   answer.active.socket                ./functions/main/active.socket.poll/t

            not.login.status                    ./functions/socket/answer.active.socket/t

            not.passphrase.status               ./functions/socket/answer.active.socket/t

    ----------------------------------------------------------------------------------------------

        /bind.socket          Contains code that binds a socket to a specified hardware port.

        b   sys.socket.bind                     ./functions/socket/bind.socket/t


        t   bind.socket                         ./functions/main/set.up.listener/t

    ----------------------------------------------------------------------------------------------

        /clean.socket         Contains code that removes the data associated with an active socket
                              from memory, smokes the lock file, and uses the close.descriptor
                              function to close out the socket. This function does not closeout
                              other files associated with the socket - that responsibility is left
                              to the caller.

        b   sys.unlink                          ./functions/socket/clean.socket/t


        t   clean.socket                        ./commands/shutdown/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/create.character/t

            ul.loop                             ./functions/socket/clean.socket/t

            ul.smoke                            ./functions/socket/clean.socket/t

    ----------------------------------------------------------------------------------------------

        ./functions/socket    Contains code pertaining to the behind the scenes mechanisms
          /communications     surrounding communications between users.

    ----------------------------------------------------------------------------------------------

          /send.to.area       Contains code that sends a provided message to a specified area.
                              Everyone in the specified area will receive the message. This code
                              is used to facilitate communication between users in a given area of
                              the environment, as well as facilitating communications between
                              administrators and a given area.

          t   send.to.area                      ./commands/think/t
                                                ./functions/create.character/t

              send.to.area.broadcast            ./functions/socket/communications/send.to.area/t

              send.to.area.broadcast.done       ./functions/socket/communications/send.to.area/t

              send.to.area.connection.poll      ./functions/socket/communications/send.to.area/t

    ----------------------------------------------------------------------------------------------

          /send.to.participant     Contains code that sends a provided message to a specified participant.
                              Only the specified participant will received this message. This code is
                              used to facilitate private communication between participants.

          t   send.to.participant               ./commands/think/t

              send.to.participant.broadcast     ./functions/socket/communications
                                                  /send.to.participant/t

              send.to.participant.broadcast     ./functions/socket/communications
                .done                             /send.to.participant/t

              send.to.participant.connection    ./functions/socket/communications
                .poll                             /send.to.participant/t

              send.to.participant.out.of.area   ./functions/socket/communications
                .error                            /send.to.participant/t

    ----------------------------------------------------------------------------------------------

          /send.to.world      Contains code that sends a provided message to the entire
                              environment. This code is used to facilitate administrator
                              communications that need to be addressed to everyone in the
                              environment.

          t   send.to.world                     ./commands/broadcast/t
                                                ./commands/shutdown/t

              send.to.world.c                   ./functions/socket/communications/send.to.world/t

              send.to.world.buf.p               ./functions/socket/communications/send.to.world/t

              send.to.world.buf.s               ./functions/socket/communications/send.to.world/t

              send.to.world.buf.sret            ./functions/socket/communications/send.to.world/t

              send.to.world.loop                ./functions/socket/communications/send.to.world/t

    ----------------------------------------------------------------------------------------------

        /create.socket        Contains code that builds a socket for further use.

        b   sys.socket.create                   ./functions/socket/create.socket/t

            socket.data.general.socket          ./functions/socket/bind.socket/t
              .descriptor                       ./functions/socket/create.socket/t
                                                ./functions/socket/listen.socket/t


        t   create.socket                       ./functions/main/set.up.listener/t

    ----------------------------------------------------------------------------------------------

        /listen.socket        Contains code that tells a created and bound socket to listen for
                              incoming connections.

        b   sys.socket.listen                   ./functions/socket/listen.socket/t


        t   listen.socket                       ./functions/main/set.up.listener/t

    ----------------------------------------------------------------------------------------------

        /recv.from.socket     Contains code that receives data from a connected socket and places
                              it in a specified buffer.

        b   sys.socket.recv                     ./function/socket/recv.from.socket/t


        t   recv.from.socket                    ./functions/main/participant.interaction
                                                  /address.active.status/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t

    ----------------------------------------------------------------------------------------------

        /socket.errors        Contains code that sets up error messages to be displayed to the
                              admin in the event that something goes awry while building the
                              listening socket. If any of these are ever executed, we're beyond
                              the point of no return, so each of them passes control to the bail
                              function after displaying their unique message.


        t   socket.error                        ./functions/main/listening.socket.poll/t
                                                ./functions/main/set.up.listener/t

    ----------------------------------------------------------------------------------------------

        /socket.send          Contains code that sends data out on a connected socket.

        b   sys.socket.send                     ./functions/socket/socket.send/t


        t   socket.send                         ./commands/area/t
                                                ./commands/look/t
                                                ./commands/help/t
                                                ./functions/create.character/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications/send.to.world/t
                                                ./functions/write.bad.command.error/t
                                                ./functions/write.bad.help.command.error/t
                                                ./functions/write.prompt/t

            socket.send.buf                     ./commands/look/t
                                                ./functions/clear.screen/t
                                                ./functions/set.single.attribute/t
                                                ./functions/socket/communications/send.to.area/t
                                                ./functions/socket/communications/send.to.participant/t
                                                ./functions/socket/communications/send.to.world/t

            socket.send.buf.splice              ./functions/socket.send/t

    ----------------------------------------------------------------------------------------------

      /time.in.seconds.since.the.epoch  Contains code that returns the time in seconds since the
                                        epoch.

      b   sys.get.time.in.seconds.since.the     ./functions/time.in.seconds.since.the.epoch/t
            .epoch


      t   time.in.seconds.since.epoch           No references.

    ----------------------------------------------------------------------------------------------

      /translate.name.to.socket.number  Contains code which allows for a given participant name
                                        to be translated to a socket ID for use internally.

      b   No defined symbols.


      d   No defined symbols.


      t   translate.name.to.socket.number       No references.

          translate.name.to.socket.number       ./functions/translate.name.to.socket.number/t
            .search.loop

          translate.name.to.socket.number       ./functions/translate.name.to.socket.number/t
            .cleanup

          translate.name.to.socket.number.found ./functions/translate.name.to.socket.number/t
            .socket

    ----------------------------------------------------------------------------------------------

      /write.bad.command.error    Contains code that lets the user know whan they've attempted to
                                  send a string to the server that doesn't correspond to a
                                  recognized command.

      t   write.bad.command.error               ./commands/ai/t
                                                ./commands/area/t
                                                ./commands/broadcast/t
                                                ./commands/dig/t
                                                ./commands/egg/t
                                                ./commands/gylf/t
                                                ./commands/help/t
                                                ./commands/logout/t
                                                ./commands/shutdown/t
                                                ./functions/main/participant.interaction
                                                  /address.active.status/t

    ----------------------------------------------------------------------------------------------

      /write.bad.help.command.error Contains code that lets the user know when they've requested
                                    help for a command that does not belong to the recognized
                                    command set.

      t   write.bad.help.command.error          ./commands/help/t

    ----------------------------------------------------------------------------------------------

      /write.console          Contains code that writes indexed external data strings to the admin
                              console.

      t   write.console                         ./commands/area/t
                                                ./commands/look/t
                                                ./commands/shutdown/t
                                                ./functions/create.character/t
                                                ./functions/main/listening.socket.poll/t
                                                ./functions/main/participant.interaction
                                                  /address.login.status/t
                                                ./functions/main/set.up.listener/t
                                                ./functions/main/system.check/t
                                                ./functions/socket/answer.active.socket/t
                                                ./functions/socket/socket.errors/t

    ----------------------------------------------------------------------------------------------

      /write.descriptor       Contains code that adds data to an existing dataset on disk using a
                              logical descriptor previously associated with the dataset.

      t   write.descriptor                      ./commands/area/t
                                                ./functions/print.socket.number/t
                                                ./functions/main/text.init/t
                                                ./functions/create.character/t

    ----------------------------------------------------------------------------------------------

      /write.prompt           Contains code that displays a command prompt to the user.

      t   write.prompt                          ./commands/area/t
                                                ./commands/look/t
                                                ./functions/socket/communications/send.to.world/t
                                                ./functions/write.bad.help.command.error/t
                                                

    ----------------------------------------------------------------------------------------------

      /write.welcome          Contains code that builds and displays the initial welcome screen to
                              the user.

      t   write.welcome                         ./functions/main/participant.interaction
                                                  /address.set.passphrase.status/t
                                                ./functions/main/participant.interaction
                                                  /address.passphrase.status/t

gylf's People

Contributors

carl-hamlin avatar moriamc01 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

gylf's Issues

Code Prettification Project

After having been added to the repository, much of the code came through out of standard, with tab stops improperly defined. Current plan is to fix this in tandem with the completion of the README - as each file definition is added to the README, the file itself will be assessed for conformance to standard and prettified.

Implement Argument Cluster

Right now, we're manually figuring out arguments for commands within the code for the command itself.

Let's not do that. Instead, let's have a function to parse command arguments into a predictable format so we know what argument is where before executing command code.

Dig Command

The 'dig' command needs completion.

Requirements:

Command should take a direction as an argument,check to ensure that fulfillment of the command make sense within the parameters of the environment, and if so, execute, creating a new area at the specified direction with a timer on user activity during execution.

Other users in the area where execution is occurring should be able to see the executing user digging a path, and optionally be able to help the digging user with 'dig help '.

recv.from.socket Should Strip Buffers By Default

Currently, we're getting data from the socket, and then manually stripping carriage returns. There is no use case wherein we should receive data from the socket and not strip carriage returns, so why not have the receiving code do it by default?

Help Command

The 'help' command needs to be coded.

Requirements are as follows:

  1. The command should be available to all users, regardless of privilege.
  2. The command without argument should attempt to take into account the user's current situation and display help accordingly.
  3. The command should take an argument in then form of a specific command and display syntax help for that command.

Dig Should Take Some Time to Complete

If Dig succeeds, then the process of creating the new area should take some time based on environmental factors.

The digging participant should not be able to perform most other actions during the time period without first stopping their dig.

Dig Should Ensure Arguments Make Sense Within the Parameters of the Environment

The Dig command should parse incoming directional arguments and check against the hosting environment to ensure that it makes sense within the parameters thereof for a participant to dig in the specified direction.

If it does not make sense, then the command should provide specific messaging indicating the reason the participant may not dig in that direction.

Other Participants Should Notice Digging

While a participant is digging, other participants should be able to see that the dig is occurring if they are within the same area as the digging participant.

Symbolic Cross-Referencing in Headers

Currently, the code makes use of symbols that developers have to manually track down to comprehend what's going on. Let's put an alphabetical cross-reference in the code headers indicating symbols used and where they can be found in the codebase.

Egg Command

The 'egg' command needs to be coded.

Requirements are as follows:

  1. The command should be restricted to participants with admin privileges only.
  2. The command should take an argument in the form of the known name of a participant, within whom the egg shall be implanted.
  3. The command should inform the implantee that they are the carrier of a fertilized egg in such a fashion as is consistent with the nature of the environment; i.e. 'in character'.

Participant Data Needs Complete Refactor

Currently the participant data in the test directory does not match up with the defined participant data structuring algorithm. This needs a remedy before our admin-level commands will work, for one thing, and really should be done sooner than later.

Logout Command

The 'logout' command needs coding.

  1. The command should be available to everyone, regardless of privilege.
  2. The command should safely revert control of the invoking avatar away from the participant to the artificial intelligence.

Other Participants Should Be Able to Help With Digging

While a dig is occurring, other participants in the area, having noticed the dig, should be able to help the digging participant with the syntax:

'dig help '

Doing so should shorten the time required to complete the dig.

AI Command

  1. The command should be available to anyone, regardless of privilege level.
  2. The command should take the initial parameters 'set' and 'clear', indicating what to do with the third argument.
  3. Third argument indicates a behaviour category that the AI performs while the player is offline.
  4. Fourth argument indicates what to do with that category.

Egg Command Should Take an Implantee's Name as an Argument

The Egg command should have, as it's first argument, the name of a participant within whom the egg shall be implanted.

If the named participant is already carrying an egg, the command should detect that condition, and respond to the initiating participant with an error message to that effect; current egg carriers are not eligible to be implanted in this way.

Gylf Command

The 'gylf' command needs coding.

Requirements are as follows:

  1. The command will be available to administrative personnel only.
  2. The command will take no arguments, instead, the performing user will be presented with a series of dialogues asking for clarifying information on DNA information to be used in the creation of the target profile, in addition to credential infomation on the target user.
  3. The command will assume the performing user is one of the source parents.
  4. The command will use the existing DNA Lab structure to create the target profile.
  5. The target profile will be available for immediate use.

Think Command

The 'think' command needs coding.

  1. The command should be available to all users, regardless of privilege.
  2. The command should broadcast to the area a supplied message when invoked without a target parameter.
  3. The command should roll against skill to broadcast to a specified target, with a chance of overflow on failure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.