XBLite version 2.41 revision 16

506 views
Skip to first unread message

Guy1954

unread,
Nov 26, 2016, 12:00:02 PM11/26/16
to xblite

Hi Xbliters,


I’ve been very busy testing the revision 16 of xblite version 2.41. I went in places where no Xbliter’s feet touched ground, and found corner cases that only a gorilla could cause. And I am so sure that I covered all the potential mishaps that I dare you to break the xblite.x that I post here! Because I am moving on to Release 17, which is supposed to be XBLite support for native Windows Unicode.


But, allow to brag a little bit about this release 16: I truly believe that the new directives CODE, GRAB and STRIP are great additions to an already rich language, in the sense that they open huge possibilities in 3 directions:

- CODE for assembly injections,

- GRAB for code re-use,

- STRIP for obesity control (of your XBLite programs, not your bodies…)


I first intended to propose a crude pre-processor: CODE, GRAB and STRIP were at first source directives and their output are saved in separate XBLite source files for whatever you would to do with them. However, I decided to treat CODE as a normal XBLite operator: I succeeded to break badly the CODE directive while injecting really huge pieces of GoAsm code. Since I had a previous implementation of CODE as a normal XBLite key word, I tried the old CODE version and it worked nicely! Well, you can beat success! CODE is and will remain an XBLite operator, unlike GRAB and STRIP, which remain pre-compile directives and yield to a new (and improved) source file.


I remember an Xbliter proposing to handle Xblite GUI with a set of new operators; I believe that GRAB can handle this project.

I we come up with a satisfactory solution, I can expand XBLite’s syntax and code generation to generate working GUI applications, for GTK...


I would welcome a self-explanatory syntax such as:

DRAW mainWindow LAYOUT "example .xml" ' example.xml would be a subset of an HTML form

POST mainWindow AT (10, 5)

GET mainWindow


OK! Release 16 is a good to go for me, unless you prove me otherwise.

I am starting to work on the design of a clean distribution.

We have David Szafranski’s XBLite Forum, but as far as I know, only registered Xbliters can download files from the Forum. All that are interested for a distribution thru the Forum should try to download a file and let me know if they succeed.

I can also distribute XBLite compiler and libraries thru SourceForge, which host 2 of my (XBLite) projects. However, I would rather carry on the way David would have done.


Happy xbliting, and post here you grain of salt.

Bye! Guy

xblite.x

Guy1954

unread,
Dec 26, 2016, 10:03:13 AM12/26/16
to xblite
Hi Xbliters.

Here is my latest xblite.x version 2.41.16.

Please, download it and give me a feedback on how it behaves on your XBLite programs.
This version will be the core of revision 17, which hopefully will support Windows Unicode.

I remind you that you should backup your current XBLite development environment to be able to revert to D.'s trusted distribution.

Enjoy!
Guy
xblite.x

Guy1954

unread,
Dec 26, 2016, 10:07:57 AM12/26/16
to xblite
Hi Xbliters.

Here is Revision 23 of xsx.x:
20 September 2014
 - modified XstGetOSName() to accomodate windows 8 and Wine
 - Corrected bug in XstSetEnvironmentVariable()
 - modified XstGetOSName() to detect windows 10
 - modified XstCall(): IFZ dllName$ THEN dllName$ = "kernel32" (operating system)
 - replaced in XstReplace() XstTally by code for a speedier execution
 - added XstUnicodeLen() (emulates WinAPI lstrlenW)
 - corrected in XstTypeSize() the computation of the STRING element size.
 - added
   . XstUnicodeLen()           to emulate WinAPI lstrlenW
   . XstGetStringTypeBOM()     to get the Byte Order Mark of a string type


Bye!
Guy
xsx.x

Guy1954

unread,
Dec 26, 2016, 10:09:52 AM12/26/16
to xblite
In order to get the new string types, you need a new xst.dec.
Here it is!
xst.dec

Guy1954

unread,
Dec 26, 2016, 10:15:04 AM12/26/16
to xblite
Also, here is revision 3 of C:\xblite\xblite_241_16\xblib\XFORMAT.x.
14 April 2015.
 Corrected the 2 following bugs:
 Bug 1. FORMAT$ ("***#", 2015) => Good: "2015"   bad: "**%2015"
 Bug 2. FORMAT$ ("****", 2015) => Good: "2015"   bad "****"

 Added format code '0' to right-justify numbers.
 Format code '0' works just like '*',
 padding with leading zeroes instead of '*'.

In C:\xblite\xblite_241_16\Xin\xin.x, I re-coded:
    XstGetDateAndTime (@year, @month, @day, @weekday, @hour, @minute, @second, @nanosecond)
' GL-21apr15-deleted
'    time$ = time$ + RIGHT$ ("0000" + STRING$(year), 4)
'    time$ = time$ + RIGHT$ ("00" + STRING$(month), 2)
'    time$ = time$ + RIGHT$ ("00" + STRING$(day), 2) + ":"
'    time$ = time$ + RIGHT$ ("00" + STRING$(hour), 2)
'    time$ = time$ + RIGHT$ ("00" + STRING$(minute), 2)
'    time$ = time$ + RIGHT$ ("00" + STRING$(second), 2) + "."
'    time$ = time$ + RIGHT$ ("000000000" + STRING$ (nanosecond), 9)
' GL-
'
' GL-21apr15-new
    time$ = time$ + FORMAT$ ("0000", year)
    time$ = time$ + FORMAT$ ("00", month)
    time$ = time$ + FORMAT$ ("00", day) + ":"
    time$ = time$ + FORMAT$ ("00", hour)
    time$ = time$ + FORMAT$ ("00", minute)
    time$ = time$ + FORMAT$ ("00", second) + "."
    time$ = time$ + FORMAT$ ("000000000", nanosecond)
' GL-
'
Enjoy!
Guy
XFORMAT.x

Guy1954

unread,
Dec 26, 2016, 10:36:59 AM12/26/16
to xblite
Hints for using Revision 16
====================

- SAVE C:\xblite\include\xst.dec in C:\xblite\include\bak\ (for example).
- SAVE C:\xblite\bin\xblite.exe in C:\xblite\bin\bak\ (for example).
- SAVE C:\xblite\bin\XFORMAT.exe in C:\xblite\bin\bak\
- SAVE C:\xblite\bin\xsx.dll in C:\xblite\bin\bak\

- Overwrite C:\xblite\include\xst.dec with the new xst.dec
- Create a new source directory: C:\xblite\xblite_241_16\ (for example).
- Create inside new folders to store the downloaded sources:
  1.xbdll  (for new xst.dec)
  2.xblite (for xblite.x)
  3.xblib  (for XFORMAT.x)
  4.xsx    (for xsx.x)
- Compile the downloaded sources:
  1.xblite.x
  2.XFORMAT.x
  3.xsx.x

To revert, just copy back:
- from C:\xblite\include\bak\xst.dec to C:\xblite\include\
- from C:\xblite\bin\bak\xblite.exe to C:\xblite\bin\
- from C:\xblite\bin\bak\XFORMAT.exe to C:\xblite\bin\
- from C:\xblite\bin\bak\xsx.dll to C:\xblite\bin\

Guy1954

unread,
Dec 31, 2016, 3:18:13 AM12/31/16
to xblite
Hi Xbliters.

I also would like to share my personnal "XBLite Grab Bag": C:\xblite\grab_bag\ (attached).

I store in this grab_bag folder all the snippets that I value for my own developpements.

I organize it in a particular manner:
1.I try to make 2 versions of each snippet: terse and verbose source.
- The terse versions are stored in directory C:\xblite\grab_bag\,
   and are imported in the programs with a GRAB "snippet.x" directive.
- The verbose versions are stored in directory C:\xblite\grab_bag\verbose\,
   and are imported in the programs with a GRAB "verbose\\snippet.x" directive.

The verbose version is a debugging version, which is not supposed to be final.

2.I add a test program as a for instance documentation.
C:\xblite\grab_bag\verbose\test_asm.x illustrates the use of  "CopyMemory.asm" and "ZeroMemory.asm".
This test program illustrates the verbose form of these 2 assembler snippets:
GRAB "CopyMemory.asm"
    ' "$1" := "Entry"
    ' "$2" := "Copy001"
GRAB "ZeroMemory.asm"
    ' "$1" := "Entry"
    ' "$2" := "Zero001"

C:\xblite\grab_bag\test_asm.x is strictly identical, but tests the terse versions just by being located in the same directory.

In your developments, you would switch from verbose to terse by replacing "GRAB "verbose\\snippet" by "GRAB "snippet".

In conclusion, I urge you to constitute your own grab bag, and to share it with other Xbliter: a great way to contribute to the community!

Happy xbliting!
Guy
grab_bag.zip

David Szafranski

unread,
Dec 31, 2016, 7:08:35 AM12/31/16
to xbl...@googlegroups.com
Hi Guy,

Thanks for these new functions.

Also, perhaps you can give me a better idea of what went wrong with
some of the bugs you found in XstSetEnvironmentVariable() and XstTypeSize().

More of my comments below:
> Here is Revision 23 of xsx.x:
> 20 September 2014

> - modified XstGetOSName() to accomodate windows 8 and Wine
Good.
> - Corrected bug in XstSetEnvironmentVariable()
? Example please?
> - modified XstGetOSName() to detect windows 10
Great.
> - modified XstCall(): IFZ dllName$ THEN dllName$ = "kernel32" (operating system)
Not sure what this is about. If dllName$ is null then there should be an error if some kind,
not a default value.
> - replaced in XstReplace() XstTally by code for a speedier execution
Ok. Any comparison program?
> - added XstUnicodeLen() (emulates WinAPI lstrlenW)
Good. However, would you be willing to write up a help file page for it? Thanks!
> - corrected in XstTypeSize() the computation of the STRING element size.
? example?
> . XstGetStringTypeBOM() to get the Byte Order Mark of a string type
Good. However, would you be willing to write up a help file page for it? Thanks!

thanks,

David

bushpilot

unread,
Jan 1, 2017, 11:23:58 AM1/1/17
to xblite
It is great watching this take life again! Sorry I can't join you guys at this point in my life.

Greg

Guy1954

unread,
Jan 16, 2017, 8:29:09 PM1/16/17
to xblite
Hi D.

Please find attached Revision 23 of xsx.x.

Corresponding xblite.x follows...
xsx.x

Guy1954

unread,
Jan 16, 2017, 8:37:03 PM1/16/17
to xblite
Hi D.

Attached is revision 16 of xblite version 2.41.

I spent several days editing the source to make it easy for you to spot the differences with your own xblite.x.
This version works fine on my own developments; if you have a bunch of test scenarios, it's time to put xblite.exe and xsx.dll to the grinder.

More follows...
xblite.x

Guy1954

unread,
Jan 16, 2017, 8:50:15 PM1/16/17
to xblite
Attached is osname_gen.zip.
Inside:
- osname.x, a demo for the new XstGetOSName() in xsx.dll:
- osname_gen.vxn, the corresponding viXen project.

To re-generate osname.x:
1.Create a directory .\bak
2.Copy osname.x in .\dir
3.Rename osname_gen.vxn -> osname.vxn
4.Generate a new osname.x with viXen
5.Create with XSED osname.exe (F9, F10, F11)
6.Overwrite .\osname.x with.\bak\ osname.x
7.Create with XSED osname.exe (F9, F10, F11)
=>you should get "Windows 10" if it is your Operating System.

Enjoy,
Guy
osname_gen.zip

Guy1954

unread,
Jan 18, 2017, 1:48:48 PM1/18/17
to xblite
Hi D.

In a previous message, you asked for a demo for the updated XstGetOSName() of xsx.dll Revision 23.
In xsx.x, I wrote the 2 maintenance comments:
' - GL modified XstGetOSName() to accommodate vista and windows 7
' - GL modified XstGetOSName() to accommodate windows 8 and Wine

Then I tried so write the simplest demo program, and to run it under several OS's.

This new demo is "osname.exe", which I store in directory: C:\xblite\demo\gui\osname\

Please find attached 2 ZIP files:
1.osname_sources_v1_00.zip
2.osname_test_results_v1_00.zip

1.osname_sources_v1_00.zip contains:
- osname_gen.vxn – viXen project
- osname.x – Demo for XstGetOSName()
- osname.rc – resource file
    #include "winres.h"
    1 24 "osname.manifest"
- osname.manifest – the manifest file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
(...)
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!-- Windows Vista -->
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
            <!-- Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            <!-- Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
            <!-- Windows 8.1 -->
            <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
            <!-- Windows 10 -->
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        </application>
    </compatibility>
</assembly>


2.osname_test_results_v1_00.zip contains screen shots of osname.exe running under Windows 10, Windows 7, Windows XP and Linux Mint.

Test Results
============
  XstGetOSName  Running OS
  ------------  ----------
- "Windows 10"  Windows 10
- "Windows 7"   Windows 7
- "Windows XP"  Windows XP
- "Wine XP"     Linux Mint

Always rewarding to see my brain child behavioring as expected... Way to go, kid!

Bye!
Guy
osname_sources_v1_00.zip
osname_test_results_v1_00.zip

Guy1954

unread,
Feb 1, 2017, 7:01:33 PM2/1/17
to xblite
Hi D.

Here is my last version of xblite.x release 16.
A lot of code tightening.

Enjoy! Guy
xblite.x

Guy1954

unread,
Feb 15, 2017, 9:13:08 PM2/15/17
to xblite

Hi D.! Hi Xbliters!

Here is my final of xblite.x Revision 16.

Nothing new, except:

1.Commented and restructured the new code for peer review (yours, obviously).

2.Rewrote the STRIP algorithm, and succeeded to cut its execution time in half.

   On my pet program vxbl.x:
    to strip off a single FUNCTION, from 47,580 lines to 47,560 lines,
    duration was 43,578 milliseconds, and is now 19,437 milliseconds.

Bye!
Guy

xblite.x

Guy1954

unread,
Mar 21, 2017, 10:00:51 AM3/21/17
to xblite
Hi D.

In order to ease the implementation of Xblite's Unicode string support, I added 3 new keywords: CODE, GRAB and STRIP.

In a previous post, you asked me to write a short description of these new Xblite keywords.

Please find attached the description of CODE, GRAB and STRIP in the style of Xblite manual in attached CODE_GRAB_STRIP.zip.

They are .doc, described by MS Word as "Document Word 97-2003".

I believe you have a way to merge it to the Xblite manual: xblite_manual.chm.

Bye! Guy
CODE_GRAB_STRIP.zip
Message has been deleted
Message has been deleted

Guy1954

unread,
Mar 21, 2017, 10:22:02 AM3/21/17
to xblite
Hi D.

Please find attached xblite_v2_41_16.zip, which contains all the modified sources of Xblite Revision 16.

xblite.x handles properly the GRAB statement, which I used heavily to apply the QuickSort algorithm on chosen Xblite numeric and string types thanks to its text replacement capability.

I added some .BAT that helped me re-building compiler and libraries (Warning: I had to rename ".bat" to "_bat.txt" in order to be allowed to attach xblite_v2_41_16.zip).

Bye! Guy
xblite_v2_41_16.zip

Guy1954

unread,
Mar 21, 2017, 10:24:49 AM3/21/17
to xblite
Hi D.

Please find attached: "Release note for xblite revision 16.zip".
You can find there some advices to install safely Xblite Revision 16.

Hope this helps.
Bye! Guy
Release note for xblite revision 16.zip

Guy1954

unread,
Mar 21, 2017, 10:30:10 AM3/21/17
to xblite
Hi Xbliters,

Please find attached my latest Xblite grab bag: "grab_bag_v2.zip".

Minor differences with the previous one, just a more mature vintage like a good wine.


Enjoy!
Guy

On Saturday, November 26, 2016 at 6:00:02 PM UTC+1, Guy1954 wrote:
grab_bag_v2.zip
Message has been deleted

Guy1954

unread,
Apr 22, 2017, 1:35:46 PM4/22/17
to xblite
Hi Xbliters.

You can download from D.'s XbliteForum the latest revision 16 in xblite_rev16.zip, mainly:
- xblite\xblite.x
- xbdll\xst.x
- xsx\xsx.x
- read_file\read_file.x

You have everything to rebuild the compiler; just rename "_bat.txt" to ".bat" and run the 3 .BAT:
- xblite\BuildXbiteExe_bat.txt for xblite.x
- xbdll\BuildXstDll_bat.txt for xst.x
- xsx\BuildXsxDll_bat.txt for xsx.x.

New are Explicit Integers to described imported data record:

$$INT8                =  2          ' == $$SBYTE : 8-bit integer
$$UINT8               =  3          ' == $$UBYTE : unsigned 8-bit integer
$$INT16LE             =  4          ' == $$SSHORT: Little Endian 16-bit integer (Windows)
$$UINT16LE            =  5          ' == $$USHORT: Little Endian unsigned 16-bit integer (Windows)
$$INT32LE             =  6          ' == $$XLONG : Little Endian 32-bit integer (Windows)
$$UINT32LE            =  7          ' == $$ULONG : Little Endian unsigned 32-bit integer (Windows)
$$INT64LE             = 12          ' == $$GIANT : Little Endian 64-bit integer (Windows)

read_file.x is a test program to test:
- INT32LE (to map to XLONG)
- UINT32LE (to map to ULONG)
actually, you can test:
INT16LE count          ' r16-USHORT
with:
- INT8 count          ' r16-SBYTE
- INT16LE count          ' r16-SSHORT
- UINT16LE count          ' r16-USHORT
- INT32LE count          ' r16-XLONG, not SLONG
- UINT32LE count          ' r16-ULONG
- INT64LE count          ' r16-GIANT

I known of a David that would appreciate...

Bye, Guy
read_file.x
Message has been deleted

Guy1954

unread,
Apr 22, 2017, 2:24:08 PM4/22/17
to xblite
Please find attached the latest revision 16 in xblite_rev16.zip, mainly:

- xblite\xblite.x
- xbdll\xst.x
- xsx\xsx.x
- read_file\read_file.x

You have everything to rebuild the compiler; just rename "_bat.txt" to ".bat" and run the 3 .BAT:
- xblite\BuildXbiteExe_bat.txt for xblite.x
- xbdll\BuildXstDll_bat.txt for xst.x
- xsx\BuildXsxDll_bat.txt for xsx.x.

New are Explicit Integers to described imported data record:

$$INT8                =  2          ' == $$SBYTE : 8-bit integer
$$UINT8               =  3          ' == $$UBYTE : unsigned 8-bit integer
$$INT16LE             =  4          ' == $$SSHORT: Little Endian 16-bit integer (Windows)
$$UINT16LE            =  5          ' == $$USHORT: Little Endian unsigned 16-bit integer (Windows)
$$INT32LE             =  6          ' == $$SLONG : Little Endian 32-bit integer (Windows)

$$UINT32LE            =  7          ' == $$ULONG : Little Endian unsigned 32-bit integer (Windows)
$$INT64LE             = 12          ' == $$GIANT : Little Endian 64-bit integer (Windows)

read_file.x is a test program to test:
- INT32LE (to map to SLONG)

- UINT32LE (to map to ULONG)
actually, you can test with:
INT8 count        ' r16-SBYTE
INT16LE count        ' r16-SSHORT
UINT16LE count        ' r16-USHORT
INT32LE count        ' r16-SLONG, not XLONG
UINT32LE count        ' r16-ULONG
xblite.x
xst.x
xsx.x
read_file.x

gentsky

unread,
May 17, 2017, 10:21:47 AM5/17/17
to xblite
Hi Guy,

I have posted an entry on the Xblite Forum in the Compiler section  regarding the use of ENTER in the function entry code of release 16. I am concerned about the performance implications. Please review the test program which is attached there.

Regards,

Alan 

gentsky

unread,
May 24, 2017, 12:29:51 PM5/24/17
to xblite
Hi Guy,

I have posted a couple of entries in the forum - compiler section regarding use of ENTER and a minor problem regarding the number of zeros pushed to the stack when initializing local variables.

BTW, ENTER took 11 clocks on the 286, 10 clocks on the 386 and 14 clocks on the 486. The Intel performance manual recommends not to use it. With modern processors the 3 instruction form is far quicker and Intel have no intention of making ENTER go faster. It is still supported for old legacy code but new code should use the 3 instruction form. I have done some work recently in MASM (2015 version) using prologues and epilogues generated by PROC / ENDP and these generate the standard code.

Cheers,

bushpilot

unread,
May 26, 2017, 11:35:01 AM5/26/17
to xblite
Guy & Alan (?),

Congrats on the continued development of xblite! I concur with Alan on the two points mentioned above. Regarding the prolog code error, that bug was mine. I struggled when I wrote it whether I had it right or not, guess I missed it.

Greg

gentsky

unread,
May 28, 2017, 5:13:03 AM5/28/17
to xblite
Hi Guy, Bushpilot,

I have posted a thread on the forum with a test file regarding the minor problem with 4 too many zeros being pushed for local initialization.

It is a trivial fix so it would be good to put it in your next release of xblite.

Cheers,

Alan


Guy1954

unread,
May 28, 2017, 5:50:55 PM5/28/17
to xblite
Hi Alan.

This is just a little note to let you know that
- I read your message in the Xblite Forum,
- I could download your "small test program": locals.x,
  which exposes this glitch of an anormal "number of zeros pushed on the stack for local variables".

I'm going to look into itASAP, and I'll let you know if I find a patch.

A big thanks for your numerous contributions.

Bye! Guy

gentsky

unread,
May 28, 2017, 6:06:23 PM5/28/17
to xblite
Hi Guy

The test program includes the patch in the comments at the top.
You need to run the program and inspect the generated .asm file with Xblite as it is first. This shows 4 too many zeros problem
Then modify Xblite compiler as indicated ( change -24 to -40 ) and run it again. You will see it then generates the correct number of zeros

Cheers,

Alan

Guy1954

unread,
May 29, 2017, 4:37:12 PM5/29/17
to xblite
Hi Alan,

Could you please download the new xblite.x that I just posted in the Xblite Forum?
Look for "gentsky" and see if I coded the fix the right way.

Thank you.

Bye! Guy

Guy1954

unread,
Jun 6, 2017, 7:35:13 PM6/6/17
to xblite
Hi Xbliters.

Do you want a light? An XB light?
I worked on an installation program and I have an experimental one that comes in 3 parts:
- XblMini_setup.exe: a minimalistic Xblite compiler and program development environment,
- xblite_setup.exe: a complete Xblite compiler and program development environment,
- XblDemo_setup.exe: the demo programs for Xblite.

Take you pick, and ride on release 16 of your favorite compiler.
And, pretty please, give me some feedback!

Bye! Guy

PS. Attached are the Inno Setup scripts.
XblMini_setup.iss
xblite_setup.iss
XblDemo_setup.iss

Guy1954

unread,
Jun 6, 2017, 7:48:56 PM6/6/17
to xblite
Hi Xbliters.

So sad!

The attached files exceed the maximum allowed size and I can't upload them neither at the Xblite Forum, nor in this Group.

Is there another way to distribute these files?

Sorry, but I thought it was a good idea.

Bye! Guy

Tim H

unread,
Jun 7, 2017, 11:16:54 AM6/7/17
to xbl...@googlegroups.com
Free services -- 

Wetransfer.com  allows for fast downloading of uploaded files.  However, the files you upload for free only remain for seven days.  Wetransfer downloads are very fast compared to some other services. 

Dropbox.com is a reasonable way to offer files.  You can create a folder and upload individual files, or upload one Zip.  I share photos I took at events on Dropbox by putting them in a folder and asking Dropbox for the Public Link to that folder.  Anyone with the link can download from the folder.  Files don't expire. 

4Shared.com is a lot less well known, but the sharing is easy.

I wish I were more familiar with Github.  That's the standard way of sharing source and executables for open source projects these days.   I don't know capacity right off the top of my head. 



From: Guy1954 <guy....@gmail.com>
To: xblite <xbl...@googlegroups.com>
Sent: Tuesday, June 6, 2017 7:48 PM
Subject: [xblite] Re: XBLite version 2.41 revision 16

--
You received this message because you are subscribed to the Google Groups "xblite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xblite+un...@googlegroups.com.
To post to this group, send email to xbl...@googlegroups.com.
Visit this group at https://groups.google.com/group/xblite.
For more options, visit https://groups.google.com/d/optout.


Guy1954

unread,
Oct 15, 2017, 3:18:46 PM10/15/17
to xblite
October 10, 2017

Hi Xbliters,

I just uploaded in the Xblite Forum xblite_2_41_16_2017_10_15_src.zip, which contains:
- BuildXbiteExe_bat.txt
- makexblite.mak
- read_me.txt
- xblite.x
- xst.dec

Installation:
1.Make a backup copy of all files of folder C:\xblite\bin\ to C:\xblite\bin\bak\
2.Create a folder xblite_2_41_16
3.Unzip xblite_2_41_16.zip into the new folder (Extracts xblite.x and the other files)
4.Rename CompileXbite.txt CompileXbite.bat
5.Use CompileXbite.bat to recompile
6.Copy xblite.exe into C:\xblite\bin\

New features:
1.New size-dependant integer types:
-  INT8 <=> SBYTE,  INT16LE <=> SSHORT,  INT32LE <=> SLONG, INT64LE <=> GIANT
- UINT8 <=> UBYTE, UINT16LE <=> USHORT, UINT32LE <=> ULONG

2.New default character type: CHAR (similar to STRING)
- CHAR <=> UBYTE, CHAR() <=> UBYTE(), CHARAT <=> UBYTEAT().
- CHAR <=> UINT8, CHAR() <=> UINT8(), CHARAT <=> UINT8AT().

3.Assembly code injection: CODE and END CODE
- (CODE, END CODE) for GoAsm code injection.

3.
- GRAB statement: sort of COBOL's COPY REPLACING ==text1== BY ==text2==:

Usage of GRAB:
In WinX.x, I replaced m4_include(`accessors.m4') by GRAB "accessors/*.x"

1.GRAB "accessors/declare.x"        ' "$1" := "BINDING"
2.GRAB "accessors/declare02.x"
' "$1" := "BINDING"
' OMIT FUNCTIONs "_ActiveId", "_Get_idMin"

The 1st GRAB imports file ./accessors/declare.x replacing all $1 by BINDING.
The 2nd GRAB imports file ./accessors/declare02.x replacing all $1 by BINDING, but not only:
it remvoves the FUNCTIONs BINDING_ActiveId and BINDING_Get_idMin, which are not needed.

I believe this will promote code reuse, and a snippet production.

Bye! Guy

Guy1954

unread,
Oct 15, 2017, 3:40:09 PM10/15/17
to xblite
October 10, 2017

Hi Xbliters!

I just uploaded in the Xblite Forum xsed_2017_10_15.zip, which contains the modified source xsed.x of xsed.exe as of 15 October 2017 Revision 1.33.
You can recompile xsed.x using your current XSED.exe, but you can't run it from within a running XSED.exe.
You have to quit XSED, and copy C:\xblite\xsed\xsed.exe to your folder C:\xblite\bin\
Re-load C:\xblite\xsed\xsed.x in your new XSED.exe and select menu option Help/About XSED; it should read:
Version 1.33 and David Szafranski (c) 2005-2017.

I worked on improving an already great program editor to account for the new integers (INT8...), a new 'Copy File Path' to retrieve the path of the source in the editor's tab (right-click on the tab). If I'm playing with xsed.x, it's because I intend to port it to Unicode Windows APIs as a proof of concept of xblite Revision 17.

Bye! Guy
Reply all
Reply to author
Forward
0 new messages