Re: [Ql-Users] Contact search

2011-01-10 Thread Ralf Reköndt

Peter Graf wrote:


What I can say is, that Jürgen Falkenberg or Ulrich Rosowski must have
modified a hardware circuit from Dirk Steinkopf, the person who also
wrote QL-HD. I don't know wether they also used Dirk's driver or a
different one.


AFAIK Ulrich has developed the Harddisk for Andreas Budde, connected via the 
QL's expansion. It was very fast, but I know nothing about the software.


Cheers...Ralf 


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Tony Firshman

Peter Graf wrote, on 11/Jan/11 00:10 | Jan11:

Tony Firshman wrote:


I didn't see his his hard disk interface.  Phil Borman told me he had
used the Rebel code.  Was that right?  Qubide also used this under
license.   Phii was not aware of any license for his build.


What I can say is, that Jürgen Falkenberg or Ulrich Rosowski must have
modified a hardware circuit from Dirk Steinkopf, the person who also
wrote QL-HD. I don't know wether they also used Dirk's driver or a
different one.

The interface from Dirk Steinkopf was public domain, and I had soldered
it myself instead of buying the Falkenberg interface, which seemed
somewhat big and expensive to me at the time. The disadvatage was, that
an MFM/RLL-Controller was required in addition to the interface.

 From my point of view, the structure of Dirk Steinkopf's driver (QL-HD)
is cleaner and more modern than Rebel/Qubide. The lowlevel routines for
init, read and write were nicely separated, and I've been able to
complety bring them to the C language layer within a few days of work.
This will allow me to adapt the driver to SD/MMC cards. In Qubide,
low-level access is scattered all over the code and the same task would
take me years. (I am not an assembler guru...) Also, QL-HD uses a C
language layer, unlike all other QL disk drivers I know. I think the QL
scene made a mistake to forget Dirk's driver for so long. It had nice
features like true subdirectories, background operation, and job
specific working directories. Other drivers implemented that much later
or never.

I am pretty sure Dirk has not used anyone elses's driver code, probably
except looking into the QL ROM how things are done there.

Ah yes - it cannot have been the Falkenberg. That history is all very 
interesting, and good for the archive.


The QL sub-directory implementation in most QL systems is better than 
nothing but is not good.
What a pity *true* sub-directories were not possible.  That is where DOS 
and successors really win.
What a struggle it is copying file systems, and one often hits the 
length limit.

On my BBS I have many obscure directory names for that very reason.
The real snag with the limit is all appears OK on the local system until 
one adds a network path!


Only two others spring to mind -  Miracle and Qn0.
I don't know *anything* about the details.

 Tony

--
QBBS (QL fido BBS 2:257/67) +44(0)1442-828255
   t...@firshman.co.uk http://firshman.co.uk
Voice: +44(0)1442-828254 Fax: +44(0)1442-828255 Skype: tonyfirshman
TF Services, 29 Longfield Road, TRING, Herts, HP23 4DG
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Peter Graf
Tony Firshman wrote:

> I didn't see his his hard disk interface.  Phil Borman told me he had
> used the Rebel code.  Was that right?  Qubide also used this under
> license.   Phii was not aware of any license for his build.

What I can say is, that Jürgen Falkenberg or Ulrich Rosowski must have
modified a hardware circuit from Dirk Steinkopf, the person who also
wrote QL-HD. I don't know wether they also used Dirk's driver or a
different one.

The interface from Dirk Steinkopf was public domain, and I had soldered
it myself instead of buying the Falkenberg interface, which seemed
somewhat big and expensive to me at the time. The disadvatage was, that
an MFM/RLL-Controller was required in addition to the interface.

>From my point of view, the structure of Dirk Steinkopf's driver (QL-HD)
is cleaner and more modern than Rebel/Qubide. The lowlevel routines for
init, read and write were nicely separated, and I've been able to
complety bring them to the C language layer within a few days of work.
This will allow me to adapt the driver to SD/MMC cards. In Qubide,
low-level access is scattered all over the code and the same task would
take me years. (I am not an assembler guru...) Also, QL-HD uses a C
language layer, unlike all other QL disk drivers I know. I think the QL
scene made a mistake to forget Dirk's driver for so long. It had nice
features like true subdirectories, background operation, and job
specific working directories. Other drivers implemented that much later
or never.

I am pretty sure Dirk has not used anyone elses's driver code, probably
except looking into the QL ROM how things are done there.

All the best,
Peter
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread P Witte

Rich Mellor wrote:


On 10/01/2011 15:00, Rich Mellor wrote:

On 10/01/2011 14:50, gdgqler wrote:

On 10 Jan 2011, at 14:32, Lee Privett wrote:

In QDOS/SMSQ/E the 'AT' keyword allows the print statement an 
imaginary y/x character cursor location to be used. Is there away 
of knowing where this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

I don't know of any extensions which contain functions like LOCX and 
LOCY. The trap #3 call SD_CHENQ returns the cursor position in 
characters. It would therefore be easy to produce the keywords LOCX 
and LOCY.


George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm





I had a quick look through my SBASIC/SuperBASIC Reference Manual and 
can't find anything.


I am sure I wrote a small function (CURSOR_POSX and CURSOR_POSY) to 
get at these values but which program I used it in, I can't think for 
the life of me!.




Of course, there is an easier way...

Use the CHANS toolkit from DIY toolkit (volume C) and then use

PRINT CHAN_W%(#3,34) to grab the x position on channel #3
PRINT CHAN_W%(#3,36) to grab the y position on channel #3


Or try

PRINT CHAN_W%(#ch; 82): rem SD_XPOS
PRINT CHAN_W%(#ch; 84): rem SD_YPOS

for position in cursor coordinates, which is what I think you want.

It may be possible to do this without a toolkit by using the extended
PEEK commands found in SMSQ/E and Minerva. I havnt tried, though.

Per


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Rich Mellor

On 10/01/2011 22:02, Dilwyn Jones wrote:
Rich - as you wanted Falkenberg hard disk information for the QL 
Wiki, is there anything in that manual which would give you 
information for the Wiki?


Oops, sorry, thought there was nothing there, as I only looked in the 
Wiki under 'JFC' and 'Falkenberg' and failed to notice it was under 
QL-HDD card :-(


Dilwyn Jones


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


There - I have added an entry for Jurgen Falkenberg - although it is 
fairly sparse.


Can you email me the manual for the QL-HDD interface please - we could 
do with updating that page (although I think it was originally penned by 
you Dilwyn!)


--
Rich Mellor
RWAP Services

http://www.rwapsoftware.co.uk
http://www.rwapservices.co.uk

-- Try out our new site: http://sellmyretro.com


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Dilwyn Jones
Rich - as you wanted Falkenberg hard disk information for the QL 
Wiki, is there anything in that manual which would give you 
information for the Wiki?


Oops, sorry, thought there was nothing there, as I only looked in the 
Wiki under 'JFC' and 'Falkenberg' and failed to notice it was under 
QL-HDD card :-(


Dilwyn Jones 




___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Dilwyn Jones
I didn't see his his hard disk interface. Phil Borman told me he 
had

used the Rebel code. Was that right? Qubide also used this under
license. Phii was not aware of any license for his build.


AFAIK DS has writen his own(!) driver, as Peter has told me, also 
with a

few utility programs not available to other interfaces. Phil should
clearify that. Here. Be careful to blame someone.

On the other handthere were rumours about Jürgen Falkenberg 
using

code from someone else (not in conjunction with his HD-Interface).


Who is 'DS'?
I was simply reporting what Phil said, but it was a long time ago 
now. My brain may have been thinking about something else.

It was only a question and I will be happy to be proved wrong.

Tony


I think Ralf was referring to Dirk Steinkopf, author of the QL-HD / 
Falkenberg Harddisk driver, who I think Peter originally said he was 
trying to contact. Although according to the JFC QL-HDD manual on my 
website, the WIN extensions were under license of Jörg Schiemann 
(still possible the extensions might have been written by a third 
party I guess). Contact details for Falkenberg himself are also on the 
cover of that manual.


Rich - as you wanted Falkenberg hard disk information for the QL Wiki, 
is there anything in that manual which would give you information for 
the Wiki?


Dilwyn Jones 




___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Tony Firshman

Ralf Reköndt wrote, on 10/Jan/11 19:59 | Jan10:

Tony Firshman wrote:



I didn't see his his hard disk interface. Phil Borman told me he had
used the Rebel code. Was that right? Qubide also used this under
license. Phii was not aware of any license for his build.


AFAIK DS has writen his own(!) driver, as Peter has told me, also with a
few utility programs not available to other interfaces. Phil should
clearify that. Here. Be careful to blame someone.

On the other handthere were rumours about Jürgen Falkenberg using
code from someone else (not in conjunction with his HD-Interface).


Who is 'DS'?
I was simply reporting what Phil said, but it was a long time ago now. 
My brain may have been thinking about something else.

It was only a question and I will be happy to be proved wrong.

Tony
--
QBBS (QL fido BBS 2:257/67) +44(0)1442-828255
   t...@firshman.co.uk http://firshman.co.uk
Voice: +44(0)1442-828254 Fax: +44(0)1442-828255 Skype: tonyfirshman
TF Services, 29 Longfield Road, TRING, Herts, HP23 4DG
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Ralf Reköndt

Tony Firshman wrote:



I didn't see his his hard disk interface.  Phil Borman told me he had
used the Rebel code.  Was that right?  Qubide also used this under
license.   Phii was not aware of any license for his build.


AFAIK DS has writen his own(!) driver, as Peter has told me, also with a few 
utility programs not available to other interfaces. Phil should clearify 
that. Here. Be careful to blame someone.


On the other handthere were rumours about Jürgen Falkenberg using code 
from someone else (not in conjunction with his HD-Interface).


Cheers...Ralf 


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Tony Firshman

Rich Mellor wrote, on 10/Jan/11 16:49 | Jan10:

On 10/01/2011 16:32, Peter wrote:

does one of you know a valid email address or any contact to Dirk
Steinkopf, author of the QL-HD / Falkenberg Harddisk driver?

... I've found him :-) Thanks Ralf& Rich!

All the best,
Peter

___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm



Hi Peter - maybe you can ask him for some details for the QL Wiki - we
don't really have anything abou the Falkenberg products.

I must say I was mainly impressed with his hardware ideas but the 
quality of the pcbs and build was really awful in all the many examples 
I saw of his keyboard interface.  ... and what a lot of 8049/8749s in 
the design. superHermes did vastly more in a considerably smaller 
package and a lot less current consumption.


I didn't see his his hard disk interface.  Phil Borman told me he had 
used the Rebel code.  Was that right?  Qubide also used this under 
license.   Phii was not aware of any license for his build.


Flakenberg's reaction when I politely pointed out at Bielefeld, I think, 
that he was selling a pirated Minerva was unbelievable. At no time, I 
hope, did I suggest he knew it was pirated, but he pestered me on the 
phone for a long time, often at 2am or so.



Tony
--
QBBS (QL fido BBS 2:257/67) +44(0)1442-828255
   t...@firshman.co.uk http://firshman.co.uk
Voice: +44(0)1442-828254 Fax: +44(0)1442-828255 Skype: tonyfirshman
TF Services, 29 Longfield Road, TRING, Herts, HP23 4DG
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread P Witte

Rich Mellor wrote:


On 10/01/2011 15:00, Rich Mellor wrote:

On 10/01/2011 14:50, gdgqler wrote:

On 10 Jan 2011, at 14:32, Lee Privett wrote:

In QDOS/SMSQ/E the 'AT' keyword allows the print statement an 
imaginary y/x character cursor location to be used. Is there away 
of knowing where this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

I don't know of any extensions which contain functions like LOCX and 
LOCY. The trap #3 call SD_CHENQ returns the cursor position in 
characters. It would therefore be easy to produce the keywords LOCX 
and LOCY.


George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm





I had a quick look through my SBASIC/SuperBASIC Reference Manual and 
can't find anything.


I am sure I wrote a small function (CURSOR_POSX and CURSOR_POSY) to 
get at these values but which program I used it in, I can't think for 
the life of me!.




Of course, there is an easier way...

Use the CHANS toolkit from DIY toolkit (volume C) and then use

PRINT CHAN_W%(#3,34) to grab the x position on channel #3
PRINT CHAN_W%(#3,36) to grab the y position on channel #3


Or try

PRINT CHAN_W%(#ch; 82): rem SD_XPOS
PRINT CHAN_W%(#ch; 84): rem SD_YPOS

for position in cursor coordinates, which is what I think you want.

It may be possible to do this without a toolkit by using the extended 
PEEK commands found in SMSQ/E and Minerva. I havnt tried, though.


Per

___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Rich Mellor

On 10/01/2011 16:32, Peter wrote:

does one of you know a valid email address or any contact to Dirk
Steinkopf, author of the QL-HD / Falkenberg Harddisk driver?

... I've found him :-) Thanks Ralf&  Rich!

All the best,
Peter

___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Hi Peter - maybe you can ask him for some details for the QL Wiki - we 
don't really have anything abou the Falkenberg products.


--
Rich Mellor
RWAP Services

http://www.rwapsoftware.co.uk
http://www.rwapservices.co.uk

-- Try out our new site: http://sellmyretro.com


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Contact search

2011-01-10 Thread Peter
> does one of you know a valid email address or any contact to Dirk
> Steinkopf, author of the QL-HD / Falkenberg Harddisk driver?

... I've found him :-) Thanks Ralf & Rich!

All the best,
Peter

___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread Lee Privett

thanks guys

Lee Privett

-
Sent from my Laptop running XP
but emulating the QL using QPC2
- Original Message - 
From: "gdgqler" 

To: 
Sent: Monday, January 10, 2011 3:26 PM
Subject: Re: [Ql-Users] Question




On 10 Jan 2011, at 15:14, Dilwyn Jones wrote:

In QDOS/SMSQ/E the 'AT' keyword allows the print statement an imaginary 
y/x character cursor location to be used. Is there away of knowing where 
this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

Thanks

Lee Privett
No direct way in SuperBASIC. However, if you have a function such as 
CHAN_W% from the chans_code of DIY Toolkit (Volume C), you can peek into 
the Screen Driver Data Block Definition at offset hex 22 (for X) and hex 
24 (for Y). Returns PIXEL coordinates rather than AT coordinates for the 
channel number given:


PRINT CHAN_W%(#channel,34) : REMark x coordinate
PRINT CHAN_W%(#channel,36) : REMark y coordinate

As an example, suppose the last AT command in screen channel 1 was AT 
1,3. PRINT CHAN_W%(#1,34) would return 18, because it's in pixel 
coordinates, not AT coordinates, but rather the values you'd use with a 
CURSOR command. To get AT coordinates just divide by the character width 
of the current CSIZE, i.e. 6 for CSIZE 0,0, 8 for CSIZE 1,0, 12 for CSIZE 
2,0 or 16 for CSIZE 3,0.


Equally, for AT 1,3 we would get a value of 10 with CHAN_W%(#1,36) for 
the y coordinate, because in CSIZE x,0 characters are 10 pixels high or 
20 in csize x,1


The character increment (pixels between successive AT locations) is held 
in the two words following the x and y positions, so we can write LocX 
and LocY functions as shown in this example, which needs the CHAN_W% 
extension from the DIY Toolkit volume C:


100 AT 9,3
110 xx = LocX(#1)
120 yy = LocY(#1)
130 CLS #0 : PRINT#0,'#1 cursor is at ';yy;',';xx
140 STOP
150 :
160 DEFine FuNction LocX (channel)
170   LOCal x
180   x = CHAN_W%(#channel,34) DIV CHAN_W%(#channel,38)
190   RETurn x
200 END DEFine LocX
210 :
220 DEFine FuNction LocY (channel)
230   LOCal y
240   y = CHAN_W%(#channel,36) DIV CHAN_W%(#channel,40)
250   RETurn y
260 END DEFine LocY


Sorry, this is a bit complex, the only way I could think of doing this 
off the top of my head.


By using NET_PEEK you can find the cursor position in any channel by 
pressing "6" and entering the channel number. The cursor position and size 
as well as paper, strip and ink colours and the size and position of the 
window are all displayed. This information is really just an analysis of 
the channel block.


George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm 


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread Rich Mellor

On 10/01/2011 15:14, Dilwyn Jones wrote:
In QDOS/SMSQ/E the 'AT' keyword allows the print statement an 
imaginary y/x character cursor location to be used. Is there away of 
knowing where this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

Thanks

Lee Privett
No direct way in SuperBASIC. However, if you have a function such as 
CHAN_W% from the chans_code of DIY Toolkit (Volume C), you can peek 
into the Screen Driver Data Block Definition at offset hex 22 (for X) 
and hex 24 (for Y). Returns PIXEL coordinates rather than AT 
coordinates for the channel number given:


PRINT CHAN_W%(#channel,34) : REMark x coordinate
PRINT CHAN_W%(#channel,36) : REMark y coordinate

As an example, suppose the last AT command in screen channel 1 was AT 
1,3. PRINT CHAN_W%(#1,34) would return 18, because it's in pixel 
coordinates, not AT coordinates, but rather the values you'd use with 
a CURSOR command. To get AT coordinates just divide by the character 
width of the current CSIZE, i.e. 6 for CSIZE 0,0, 8 for CSIZE 1,0, 12 
for CSIZE 2,0 or 16 for CSIZE 3,0.


Equally, for AT 1,3 we would get a value of 10 with CHAN_W%(#1,36) for 
the y coordinate, because in CSIZE x,0 characters are 10 pixels high 
or 20 in csize x,1


The character increment (pixels between successive AT locations) is 
held in the two words following the x and y positions, so we can write 
LocX and LocY functions as shown in this example, which needs the 
CHAN_W% extension from the DIY Toolkit volume C:


100 AT 9,3
110 xx = LocX(#1)
120 yy = LocY(#1)
130 CLS #0 : PRINT#0,'#1 cursor is at ';yy;',';xx
140 STOP
150 :
160 DEFine FuNction LocX (channel)
170   LOCal x
180   x = CHAN_W%(#channel,34) DIV CHAN_W%(#channel,38)
190   RETurn x
200 END DEFine LocX
210 :
220 DEFine FuNction LocY (channel)
230   LOCal y
240   y = CHAN_W%(#channel,36) DIV CHAN_W%(#channel,40)
250   RETurn y
260 END DEFine LocY


Sorry, this is a bit complex, the only way I could think of doing this 
off the top of my head.


Dilwyn Jones


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Hats of to Dilwyn - I think I used some such code in QWord, but could 
not spot it!


--
Rich Mellor
RWAP Services

http://www.rwapsoftware.co.uk
http://www.rwapservices.co.uk

-- Try out our new site: http://sellmyretro.com


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread gdgqler

On 10 Jan 2011, at 15:14, Dilwyn Jones wrote:

>> In QDOS/SMSQ/E the 'AT' keyword allows the print statement an imaginary y/x 
>> character cursor location to be used. Is there away of knowing where this is 
>> as a function?
>> 
>> for example:
>> 
>> 10 AT 10,20 PRINT "FRED";
>> 20 PRINT LOCX : remark this would return 24
>> 30 PRINT LOCY: remark this would return 20
>> 
>> 
>> 10 AT 10,20 PRINT "FRED"
>> 20 PRINT LOCX : remark this would return 1 (or 0)
>> 30 PRINT LOCY: remark this would return 11
>> 
>> Thanks
>> 
>> Lee Privett
> No direct way in SuperBASIC. However, if you have a function such as CHAN_W% 
> from the chans_code of DIY Toolkit (Volume C), you can peek into the Screen 
> Driver Data Block Definition at offset hex 22 (for X) and hex 24 (for Y). 
> Returns PIXEL coordinates rather than AT coordinates for the channel number 
> given:
> 
> PRINT CHAN_W%(#channel,34) : REMark x coordinate
> PRINT CHAN_W%(#channel,36) : REMark y coordinate
> 
> As an example, suppose the last AT command in screen channel 1 was AT 1,3. 
> PRINT CHAN_W%(#1,34) would return 18, because it's in pixel coordinates, not 
> AT coordinates, but rather the values you'd use with a CURSOR command. To get 
> AT coordinates just divide by the character width of the current CSIZE, i.e. 
> 6 for CSIZE 0,0, 8 for CSIZE 1,0, 12 for CSIZE 2,0 or 16 for CSIZE 3,0.
> 
> Equally, for AT 1,3 we would get a value of 10 with CHAN_W%(#1,36) for the y 
> coordinate, because in CSIZE x,0 characters are 10 pixels high or 20 in csize 
> x,1
> 
> The character increment (pixels between successive AT locations) is held in 
> the two words following the x and y positions, so we can write LocX and LocY 
> functions as shown in this example, which needs the CHAN_W% extension from 
> the DIY Toolkit volume C:
> 
> 100 AT 9,3
> 110 xx = LocX(#1)
> 120 yy = LocY(#1)
> 130 CLS #0 : PRINT#0,'#1 cursor is at ';yy;',';xx
> 140 STOP
> 150 :
> 160 DEFine FuNction LocX (channel)
> 170   LOCal x
> 180   x = CHAN_W%(#channel,34) DIV CHAN_W%(#channel,38)
> 190   RETurn x
> 200 END DEFine LocX
> 210 :
> 220 DEFine FuNction LocY (channel)
> 230   LOCal y
> 240   y = CHAN_W%(#channel,36) DIV CHAN_W%(#channel,40)
> 250   RETurn y
> 260 END DEFine LocY
> 
> 
> Sorry, this is a bit complex, the only way I could think of doing this off 
> the top of my head.

By using NET_PEEK you can find the cursor position in any channel by pressing 
"6" and entering the channel number. The cursor position and size as well as 
paper, strip and ink colours and the size and position of the window are all 
displayed. This information is really just an analysis of the channel block.

George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread Rich Mellor

On 10/01/2011 15:00, Rich Mellor wrote:

On 10/01/2011 14:50, gdgqler wrote:

On 10 Jan 2011, at 14:32, Lee Privett wrote:

In QDOS/SMSQ/E the 'AT' keyword allows the print statement an 
imaginary y/x character cursor location to be used. Is there away of 
knowing where this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

I don't know of any extensions which contain functions like LOCX and 
LOCY. The trap #3 call SD_CHENQ returns the cursor position in 
characters. It would therefore be easy to produce the keywords LOCX 
and LOCY.


George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm





I had a quick look through my SBASIC/SuperBASIC Reference Manual and 
can't find anything.


I am sure I wrote a small function (CURSOR_POSX and CURSOR_POSY) to 
get at these values but which program I used it in, I can't think for 
the life of me!.




Of course, there is an easier way...

Use the CHANS toolkit from DIY toolkit (volume C) and then use

PRINT CHAN_W%(#3,34) to grab the x position on channel #3
PRINT CHAN_W%(#3,36) to grab the y position on channel #3

--
Rich Mellor
RWAP Services

http://www.rwapsoftware.co.uk
http://www.rwapservices.co.uk

-- Try out our new site: http://sellmyretro.com


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread Dilwyn Jones
In QDOS/SMSQ/E the 'AT' keyword allows the print statement an 
imaginary y/x character cursor location to be used. Is there away of 
knowing where this is as a function?


for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

Thanks

Lee Privett
No direct way in SuperBASIC. However, if you have a function such as 
CHAN_W% from the chans_code of DIY Toolkit (Volume C), you can peek 
into the Screen Driver Data Block Definition at offset hex 22 (for X) 
and hex 24 (for Y). Returns PIXEL coordinates rather than AT 
coordinates for the channel number given:


PRINT CHAN_W%(#channel,34) : REMark x coordinate
PRINT CHAN_W%(#channel,36) : REMark y coordinate

As an example, suppose the last AT command in screen channel 1 was AT 
1,3. PRINT CHAN_W%(#1,34) would return 18, because it's in pixel 
coordinates, not AT coordinates, but rather the values you'd use with 
a CURSOR command. To get AT coordinates just divide by the character 
width of the current CSIZE, i.e. 6 for CSIZE 0,0, 8 for CSIZE 1,0, 12 
for CSIZE 2,0 or 16 for CSIZE 3,0.


Equally, for AT 1,3 we would get a value of 10 with CHAN_W%(#1,36) for 
the y coordinate, because in CSIZE x,0 characters are 10 pixels high 
or 20 in csize x,1


The character increment (pixels between successive AT locations) is 
held in the two words following the x and y positions, so we can write 
LocX and LocY functions as shown in this example, which needs the 
CHAN_W% extension from the DIY Toolkit volume C:


100 AT 9,3
110 xx = LocX(#1)
120 yy = LocY(#1)
130 CLS #0 : PRINT#0,'#1 cursor is at ';yy;',';xx
140 STOP
150 :
160 DEFine FuNction LocX (channel)
170   LOCal x
180   x = CHAN_W%(#channel,34) DIV CHAN_W%(#channel,38)
190   RETurn x
200 END DEFine LocX
210 :
220 DEFine FuNction LocY (channel)
230   LOCal y
240   y = CHAN_W%(#channel,36) DIV CHAN_W%(#channel,40)
250   RETurn y
260 END DEFine LocY


Sorry, this is a bit complex, the only way I could think of doing this 
off the top of my head.


Dilwyn Jones 




___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread gdgqler

On 10 Jan 2011, at 14:32, Lee Privett wrote:

> 
> 10 AT 10,20 PRINT "FRED";
> 20 PRINT LOCX : remark this would return 24
> 30 PRINT LOCY: remark this would return 20
> 
> 
> 10 AT 10,20 PRINT "FRED"
> 20 PRINT LOCX : remark this would return 1 (or 0)
> 30 PRINT LOCY: remark this would return 11


As a matter of fact, I see that the extensions for TURBOptr contain two 
functions, GETCU(k) and GETPX(k). Given the ID of a window, k, these functions 
return the number 2^16*x-position + y-position. GETCU returns the character 
position and GETPX the pixel position.

Thus GETCU(CHANNEL_ID(#1)) and GETPX(CHANNEL_ID(#1)) will give the information 
for channel #1.

CHANNEL_ID is a keyword in TURBO TK Code.

George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread Rich Mellor

On 10/01/2011 14:50, gdgqler wrote:

On 10 Jan 2011, at 14:32, Lee Privett wrote:


In QDOS/SMSQ/E the 'AT' keyword allows the print statement an imaginary y/x 
character cursor location to be used. Is there away of knowing where this is as 
a function?

for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11


I don't know of any extensions which contain functions like LOCX and LOCY. The 
trap #3 call SD_CHENQ returns the cursor position in characters. It would 
therefore be easy to produce the keywords LOCX and LOCY.

George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm





I had a quick look through my SBASIC/SuperBASIC Reference Manual and 
can't find anything.


I am sure I wrote a small function (CURSOR_POSX and CURSOR_POSY) to get 
at these values but which program I used it in, I can't think for the 
life of me!.


--
Rich Mellor
RWAP Services

http://www.rwapsoftware.co.uk
http://www.rwapservices.co.uk

-- Try out our new site: http://sellmyretro.com


___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


Re: [Ql-Users] Question

2011-01-10 Thread gdgqler

On 10 Jan 2011, at 14:32, Lee Privett wrote:

> In QDOS/SMSQ/E the 'AT' keyword allows the print statement an imaginary y/x 
> character cursor location to be used. Is there away of knowing where this is 
> as a function? 
> 
> for example:
> 
> 10 AT 10,20 PRINT "FRED";
> 20 PRINT LOCX : remark this would return 24
> 30 PRINT LOCY: remark this would return 20
> 
> 
> 10 AT 10,20 PRINT "FRED"
> 20 PRINT LOCX : remark this would return 1 (or 0)
> 30 PRINT LOCY: remark this would return 11
> 

I don't know of any extensions which contain functions like LOCX and LOCY. The 
trap #3 call SD_CHENQ returns the cursor position in characters. It would 
therefore be easy to produce the keywords LOCX and LOCY.

George
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm


[Ql-Users] Question

2011-01-10 Thread Lee Privett
In QDOS/SMSQ/E the 'AT' keyword allows the print statement an imaginary y/x 
character cursor location to be used. Is there away of knowing where this is as 
a function? 

for example:

10 AT 10,20 PRINT "FRED";
20 PRINT LOCX : remark this would return 24
30 PRINT LOCY: remark this would return 20


10 AT 10,20 PRINT "FRED"
20 PRINT LOCX : remark this would return 1 (or 0)
30 PRINT LOCY: remark this would return 11

Thanks

Lee Privett
 
-
Sent from my Laptop running XP
but emulating the QL using QPC2
___
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm