flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
uart777 01 Feb 2013, 05:20
FUTURE ASSEMBLER
![]() ![]() Download: "Future Assembler" Programming Package * EASIEST ASM LIBRARY EVER! * 400+ USEFUL FUNCTIONS+MACROS. All hand-written. Never used anyone else's code * 100S OF UNIQUE SYNTAXES, IDEAS, ALGORITHMS * ULTIMATE SYSTEM STRUCTURE. See illustration below * 100% PORTABLE GRAPHICS. All drawing - images, fonts, controls, etc - is directly to linear memory VGA (memory.copy a, b, n) for easy portability to BIOS, MenuetOS, DexOS, embedded systems, etc * 22 EXAMPLES included * FREE GRAPHICS, fonts and cursors EASY INTERFACE TEMPLATE New custom interface template with event-based structure like JavaScript. "Z77 makes ASM programming easier than VB!" Code: include 'z.inc' use interface TEXT t(256), title='My Application' devices.f db \ 'Key: ''%c''=%n=%hh=%bb' R\ 'Mouse: X/Y=%nx%n' R\ 'Click: %n. %n. Wheel: %n', 0 ; !on.create: when application begins... ! create ; ... !end ; !on.draw: when screen is redrawn... ! draw locate draw.red.fade print t, devices.f, [key], [key],\ [key], [key], [mouse.x], [mouse.y],\ [mouse.1], [mouse.2], [mouse.wheel] draw.caption.s t, CENTER draw.title.bar title !end ; !on.mouse: when a mouse event occurs... ! mouse ; ... title.bar.input redraw !end ; !on.key: when a key event occurs... ! key ; ... redraw !end ; !on.timer: every x ms (set.timer x)... ! timer ; ... !end ![]() Z77 LIBRARY 35 *.INC FILES: ARRAY, BMP, BOX, CLIP, COLOR, CONSOLE, COOL, CRYPT, CURSOR, DOCUMENT, DRAW, EXE, FILE, FONT, ICON, IMAGE, IMPORT, INPUT, INTERFACE, LANGUAGE, MACHINE, MEMORY, OS, PARSE, RANDOM, SOUND, SYNTAX, SYSTEM, TEXT, TGA, TILEMAP, TIME, USER, VGA, WINDOWS ![]() UPDATES: Easy event-based structure/template like JavaScript or VB. Alternate C-style names: void, integer, structure, string, strcpy, strcat, strchr, malloc, realloc (default types are UPPERCASE to avoid name conflicts). Updated DRAW.INC, LANGUAGE.INC, etc. Optimized "let", reordered by precedence, ==> for movzx. Improved comments, indents. ![]() "FASM programmers who use HL compilers 90% of the time (C++/C#/Java/etc) are only 10% FASM programmers" Last edited by uart777 on 02 Feb 2013, 22:41; edited 2 times in total |
|||
![]() |
|
revolution 01 Feb 2013, 05:40
Ouch, my ears. The whole post is shouting at me. Can someone please turn down the volume.
![]() |
|||
![]() |
|
Spool 01 Feb 2013, 06:26
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 10:08; edited 2 times in total |
|||
![]() |
|
uart777 01 Feb 2013, 07:43
Any questions? PM. No time. Only stop by once every 3-5 days. Thanks.
|
|||
![]() |
|
HaHaAnonymous 01 Feb 2013, 15:02
[ Post removed by author. ]
Last edited by HaHaAnonymous on 28 Feb 2015, 21:49; edited 1 time in total |
|||
![]() |
|
TmX 01 Feb 2013, 17:15
My only complaint at the moment is the UI doesn't look native.
Reminds me of Linoleum |
|||
![]() |
|
sleepsleep 01 Feb 2013, 19:22
i think this is very cool, uart777,
but why the cpu gone higher after launching the application? the mouse gone sluggish, is this expected behaviour? |
|||
![]() |
|
uart777 02 Feb 2013, 06:37
sleep: Just a quick beta release. Drawing is optimized, problem is how often it occurs. You can increase speed by reducing the number of "redraw"s or edit it to only update the section of screen that changes. Just little previews/examples I threw together overnight to give programmers something to play with while I work on my real programs. I didn't post this to have a discussion about it. I'm working on a visual tutorial program that explains everything, and I don't have to time to stop and answer individual questions. Thanks for understanding.
PS: What if the F in FASM meant something else? "Future Assembler"? Start a discussion in Heap: Flat or Future? At one time, humans thought the world was flat. |
|||
![]() |
|
hopcode 02 Feb 2013, 11:23
thumbs UP again for me, the output looks very good.
AV deleted some EXES (Suspicious.Cloud ?), some other dont work as expected. Quote: TEXT t(256), title='My Application' this is good, imho. look please the IUP thread. it may give you some hints: http://board.flatassembler.net/topic.php?p=144377#144377 Now some general guidelines pros/contras about ML programming, and how to get a good set of macros in a ML. consider symbols and how they are being developed: Quote:
if you dont like that BNF formal description, you may think to list all possible cases as done on point 1) above, then develop the symbol following the guideline of all other steps. warning!! it may require days, weeks or months, but that is not optional. there is a basic reason to consider all those steps. they are valid for every new language. i have only assembled them in a scheme. it is up to you to discover why. Cheers, ![]() _________________ ⠓⠕⠏⠉⠕⠙⠑ |
|||
![]() |
|
uart777 02 Feb 2013, 22:27
New logo design. Flat+Z77=Future
![]() |
|||
![]() |
|
uart777 04 Feb 2013, 14:12
hopcode: Hi, good ideas. Your AV might have deleted EXE.BIN which is my partial PE .EXE template. "WRITE MACHINE CODE" won't work without it.
Well, I've been studying HL compilers and optimizations for years in my freetime (since about 98'), even made little toy compilers in C (DOS 16BIT), and there is so much that could be said on this subject. For let/get, I think there should just be one symbol for all HL operations like '.': . eax=edi+(ecx<<4), c=rgb(x,y,z), etc. Then get/set would be reserved to access class/object members. Unsigned is still undefined by Z77. Just write pure ASM for unsigned. I must be extremely careful about every little change I make and how it will effect my entire library. I think the best way to handle this situation is to declare variables with 'u' prefix for unsigned: byte/integer=signed, ubyte/uinteger=unsigned. We must be able to get individual tokens as in a real expression parser. Someday, I will upload a Infix>RPN>UASM>ASM converter. Code: EXPRESSIONS 1. Parenthesis: () 2. Unary: -a, ~a, &a, *a 3. Array, Structure: a[i], s.m or s->m 4. Function: f(a, b, c) 5. Multiply, divide: a*b, a/b, a%b 6. Add, subtract: a+b, a-b 7. Shift: a<<b, a>>b 8. AND, OR: a&b, a|b DECLARATIONS * Pointer: IMAGE *image ; create address size variable * Array: IMAGE images<4> ; create fixed array * HL array: IMAGE images[4] ; create dynamic ARRAY.INC * Or: IMAGE images[?] ; unknown #, index size is known If anyone is interested in writing compilers, please check out the famous "red dragon compiler book": http://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho/dp/0201100886 Ultimately, my "Dream Language" would be the simplest pure English syntax. Something like this: Code: CREATE, DESTROY ; "create/destroy" any object/class or create file or destroy pointer. create object, ... create image, pixels, w, h, bpp create button, text create caption, text, box, color create menu, texts create file destroy pointer LOAD, MOVE, DRAW, UPDATE, ETC ; "load/move/draw/update" any loadable/moveable/drawable/updatable object/class. load object, ... load image, file load button, file load tilemap, file move object, ... move image, x, y move button, x, y move tilemap, x, y draw object, ... draw pixel, x, y, color draw box, b, color draw image draw image, x, y draw button draw window draw etc update object, ... update button update window update dialog |
|||
![]() |
|
hopcode 05 Feb 2013, 06:12
uart777 wrote: ...Ultimately, my "Dream Language" would be the simplest pure English syntax i cooked up "transgressive" the flow structure in GRADIENTS.ASM. imo you find there some cool pros and features 1) a place: WHERE Code: ! main load.defaults !end 2) an action,in a verb: WHAT Code: ! draw font.height let ecx=[screen.w], ecx>>1,\ edx=[screen.h], edx-eax, edx>>1 !end Code: ! mouse title.bar.input redraw !end then some contras now: a) it is bound to windoze -> OS dependent b) macros apply to/are meant for both syntax and graphics -> difficoult to learn in one shot ok, my tipps: Quote: 1) use a portable graph library, example SDL -> this simplifies/makes stable your work well, that's not all of course but so schemed i HTH. but one should have always the chance to fly to Dagobah and complete the Jedi course, in order to acquire a clear design of the whole, isnt it ? ![]() Cheers, ![]() _________________ ⠓⠕⠏⠉⠕⠙⠑ |
|||
![]() |
|
Lucifere 02 May 2013, 10:22
uart777 wrote:
In music, flat is so important. but future is... ...i'll omit more detail explain than that. _________________ In Omnibus requiem quaesivi, et nusquam inveni in angulo cum libro. |
|||
![]() |
|
typedef 02 May 2013, 21:50
But why did you attack John Found ?
I like his Fresh-lib. ![]() But seriously, why not make an IDE with more focus on code completion and function parameter checks. I don't see this to be any helpful in any case. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.