MINI-BASIC is a Window Console Basic interpreter using Windows API to manage display, keyboard and files. MBI.ZIP includes executable MINI-BASIC, complete SOURCE listing in MASM assembler, MINI-BASIC user's guide and PITMAN, a special Basic game for MINI-BASIC.

Although Mini-Basic works fine, it may be considered as a toy to play with for newbies and experienced Assembly programmers, a piece of code available for modifications, enhancements, experiences and programming pleasure. Some problems are not totally solved (console window resizing for example).

Please, report bugs, enhancements, new commands, optimizations you add in MINI-BASIC.

New versions will be added to this page to keep MINI-BASIC alive.

MINI-BASIC was written with MASM32 tools available for free at http://www.masm32.com/

The MINI-BASIC Yahoo group is located here:

http://tech.groups.yahoo.com/group/minibasic/

The main page for MINI-BASIC is here:

http://pagesperso-orange.fr/retromatique/MiniBasic/

Paul
Posted on 2009-03-05 18:22:42 by Paul Panks
Hi Paul,

Good job! Although I don't understand the purpose of MINI-BASIC. Does it do something that BASIC for example doesn't do or is there something unique about it?
Posted on 2009-03-06 05:56:22 by XCHG
MINI-BASIC is a Tiny BASIC clone with modern enhancements. It can hold 65KB of program space, as opposed to the 8086 Tiny BASIC's limit of 5200 bytes. It has 26 variables, A-Z, and 1 array (denoted by @(I)).

I didn't write MINI-BASIC but I've been using it for a couple of years now just as a hobby. It is an interesting language.

Paul
Posted on 2009-03-06 09:17:40 by Paul Panks
nice :)
Posted on 2009-03-07 15:13:37 by Ultrano
Thanks. It is a modern version of Palo Alto Tiny BASIC updated with new commands.

Paul
Posted on 2009-03-09 11:52:29 by Paul Panks
The original Palo Alto Tiny BASIC appeared in 1976 in the pages of Dr. Dobbs Journal. MINI-BASIC is a modern variant of Palo Alto Tiny BASIC using Windows API calls for screen, keyboard and file I/O. It has 26 variables, A-Z, and 1 array, @(I).

Despite these limitations, MINI-BASIC is a robust programming language written in ASM. More commands can be added with ease.

Paul
Posted on 2009-03-10 11:51:20 by Paul Panks

Hi Paul,

Good job! Although I don't understand the purpose of MINI-BASIC. Does it do something that BASIC for example doesn't do or is there something unique about it?


It has 26 scalar variables and 1 array (denoted by @(I)). It can store up to 65KB of program space, enough for a nice application.

Paul
Posted on 2009-03-11 16:56:15 by Paul Panks

Hi Paul,

Good job! Although I don't understand the purpose of MINI-BASIC. Does it do something that BASIC for example doesn't do or is there something unique about it?


It is unique in that it is a clone of Tiny BASIC from 1976, updated with more program memory (65KB), a couple of new commands (e.g. color) as well as larger numbers (2.1 million vs. 32768).

Paul
Posted on 2009-03-12 00:48:38 by Paul Panks
Paul, I am sure it's great but what is the purpose? We are living in the world of gigabytes and terabytes. Please don't get me wrong. I believe that a work done on any programming project is worth but in my opinion, even if it had 1 billion variables and thousands of arrays, I would still say it is limited. So what I understand is that the purpose of this language is somehow, to go back in time, maybe? To the 1980?  :shock:
Posted on 2009-03-12 08:34:07 by XCHG
I think the purpose of MINI-BASIC is to show that even limited programming languages have some usefulness. With 26 scalar variables and 1 array -- @(I) -- MINI-BASIC can run some of the classic BASIC games published by Creative Computing magazine with few or little changes.

Paul
Posted on 2009-03-12 09:14:48 by Paul Panks
It is neat to see some progress on MINI-BASIC. I think it would work fine without issue.

Paul
Posted on 2009-03-16 14:00:43 by Paul Panks
Neat program, nice source too !  :O

print 2+2
4

:)
Posted on 2009-03-17 09:54:27 by ChaperonNoir
It has a large assembly source file. The program operates okay, but has a tendency to crash with a Windows API error at times. I think it has something to do with it jumping into the middle of routines in the assembly source.

Paul
Posted on 2009-03-17 14:48:12 by Paul Panks

Hi Paul,

Good job! Although I don't understand the purpose of MINI-BASIC. Does it do something that BASIC for example doesn't do or is there something unique about it?


It is a stripped down version of classic BASIC with minimal commands like PRINT, INPUT, GOTO and GOSUB. Just the bare minimums.

Paul
Posted on 2009-03-20 10:11:53 by Paul Panks
It's also a good introduction to Finite State Machine (FSM) programming, writing a simple Runtime Interpreter for executing a Scripted Language, and how one might Resolve mathematical Expressions, and who knows what else.

I think that most programmers would benefit from looking over this sourcecode.
It may not be a great example of clean or optimal asm code, but it is a great example of the lateral approach to problem solving  :thumbsup: worth bonus points no matter what language you prefer  8)
Posted on 2009-03-21 01:44:04 by Homer
Yeah, I agree. The source code is very well documented and helpful.

Paul
Posted on 2009-03-29 23:32:59 by Paul Panks