Vibes Is a Basic Environment System

Download decb


Welcome to vibes, the simulator the PDP-10 Operating system, the BASIC interface and the DEC-20 BASIC; at present, only decb, the BASIC interpreter, is available.


Available documentation (which is contained into the downloadable package and is linked here for your convenience):


The decb executable, before use, must be compiled and installed. I suggest the following very easy procedure in 4 steps (use the terminal):

1) Copy the package somewhere, and unpack it; it will unpack into a directory named decb.1.0.XXX.src;

2) Now, choose a directory in your path, where executables will be saved; let's assume it's ~/bin (that is the subdirectory /bin in your Home directory, but you can choose any). Edit the Makefile to customize addresses for decb (e.g., among the rest, change the install directory to ~/bin, commenting the undesired destinations and leaving uncommented ONE ONLY valid destination) using the destination directory you chose.

3) get into decb source directory and type the following (be sure to have gcc installed - Note: I compiled dib under gcc 4.X, I believe all 3.X versions will work, but I don't guarantee it):

$ make
$ make install

(the latter may require root privileges if you try to install decb into system directories, as suggested by default in the Makefile).

For Mac Users: in case you want to install dib into some system directory (e.g. /user/local/bin), remember that root privileges are not required, as long as you can access an administrative login: in this case, after make, login as an administrator with

$ su <name>

(being <name> the username of the administrator) - you will be requested of a password - and then install the software with

$ sudo make install
$ exit

4) now type the following to test the correct installation:

$ decb --help

This shows the basic features of decb, and you're done! The USER/ directory is full of ready-to-run examples; read the readme files, before.

Download decb

Version 1.0.beta History 5 (November 30, 2019)

Continued thanks to Ian Jones (I can reveal his full name, after the incredible success of tbas, my console BASIC interpreter); I confirm here the fact that he's a great great friend.
Ian and I are the decb team!

This version underwent minor changes throughout these last five years, mainly to solve small nuisances and make it compilable on more modern systems. The more evident change is the removal of the O2 optimization level, which caused crashes in some situations.

The most important fact is anyway that
decb is still alive!

Download version Beta History 5 here.

Read the documentation to know the technical data.

Version 1.0.beta (December 15, 2014)

Infinite thanks to I.J. (he wants to remain unknown), a friend and a great tester, who compiled and ran decb finding an incredible number of inconsistencies in the listings. He helped me to understand where decb didn't behave as expected; he also realized that the source was not correctly executed on 64-bits machines, so I checked carefully all the malloc/free references, in order to fix this bad behavior and preserve paging both for 32 and 64 bits machines. He patiently attended all the many program revisions, each hopefully the last and each invariably still full of mistakes.
I. J. and I are the decb team!

Thanks to Paul Ohnemus, who revealed to me the fact (then unknown to me) that strncpy() is not safe in most systems (not mine) and helped me to fix all the wrong (excessive) sizes in its third argument, a fact that mostly prevented correct compilation and execution on some Linux versions; for these reasons I created my own portable strncpy_() and strncat_() functions, along with a wrapper for snprintf().

Thanks also to Arnaud Delfosse, who first signaled the abnormal behaviour of strncpy() in his Linux machine.

What changed? A lot! Read on.

Download version Beta here.

Read the documentation to know the technical data.

Version 1.0.gamma (June 7, 2014)
Download it here.

Note: version "gamma" was a very primitive attempt to put decb under public view. I know that the correct name could have been "alpha", but since I wasn't sure it could run on any machine, "alpha" seemed like a very advanced step for my program. Thus, I called it "gamma", to mean a very early and experimental version of the program, a sort of pre-alpha. I know this caused some misunderstanding. This is due to my scarce fantasy only. In any case, after the first messages from the BASIC community, I retired the program because it had even more bugs than I expected. So version gamma is not available any more, because I have a dignity to defend ;-)

I wait for your impressions and bugs. Send me your suggestions, your considerations, your corrections; even send me your working BASIC programs for decb, all commented and completed with your own name and data (and six characters at most per name): they will be part of the next package, of course.
It's GPL! Enjoy!