Commits

Palmer, 2E0EOL committed 4c2b879

This is the historical 0.0.10 OverChat code. Version control was not in use at this time,
so this is just a static directory of the earliest released code.

  • Participants
  • Tags overchat-0.0.10

Comments (0)

Files changed (305)

+This ChangeLog was created 24/11/2001 after sources were
+initially distributed to Derek Haas, it will be updated
+daily with any changes to the server and made available
+at http://www.daybologic.co.uk/overchat/ChangeLog
+
+1/12/2001 - The final race to release begins
+--------------------------------------------
+DDRP - Fix: GlobalID no longer locked during challenge
+DDRP - TX/RX to use proper logging and messaging
+DDRP - Logging now records source file/line info
+DDRP - POSIX threads extra debug info
+DDRP - NT threads internally use Blake mutants not critical sections
+DDRP - Fix: NT threads, corruption of thread count
+DDRP - Fix: Some obvious globalid races
+DDRP - Fix: TX/RX: Do not push zero amounts
+DDRP - Fix: blake_Sleep() failure on Win32
+DDRP - Broken pipe registration from TX/RX's data reader (callback)
+
+30/11/2001
+----------
+DDRP - Consistent non-const usage with data callbacks
+DDRP - Fix: Logic error in heartbeat initialisation
+DDRP - Simplification of heartbeat base priority
+
+28/11/2001 - 0.0.9-1
+--------------------
+DDRP - Reorder shutdown tasks for more sanity
+DDRP - New function server_WaitOnThreadTermination to ensure order
+DDRP - Major heartbeat rewrite
+DDRP - Update tree to use DPCRTLMM-1.1.6-pre1-1 (latest)
+
+26/11/2001
+----------
+DDRP - Fix: Deadlock, failure of TX/RX buffer manager to release a lock
+
+25/11/2001
+----------
+DDRP - Added Blake linked list debug mechanism
+DDRP - "Makefile"s are symbolic links to "Makefile.gnu"s
+DDRP - Fix 12 byte mem leak, listening sockets list not cleaned up (Blake)
+DDRP - Fix to blake.h not using the debuggable mutants with debug builds
+
+24/11/2001 - 0.0.9 (170)
+----------
+DDRP - Init of event queue safe against interruption by posted timer events.
+# OverChat master build for for private source tree
+# Maintainer: <Overlord@DayboLogic.co.uk>
+# Please report problems with _FULL_ output, using the script utility
+
+THISFILE=Makefile.gnu
+
+
+# Master build rule
+all : tools memory_debugger dlini_lib blake_lib overchat cgi _clients
+	@echo Build complete
+
+tools:
+	cd daybodep ; gmake -f $(THISFILE) all
+	cd buildnum ; gmake -f $(THISFILE) all
+	gmake -f $(THISFILE) do_obn
+	cd rmw32 ; gmake -f $(THISFILE) all
+	cd raw2c ; gmake -f $(THISFILE) all
+	cd blakemake ; gmake -f $(THISFILE) all
+
+blake_lib : libblake.a
+
+libblake.a:
+	cd blake \
+	&& ../blakemake/blakemake --debug --server \
+	&& gmake -f $(THISFILE) blake_lib
+
+dlini_lib:
+	cd dlini && gmake -f $(THISFILE)
+
+overchat : overchatd
+
+overchatd : src/$(THISFILE) src/*.h src/*.c
+	cd src ; gmake -f $(THISFILE)
+
+mrproper : clean
+	-rm -rf .depend
+
+clean : clients_clean cgi_clean overchat_clean blake_lib_clean dlini_lib_clean memory_debugger_clean tools_clean
+	-rm -f core overchatd.core
+
+overchat_clean:
+	cd src ; gmake -f $(THISFILE) clean
+
+blake_lib_clean:
+	cd blake ; gmake -f $(THISFILE) clean
+
+dlini_lib_clean:
+	cd dlini ; gmake -f $(THISFILE) clean
+
+tools_clean:
+	cd buildnum ; gmake -f $(THISFILE) clean
+	cd blakemake ; gmake -f $(THISFILE) clean
+	cd raw2c ; gmake -f $(THISFILE) clean
+	cd rmw32 ; gmake -f $(THISFILE) clean
+	cd daybodep ; gmake -f $(THISFILE) clean
+
+memory_debugger : dpcrtlmm/libdpcrtlmm.a
+
+dpcrtlmm/libdpcrtlmm.a:
+	cd dpcrtlmm \
+	&& gmake -f $(THISFILE) config \
+	&& ./config --enable-threads \
+                    --enable-debug \
+                    --enable-log \
+                    --maxport \
+	&& gmake -f $(THISFILE)
+
+memory_debugger_clean:
+	cd dpcrtlmm ; gmake -f $(THISFILE) clean
+
+cgi:
+	cd cgi-bin ; gmake -f $(THISFILE) all
+
+cgi_clean:
+	cd cgi-bin ; gmake -f $(THISFILE) clean
+
+_clients:
+	cd clients ; gmake -f $(THISFILE) all
+
+clients_clean:
+	cd clients ; gmake -f $(THISFILE) clean
+
+#
+# This rule ensures the OverChat global build number (OBN) is updated before the main
+# codebase is built.
+#
+do_obn:
+	cd buildnum ; ./buildnum ../src/_buildnum.h
+# OverChat master build for for private source tree
+# Maintainer: <Overlord@DayboLogic.co.uk>
+# Please report problems with _FULL_ output
+
+THISFILE=Makefile.bor
+
+
+# Master build rule
+all : tools memory_debugger blake_lib overchat cgi
+	@echo Build complete
+
+tools:
+	cd buildnum
+	make -f $(THISFILE) all
+	cd ..
+	make -f $(THISFILE) do_obn
+	cd rmw32
+	make -f $(THISFILE) all
+	cd ..
+	cd raw2c
+	make -f $(THISFILE) all
+	cd ..
+	cd blakemake
+	make -f $(THISFILE) all
+	cd ..
+
+blake_lib : blake.lib
+
+blake.lib:
+	cd blake
+	..\blakemake\blakemake --debug --server
+	make -f $(THISFILE) blake_lib
+	cd ..
+
+overchat : overchat.exe
+
+overchat.exe : src/$(THISFILE)
+	cd src
+	make -f $(THISFILE) overchat
+	cd ..
+
+
+clean : cgi_clean overchat_clean blake_lib_clean memory_debugger_clean tools_clean
+
+overchat_clean:
+	cd src
+	make -f $(THISFILE) clean
+	cd ..
+
+blake_lib_clean:
+	cd blake
+	make -f $(THISFILE) clean
+	cd ..
+
+tools_clean:
+	cd buildnum
+	make -f $(THISFILE) clean
+	cd ..
+	cd blakemake
+	make -f $(THISFILE) clean
+	cd ..
+	cd raw2c
+	make -f $(THISFILE) clean
+	cd ..
+	cd rmw32
+	make -f $(THISFILE) clean
+	cd ..
+
+memory_debugger : dpcrtlmm\dpcrtlmm.lib
+
+dpcrtlmm\dpcrtlmm.lib:
+	cd dpcrtlmm
+	make -f $(THISFILE) config
+	config --enable-threads --enable-debug --enable-log
+	make -f $(THISFILE) example
+	cd ..
+
+memory_debugger_clean:
+	cd dpcrtlmm
+	make -f $(THISFILE) clean
+	cd ..
+
+cgi:
+	cd cgi-bin
+	make -f $(THISFILE) all
+	cd ..
+
+cgi_clean:
+	cd cgi-bin
+	make -f $(THISFILE) clean
+	cd ..
+
+#
+# This rule ensures the OverChat global build number (OBN) is updated before the main
+# source base is built.
+#
+do_obn:
+	cd buildnum
+	buildnum ..\src\_buildnum.h
+	cd ..
+# OverChat master build for for private source tree
+# Maintainer: <Overlord@DayboLogic.co.uk>
+# Please report problems with _FULL_ output, using the script utility
+
+THISFILE=Makefile.gnu
+
+
+# Master build rule
+all : tools memory_debugger dlini_lib blake_lib overchat cgi _clients
+	@echo Build complete
+
+tools:
+	cd daybodep ; gmake -f $(THISFILE) all
+	cd buildnum ; gmake -f $(THISFILE) all
+	gmake -f $(THISFILE) do_obn
+	cd rmw32 ; gmake -f $(THISFILE) all
+	cd raw2c ; gmake -f $(THISFILE) all
+	cd blakemake ; gmake -f $(THISFILE) all
+
+blake_lib : libblake.a
+
+libblake.a:
+	cd blake \
+	&& ../blakemake/blakemake --debug --server \
+	&& gmake -f $(THISFILE) blake_lib
+
+dlini_lib:
+	cd dlini && gmake -f $(THISFILE)
+
+overchat : overchatd
+
+overchatd : src/$(THISFILE) src/*.h src/*.c
+	cd src ; gmake -f $(THISFILE)
+
+mrproper : clean
+	-rm -rf .depend
+
+clean : clients_clean cgi_clean overchat_clean blake_lib_clean dlini_lib_clean memory_debugger_clean tools_clean
+	-rm -f core overchatd.core
+
+overchat_clean:
+	cd src ; gmake -f $(THISFILE) clean
+
+blake_lib_clean:
+	cd blake ; gmake -f $(THISFILE) clean
+
+dlini_lib_clean:
+	cd dlini ; gmake -f $(THISFILE) clean
+
+tools_clean:
+	cd buildnum ; gmake -f $(THISFILE) clean
+	cd blakemake ; gmake -f $(THISFILE) clean
+	cd raw2c ; gmake -f $(THISFILE) clean
+	cd rmw32 ; gmake -f $(THISFILE) clean
+	cd daybodep ; gmake -f $(THISFILE) clean
+
+memory_debugger : dpcrtlmm/libdpcrtlmm.a
+
+dpcrtlmm/libdpcrtlmm.a:
+	cd dpcrtlmm \
+	&& gmake -f $(THISFILE) config \
+	&& ./config --enable-threads \
+                    --enable-debug \
+                    --enable-log \
+                    --maxport \
+	&& gmake -f $(THISFILE)
+
+memory_debugger_clean:
+	cd dpcrtlmm ; gmake -f $(THISFILE) clean
+
+cgi:
+	cd cgi-bin ; gmake -f $(THISFILE) all
+
+cgi_clean:
+	cd cgi-bin ; gmake -f $(THISFILE) clean
+
+_clients:
+	cd clients ; gmake -f $(THISFILE) all
+
+clients_clean:
+	cd clients ; gmake -f $(THISFILE) clean
+
+#
+# This rule ensures the OverChat global build number (OBN) is updated before the main
+# codebase is built.
+#
+do_obn:
+	cd buildnum ; ./buildnum ../src/_buildnum.h

OVERCHAT.TR2

Binary file added.
+
+blake.c : overchat_config.h limits.h time.h stdio.h windows.h ddrptype.h blake.h blake_protocol.h 
+
+blake_cb.c : limits.h time.h stdio.h string.h overchat_config.h ddrptype.h blake.h blake_cb.h 
+
+blake_fastqueue.c : overchat_config.h assert.h stdlib.h string.h limits.h time.h stdio.h dpcrtlmm.h ddrptype.h blake.h blake_main.h 
+
+blake_ll.c : overchat_config.h assert.h limits.h time.h stdlib.h string.h stdio.h dpcrtlmm.h ddrptype.h blake.h 
+
+blake_main.c : overchat_config.h limits.h time.h stddef.h stdio.h string.h blake.rh ddrpbool.h ddrptype.h blake.h blake_protocol.h blake_portmutant.h blake_network.h dpcrtlmm.h blake_pendingloop.h blakedb.h blake_main.h 
+
+blake_network.c : overchat_config.h blake_socket.c 
+
+blake_nick.c : overchat_config.h string.h stdlib.h stdio.h ctype.h limits.h time.h dpcrtlmm.h ddrptype.h blake.h blake_main.h 
+
+blake_pendingloop.c : overchat_config.h stddef.h stdio.h limits.h time.h ddrptype.h blake.h dpcrtlmm.h blake_network.h blake_pendingloop.h 
+
+blake_portmutant.c : overchat_config.h assert.h limits.h stdio.h stdlib.h time.h string.h windows.h pthread.h errno.h ddrptype.h blake.h blake_main.h blake_portmutant.h 
+
+blake_portthread.c : overchat_config.h limits.h time.h windows.h unistd.h ddrptype.h blake.h blake_main.h 
+
+blake_protocol.c : overchat_config.h assert.h limits.h stdio.h stdlib.h string.h time.h ddrptype.h blake.h dpcrtlmm.h blake_protocol.h blake.h shitoptions.h server_globalid.h server_message.h blake_network.h 
+
+blake_socket.c : overchat_config.h assert.h sys/types.h sys/time.h stdio.h fcntl.h limits.h string.h windows.h winsock.h sys/socket.h sys/select.h netinet/in.h arpa/inet.h netdb.h unistd.h errno.h ddrpbool.h ddrptype.h blake.h blake_main.h blake_network.h 
+
+blakedb.c : overchat_config.h windows.h limits.h time.h stdio.h string.h stdlib.h ddrptype.h blake.h dpcrtlmm.h dlini.h blakedb.h 
+
+criticalinteger.c : overchat_config.h assert.h limits.h stddef.h stdio.h time.h ddrpbool.h ddrptype.h blake.h 
+
+dllclient.c : overchat_config.h limits.h time.h stdlib.h stdio.h ddrptype.h blake.h 
+
+queuetest.c : overchat_config.h stdio.h stdlib.h limits.h time.h signal.h ddrptype.h blake.h 
+
+recursivemutant.c : overchat_config.h stdio.h time.h limits.h stddef.h ddrptype.h blake.h 
+blake.c
+blake_cb.c
+blake_fastqueue.c
+blake_ll.c
+blake_main.c
+blake_network.c
+blake_nick.c
+blake_pendingloop.c
+blake_portmutant.c
+blake_portthread.c
+blake_protocol.c
+blake_socket.c
+blakedb.c
+criticalinteger.c
+dllclient.c
+queuetest.c
+recursivemutant.c

blake/DPCRTLMM.LOG

+DPCRTLMM: "Library started"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x1006ac88"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x1006ac98"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x1006aca8"
+DPCRTLMM: "Alloc(): Program Requested to allocate 272 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 272 bytes is at 0x0x1006acb8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006acb8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006ae00, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006ae00
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006ae40, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006ae40
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006ae28, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006ae28
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006aec0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006aec0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006ae68, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006ae68
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006ae90, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006ae90
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006af78, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006af78
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006aee8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006aee8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006af10, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006af10
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006af38, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006af38
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b068, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b068
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006afa0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006afa0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006afc8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006afc8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006aff0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006aff0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b018, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b018
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b040, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b040
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b1d0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b1d0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b090, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b090
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b0b8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b0b8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b0e0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b0e0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b108, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b108
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b130, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b130
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b158, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b158
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b180, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b180
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b1a8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b1a8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b3f0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b3f0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b1f8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b1f8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b220, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b220
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b248, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b248
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b270, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b270
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b298, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b298
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b2c0, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b2c0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b2e8, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b2e8
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x1006aca8"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x1006b310, descarray (0x0x1006aca8) was extended to hold a new descriptor
+Alloc() returns 0x0x1006b310
+Leaving..."
+DPCRTLMM: "Free(): Attempting release of block 0x0x1006af78 from array 0x0x1006aca8 . . ."
+DPCRTLMM: "Library started"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4030"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4040"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4050"
+DPCRTLMM: "Alloc(): Program Requested to allocate 272 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 272 bytes is at 0x0x80b5000, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b5000
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4060, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4060
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4070, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4070
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4080, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4080
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4090, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4090
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40a0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40a0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40b0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40b0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40c0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40c0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40d0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40d0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40e0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40e0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40f0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40f0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4100, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4100
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4110, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4110
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4120, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4120
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4130, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4130
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4140, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4140
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4150, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4150
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4160, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4160
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4170, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4170
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4180, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4180
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4190, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4190
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41a0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41a0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41b0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41b0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41c0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41c0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41d0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41d0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41e0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41e0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41f0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41f0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4200, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4200
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4210, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4210
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4220, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4220
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4230, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4230
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4240, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4240
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4250, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4250
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4260, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4260
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4270, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4270
+Leaving..."
+DPCRTLMM: "Library started"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4030"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4040"
+DPCRTLMM: "CreateBlockArray() returns base 0x0x80b4050"
+DPCRTLMM: "Alloc(): Program Requested to allocate 272 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 272 bytes is at 0x0x80b5000, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b5000
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4060, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4060
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4070, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4070
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4080, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4080
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4090, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4090
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40a0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40a0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40b0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40b0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40c0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40c0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40d0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40d0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40e0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40e0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b40f0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b40f0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4100, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4100
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4110, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4110
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4120, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4120
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4130, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4130
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4140, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4140
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4150, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4150
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4160, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4160
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4170, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4170
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4180, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4180
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4190, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4190
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41a0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41a0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41b0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41b0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41c0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41c0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41d0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41d0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41e0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41e0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b41f0, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b41f0
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4200, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4200
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4210, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4210
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4220, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4220
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4230, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4230
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4240, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4240
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4250, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4250
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4260, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4260
+Leaving..."
+DPCRTLMM: "Alloc(): Program Requested to allocate 4 byte block for array 0x0x80b4050"
+DPCRTLMM: "Alloc(): New block of 4 bytes is at 0x0x80b4270, descarray (0x0x80b4050) was extended to hold a new descriptor
+Alloc() returns 0x0x80b4270
+Leaving..."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4260 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4270 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4060 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4070 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4080 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4090 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40a0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40b0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40c0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40d0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40e0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b40f0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4100 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4110 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4120 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4130 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4140 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4150 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4160 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4170 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4180 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4190 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41a0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41b0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41c0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41d0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41e0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b41f0 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4200 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4210 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4220 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4230 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4240 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b4250 from array 0x0x80b4050 . . ."
+DPCRTLMM: "Free(): Attempting release of block 0x0x80b5000 from array 0x0x80b4050 . . ."
+DPCRTLMM: "DestroyBlockArray(): The array at base 0x0x80b4050 was destroyed"
+DPCRTLMM: "DestroyBlockArray(): The array at base 0x0x80b4030 was destroyed"
+DPCRTLMM: "DestroyBlockArray(): The array at base 0x0x80b4040 was destroyed"
+DPCRTLMM: "Library shutdown"
+#
+# Makefile for building the OverChat Blake library using GNU tools.
+# (C)Copyright 2001 Daybo Logic, all rights reserved.
+# Written and maintained by David Duncan Ross Palmer
+#  <Overlord@DayboLogic.co.uk>
+#
+
+THISFILE=Makefile.gnu
+# IPATH notes:
+# ../src is for reference to main source configuration files
+# . is a backward reference for those files to get to Blake headers
+# ../dpcrtlmm is because Blake relies on DPCRTLMM for debugging.
+# ../dlini is for the Daybo Logic INI support library
+IPATH=-I../src -I. -I../dpcrtlmm -I../dlini
+CC=gcc -g $(IPATH)
+ANSI=-ansi -pedantic -Wall
+
+OBJECTS=blake.o \
+        blake_cb.o \
+        blake_fastqueue.o \
+        blake_ll.o \
+        blake_main.o \
+        blake_network.o \
+        blake_nick.o \
+        blake_pendingloop.o \
+        blake_portmutant.o \
+        blake_portthread.o \
+        blake_protocol.o \
+        blake_socket.o \
+        blakedb.o \
+        criticalinteger.o \
+        recursivemutant.o
+
+RESFILES=res/btfuck.o \
+         res/ddrp00.o \
+         res/murder_microsoft.o
+
+all : blake_lib queuetest dllclient
+
+blake_lib : ../libblake.a
+
+blake_res:
+	cd res ; gmake -f $(THISFILE)
+
+queuetest : queuetest.o ../libblake.a ../dlini/libdlini.a
+	$(CC) -oqueuetest queuetest.o ../libblake.a ../dpcrtlmm/libdpcrtlmm.a ../dlini/libdlini.a -pthread
+
+dllclient : dllclient.o ../libblake.a
+	$(CC) -odllclient dllclient.o ../libblake.a ../dpcrtlmm/libdpcrtlmm.a ../dlini/libdlini.a -pthread
+
+../libblake.a : $(OBJECTS) blake_res
+	ar cru ../libblake.a $(OBJECTS) $(RESFILES)
+
+# General rule for all C files in Blake.
+.c.o:
+	$(CC) -c $(ANSI) $<
+
+# Specific overrides for C files which need special handling
+blake_portmutant.o : blake_portmutant.c blake.h
+	$(CC) -c blake_portmutant.c
+
+clean:
+	-$(RM) $(OBJECTS)
+	-$(RM) ../libblake.a
+	-$(RM) queuetest queuetest.o
+	-$(RM) dllclient dllclient.o
+	cd res ; gmake -f $(THISFILE) clean

blake/Makefile.bor

+# This Makefile builds the Blake library.  It's built
+# twice as a static library firstly and then a DLL.
+# This Makefile also builds and runs some tests.
+
+# Force 32-bit link
+CC=bcc32 -v
+RC=brcc32
+LINKER=ilink32
+ERASE=..\rmw32\rmw32
+
+THISFILE=Makefile.bor
+TMPLINKFILE=linkfile.tmp
+TMPLINKFILE2=liblfile.tmp
+MDF=blake.def.bor
+BLAKE=..\blake.lib
+DEF=
+DPCRTLMM_PATH=..\dpcrtlmm
+IPATH=-I$(DPCRTLMM_PATH) -I..\src -I..\dlini
+LINK=$(CC)
+COMPILE=$(CC) $(IPATH) $(DEF) $(CFLAGS) -c
+COPY=copy
+DPCRTLMM=..\dpcrtlmm\dpcrtlmm.lib
+
+BLAKE_OBJ=blake.obj \
+          blake_cb.obj \
+          blake_fastqueue.obj \
+          blake_ll.obj \
+          blake_main.obj \
+          blake_network.obj \
+          blake_pendingloop.obj \
+          blake_portmutant.obj \
+          blake_protocol.obj \
+          criticalinteger.obj \
+          recursivemutant.obj \
+          blakedb.obj \
+          blake_nick.obj \
+          blake_portthread.obj
+
+BLAKE_RES_OBJ=res\btfuck.obj \
+              res\ddrp00.obj \
+              res\murder_microsoft.obj
+
+all : # Too complicated the build as one rule, needs seperate building and recompilation of objects
+	$(MAKE) -f $(THISFILE) blakei_lib   # DLL built as a side effect dep 
+	$(MAKE) -f $(THISFILE) blake_lib
+	$(MAKE) -f $(THISFILE) tests
+	@echo $(USERNAME) built a working Blake system from source.
+
+blake_lib : ..\blake.lib
+
+blakei_lib : ..\blakei.lib
+
+blake_dll : ..\blake.dll
+
+..\blakei.lib : ..\blake.dll
+	@echo Generating Borland import library for blake.dll
+	implib -c -f ..\blakei.lib ..\blake.dll
+
+..\blake.lib : $(BLAKE_OBJ) blake_obj_res_dep
+	$(ERASE) ..\blake.lib
+	tlib ..\blake.lib +blake_cb.obj
+	tlib ..\blake.lib +blake_fastqueue.obj
+	tlib ..\blake.lib +blake_ll.obj
+	tlib ..\blake.lib +blake_main.obj
+	tlib ..\blake.lib +blake_network.obj
+	tlib ..\blake.lib +blake_pendingloop.obj
+	tlib ..\blake.lib +blake_portmutant.obj
+	tlib ..\blake.lib +blake_protocol.obj
+	tlib ..\blake.lib +criticalinteger.obj
+	tlib ..\blake.lib +recursivemutant.obj
+	tlib ..\blake.lib +blakedb.obj
+	tlib ..\blake.lib +blake_nick.obj
+	tlib ..\blake.lib +blake_portthread.obj
+	tlib ..\blake.lib +res\btfuck.obj
+	tlib ..\blake.lib +res\ddrp00.obj
+	tlib ..\blake.lib +res\murder_microsoft.obj
+
+blake_obj_res_dep:
+	cd res
+	$(MAKE) -f $(THISFILE)
+	cd ..
+
+..\blake.dll : $(BLAKE_OBJ) blake.res $(MDF) blake_obj_res_dep
+	echo $(MAKEDIR)\..\lib\c0d32.obj + > $(TMPLINKFILE)
+	echo btfuck.obj + >> $(TMPLINKFILE)
+	echo ddrp00.obj + >> $(TMPLINKFILE)
+	echo murder_microsoft.obj + >> $(TMPLINKFILE)
+	echo blake.obj + >> $(TMPLINKFILE)
+        echo blake_cb.obj + >> $(TMPLINKFILE)
+        echo blake_fastqueue.obj + >> $(TMPLINKFILE)
+        echo blake_ll.obj + >> $(TMPLINKFILE)
+        echo blake_main.obj + >> $(TMPLINKFILE)
+        echo blake_network.obj + >> $(TMPLINKFILE)
+        echo blake_pendingloop.obj + >> $(TMPLINKFILE)
+        echo blake_portmutant.obj + >> $(TMPLINKFILE)
+        echo blake_protocol.obj + >> $(TMPLINKFILE)
+        echo criticalinteger.obj + >> $(TMPLINKFILE)
+        echo recursivemutant.obj + >> $(TMPLINKFILE)
+	echo blakedb.obj + >> $(TMPLINKFILE)
+	echo blake_nick.obj + >> $(TMPLINKFILE)
+	echo blake_portthread.obj + >> $(TMPLINKFILE)
+	echo $(MAKEDIR)\..\lib\cw32mti.lib + > $(TMPLINKFILE2)
+	echo $(MAKEDIR)\..\lib\import32.lib + >> $(TMPLINKFILE2)
+	echo ..\dpcrtlmm\dpcrtlmm.lib + >> $(TMPLINKFILE2)
+	$(LINKER) -Tpd -v4.0 -ap -x @$(TMPLINKFILE), ..\blake.dll, blake.map, @$(TMPLINKFILE2), $(MDF), blake.res
+
+blake.res : blake.rc blake.rh
+	$(RC) blake.rc
+
+tests : queuetest
+
+queuetest : queuetest.exe
+
+queuetest.exe : queuetest.obj $(DPCRTLMM)
+	$(LINK) queuetest.obj $(BLAKE) $(DPCRTLMM)
+
+.c.obj:
+	$(COMPILE) $<
+
+clean : clean_blakeobj clean_res
+	$(ERASE) ..\blake.lib ..\blakei.lib ..\blake.dll
+	$(ERASE) _blakemakeconfig.h
+	$(COPY) _blakemakeconfig.default _blakemakeconfig.h
+
+clean_blakeobj:
+	$(ERASE) blake.obj
+	$(ERASE) blake_cb.obj
+	$(ERASE) blake_fastqueue.obj
+	$(ERASE) blake_ll.obj
+	$(ERASE) blake_main.obj
+	$(ERASE) blake_network.obj
+	$(ERASE) blake_pendingloop.obj
+	$(ERASE) blake_portmutant.obj
+	$(ERASE) blake_protocol.obj
+	$(ERASE) criticalinteger.obj
+	$(ERASE) recursivemutant.obj
+	$(ERASE) blakedb.obj
+	$(ERASE) blake_nick.obj
+	$(ERASE) blake_portthread.obj
+	$(ERASE) $(TMPLINKFILE) $(TMPLINKFILE2)
+	cd res
+	$(MAKE) -f $(THISFILE) clean
+	cd ..
+
+clean_res:
+	$(ERASE) blake.res

blake/Makefile.gnu

+#
+# Makefile for building the OverChat Blake library using GNU tools.
+# (C)Copyright 2001 Daybo Logic, all rights reserved.
+# Written and maintained by David Duncan Ross Palmer
+#  <Overlord@DayboLogic.co.uk>
+#
+
+THISFILE=Makefile.gnu
+# IPATH notes:
+# ../src is for reference to main source configuration files
+# . is a backward reference for those files to get to Blake headers
+# ../dpcrtlmm is because Blake relies on DPCRTLMM for debugging.
+# ../dlini is for the Daybo Logic INI support library
+IPATH=-I../src -I. -I../dpcrtlmm -I../dlini
+CC=gcc -g $(IPATH)
+ANSI=-ansi -pedantic -Wall
+
+OBJECTS=blake.o \
+        blake_cb.o \
+        blake_fastqueue.o \
+        blake_ll.o \
+        blake_main.o \
+        blake_network.o \
+        blake_nick.o \
+        blake_pendingloop.o \
+        blake_portmutant.o \
+        blake_portthread.o \
+        blake_protocol.o \
+        blake_socket.o \
+        blakedb.o \
+        criticalinteger.o \
+        recursivemutant.o
+
+RESFILES=res/btfuck.o \
+         res/ddrp00.o \
+         res/murder_microsoft.o
+
+all : blake_lib queuetest dllclient
+
+blake_lib : ../libblake.a
+
+blake_res:
+	cd res ; gmake -f $(THISFILE)
+
+queuetest : queuetest.o ../libblake.a ../dlini/libdlini.a
+	$(CC) -oqueuetest queuetest.o ../libblake.a ../dpcrtlmm/libdpcrtlmm.a ../dlini/libdlini.a -pthread
+
+dllclient : dllclient.o ../libblake.a
+	$(CC) -odllclient dllclient.o ../libblake.a ../dpcrtlmm/libdpcrtlmm.a ../dlini/libdlini.a -pthread
+
+../libblake.a : $(OBJECTS) blake_res
+	ar cru ../libblake.a $(OBJECTS) $(RESFILES)
+
+# General rule for all C files in Blake.
+.c.o:
+	$(CC) -c $(ANSI) $<
+
+# Specific overrides for C files which need special handling
+blake_portmutant.o : blake_portmutant.c blake.h
+	$(CC) -c blake_portmutant.c
+
+clean:
+	-$(RM) $(OBJECTS)
+	-$(RM) ../libblake.a
+	-$(RM) queuetest queuetest.o
+	-$(RM) dllclient dllclient.o
+	cd res ; gmake -f $(THISFILE) clean

blake/Makefile.ms

+# Microsoft Developer Studio Generated NMAKE File, Based on blake.dsp
+!IF "$(CFG)" == ""
+CFG=blake - Win32 Debug
+!MESSAGE No configuration specified. Defaulting to blake - Win32 Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "blake - Win32 Release" && "$(CFG)" != "blake - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "blake.mak" CFG="blake - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "blake - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "blake - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "blake - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+ALL : "$(OUTDIR)\blake.dll"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\blake.obj"
+	-@erase "$(INTDIR)\blake.res"
+	-@erase "$(INTDIR)\blake_cb.obj"
+	-@erase "$(INTDIR)\blake_fastqueue.obj"
+	-@erase "$(INTDIR)\blake_ll.obj"
+	-@erase "$(INTDIR)\blake_main.obj"
+	-@erase "$(INTDIR)\blake_network.obj"
+	-@erase "$(INTDIR)\blake_pendingloop.obj"
+	-@erase "$(INTDIR)\blake_portmutant.obj"
+	-@erase "$(INTDIR)\blake_protocol.obj"
+	-@erase "$(INTDIR)\btfuck.obj"
+	-@erase "$(INTDIR)\criticalinteger.obj"
+	-@erase "$(INTDIR)\ddrp00.obj"
+	-@erase "$(INTDIR)\murder_microsoft.obj"
+	-@erase "$(INTDIR)\recursivemutant.obj"
+	-@erase "$(INTDIR)\vc60.idb"
+	-@erase "$(OUTDIR)\blake.dll"
+	-@erase "$(OUTDIR)\blake.exp"
+	-@erase "$(OUTDIR)\blake.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /G4 /MT /W3 /GX /O2 /I "..\dpcrtlmm" /I ".." /D "NDEBUG" /D "BLAKE_EXPORTS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"$(INTDIR)\blake.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC_PROJ=/l 0x809 /fo"$(INTDIR)\blake.res" /d "NDEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\blake.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /dll /incremental:no /pdb:"$(OUTDIR)\blake.pdb" /machine:I386 /def:".\blake.def" /out:"$(OUTDIR)\blake.dll" /implib:"$(OUTDIR)\blake.lib" 
+DEF_FILE= \
+	".\blake.def"
+LINK32_OBJS= \
+	"$(INTDIR)\blake.obj" \
+	"$(INTDIR)\blake_cb.obj" \
+	"$(INTDIR)\blake_fastqueue.obj" \
+	"$(INTDIR)\blake_ll.obj" \
+	"$(INTDIR)\blake_main.obj" \
+	"$(INTDIR)\blake_network.obj" \
+	"$(INTDIR)\blake_pendingloop.obj" \
+	"$(INTDIR)\blake_portmutant.obj" \
+	"$(INTDIR)\blake_protocol.obj" \
+	"$(INTDIR)\btfuck.obj" \
+	"$(INTDIR)\criticalinteger.obj" \
+	"$(INTDIR)\ddrp00.obj" \
+	"$(INTDIR)\murder_microsoft.obj" \
+	"$(INTDIR)\recursivemutant.obj" \
+	"$(INTDIR)\blake.res" \
+	"..\dpcrtlmm\Debug\dpcrtlmm.lib"
+
+"$(OUTDIR)\blake.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "blake - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "$(OUTDIR)\blake.dll"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\blake.obj"
+	-@erase "$(INTDIR)\blake.res"
+	-@erase "$(INTDIR)\blake_cb.obj"
+	-@erase "$(INTDIR)\blake_fastqueue.obj"
+	-@erase "$(INTDIR)\blake_ll.obj"
+	-@erase "$(INTDIR)\blake_main.obj"
+	-@erase "$(INTDIR)\blake_network.obj"
+	-@erase "$(INTDIR)\blake_pendingloop.obj"
+	-@erase "$(INTDIR)\blake_portmutant.obj"
+	-@erase "$(INTDIR)\blake_protocol.obj"
+	-@erase "$(INTDIR)\btfuck.obj"
+	-@erase "$(INTDIR)\criticalinteger.obj"
+	-@erase "$(INTDIR)\ddrp00.obj"
+	-@erase "$(INTDIR)\murder_microsoft.obj"
+	-@erase "$(INTDIR)\recursivemutant.obj"
+	-@erase "$(INTDIR)\vc60.idb"
+	-@erase "$(INTDIR)\vc60.pdb"
+	-@erase "$(OUTDIR)\blake.dll"
+	-@erase "$(OUTDIR)\blake.exp"
+	-@erase "$(OUTDIR)\blake.ilk"
+	-@erase "$(OUTDIR)\blake.lib"
+	-@erase "$(OUTDIR)\blake.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /G4 /Gz /MT /W3 /Gm /GX /ZI /Od /I "c:\overchat" /I "c:\overchat\dpcrtlmm" /I "..\dpcrtlmm" /I ".." /D "_DEBUG" /D "BLAKE_AS_DLL" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"$(INTDIR)\blake.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 
+RSC_PROJ=/l 0x809 /fo"$(INTDIR)\blake.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\blake.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /dll /incremental:yes /pdb:"$(OUTDIR)\blake.pdb" /debug /machine:I386 /def:".\blake.def" /out:"$(OUTDIR)\blake.dll" /implib:"$(OUTDIR)\blake.lib" /pdbtype:sept 
+DEF_FILE= \
+	".\blake.def"
+LINK32_OBJS= \
+	"$(INTDIR)\blake.obj" \
+	"$(INTDIR)\blake_cb.obj" \
+	"$(INTDIR)\blake_fastqueue.obj" \
+	"$(INTDIR)\blake_ll.obj" \
+	"$(INTDIR)\blake_main.obj" \
+	"$(INTDIR)\blake_network.obj" \
+	"$(INTDIR)\blake_pendingloop.obj" \
+	"$(INTDIR)\blake_portmutant.obj" \
+	"$(INTDIR)\blake_protocol.obj" \
+	"$(INTDIR)\btfuck.obj" \
+	"$(INTDIR)\criticalinteger.obj" \
+	"$(INTDIR)\ddrp00.obj" \
+	"$(INTDIR)\murder_microsoft.obj" \
+	"$(INTDIR)\recursivemutant.obj" \
+	"$(INTDIR)\blake.res" \
+	"..\dpcrtlmm\Debug\dpcrtlmm.lib"
+
+"$(OUTDIR)\blake.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ENDIF 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("blake.dep")
+!INCLUDE "blake.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "blake.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "blake - Win32 Release" || "$(CFG)" == "blake - Win32 Debug"
+SOURCE=.\blake.c
+
+"$(INTDIR)\blake.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_cb.c
+
+"$(INTDIR)\blake_cb.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_fastqueue.c
+
+"$(INTDIR)\blake_fastqueue.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_ll.c
+
+"$(INTDIR)\blake_ll.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_main.c
+
+"$(INTDIR)\blake_main.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_network.c
+
+"$(INTDIR)\blake_network.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_pendingloop.c
+
+"$(INTDIR)\blake_pendingloop.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_portmutant.c
+
+"$(INTDIR)\blake_portmutant.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake_protocol.c
+
+"$(INTDIR)\blake_protocol.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\res\btfuck.c
+
+"$(INTDIR)\btfuck.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\criticalinteger.c
+
+"$(INTDIR)\criticalinteger.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\res\ddrp00.c
+
+"$(INTDIR)\ddrp00.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\res\murder_microsoft.c
+
+"$(INTDIR)\murder_microsoft.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\recursivemutant.c
+
+"$(INTDIR)\recursivemutant.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\blake.rc
+
+"$(INTDIR)\blake.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+
+!ENDIF 
+

blake/_blakemakeconfig.default

+#error ("Please configure Blake build options with blakemake before continuting the build")

blake/_blakemakeconfig.h

+#error ("Please configure Blake build options with blakemake before continuting the build")

blake/blake.DSW

Binary file added.

blake/blake.OBR

Binary file added.
+Attribute VB_Name = "Blake"
+'/*
+'  Blake library.
+'  (C)2001 David Duncan Ross Palmer, Daybo Logic, all rights reserved.
+'  http://www.daybologic.co.uk
+'
+'  Blake is a protocol for talking to OverChat servers.  All clients
+'  should use this library to talk to the server(s).  Full documentation
+'  for the use of this shared library is at this address:
+'  http://www.daybologic.co.uk/overchat/blake.html
+'
+'Maintainer:
+'  David Duncan Ross Palmer <Overlord@DayboLogic.co.uk>
+'
+'  Portions of the protocol were designed by
+'  Total Konfuzion <totalk@daybologic.co.uk>
+'
+'  Disassembly of the internal workings of the protocol are prohibited.
+'
+'  This Visual Basic module is a port from blake.h (converted by hand)
+'  I hope as many details are true to the original header as possible but
+'  one should note that not all things possible in C are possible in VB
+'  without severe redesign and so some elements of the functionally of the
+'  original DLL have been omitted.
+'
+'  This file is not for public consumption and contains internal trade
+'  secrets of Daybo Logic and must not be published on the World Wide Web
+'  or any internal protocol or publication.
+'*/
+'
+'/*-------------------------------------------------------------------------*/
+'// VB packs all structures on 32-bit boundries.  Let's hope
+'// blake.dll was built sanely
+
+'/*
+'  The Blake protocol, servers and clients rely on some fixed settings
+'  which everybody should be aware of globally.  They are not config-
+'  urable so don't change them unless rebuilding the entire OverChat
+'  project.  Changes to the values must then be documented in internal
+'  Blake documentation.
+'*/
+Const OVERCHAT_NICK_LIMIT = 32
+Const OVERCHAT_PASS_LIMIT = 32
+Const OVERCHAT_ROOMNAME_LIMIT = 20
+Const OVERCHAT_CHUMGROUPNAME_LIMIT = 128
+
+'/*
+'  Any of these error codes can be returned by Blake functions:
+'*/
+Public Enum blakeError
+  blakeSuccess = 0
+  blakeNotEnoughMem = 1     '/* Not enough memory to complete the operation */
+  blakeInvalidParam = 2     '/* Passed parameters were not acceptable */
+  blakeNoCallback = 3       '/* No callback could process the packet or event */
+  blakeCallbackFail = 4     '/* The callback routine returned failure */
+  blakeBufferTooSmall = 5   '/* The buffer supplied was not large enough */
+  blakeNotStarted = 6       '/* This means blake_Init() was not called, don't rely on this, some functions may not check that blake_Init() was called. */
+  blakeProtoNoSupport = 7   '/* The network protocol is not supported */
+  blakeBindFailure = 8      '/* The sockets routine bind() failed */
+  blakeConnRefused = 9      '/* Connection the the remote end was refused. */
+  blakeTimedOut = 10        '/* The connection timed out or was firewalled */
+  blakeNetDown = 11         '/* The network is down */
+  blakeUnknownNetError = 12 '/* The network error is unknown or unhandled, report the code to DDRP */
+  blakeRegAlready = 13      '/* Something was already registered */
+End Enum
+
+Public Enum blakeExchange '/* AIM-like codes for different exchange virtual servers.  Used for chats */
+  allRooms = 0            '/* Not normally acceptable, works for kill */
+  guestRooms = 1          '/* Rooms reserved for guests, normal users may NOT enter this area */
+  generalRooms = 2        '/* General rooms open to all users */
+  operatedRooms = 3       '/* Guests cannot enter these areas, here, operators may kick people from rooms */
+  administrativeRooms = 4 '/* Reserved for operators, administrators and DDRP */
+  debugRooms = 5          '/* Debugging only. these rooms may be unstable and include new features or testing stuff */
+End Enum
+
+Public Enum blakeServerCodes '/* Codes sent from the server to the client(s) */
+  bscsuspend = 0             '/* Client should shut up until we tell it to speak */
+  bscresume = 1              '/* Client may speak */
+  bscchallenge = 2           '/* Client must authenticate */
+  bscgoterror = 3            '/* For sending an error code to the client */
+  bsclist_response = 4       '/* For sending a list of users to a client */
+  bscwhois_info = 5          '/* For sending whois info back to a client */
+  bscversioned = 6           '/* Delivery of version info in response to a version packet */
+  bscsuper = 7               '/* Privelledged granted to user */
+  bsckilled = 8              '/* You are about to be disconnected by another user */
+  bscchum_signon = 9         '/* One of your chums just signed on */
+  bscchum_signoff = 10       '/* One of your chums just signed off */
+  bscchum_idle = 11          '/* One of your chums went into or came out of an idle state */
+End Enum
+
+Public Enum blakeClientCodes '/* code sent from the client(s) to the server */
+  bcclogin = 0               '/* Respond to an authentication challenge */
+  bccsuper_request = 1       '/* Request privelleged (could well be refused!) */
+  bccadd_wanker = 2          '/* Block an anoying user */
+  bccnot_wanker = 3          '/* Unblock a user */
+  bccjoin_chat = 4           '/* Attempt to join a group chat (may not be suppoed by the server) */
+  bcclist = 5                '/* Multipurpose request for a list of users */
+  bcckilluser = 6            '/* Kills a user (requires privelledges) */
+  bcckillchat = 7            '/* Somewhere along the lines of "punting chatroom" as those morons on AOL would say */
+  bcckick = 8                '/* Kicks users from chats, server admins or room ops only */
+  bccreserved0 = 9           '/* This one's reserved for my later usage */
+  bccnonsense0 = 10          '/* Completely bogus code */
+  bccversion = 11            '/* Request server version */
+  bccmessage = 12            '/* Send an instant message (or offline message) to a user */
+  bccchatmsg = 13            '/* Send a message to a chat room (must ibe in the chat and with voice privelledge) */
+  bccwhois = 14              '/* Get details of any user */
+  bccundocumented0 = 15      '/* A secret backdoor ;) */
+  bccremoteshutdown = 16     '/* Remote server maintainance code */
+  bccchum_add = 17           '/* Adds a chum to keep in contact with */
+  bccchum_remove = 18        '/* Removes a chum, terrible pitty */
+  bccidle = 19               '/* Come out of or enter an idle state */
+End Enum
+
+
+Public Enum blakeErrorCodes  '/* These error are returned with serverCodes::goterror type packets */
+  becno_more_wankers = 0     '/* Out of space for storing wankers */
+  becyou_be_minion = 1       '/* You are a minion.  Privelledges denied */
+  becchat_full = 2           '/* You chat is full (if chat has limited space) */
+  beckill_deny_admin = 3     '/* You may not kill the server administrator */
+  beckill_deny_code = 4      '/* You may not kill the server programmer (DDRP) */
+  becdenied = 5              '/* You may not perform that action, you have no privelledge */
+  becnot_op = 6              '/* You are not channel operator */
+  becserver_kill = 7         '/* The server killed the user for an undisclosed reason */
+  becprotocol_mistake = 8    '/* The server killed you for improperly using the protocol */
+  becnosuchchum = 9          '/* The said person is not your chum */
+  becchumspace = 10          '/* No more chums may be added */
+  becchumalready = 11        '/* Said shum already a chum even if in another group */
+End Enum
+
+'/* Declaration of fixed type blake_byte_t */
+Public Type blake_byte_t
+  data As String * 1
+End Type
+
+'/* Declaration of fixed type blake_word8_t */
+Public Type blake_word8_t
+  data As String * 1
+End Type
+
+'/* Declaration of fixed type blake_word16_t */
+Public Type blake_word16_t
+  data As Short
+End Type
+
+'/* Declaration of fixed type blake_word32_t */
+#If Win16 Then
+  Public Type blake_word32_t
+    data As Long
+  End Type
+#Else '// 32-bit
+  Public Type blake_word32_t
+    data As Integer
+  End Type
+#End If
+
+'/*
+'  IP type.  Don't access this directly, use Blake routines to promote
+'  porting to IPv6 when the time comes.
+'*/
+#If OVERCHAT_IPV6 Then
+  Rem I don't know how to handle IPv6!
+#Else
+  Public Type OVERCHAT_IP
+    parts(4) As blake_byte_t '// This should be compatible with Blake but don't touch it
+  End Type
+#End If
+
+Public Type blake_ver_t              '/* Generic version number type */
+  major As blake_word8_t
+  minor As blake_word8_t
+  patch As blake_word8_t
+End Type
+
+Public Type blakeSuspend
+  dummy_time As blake_word32_t '/* Ignore, false */
+End Type
+
+Public Type blakeResume
+  Reserved As blake_word32_t '/* Just so this compiles really but I could use it later */
+End Type
+
+Public Type blakeChallenge
+  secs As blake_word16_t     '/* Maximum time for client to AUTH before client is killed */
+  Reserved As blake_word32_t '/* Send zero for now */
+End Type
+
+Public Type blakeGotError
+  errnum As blake_word16_t      '/* Error code */
+  otherNumber As blake_word16_t '/* Any old number will do to frustrate backward engineering */
+  Reserved As blake_word8_t     '/* Must be zero */
+  nonsense(10) As blake_byte_t  '/* This nonsense will be confusing <grin> */
+  fixed As blake_word16_t       '/* Must be 0x70b0 */
+End Type
+
+Public Type blakeListResponse
+  thread_id As blake_word32_t                   '/* A number so clients don't get confused between chats etc */
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* Any unused space should be padded with NULLs, the user is sent a user's handle */
+End Type
+
+Public Type blakeWhoisInfo
+  thread_id As blake_word32_t
+  usingIpv6 As blake_word8_t    '/* Hopefully zero until I can handle this, most clients won't be happy if this is TRUE */
+  IP As OVERCHAT_IP             '/* Stores an IP address, it's up to clients to DNS lookup if they want to */
+  clearance As blake_word8_t    '/* Security clearance level */
+  warning As blake_word8_t      '/* Percentage warning ( if too high person is killed ) */
+  limited As blake_word8_t      '/* Current rate limiter level */
+  invisible As blake_word8_t    '/* Some users can't see this person */
+  invinsible As blake_word8_t   '/* This person cannot be killed, this is generally reserved for internal server issues */
+  memberSince As blake_word32_t '/* Time and date that person began using the service with this nick */
+  onlineSince As blake_word32_t '/* Time and date that person is online since this session */
+  idleSince As blake_word32_t   '/* Time and date that person last fired a server event, idle time can be calculated with this and onlineSince */
+End Type
+
+Public Type blakeVersioned
+  server As blake_ver_t               '/* Server's version */
+  os_description(256) As blake_byte_t '/* Description of operating system */
+  os As blake_ver_t                   '/* Operating system's version */
+End Type
+
+Public Type blakeSuper
+  clearance As blake_word8_t '/* The super powers given (security clearance level) */
+End Type
+
+Public Type blakeKilled
+  username As String * OVERCHAT_NICK_LIMIT '/* The user who killed you */
+  '/* A message will follow after the packet from the user who killed you */
+End Type
+
+Public Type blakeChumSignon
+  username As String * OVERCHAT_NICK_LIMIT '/* The user who signed on who is your chum */
+  groupname As String * OVERCHAT_CHUMGROUPNAME_LIMIT '/* The group name to which they belong (no more than one group supported per chum) */
+End Type
+
+Public Type blakeChumSignoff
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* The user who signed off who is your chum */
+  secs_on As blake_word32_t                     '/* How many seconds the user was loggedd in for */
+End Type
+
+Public Type blakeChumIdle
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* The user who went idle or came back */
+  back_flag As blake_byte_t                     '/* If this is nonzero the user came back, if zero they went idle */
+  idle_secs As blake_word32_t                   '/* Seconds idle, calculated by the server internal information regardless of the back_flag or the idle state indicator */
+End Type
+
+Public Type blakeLogin                            '/* Client side */
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t   '/* Your username, use padding, no NULL terminator is full length */
+  password(OVERCHAT_PASS_LIMIT) As blake_byte_t   '/* Your password (sorry it's plaintext at the moment).  Same format as above */
+  language As blake_byte_t                        '/* This will be supported in the future, at the moment it's zero, meaning English (of course) */
+End Type
+
+Public Type blakeSuperRequest
+  level As blake_word8_t         '/* The level you want to request, may be rejected */
+End Type
+
+Public Type blakeAddWanker
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* The user who you wish to block */
+  blocktime As blake_word32_t                   '/* how long to block the user (not gaurenteed absolutely accurate), retained between sessions, 0 for forever */
+End Type
+
+Public Type blakeNotWanker
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t  '/* Remove a user from your list of blocks */
+End Type
+
+Public Type blakeJoinChat
+  chatname(OVERCHAT_ROOMNAME_LIMIT) As blake_byte_t '/* Names the chat to join, pad with zeros, no NULL terminator */
+  dummy As blake_byte_t                            '/* Set to 0x55 */
+  random As blake_word16_t                         '/* Set to any old crap */
+  Reserved As blake_word16_t                       '/* Reserved, set to zero */
+  exchange As blakeExchange                        '/* AIM-like exchange number */
+End Type
+
+Public Type blakeList
+  type As blake_word8_t                             '/* 0 people, 1 chats */
+  meaningless As blake_word16_t                     '/* Ignore this */
+  exchange As blakeExchange                         '/* Setting to anything other than 0 when listing people will result in a kill */
+  chatname(OVERCHAT_ROOMNAME_LIMIT) As blake_byte_t '/* Names the chat to list users from, if not totally NULLs on type 0 you will be killed */
+  thread_id As blake_word32_t                       '/* Will be returned in reply */
+End Type
+
+Public Type blakeKillUser
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t     '/* User's nick */
+  IP As OVERCHAT_IP                                 '/* An alternative, preferred */
+  '/* Message follows fixed packet structure */
+End Type
+
+Public Type blakeKillChat
+  chatname(OVERCHAT_ROOMNAME_LIMIT) As blake_byte_t  '/* Chatroom name */
+  exchange As blakeExchange                          '/* the exchange on which the chat resides or allRooms */
+End Type
+
+Public Type blakeKick
+  '/* To prevent false server kills if username or chatname don't exist we ignore the packet */
+  username(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* Name of user */
+  chatname(OVERCHAT_NICK_LIMIT) As blake_byte_t '/* Name of chat room on a specific... */
+  exchange As blakeExchange                     '/* exchange number.  May not be allRooms */
+  dummy As blake_word16_t                       '/* 0x6714 or 0x1177 */
+End Type
+