Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-12 Thread Giorgio Garabello
Sorry wrong quotes ... It was for Marcel


Il 11 apr 2017 17:23, "Ralf Reköndt"  ha scritto:

> Yes, I know. Although Marcel do not know, I would be interested in knowing
> the way, they have realized it.
>
> Ralf
>
> Am 11.04.2017 um 12:07 schrieb Derek Stewart:
>
>> On 11/04/17 09:58, Ralf Reköndt wrote:
>>
>>> Yes, would be interesting to know, how QLib does this with its compiled
>>> "resident" extensions.
>>>
>>> Ralf
>>>
>>> -Original-Nachricht-
>>> Betreff: Re: [Ql-Users] Marcel has done it again - SMSQE 3.31
>>> Datum: 2017-04-11T10:47:36+0200
>>> Von: "Jan Bredenbeek"
>>>
>>> On 11 April 2017 at 10:07, Derek Stewart  wrote:
>>>
>>> Hi Marcel,
>>>
>>>>
>>>> Do you think it is possible for the SMSQ/E internal compiler produce a
>>>> compiled version of the SBASIC programme?
>>>>
>>>
>>>
>>> You can EXEC a SBASIC program in the same way as a 'normal' executable
>>> program on SMSQ/E (which actually starts another instance of SBASIC).
>>> But the code produced by the real-time compiler is not real 68000 code
>>> but
>>> pseudo-code and needs the SBASIC environment to work. So it cannot be a
>>> stand-alone EXECable program unless the SBASIC runtime environment also
>>> comes with it.
>>> Nevertheless it would be a great idea if you could write a procedure in
>>> SBASIC and LRESPR the compiled code as SBASIC extension so you have it
>>> always available. AFAIK there is no higher-level language compiler
>>> capable
>>> of producing SBASIC extensions - or perhaps Qliberator?
>>>
>>> Jan.
>>>
>>> Hi,
>>
>> Qliberator has a nice feature that S*Basic procedures and Functions can
>> be compiled and loaded as Resident Procedures and Functions using the
>> EXTERNAL for single Procedure or Function and EXT_ALL for all Procedures
>> and Functions directives in REMark statements.
>>
>> Something like that would be nice to have built into SMSQ/E.
>>
>>
> ___
> QL-Users Mailing List
___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Ralf Reköndt
Yes, I know. Although Marcel do not know, I would be interested in 
knowing the way, they have realized it.


Ralf

Am 11.04.2017 um 12:07 schrieb Derek Stewart:

On 11/04/17 09:58, Ralf Reköndt wrote:
Yes, would be interesting to know, how QLib does this with its 
compiled "resident" extensions.


Ralf

-Original-Nachricht-
Betreff: Re: [Ql-Users] Marcel has done it again - SMSQE 3.31
Datum: 2017-04-11T10:47:36+0200
Von: "Jan Bredenbeek"

On 11 April 2017 at 10:07, Derek Stewart  wrote:

Hi Marcel,


Do you think it is possible for the SMSQ/E internal compiler produce a
compiled version of the SBASIC programme?



You can EXEC a SBASIC program in the same way as a 'normal' executable
program on SMSQ/E (which actually starts another instance of SBASIC).
But the code produced by the real-time compiler is not real 68000 
code but

pseudo-code and needs the SBASIC environment to work. So it cannot be a
stand-alone EXECable program unless the SBASIC runtime environment also
comes with it.
Nevertheless it would be a great idea if you could write a procedure in
SBASIC and LRESPR the compiled code as SBASIC extension so you have it
always available. AFAIK there is no higher-level language compiler 
capable

of producing SBASIC extensions - or perhaps Qliberator?

Jan.


Hi,

Qliberator has a nice feature that S*Basic procedures and Functions 
can be compiled and loaded as Resident Procedures and Functions using the
EXTERNAL for single Procedure or Function and EXT_ALL for all 
Procedures and Functions directives in REMark statements.


Something like that would be nice to have built into SMSQ/E.



___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Giorgio Garabello
Il 11 apr 2017 10:47, "Jan Bredenbeek"  ha scritto:

On 11 April 2017 at 10:07, Derek Stewart  wrote:

Hi Marcel,
>
> Do you think it is possible for the SMSQ/E internal compiler produce a
> compiled version of the SBASIC programme?


You can EXEC a SBASIC program in the same way as a 'normal' executable
program on SMSQ/E (which actually starts another instance of SBASIC).
But the code produced by the real-time compiler is not real 68000 code but
pseudo-code and needs the SBASIC environment to work. So it cannot be a
stand-alone EXECable program unless the SBASIC runtime environment also
comes with it.
Nevertheless it would be a great idea if you could write a procedure in
SBASIC and LRESPR the compiled code as SBASIC extension so you have it
always available. AFAIK there is no higher-level language compiler capable
of producing SBASIC extensions - or perhaps Qliberator?

Jan.

--
*Jan Bredenbeek* | Hilversum, NL | j...@bredenbeek.net
___
QL-Users Mailing List

Yes you can build extension with qliberator
___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Derek Stewart

On 11/04/17 09:58, Ralf Reköndt wrote:

Yes, would be interesting to know, how QLib does this with its compiled 
"resident" extensions.

Ralf

-Original-Nachricht-
Betreff: Re: [Ql-Users] Marcel has done it again - SMSQE 3.31
Datum: 2017-04-11T10:47:36+0200
Von: "Jan Bredenbeek"

On 11 April 2017 at 10:07, Derek Stewart  wrote:

Hi Marcel,


Do you think it is possible for the SMSQ/E internal compiler produce a
compiled version of the SBASIC programme?



You can EXEC a SBASIC program in the same way as a 'normal' executable
program on SMSQ/E (which actually starts another instance of SBASIC).
But the code produced by the real-time compiler is not real 68000 code but
pseudo-code and needs the SBASIC environment to work. So it cannot be a
stand-alone EXECable program unless the SBASIC runtime environment also
comes with it.
Nevertheless it would be a great idea if you could write a procedure in
SBASIC and LRESPR the compiled code as SBASIC extension so you have it
always available. AFAIK there is no higher-level language compiler capable
of producing SBASIC extensions - or perhaps Qliberator?

Jan.


Hi,

Qliberator has a nice feature that S*Basic procedures and Functions can 
be compiled and loaded as Resident Procedures and Functions using the
EXTERNAL for single Procedure or Function and EXT_ALL for all Procedures 
and Functions directives in REMark statements.


Something like that would be nice to have built into SMSQ/E.

--
Regards,

Derek
___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Marcel Kilgus
Jan Bredenbeek wrote:
> Nevertheless it would be a great idea if you could write a procedure in
> SBASIC and LRESPR the compiled code as SBASIC extension so you have it
> always available. AFAIK there is no higher-level language compiler capable
> of producing SBASIC extensions - or perhaps Qliberator?

This is possible with QLiberator. No idea how this works in detail,
though.

Cheers, Marcel


___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Marcel Kilgus
Derek Stewart wrote:
> Do you think it is possible for the SMSQ/E internal compiler produce a
> compiled version of the SBASIC programme?

Perhaps it's possible, but I don't see a use case for it as there is
already QLiberator and Turbo for that. And Turbo is probably faster.

Marcel



___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Marcel Kilgus
Francois Lanciault wrote:
> With all those discussions about bug correction and the good,
> benevolent people who spend time to hunt them down, I wonder :
>
> Is there a proper way to report bugs in SMSQ/E ?
>
> Does asking kindly on this list enough ? :-)

Yeah, that is probably your best bet. Bribes work, too, of course :-P

Cheers, Marcel

___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Ralf Reköndt
Yes, would be interesting to know, how QLib does this with its compiled 
"resident" extensions.

Ralf

-Original-Nachricht-
Betreff: Re: [Ql-Users] Marcel has done it again - SMSQE 3.31
Datum: 2017-04-11T10:47:36+0200
Von: "Jan Bredenbeek"

On 11 April 2017 at 10:07, Derek Stewart  wrote:

Hi Marcel,
>
> Do you think it is possible for the SMSQ/E internal compiler produce a
> compiled version of the SBASIC programme?


You can EXEC a SBASIC program in the same way as a 'normal' executable
program on SMSQ/E (which actually starts another instance of SBASIC).
But the code produced by the real-time compiler is not real 68000 code but
pseudo-code and needs the SBASIC environment to work. So it cannot be a
stand-alone EXECable program unless the SBASIC runtime environment also
comes with it.
Nevertheless it would be a great idea if you could write a procedure in
SBASIC and LRESPR the compiled code as SBASIC extension so you have it
always available. AFAIK there is no higher-level language compiler capable
of producing SBASIC extensions - or perhaps Qliberator?

Jan.

-- 
*Jan Bredenbeek* | Hilversum, NL | j...@bredenbeek.net

___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Jan Bredenbeek
On 11 April 2017 at 10:07, Derek Stewart  wrote:

Hi Marcel,
>
> Do you think it is possible for the SMSQ/E internal compiler produce a
> compiled version of the SBASIC programme?


You can EXEC a SBASIC program in the same way as a 'normal' executable
program on SMSQ/E (which actually starts another instance of SBASIC).
But the code produced by the real-time compiler is not real 68000 code but
pseudo-code and needs the SBASIC environment to work. So it cannot be a
stand-alone EXECable program unless the SBASIC runtime environment also
comes with it.
Nevertheless it would be a great idea if you could write a procedure in
SBASIC and LRESPR the compiled code as SBASIC extension so you have it
always available. AFAIK there is no higher-level language compiler capable
of producing SBASIC extensions - or perhaps Qliberator?

Jan.

-- 
*Jan Bredenbeek* | Hilversum, NL | j...@bredenbeek.net
___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-11 Thread Derek Stewart

On 10/04/17 20:15, Marcel Kilgus wrote:

Ralf Reköndt wrote:

As this seems to be very near at QLib, it makes me wonder, if TT has any
long lost source code of QLib.


IIRC the QLib compiler was written in Basic. I don't think there are
many similarities besides the basic concept.

Marcel

___
QL-Users Mailing List


Hi Marcel,

Do you think it is possible for the SMSQ/E internal compiler produce a 
compiled version of the SBASIC programme?


--
Regards,

Derek
___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread Francois Lanciault


With all those discussions about bug correction and the good, benevolent people 
who spend time to hunt them down, I wonder :

Is there a proper way to report bugs in SMSQ/E ?

Does asking kindly on this list enough ? :-)

François
___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread Marcel Kilgus
Ralf Reköndt wrote:
> As this seems to be very near at QLib, it makes me wonder, if TT has any
> long lost source code of QLib.

IIRC the QLib compiler was written in Basic. I don't think there are
many similarities besides the basic concept.

Marcel

___
QL-Users Mailing List

Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread Ralf Reköndt
As this seems to be very near at QLib, it makes me wonder, if TT has any 
long lost source code of QLib.



Marcel Kilgus:

Jan Bredenbeek wrote:

I've been doing a lot of disassembling on the original QL ROM but
understanding the SuperBASIC parser was a bridge too far for me, so I found
it a very interesting read. It raises one question though - is SBASIC an
interpreter or a real-time compiler?

It's a compiler that compiles to intermediate code and an interpreter
for this code. Basically the same as a real-time QLiberator. And
actually similar to how modern languages do this, like Java and C# (if
we disregard the later hot-spot compilation step).


I'm still working on BASICODE and hit upon another 'feature' which works
differently in SBASIC: the vector at $138 can be used to LIST a number of
lines (from D4 to D6), but in the original ROMs and Minerva it can also be
used to execute a DLINE when called with D7<>0 (I believe the TK2 ED
command makes extensive use of this). However in SBASIC the DLINE feature
doesn't work, and from examining the code I could deduce that D7 isn't
being tested at all!

Haven't investigated anything in this regard, but full source code for
TK ED is available and other than a different way to call the vectored
routines it's identical between QDOS and SMSQ/E.


___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread Marcel Kilgus
Jan Bredenbeek wrote:
> I've been doing a lot of disassembling on the original QL ROM but
> understanding the SuperBASIC parser was a bridge too far for me, so I found
> it a very interesting read. It raises one question though - is SBASIC an
> interpreter or a real-time compiler?

It's a compiler that compiles to intermediate code and an interpreter
for this code. Basically the same as a real-time QLiberator. And
actually similar to how modern languages do this, like Java and C# (if
we disregard the later hot-spot compilation step).

> I'm still working on BASICODE and hit upon another 'feature' which works
> differently in SBASIC: the vector at $138 can be used to LIST a number of
> lines (from D4 to D6), but in the original ROMs and Minerva it can also be
> used to execute a DLINE when called with D7<>0 (I believe the TK2 ED
> command makes extensive use of this). However in SBASIC the DLINE feature
> doesn't work, and from examining the code I could deduce that D7 isn't
> being tested at all!

Haven't investigated anything in this regard, but full source code for
TK ED is available and other than a different way to call the vectored
routines it's identical between QDOS and SMSQ/E.

Cheers, Marcel

___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread François Van Emelen

Op 8/04/2017 om 10:15 schreef Wolf:

Hi all,

Marcel has done it again - SMSQE 3.31 is out now.

Marcel has fixed the LRESPR bug. LRESPRing sbasic extensions in a 
procedure no longer crashes the machine.


David Westbury also contributed valuable code: RPIXL now also works in 
8 and 16 bit modes.


Finally, the string slicing behaviour fix was reverted. SMSQ/E will 
not complain anymore if you try to start a slice of a string 1 past 
its length.



www.wlenerz.com/smsqe

Have fun!

Wolfgang
___
QL-Users Mailing List



Hi,

Many thanks to Marcel and David.

François Van Emelen



___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-10 Thread Jan Bredenbeek
Hi Marcel,

On 10 April 2017 at 00:28, Marcel Kilgus  wrote:

> Wolf wrote:
> > Marcel has done it again - SMSQE 3.31 is out now.
> >
> > Marcel has fixed the LRESPR bug. LRESPRing sbasic extensions in a
> > procedure no longer crashes the machine.
>
> Thank you Wolfgang. I have actually written down part of the journey
> in fixing this bug, so if this sort of technical thing interests you,
> here it is:
>
> https://www.kilgus.net/2017/04/10/sbasic-bug-boogie/
>
> It includes a rough description of how SBasic works internally, partly
> so I can read it myself if I ever need it again. The rest I still
> consider pure Voodoo ;-)
>

I've been doing a lot of disassembling on the original QL ROM but
understanding the SuperBASIC parser was a bridge too far for me, so I found
it a very interesting read. It raises one question though - is SBASIC an
interpreter or a real-time compiler?

I'm still working on BASICODE and hit upon another 'feature' which works
differently in SBASIC: the vector at $138 can be used to LIST a number of
lines (from D4 to D6), but in the original ROMs and Minerva it can also be
used to execute a DLINE when called with D7<>0 (I believe the TK2 ED
command makes extensive use of this). However in SBASIC the DLINE feature
doesn't work, and from examining the code I could deduce that D7 isn't
being tested at all!

I discovered this when I testing my BCLOAD extension which should delete
all lines from 1000 to the end and then read in a BASICODE program,
translating it to S*BASIC on the fly so it heavily depends on the S*BASIC
vectors. On JM/JS/Minerva it worked as expected but in SBASIC it actually
merged the old and new programs! It looks like I have to write this code
myself now (which is not too difficult as it's merely scanning the program
for line 1000 and then set BV.PFP to the end of the line just before it).

regards, Jan.

-- 
*Jan Bredenbeek* | Hilversum, NL | j...@bredenbeek.net
___
QL-Users Mailing List


Re: [Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-09 Thread Marcel Kilgus
Wolf wrote:
> Marcel has done it again - SMSQE 3.31 is out now.
>
> Marcel has fixed the LRESPR bug. LRESPRing sbasic extensions in a 
> procedure no longer crashes the machine.

Thank you Wolfgang. I have actually written down part of the journey
in fixing this bug, so if this sort of technical thing interests you,
here it is:

https://www.kilgus.net/2017/04/10/sbasic-bug-boogie/

It includes a rough description of how SBasic works internally, partly
so I can read it myself if I ever need it again. The rest I still
consider pure Voodoo ;-)

All the best, Marcel

___
QL-Users Mailing List


[Ql-Users] Marcel has done it again - SMSQE 3.31

2017-04-08 Thread Wolf

Hi all,

Marcel has done it again - SMSQE 3.31 is out now.

Marcel has fixed the LRESPR bug. LRESPRing sbasic extensions in a 
procedure no longer crashes the machine.


David Westbury also contributed valuable code: RPIXL now also works in 8 
and 16 bit modes.


Finally, the string slicing behaviour fix was reverted. SMSQ/E will not 
complain anymore if you try to start a slice of a string 1 past its length.



www.wlenerz.com/smsqe

Have fun!

Wolfgang
___
QL-Users Mailing List