flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4, 5 Next |
Author |
|
revolution 19 Jan 2021, 22:26
Running unaudited code directly from the Internet.
Nothing could possibly go wrong. ![]() |
|||
![]() |
|
DimonSoft 20 Jan 2021, 14:21
Guys, please, don’t say a word about JS
![]() |
|||
![]() |
|
Picnic 22 Jan 2021, 13:12
Crystal is a small puzzle game written in Hobby BASIC.
The objective of the game is to remove all the blocks of the same color by placing them next to each other! There is a limited number of moves per level. The gray block cannot be removed! The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\CRYSTAL.BAS. Windows 10 console screenshot. ![]() Last edited by Picnic on 03 Mar 2025, 22:35; edited 12 times in total |
|||
![]() |
|
Picnic 02 Jul 2021, 09:42
MazezaM is a puzzle game that originated from the Spectrum and has been ported to almost every platform.
The original version included 10 rooms, but I created a remake in Hobby BASIC, which is a faithful reproduction of the Puzzlescript version, featuring 30 rooms. The rules are simple: The goal is to move the character from the left side of the maze to the right. The character can drag rows of blocks left and right by pushing them. It’s an interesting and particularly challenging puzzle. The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\MAZEZAM.BAS Windows 10 console screenshot. ![]() Last edited by Picnic on 03 Mar 2025, 22:36; edited 19 times in total |
|||
![]() |
|
pabloreda 03 Jul 2021, 00:05
Very nice project picnic!
congrat! |
|||
![]() |
|
Picnic 14 Feb 2022, 11:48
Threesome is a small puzzle game written in Hobby BASIC.
You and two friends are trapped in a building. The three of you need to move to another room. You must collaborate to achieve your goal. To do so, you need to guide the three players to the gray positions. Place one player on a colored switch to open a door of the corresponding color. Two doors of the same color need 2 players on the corresponding switches. You can also move a player between the doors and leave them there. The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\THREESOME.BAS. Windows 10 console screenshot. ![]() Last edited by Picnic on 03 Mar 2025, 22:37; edited 5 times in total |
|||
![]() |
|
Picnic 30 Nov 2022, 10:01
3x3 RGB Tilt is a small puzzle game written in Hobby BASIC.
The red, blue, and green must reach their respective targets simultaneously. Tilt the tray and let the fun begin! Controls: Use the arrow keys to play. Press the spacebar to restart the room. Press 2 to move to the next room. Press 1 for the previous room. The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\RGBTILT.BAS. Windows 10 console screenshot. ![]() Last edited by Picnic on 03 Mar 2025, 22:39; edited 9 times in total |
|||
![]() |
|
Picnic 27 Dec 2022, 14:17
SPY is a small puzzle game written in Hobby BASIC.
The game is played on an NxN board, where each tile contains either a number or a skull. The player can move in all four cardinal directions (up, down, left, right) as well as diagonally. Stepping on a numbered tile automatically shifts the player by the specified number of tiles in the same direction. For example, landing on a tile with "4" moves the player 4 more tiles forward. The game ends if the player steps on a skull tile, crosses their own path, or reaches the board's border without completing the required moves. The goal is to cross a set number of tiles while avoiding skull tiles and managing limited moves. Press the spacebar to restart. About SPY: SPY is a remake of a game I first developed in 2005 using ActionScript in Flash. It has been ported to: Atari ST/STE/TT/Falcon 030 link. GP2X (Squaresliding) link The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\QUIX.BAS. Windows 10 console screenshot. ![]() Last edited by Picnic on 04 Mar 2025, 01:09; edited 12 times in total |
|||
![]() |
|
Picnic 12 Jan 2023, 09:55
Blix is a small puzzle game written in Hobby BASIC.
Form columns of same-color tiles by scrolling the rows. Each scroll costs 2 moves, while clearing a column earns you 1 move. The game ends when you run out of moves. Press 1, 2, 3, or 4 to select a level: EASY, NORMAL, HARD, or EXPERT. Press the spacebar to scroll rows randomly (costs 1 move). Click the arrow buttons to scroll a row horizontally. About BLIX: BLIX is a remake of a game I first developed in 2005 using ActionScript in Flash. It has been ported to multiple platforms, including: GP32, GP2X, and Wiz link Atari ST/STE/TT/Falcon 030 link Windows, Linux, and Mac link Intellivision cartridge link1 video iPhone and iPad link Android link GBA link The game's source code can be found in the folder: EXAMPLES\GAMES\WIN7\BLIX.BAS. Windows 10 screenshot. ![]() Last edited by Picnic on 04 Mar 2025, 01:09; edited 11 times in total |
|||
![]() |
|
al_Fazline 12 Jan 2023, 15:08
Hello, Picnic. Is there a way to run it on GNU+Linux without wine/emulation? Windows is kinda dated by now, people are switching away from it.
|
|||
![]() |
|
Picnic 13 Jan 2023, 08:05
Hello al_Fazlinem
I'm afraid (i think) that is not possible, Hobby BASIC oriented exclusively to Windows, it heavily uses Windows console functions. |
|||
![]() |
|
Picnic 23 Jan 2023, 14:48
ZNAX is a small puzzle game written in Hobby BASIC.
How To Play: Click on four tiles of the same color to form the largest possible squares or rectangles. All tiles inside the selected area are removed and replaced with new ones. The bigger the shape, the more points you earn. But hurry—time is limited! Controls: Left Click: Select four same-colored tiles to form a square or rectangle. Spacebar: Reset the board anytime. Esc: Return to the menu. About the game: ZNAX is a remake of a game I first developed in 2005 using ActionScript in Flash. ![]() It has been ported to multiple platforms, including: Windows Linux Mac OS link Amstrad CPC link video Atari STFM/STE, Falcon 030, Hatari, STEEM link video Atari XL link link video video GP2X & Nokia N810 link GameBoy Advance link Pocket PC link Android link Pyra & Pandora link Nintendo Switch link video iPhone link Javascript link Steam Deck video ZNAX by joyrider3774 Github All about the game and other versions link It has also inspired other puzzle games, such as Jooleem, which has been ported to multiple platforms. The game's source code can be found in the folder: EXAMPLES\GAMES\WIN10\ZNAX.BAS. Windows 10 screenshots. ![]() ![]() Last edited by Picnic on 04 Mar 2025, 11:52; edited 39 times in total |
|||
![]() |
|
386 15 Nov 2023, 12:01
Wow! It looks great!
![]() But why the 58,5 KB program running tiny examples uses 397 MB of memory? ![]() Could you reduce it to 39,7 MB or, even better, to 3,97 MB? My system is Windows 7 x64 SP1. |
|||
![]() |
|
Picnic 15 Nov 2023, 17:01
It plays great too, I've tested it on different versions of Windows.
Thanks for the feedback 386 I can definitely reduce it to have very low startup requirements. Anyway, I uploaded a new version. The memory footprint should be should be around 30 MB now. Last edited by Picnic on 15 Nov 2023, 22:48; edited 4 times in total |
|||
![]() |
|
386 15 Nov 2023, 22:32
Thanks, Picnic! 30 MB is much better than 397 MB!
![]() Just curious: is it possible to make 3 MB or 300 KB? |
|||
![]() |
|
386 15 Nov 2023, 22:36
I'm trying to understand, what you have changed:
Code: HB_OLD.EXE HB_NEW.EXE 00469004: 61 popad | 00469004: 4D dec ebp 00469005: 93 xchg eax, ebx | 00469005: F8 clc 00469006: 50 push eax | 00469006: 54 push esp 00469024: 61 popad | 00469024: 4D dec ebp 00469025: 93 xchg eax, ebx | 00469025: F8 clc 00469026: 50 push eax | 00469026: 54 push esp 0046903C: 61 popad | 0046903C: 4D dec ebp 0046903D: 93 xchg eax, ebx | 0046903D: F8 clc 0046903E: 50 push eax | 0046903E: 54 push esp ------------------------------------------------------------------------------------------------------------------------------------------ 00469053: 006193 add byte ptr [ecx-6Dh], ah | 00469053: 004DF8 add byte ptr [ebp-08h], cl 00469056: 50 push eax | 00469056: 54 push esp 0046906B: 006193 add byte ptr [ecx-6Dh], ah | 0046906B: 004DF8 add byte ptr [ebp-08h], cl 0046906E: 50 push eax | 0046906E: 54 push esp ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ 004690C5: 0001 add byte ptr [ecx], al | 004690C5: 0002 add byte ptr [edx], al 004690CD: 0001 add byte ptr [ecx], al | 004690CD: 0002 add byte ptr [edx], al ------------------------------------------------------------------------------------------------------------------------------------------ 0046920B: 0031 add byte ptr [ecx], dh | 0046920B: 0032 add byte ptr [edx], dh 0046923B: 0031 add byte ptr [ecx], dh | 0046923B: 0032 add byte ptr [edx], dh ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ 0046E021: 0031 add byte ptr [ecx], dh | 0046E021: 0032 add byte ptr [edx], dh ------------------------------------------------------------------------------------------------------------------------------------------ 00471DDF: 0031 add byte ptr [ecx], dh | 00471DDF: 0032 add byte ptr [edx], dh ------------------------------------------------------------------------------------------------------------------------------------------ 0047201F: 6800008005 push 05800000h | 0047201F: 6800002000 push 00200000h 0047202E: 6800005800 push 00580000h | 0047202E: 6800002000 push 00200000h 00472038: A300494000 mov dword ptr [00404900h], eax | 00472038: A308494000 mov dword ptr [00404908h], eax 0047203D: 6800008005 push 05800000h | 0047203D: 6800002000 push 00200000h 00472047: A308494000 mov dword ptr [00404908h], eax | 00472047: A3FC484000 mov dword ptr [004048FCh], eax 0047204C: 6800008005 push 05800000h | 0047204C: 6800002000 push 00200000h 00472056: A3FC484000 mov dword ptr [004048FCh], eax | 00472056: A30C494000 mov dword ptr [0040490Ch], eax 0047205B: 6800008005 push 05800000h | 0047205B: 6800002000 push 00200000h 00472065: A30C494000 mov dword ptr [0040490Ch], eax | 00472065: A300494000 mov dword ptr [00404900h], eax 0047206A: 6800005800 push 00580000h | 0047206A: 6800002000 push 00200000h 00472079: 6800005800 push 00580000h | 00472079: 6800002000 push 00200000h 00472088: 6800005800 push 00580000h | 00472088: 6800002000 push 00200000h 00472097: 6800100000 push 00001000h | 00472097: 6800000100 push 00010000h 004720A6: 6800100000 push 00001000h | 004720A6: 6800000100 push 00010000h 004720B5: 6800100000 push 00001000h | 004720B5: 6800000100 push 00010000h ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ 00472034: C08EFFFFA30049 ror byte ptr [esi+00A3FFFFh], 000000 | 00472034: C08EFFFFA30849 ror byte ptr [esi+08A3FFFFh], 00000049h 0047203F: 008005E8B18E add byte ptr [eax-714E17FBh], al | 0047203F: 0020 add byte ptr [eax], ah | 00472041: 00E8 add al, ch | 00472043: B18E mov cl, 8Eh ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------ |
|||
![]() |
|
Picnic 15 Nov 2023, 22:46
Hobby BASIC uses one main internal structure for all data types, 88 bytes in size.
This practically means that, for example, every 1 mb of memory I allocate, I get about 12000 elements (strings, variables, arrays, labels, etc.) More than enough for a simple toy interpreter. But maybe I should let the user decide the size of memory they want to use. I changed a few values in memory allocation calls at startup. That's all. ![]() Last edited by Picnic on 16 Nov 2023, 12:00; edited 3 times in total |
|||
![]() |
|
386 15 Nov 2023, 22:54
Quote: But maybe I should let the user decide the size of memory they want to use. Users do like to decide! ![]() |
|||
![]() |
|
Picnic 15 Nov 2023, 23:01
It's easy to implement, i'll think about that. Thanks again for your feedback 386. Quite useful !
|
|||
![]() |
|
Goto page Previous 1, 2, 3, 4, 5 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.