flat assembler
Message board for the users of flat assembler.

Index > Tutorials and Examples > Hobby BASIC, a toy language interpreter written in fasm

Goto page Previous  1, 2, 3, 4, 5  Next
Author
Thread Post new topic Reply to topic
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20289
Location: In your JS exploiting you and your system
revolution 21 Oct 2016, 12:13
filox wrote:
Sorry but where i can find sources of Hobbybasic?
Have a look at the first post in this thread.
Post 21 Oct 2016, 12:13
View user's profile Send private message Visit poster's website Reply with quote
system error



Joined: 01 Sep 2013
Posts: 670
system error 22 Oct 2016, 13:32
This is good. Keep it coming, bro!
Post 22 Oct 2016, 13:32
View user's profile Send private message Reply with quote
filox



Joined: 13 Feb 2013
Posts: 11
filox 26 Oct 2016, 12:24
revolution wrote:
filox wrote:
Sorry but where i can find sources of Hobbybasic?
Have a look at the first post in this thread.


No source, only EXE and Demo.bas
Post 26 Oct 2016, 12:24
View user's profile Send private message Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 12733
Location: ˛                             ⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Posts: 0010456
sleepsleep 26 Oct 2016, 12:36
hi filox,
you could try pm picnic for source etc
Post 26 Oct 2016, 12:36
View user's profile Send private message Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 26 Oct 2016, 13:37
Hi filox, the source is not available, at least not yet. Hobby Basic has still some way to go. I want to extend the command list, find methods to make the intepreter faster, add features like user procedures with parameters and local variables and some other ideas i have. This is done somewhat slowly, the only days i can steal some time to work are the weekends.
Post 26 Oct 2016, 13:37
View user's profile Send private message Visit poster's website Reply with quote
filox



Joined: 13 Feb 2013
Posts: 11
filox 18 Nov 2016, 13:19
Picnic wrote:
Hi filox, the source is not available, at least not yet. Hobby Basic has still some way to go. I want to extend the command list, find methods to make the intepreter faster, add features like user procedures with parameters and local variables and some other ideas i have. This is done somewhat slowly, the only days i can steal some time to work are the weekends.


Hi picnic, if u can share code with us, we can help you possibly to improve it faster and i'm interested in it for educational scope Very Happy
Post 18 Nov 2016, 13:19
View user's profile Send private message Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 21 Nov 2016, 15:50
I have uploaded a new version with minor improvements and bug fixes.

Various predefined paths and variables of Hobby BASIC.

Image

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:45; edited 30 times in total
Post 21 Nov 2016, 15:50
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 21 Dec 2016, 12:34
I have uploaded a new version with minor improvements and bug fixes.

Duplicating an ANSI sprite in console window.
Code:

    !  SPRITE.BAS
    !  HOBBY BASIC INTERPRETER

    BLUE = 1

    DIM ROBOT[15,10]

    PATH$ = PATH('DATA\BIN\ROBOT1.HB')

    LOAD PATH$, ROBOT[]
    IF V0 = -1 THEN ALERT 10H,'NOT FOUND',PATH$ : END

    VIEW 11
    SCREEN 80,25,300
    CURSOR 0,0
    COLOR 0,0
    CLS


LOOP#

    X = RND() % 65
    Y = RND() % 15

    GRAB X,Y,15,10,ROBOT[],2

    REPAINT X,Y,15,10,BLUE,(RND()%15)+1

    WAIT 20

    IF ~KEY(27) THEN GOTO LOOP

    CLS : END
    


Image

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:45; edited 80 times in total
Post 21 Dec 2016, 12:34
View user's profile Send private message Visit poster's website Reply with quote
avcaballero



Joined: 02 Feb 2004
Posts: 203
Location: Madrid - Spain
avcaballero 21 Dec 2016, 13:20
Hello, it is very interesting. I was very fond of qbasic. I'd just say that it would be nice to see your page in English, Greek is a bit hard for me Smile
Post 21 Dec 2016, 13:20
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 28 May 2018, 13:49
I have uploaded a new version with minor improvements and bug fixes.

A set of functions is now available for sending UDP messages across the network to a remote host.
Server-Client examples are also included.

P2P Drawing via UDP sockets in the console.
The changes appearing in real time between the 2 computers.

Image

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:45; edited 48 times in total
Post 28 May 2018, 13:49
View user's profile Send private message Visit poster's website Reply with quote
Robocod



Joined: 05 Mar 2018
Posts: 15
Robocod 19 Dec 2018, 21:23
Source code?
Post 19 Dec 2018, 21:23
View user's profile Send private message Reply with quote
sts-q



Joined: 29 Nov 2018
Posts: 57
sts-q 20 Dec 2018, 09:33
Post 20 Dec 2018, 09:33
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 05 Mar 2020, 09:56
I have uploaded a new version with minor improvements and bug fixes.

A Xonix like game for the console written in Hobby BASIC.

Image

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:45; edited 19 times in total
Post 05 Mar 2020, 09:56
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 22 May 2020, 13:13
I have uploaded a new version with minor improvements and bug fixes.

Introducing Draw, a simple ASCII design program for the Windows console written in Hobby BASIC.
It has the ability to load and save ANSI images.
Supported extensions: .ANS
Code:

    !  Instructions:
    !  Select a character from the right panel
    !  Press and hold the left mouse button to draw
    !  Hold spacebar and move mouse to draw
    !  Right-click and drag the mouse to select area
    !  Move the selected area with the left mouse button
    !  Single right-click on selected area to unselect
    !  Single left-click on selected area to clear
    !  Double-click paste copies of last selected area
    !  Use the up-down arrow keys to select frame
    !  Press F11 to export loader script
    !  Press F12 to insert text at cursor position
    !  Press Q to quit program

    !  Enable the option "Use Legacy Console" in Windows 10
    !  Right-click on the application title bar and choose the Properties menu option
    !  Restart the console
    


Image

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:46; edited 19 times in total
Post 22 May 2020, 13:13
View user's profile Send private message Visit poster's website Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4015
Location: vpcmpistri
bitRAKE 22 May 2020, 15:05
I think I ran all of them on Windows 10.

About the mouse one: didn't indicate which button was double-clicked, and the middle button displays as the left button. This might be a limitation of the API - I don't know.

I did find an error in the XONIX game. I was able to meet the edge at the same time as the red spot. This causes the area not to be filled until I completed another closing move. This typically is just a "one-off" error.

Also, an error in DRAW.BAS, line 336, changed to "if p > 269 then break", and it seems to work.

Was only missing 1200 baud modem sounds. Very Happy
Well done!

_________________
¯\(°_o)/¯ “languages are not safe - uses can be” Bjarne Stroustrup
Post 22 May 2020, 15:05
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 22 May 2020, 20:51
Thanks for taking the time running the examples bitRAKE, i appreciate that.

Quote:
This might be a limitation of the API - I don't know.

I think i have to update my code a bit. The interpreter using the same mouse routine since 2015.

Quote:
Also, an error in DRAW.BAS, line 336, changed to "if p > 269 then break", and it seems to work.

Out of range!, i missed that, it's better this way.
Code:

    if p > SIZE(charset[])-1 then break
    

Quote:
I did find an error in the XONIX game. I was able to meet the edge at the same time as the red spot. This causes the area not to be filled until I completed another closing move. This typically is just a "one-off" error.

Oh come on now, how fast did you notice that. A true game tester Wink
Post 22 May 2020, 20:51
View user's profile Send private message Visit poster's website Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4015
Location: vpcmpistri
bitRAKE 23 May 2020, 05:21
Another oddity is not being able to select a character from the codepage that characters are displayed with. The saved images display correctly, but limited character selection as seen in the picture. I was even able to crash the console by selecting different fonts. Windows 10 might be to blame here as they try to push everyone to Powershell.

Putting this in a batch file will compile all the examples:
Code:
FOR %%G IN (.\EXAMPLES\*.BAS) DO (HB "%%G" -bind ".\BIN\%%~nG.EXE")    
...assuming the batch file is with HB.EXE and a directory .\BIN\ has been created. Change the double "%%" to a single "%" to run the command directly at the prompt.


Description:
Filesize: 67.03 KB
Viewed: 21298 Time(s)

HB10win.PNG



_________________
¯\(°_o)/¯ “languages are not safe - uses can be” Bjarne Stroustrup
Post 23 May 2020, 05:21
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 23 May 2020, 13:13
Quote:
Windows 10 might be to blame here as they try to push everyone to Powershell.

I see it with the test programs I write. Some, while running smoothly on previous windows versions, behave differently in windows 10, even in the legacy console mode.

Quote:
Putting this in a batch file will compile all the examples:
Code:
FOR %%G IN (.\EXAMPLES\*.BAS) DO (HB "%%G" -bind ".\BIN\%%~nG.EXE")    
...assuming the batch file is with HB.EXE and a directory .\BIN\ has been created. Change the double "%%" to a single "%" to run the command directly at the prompt.

I can do it through HB as well. Something like...

Code:

    alert  (0x4|0x20),"","Do you want to compile all the examples?"
    if V0 = 6
        exec "if not exist BIN\NUL md BIN"
        exec "FOR %G IN (.\EXAMPLES\*.BAS) DO (HB ""%G"" -bind "".\BIN\%~nG.EXE"")"
    endif
    


Thanks again bitRAKE.


Last edited by Picnic on 06 Jul 2021, 13:45; edited 1 time in total
Post 23 May 2020, 13:13
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1389
Location: Piraeus, Greece
Picnic 19 Jan 2021, 12:47
I have uploaded a new version with minor improvements and bug fixes.

The PRINT AT command can print characters while retaining the background color of empty cells.
A snake game for the console. It takes advantage of this new ability of the interpreter.

Image



Hobby BASIC can execute a program located on a remote server directly from the command-line.
Code:

    HB.exe https://sites.google.com/site/hobbybasicfiles/TEST.BAS     ! dead link
    

_________________
Hobby BASIC Interpreter


Last edited by Picnic on 11 Jul 2024, 23:46; edited 20 times in total
Post 19 Jan 2021, 12:47
View user's profile Send private message Visit poster's website Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 12733
Location: ˛                             ⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Posts: 0010456
sleepsleep 19 Jan 2021, 17:05

this feature sounds exciting and dangerous at the same time,
Post 19 Jan 2021, 17:05
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4, 5  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.