carl-hamlin / gylf Goto Github PK
View Code? Open in Web Editor NEWA social experiment in geneaology and gender manipulation, using cuddly, non-threatening, hermaphroditic, egg-laying marsupials. Implemented in X86 Assembler.
A social experiment in geneaology and gender manipulation, using cuddly, non-threatening, hermaphroditic, egg-laying marsupials. Implemented in X86 Assembler.
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
Help command should take a look at the performing entity's situation and make a determination as to how to best help when no arguments are present.
Logout command does not currently revert the impacted entity to AI mode.
Participants should be able to follow the help command with the argument 'broadcast' for help with the Broadcast command.
Commands planned but not as yet implemented cause the client system to hang.
The README is currently incomplete. Complete the README.
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.
There should be no pragmatic delay between the point in time whereupon the data is created and the point in time whereupon the data may be used to activate an open socket.
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.
On the client end, when the area command is received without corresponding arguments, it prints an error and does not provide a prompt to the user.
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 '.
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?
The 'help' command needs to be coded.
Requirements are as follows:
The 'look' command displays garbage data when invoked with default parameters.
Logout command should clean and restore connection socket to unused socket repository.
The current area filename discovery mechanism is bloated and simple. Let's build a recursive mechanism instead.
Barring contraindicators arising from environmental factors, the Dig command should create a new area in the direction specified as an argument by the participant.
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.
Participants should be able to follow the Help command with the argument 'look' for help with the Look command.
If the command is successful, the implantee should be given a notification indicating that they're expecting.
Participants should be able to follow the Help command with the argument 'gylf' for help with the Gylf command.
The Gylf command should take a single argument comprised of a string of numeric data representing coded DNA info to be parsed against the performing entity's own profile by the DNA Lab to create the finalized profile data.
The login algorithm is incorrectly identifying returning participants and bouncing them with an error.
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.
The DNA Lab isn't working at optimal efficiency.
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.
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.
File locking and semaphoring for double login prevention not functioning correctly - users may login multiple times without generating an error condition.
The Egg command should only be available to users with administrative privileges.
The 'egg' command needs to be coded.
Requirements are as follows:
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.
The shutdown command hangs on execution instead of shutting down the server.
The Gylf command will take the supplied coded DNA info and parse it in the DNA Lab against the performing entity's own encoding as the primary source parent.
The 'logout' command needs coding.
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.
The Gylf command should be restricted by privilege.
Yet another in the series of WTF moments surrounding the return to production; the 'area' command is flowing into memory that doesn't belong to Gylf.
Participants should be able to follow the Help command with the argument 'dig' to get help with the Dig command.
Participants should be able to follow the Help command with the argument 'area' for help with the Area command.
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.
Participants should be able to follow the Help command with the argument 'logout' for help with the logout command.
The command loop in adress.active.status.asm was terminating incorrectly due to improper stack manipulation.
Participants should be able to follow the Help command with the argument 'shutdown' for help with the Shutdown command.
The Dig command should take a direction as an argument, supported by the argument clustering mechanism.
The 'gylf' command needs coding.
Requirements are as follows:
Participants should be able to follow the Help command with the argument 'egg' to get help with the Egg command.
The 'think' command needs coding.
Participants should be able to follow the Help command with the argument 'AI' for help with the AI command.
Logout command does not currently disconnect the invoking user.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.