Knoware.no
Re: Knoware.no
@Dilwyn, I seem to have been sent a PM from you but Im not able to open it due to "You are not authorised to read private messages that are on hold."
Since its private, I assume you found some bugs..?
Since its private, I assume you found some bugs..?
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
Re: Knoware.no
Thanks to all for the overwhelming welcome!
I sincerely hope that it is deserved!
I know some of it is pretty weird but it would be too much to explain..
There is more in the pipeline once I can whip up my motivation after the Christmas overindulgence..
I sincerely hope that it is deserved!
I know some of it is pretty weird but it would be too much to explain..
There is more in the pipeline once I can whip up my motivation after the Christmas overindulgence..
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
Re: Knoware.no
It was just a message of thanks and congratulations on getting your great site back up and running so quickly.
--
All things QL - https://dilwyn.qlforum.co.uk/index.html
All things QL - https://dilwyn.qlforum.co.uk/index.html
Re: Knoware.no
Ah! Thanks, Dilwyn.
I see the problem now: my mailbox is full so there are a number of messages in the queue that I cant read until I delete some older messages. Now I like to keep old messages for reference. I dont want to just delete them, or go through them all to see which to delete. Is there a way of downloading all my PMs? (I'll move this query to a separate thread, so if anyone is interested in the matter, please respond there.)
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
Re: Knoware.no
Does anyone know whether the ql-users list is still up? I sent a notification re Knoware but it doesnt seem to have arrived.
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
-
- Aurora
- Posts: 998
- Joined: Sat Oct 25, 2014 9:53 am
Re: Knoware.no
Thanks Martyn, so ql-users is still alive! Its just Outlook that isnt playing nicemartyn_hill wrote: ↑Sat Jan 11, 2025 10:01 pm Hi Per!
I saw an email from you from the list timestamped 19:25
M.
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
Re: Knoware.no
Everyone knows what a "toolkit" in QL parlance is. But some of you may not
be aware that there are two fundamental types of toolkit:
1) System extensions, ie something that, usually, enhances, and affects
the whole system. For Qdos some of the main ones are TK2, ptr_gen, wman and
hot_rext. But there are other, less illustrious, ones too: TURBO_TK,
QLIB_run, Qptr, ptrmen_cde, ENV_BIN, etc.
The main thing with systems toolkits is that they should be loaded at boot
time and remain present throughout a session, from boot up to shut down.
Enough of that. This piece is about that other type of toolkit:
2) The ad hoc toolkit that adds functionality to specific programs. You
want them while a specific program is running, but youd prefer them to go
away once they are no longer needed. The simplest way to achieve that under
Qdos is to compile your program with Qlib or Turbo and include those
toolkits in the compilation. Once the program has terminated, the toolkit
vanishes with it, leaving an uncluttered nametable and freeing up memory.
With SBASIC (SMSQ/E) and MBASIC (Minerva) you have multitasking BASIC
interpreters, so toolkits loaded by your program in those will also vanish
when the program terminates and keywords wont clash with any in your main
interpreter. No absolute need to compile there, except for the other
advantages of compilation.
The problem with many off-the-shelf ad hoc toolkits is, to my mind, that
they often come in large collections. This means that though you may only
need a single command from a toolkit you may have to include tens of other
stuff that you dont need.
Now, one may think, what are a few extra bytes in this day and age with
multi-megabytes of memory? It might not matter that much, especially not to
emulator users. But Im old enough to remember that ancient derogatory term
"bloatware", and like the old grandfather who lived through the privations
of the war, frantically scraping out the last molecules of jam from the
jar, my OCD compels me to try to be as parsimonious as possible with
resources (although, admittedly, for the sake of ease and sanity, I have
let up a little in some departments).
Anyway, my point, and the burden of this whole essay, is that: What if
there were a way to include only those commands that one needs, preferably
without creating a lot of extra work? Some years ago I actually I asked
myself that question - and answered it too. This is one answer:
https://www.knoware.no/htm/Keywords.htm
The list shows of some 140++ keywords, most of them compatible across all
systems, that accomplish a variety of tasks not readily available to the
basic BASIC. Many similar commands can be found in other collections, but
hear this: This is one of the largest and simultaneously one of the
smallest non-system QL keyword collections in the world! Most of these
keywords can be used singly, and they can (relatively) easily be combined
into unique collections according to specific needs.
One doesnt need to know how to program in assembler to use them, only how
to wield a linker and assembler to put them together. Some rambling
instructions can be found here: https://www.knoware.no/doc/toolkits.htm
Im currently working on a system that will do this automatically, based on
Qlib's EXT_PROC/EXT_FN keyword list. Simply add the name of some command
you wish to use to the list, and when ready, press a key and the toolkit
containing those commands will be built for you. It will take some time to
complete the project as it requires some reorganisation of the collection,
but as of now it works for me..
Enough! I better get on with the project!
be aware that there are two fundamental types of toolkit:
1) System extensions, ie something that, usually, enhances, and affects
the whole system. For Qdos some of the main ones are TK2, ptr_gen, wman and
hot_rext. But there are other, less illustrious, ones too: TURBO_TK,
QLIB_run, Qptr, ptrmen_cde, ENV_BIN, etc.
The main thing with systems toolkits is that they should be loaded at boot
time and remain present throughout a session, from boot up to shut down.
Enough of that. This piece is about that other type of toolkit:
2) The ad hoc toolkit that adds functionality to specific programs. You
want them while a specific program is running, but youd prefer them to go
away once they are no longer needed. The simplest way to achieve that under
Qdos is to compile your program with Qlib or Turbo and include those
toolkits in the compilation. Once the program has terminated, the toolkit
vanishes with it, leaving an uncluttered nametable and freeing up memory.
With SBASIC (SMSQ/E) and MBASIC (Minerva) you have multitasking BASIC
interpreters, so toolkits loaded by your program in those will also vanish
when the program terminates and keywords wont clash with any in your main
interpreter. No absolute need to compile there, except for the other
advantages of compilation.
The problem with many off-the-shelf ad hoc toolkits is, to my mind, that
they often come in large collections. This means that though you may only
need a single command from a toolkit you may have to include tens of other
stuff that you dont need.
Now, one may think, what are a few extra bytes in this day and age with
multi-megabytes of memory? It might not matter that much, especially not to
emulator users. But Im old enough to remember that ancient derogatory term
"bloatware", and like the old grandfather who lived through the privations
of the war, frantically scraping out the last molecules of jam from the
jar, my OCD compels me to try to be as parsimonious as possible with
resources (although, admittedly, for the sake of ease and sanity, I have
let up a little in some departments).
Anyway, my point, and the burden of this whole essay, is that: What if
there were a way to include only those commands that one needs, preferably
without creating a lot of extra work? Some years ago I actually I asked
myself that question - and answered it too. This is one answer:
https://www.knoware.no/htm/Keywords.htm
The list shows of some 140++ keywords, most of them compatible across all
systems, that accomplish a variety of tasks not readily available to the
basic BASIC. Many similar commands can be found in other collections, but
hear this: This is one of the largest and simultaneously one of the
smallest non-system QL keyword collections in the world! Most of these
keywords can be used singly, and they can (relatively) easily be combined
into unique collections according to specific needs.
One doesnt need to know how to program in assembler to use them, only how
to wield a linker and assembler to put them together. Some rambling
instructions can be found here: https://www.knoware.no/doc/toolkits.htm
Im currently working on a system that will do this automatically, based on
Qlib's EXT_PROC/EXT_FN keyword list. Simply add the name of some command
you wish to use to the list, and when ready, press a key and the toolkit
containing those commands will be built for you. It will take some time to
complete the project as it requires some reorganisation of the collection,
but as of now it works for me..
Enough! I better get on with the project!
Per
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
I love long walks, especially when they are taken by people who annoy me.
- Fred Allen
Re: Knoware.no
That's a good idea! In earlier times, in such cases, I always took the trouble to use DP's "IDIS Intelligent Disassembler" to fish out the right things from the various toolkits and reassemble them. This worked very well with the program. Sometimes it was a time-consuming affair.
7000 4E75
Re: Knoware.no
Per,pjw wrote: ↑Sun Jan 12, 2025 1:08 pm Im currently working on a system that will do this automatically, based on
Qlib's EXT_PROC/EXT_FN keyword list. Simply add the name of some command
you wish to use to the list, and when ready, press a key and the toolkit
containing those commands will be built for you. It will take some time to
complete the project as it requires some reorganisation of the collection,
but as of now it works for me..
Enough! I better get on with the project!
Just curious: How do you identify code that is shared between keywords? Most of my "toolkits" (rather "dedicated libraries for specific S*BASIC programs") contain shared parameter fetch routines, for example. Even manually ripping them into pieces has been a challenge for me in the past.
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO