Re: [Ql-Users] Contact search
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
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
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
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
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
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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