home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
- BlueBEEP v1.00 Final Release
- Source Code Documentation
- Docs and source (C) 1991-1995 Onkel Dittmeyer
-
- - Released to the public April 1st, 1995 -
-
-
-
- PURPOSE OF THIS FILE
-
- Pursuant to the USC Paperword Reduction Act, we have to tell you what
- this file is all about (nawt). It is an open letter to the potential haqr
- who wants to go ahead and mod the code. This should enlighten you a bit
- on what I was thinking when I made it and how it is organized. The code
- is TP 6.0 w/ a modded turbo.tpl (for speed). If you can't understand it
- because you can't code or just started learning how to use Pascal, fuck
- off. This is fucking advanced. Get with it.
-
- SOMETHING FIRST OFF..
-
- First off, I want to say that I do not release this code so you lamer
- puppies out there can put your name in it and spread it around. Since
- BlueBEEP is everywhere already anyway, it's not like people wouldn't
- notice, and all it would do for you is make your handle associated with
- leym, uneleet behaviour all along. This source is being published so
- people that know what they're doing can start adding new features, make
- improvements and port this code to machines other than PC clones. It is
- not there so you can steal the parts of the code you like and make your
- own programs without giving me proper credit. I spend a hell of a lot of
- time, sweat and effort on every single of those roughly 10,000 lines of
- code, and all I am asking for is the proper respect: Whenever you use any
- part of this code, mention my handle and say that I wrote this and that
- part of it. Then send me some email at onkeld@planet.net and let me know
- that you released a program that contains a part of my code. Uuencode me
- a copy if you can. That's it. I am not asking for much. Just ripping my
- code would be lame, childish, and illegal. And I guess I do not have to
- mention that no part of this code or the program can be sold, used in any
- commerical projects, or otherwise used for the purpose of personal
- prosperity. If you like the way I code, hire me. I'm young, so I'm cheap.
- But I'm greedy too; you have been warned.
-
-
- ABOUT THE CODE
-
- Right here comes a little bit of info about the actual code files. The
- overlay files and the standard config etc are covered later in this doc.
- This covers the actual libs and includes you need to generate the initial
- bluebeep.exe BEFORE it is packed and the overlays are added.
-
- A little information on the whole process in general first: The final
- BlueBEEP executable is generated in four steps. The script build.bat
- takes care of it. First, bluebeep.pas and all the libraries are compiled
- and linked into bluebeep.exe. Then that .exe is packed and the size of
- the file has to be integrated into the overlay manager constant in
- bbp_vars.pas. Then, it is compiled again with the new info, linked,
- packed (with either lzexe or pklite), if pklite is used, the pklite
- header info is stripped. After that, the overlay manager tool sostool.exe
- throws all the necessary extra files (such as keys, default configs, dial
- sets, and .voc files) into the .exe and the distributable, final, big
- bluebeep.exe file is created. Any attempts in running bluebeep.exe before
- the whole process is done or leaving anything out is inevitably going to
- result in a nasty machine crash.
-
-
- THE SOURCE FILES
-
- a------bbp_bsli.pas 4658 3/23/94 14.10 source\
-
- This file is the BlueBEEP Script Language Interpreter. I hacked it up
- in a very short time and it is not anything yet. Note to the hacker: This
- could use some extra functions, variable support, etc. This is probably
- one of the biggest expansion potentials for new version that could be
- made.
-
- a------bbp_conv.pas 3334 2/12/94 20.51 source\
-
- Conversion lib. This has two conversion routines in it; the one to
- convert the color coded docs into an indexed plaintext file, and the one
- to convert the country code list (c-code.lst) into the data file
- bluebeep.ccd. Should be working perfectly, and doesn't need any
- improvements/fixes. Add any external file converting crap to this lib.
-
- a------bbp_info.pas 7748 4/25/94 23.39 source\
-
- Handles all of the "Information" menu (doc reader, key export). Works.
- The doc reader is known to have some very minor bugs, and it could use an
- out of memory check (easy, I'm just too lazy to put it in :))
-
- a------bbp_init.pas 21233 3/20/95 23.38 source\
-
- This unit has the main routine initialize() which does all the loading
- and initializing when the program is first started, along with all of its
- dependants. Whenever you add new stuff, make sure you add all the
- necessary initialization routines (loading, allocating memory) here. If
- command line parameters are used, the appropriate routine from bbp_pom
- would be launched from here.
-
- a------bbp_pom .pas 68229 3/20/95 23.29 source\
-
- Phreak Out Menu. Contains the juiciest bits of the code; the action
- mode (which means the actual dialer), the red box, the k0de/routing
- scanner, fonewerd and all the other crap. The Action Mode could use a
- good, index-based help system. Otherwise, it's fine.
-
- a------bbp_proc.pas 29044 4/11/94 00.20 source\
-
- This lib contains most of the general utility functions and procedures;
- BlueBEEP-specific tool routines and maintenance stuff goes here.
-
- a------bbp_set .pas 41580 3/20/95 23.34 source\
-
- This contains the complete setup routines and menus. Note that all the
- types are defined in bbp_vars and all the initializing is done in
- bbp_init. Werd. The CardChecker needs a new setup (it got fried in the
- big crash of '93), otherwise, it's k00l.
-
- a------bbp_tool.pas 12968 3/20/95 22.57 source\
-
- The Tools menu. Phonebook import/export, starfield, that kind of stuff.
- Basically just code to import files from other dialers. Boring. Could need
- some additions for new dialers and terminals to import their phonebooks.
-
- a------bbp_vars.pas 16859 3/20/95 23.42 source\
-
- All of the variables, types, file structures and constants are defined
- here. This is probably the most important part of the code because
- everything except local (temporary) variables is defined here. Carefully
- read through it, it's going to give you a lot of insight how the code
- works. If you add more global variables, make sure you add them here so
- they can also be used globally. Pascal has a 64k limit on the data
- segment, so be picky about what you declare global and what not. If you
- need large variables, consider using pointers blah blah blah...
-
- a------bbunit .pas 4984 4/25/94 22.29 source\
-
- This is the lib that actually squeezes the tones out of the adlib chip.
- Also does the initializing. If you want to add support for other sound
- cards, do it here. Gee, I wish Pascal supported function overloading!
- Credit for most of this lib goes to Urmel (author of TLO, who wrote this
- stuff from the AdLib card Programmers Manual) and Elroy/ECR (who stole it
- from Urmel and tRaD3d it to me).
-
- a------bitmani .pas 2470 11/05/93 18.38 source\
-
- Tiny little lib that enables you to play with the individual bits in
- almost any type of variable. Simple, basic, and perfect. Good to use
- because it makes the code easier to read. Pascal's bitwise operates suck,
- anyway.
-
- a------bluebeep.pas 2238 3/20/95 23.14 source\
-
- The main code. It's actually very short and does NOT need any changes
- 99% of the time. Gee, I am so proud of it :)
-
- a------bsli .pas 1771 2/15/94 14.25 source\
-
- External version of the BlueBEEP Script Language Interpreter. Has not
- been used since 0.06 or so. Check it out, if you improve the script
- language you should definitely keep this up to date, too. In the case of
- the bsli unit, it will keep up to date automatically (dependent).
-
- a------chksum .pas 850 5/04/94 01.53 source\
-
- St00pid checksum routines I wanted to implement into the code time.
- Gee, I hope you can come up with something better than this! Not actually
- needed to compile the prog as of now. (Doug, you'll be laughing at this!
- Actually, any checksum/crypto freak will burst out laughing over this
- code. Don't bitch at me. I am just 1aYm.)
-
- a------editrout.pas 7323 11/23/93 23.30 source\
-
- The edit fields for all the variables (strings, integers, words, etc).
- An important part of my user interface I am proud of. Werd. Supports
- cursor keys, ins/del, etc. If have a useful idea on how to improve it, go
- ahead. Don't fuck with it for no apparent reason if you can discipline
- yourself.
-
- a------errcheck.pas 907 3/09/94 07.04 source\
-
- Little external tool that HAS to be compiled before you can run the
- build script. Checks the tpc.exe log for errors and invokes the editor
- for the appropriate file if there is one. Helps you out of typos without
- major hassles (managing big projects with TP is a real bitch).
-
- a------extras .pas 21532 3/23/94 15.28 source\
-
- A lib of tiny goodies and utility functions I started when I was 12 and
- that I improved and rewrote many times every since. However, I can
- guarantee you that you will stumble over some REALLY childish code in
- there sooner or later. You have been warned.
-
- a------ferror .pas 521 2/12/94 19.31 source\
-
- Fatal Error handling for BlueBEEP. Plain and simple. No comment.
- Doesn't need anything. Unless Windows, I didn't feel intrigued to add
- .wav support so I can play stupid samples when the prog crashes. Even if
- you're compelled, don't. There's more useful stuff in the world that you
- could spend your time on.
-
- a------grmenus .pas 4595 3/24/94 23.41 source\
-
- The menu system. It's called grmenus because all the menus were set
- fixed to green before I added the multiple color set support. Talking
- about color, making the color for every class of item individually
- adjustible would be neat. Add it to bbp_set if you think that it would
- make sense. I actually started coding a neat little menu for this; e-mail
- me if you want to finish it; I didn't want to improve fragments and
- little useless code-bits with this release.
-
- a------grwins .pas 3378 3/25/94 02.23 source\
-
- (Zooming) windows. Straightforward, no-bullshit code to draw square
- windows with colored frames. Works, is fast and never fails.
-
- a------keyunit .pas 743 11/21/93 21.01 source\
-
- The key system for the keys you give to beta testers. It's kinda lame,
- not even remotely secure but lamer- and warezd00d-safe, and not really
- complex. If you want to use a code, you have to fill it into the
- appropriate space in bbp_vars and recompile the whole program. The
- resulting .exe will be personalized only for your beta tester and
- requires a handle and a password to start it up. Using the voice number
- the beta tester as the password is usually good enough to keep them from
- spreading the beta around. Since the phone number is not stored anywhere
- (just the resulting key), it's hard to hack it as well. If you give out
- betas and wanna keep 'em private, you can use this code as a foundation
- to develop a better system.
-
- a------litefix .pas 841 3/20/94 02.08 source\
-
- Tiny program to change the (C) PKWAREZ note in pklited .exe files into
- a custom message you can specify. If you use pklite instead of lzexe to
- pack BlueBEEP, this will, through the build script, automatically take
- care of it so you can spend the time you would use on patching it with a
- hex editor on the finer things of life.
-
- a------lscomm .pas 18206 3/14/94 02.57 source\
-
- Litespeed comm unit. It's buggy and it sucks. Based on some PD code and
- slightly modified. Use a better comm unit or completely rewrite this crap
- when you get a chance to (won't werk with certain com ports, etc.)
-
- a------menus .pas 2715 10/05/93 12.46 source\
-
- More menu routines. All of the menu routines in BlueBEEP have the
- option of default choices and mouse support. If you want to integrate a
- new way of interfacing with the program, making changes to those
- fundamental routines will have effects on the program as a whole. The
- wonders of oop. Wewp.
-
- a------mouseio .pas 2299 3/24/94 23.21 source\
-
- Mouse interface routines. A bundle of functions I first wrote years ago
- and then gradually made changes and/or bugfixes to it. Should be bug free
- and complete by now. Don't fuck with it unless you know what you're doing
- because most of those are interrupt routines.
-
- a------optimer .pas 1998 10/05/93 12.34 source\
-
- A timer unit that is mostly used to control delays and timing before
- and after tones, tone durations, dialing speeds and delays and so on.
- Came with bbunit and is hence obviously a courtesy of Urmel. I am using
- this because it's way more precise than the delay() routines that Borland
- provides, and we all know how crucial timing is when you're out there
- trying to get that break right..
-
- a------pdial .pas 5933 11/05/93 18.44 source\
-
- The pulse dialing routines for the pulse dial / line interface. Simple,
- straightforward and bug free.
-
- a------sbvoice .pas 7790 3/20/95 23.53 source\
-
- Soundblaster .voc tools such as playback, recording, loading, etc. Used
- by the card talker and everything else in BlueBEEP that uses voc files
- and samples. You could add better memory management. Except for that,
- it's almost perfect. Wrote it myself from scratch, and it took a lot of
- time to piece together all the required info about the driver and such.
- If you want to use it in your own progs, credit me (see top of file).
-
- a------sos .pas 10057 4/25/94 22.27 source\
-
- The Smart Overlay System, another innovative idea by me. Allows you to
- keep all your data in the .exe file and cheating your code into believing
- that they are still external files. Replaces the routines for opening,
- closing, reading from and writing to files and hence opens you a door to
- making all your config and data files completely invisible. Didn't you
- ever wish that some of the commercial programmers used stuff like this so
- they didn't have to litter your hard drive with ten million files? Well,
- I did. That's why I coded this. You are highly encouraged to use this in
- your own programs as long as you give me credit. Could use a function to
- delete files out of the overlay (another one of those things that are
- obvious but which I am too lazy to implement).
-
- a------sostool .pas 799 4/17/94 19.26 source\
-
- A little tools which takes advantage of the sos lib and allows you to
- add, list and browse the files in an overlay. This has to be compiled
- before you can compile BlueBEEP because build.bat uses it to create the
- final .exe file.
-
- a------types .pas 590 11/06/93 17.20 source\
-
- Definition of a couple of weird data types I use. Generally, you should
- add BlueBEEP-specific type definitions to bbp_vars, but if you add a
- generic type that you might use later in something else, put it here.
-
- a------vgagraph.pas 1870 2/12/94 21.20 source\
-
- Cheap and slow routines to interface with the VGA card in MCGA mode
- (320x200x256). Used by the star field and some of my older intros.
-
- a------video .pas 1369 11/05/93 22.12 source\
-
- Handles the detection and adressing of color/mono text cards. Upon
- startup, it automatically detects what kind of card you have installed so
- all the direct writes to the video RAM can be adressed properly. I think
- the autodetection still fails sometimes, but I am not sure. Works on 99%
- of the system I tested it on.
-
- a------bbp_bart.inc 22215 3/20/95 23.45 source\inc\
- a------bbp_logo.inc 21934 3/20/95 23.46 source\inc\
- a------bbp_tkom.inc 5589 3/20/95 23.47 source\inc\
-
- Those three include files are the video ram images of the ANSIs that
- are displayed throughout the program; the Bart Simpson screen, the
- BlueBEEP logo, and the Telekom logo. If you are modifying these, make
- sure you use TheDraw and save it as pascal code. Then just don't forget
- to update the identifier names. And if you want to free up some data
- segment space during expansion work on the source, these are some
- potential data segment memory munchers that you could zap.
-
-
-