Does anyone know of an OPL program that uses every function and command, and also every data type? It doesn't have to do anything useful, it's just for testing and so is a sort of "quick brown fox" for OPL.
Maybe there's an OPL test suite out there somewhere?
Is there an OPL program that uses everything?
-
- Posts: 432
- Joined: Tue Jan 03, 2023 7:54 pm
- Martin
- Global Admin
- Posts: 442
- Joined: Mon Jan 02, 2023 5:18 pm
DemoPACK
Hi Andrew
I did a 'FUNCTION' tester for Lostgallifreyan when he was developing the pocket spreadsheet export/import filter for ORG-Link (below). If you can wait a few days I should be able to do something similar for OPL. - to give you an idea FUNCTION.PLN should open in any spreadsheet..
Also there is the Psion DemoPack.OPK (below). I was looking to RevTRAN it but it wont work as it is using the read/write protection that was found in the Order v4.0 program pack. 92 ADDRESS.odb (file name starting with a number! and a space!)
. Sincerely
Martin
. .
I did a 'FUNCTION' tester for Lostgallifreyan when he was developing the pocket spreadsheet export/import filter for ORG-Link (below). If you can wait a few days I should be able to do something similar for OPL. - to give you an idea FUNCTION.PLN should open in any spreadsheet..
Also there is the Psion DemoPack.OPK (below). I was looking to RevTRAN it but it wont work as it is using the read/write protection that was found in the Order v4.0 program pack. 92 ADDRESS.odb (file name starting with a number! and a space!)
. Sincerely
Martin
. .
You do not have the required permissions to view the files attached to this post.
-
- Posts: 432
- Joined: Tue Jan 03, 2023 7:54 pm
Re: DemoPACK
Anything is welcome, but yes, it does have to be in OPL. I've started a file that has every command and function in it (and already found a problem), but it is just a list of OPL statements, it doesn't do anything remotely useful. Which isn't a problem for me at the moment, but when I start on the runtime engine I will need to test code results, so will have to do a similar thing with code that does do something.Martin wrote: Thu Dec 19, 2024 8:41 pm Hi Andrew
I did a 'FUNCTION' tester for Lostgallifreyan when he was developing the pocket spreadsheet export/import filter for ORG-Link (below). If you can wait a few days I should be able to do something similar for OPL. - to give you an idea FUNCTION.PLN should open in any spreadsheet..
Also there is the Psion DemoPack.OPK (below). I was looking to RevTRAN it but it wont work as it is using the read/write protection that was found in the Order v4.0 program pack. 92 ADDRESS.odb (file name starting with a number! and a space!)
.
SplitOPK.jpg
Sincerely
Martin
.
FUNCTION.zip
.
demopack.opk
- Zenerdiode
- Posts: 81
- Joined: Wed Jan 04, 2023 12:45 am
- Location: Newcastle, England
Re: DemoPACK
Hello Martin,Martin wrote: Thu Dec 19, 2024 8:41 pm I was looking to RevTRAN it but it wont work as it is using the read/write protection that was found in the Order v4.0 program pack. 92 ADDRESS.odb (file name starting with a number! and a space!)
I'm unsure about the R/W protection; although I haven't used RevTRAN much at all. I recognise the numbers in the file name, these are the Record Type numbers that Organiser gives to (database) files - in the range of 0x90 for MAIN to 0xFE. Thats why WORDS4 is 0x91, ADDRESS is 0x92 and EXTRA is 0x93.
I've split the Pack out and included in a .zip [attached] if that is any use to you for reversing.
You do not have the required permissions to view the files attached to this post.
Christopher. - Check out my TRAP message, it’s not difficult to decode and is sometimes uttered under the breath when said message appears… 

- Martin
- Global Admin
- Posts: 442
- Joined: Mon Jan 02, 2023 5:18 pm
Jaaps INFO.OPL
Hi Andrew..
I'll have to rethink... I've just run out of memory on a 16K XP... that's without considering an 8K CM... I'll have to break it up into chunks... More on that later... I wanted to put something together for you before Christmas but probably not now!
On the other hand to test your PEEKS and POKES try Jaaps INFO routine (below) that runs on anything and will give you values you can confirm.
. .
AND Chris
I'll take a look at that at the same time - Thanks for the heads up..Zenerdiode wrote: Fri Dec 20, 2024 1:57 am I've split the Pack out and included in a .zip [attached] if that is any use to you for reversing.
Sincerely
Martin
You do not have the required permissions to view the files attached to this post.
- Martin
- Global Admin
- Posts: 442
- Joined: Mon Jan 02, 2023 5:18 pm
Re: Is there an OPL program that uses everything?
Andrew - (thanks Chris)
The attached ZIP contains the OPL's from the Psion DEMO pack. Check out the read-me as it outlines which procedures need TRANslating in LZ or CM/XP.
It expects to be on a datapak so you might need to REM out the FILEMAIN calls
It is probably worth giving it a try as it as it detects the machine its on. A bit like Jaap's INFO ..
Sincerely
Martin
.
The attached ZIP contains the OPL's from the Psion DEMO pack. Check out the read-me as it outlines which procedures need TRANslating in LZ or CM/XP.
It expects to be on a datapak so you might need to REM out the FILEMAIN calls
It is probably worth giving it a try as it as it detects the machine its on. A bit like Jaap's INFO ..
Sincerely
Martin
.
You do not have the required permissions to view the files attached to this post.
-
- Posts: 432
- Joined: Tue Jan 03, 2023 7:54 pm
Re: Is there an OPL program that uses everything?
Thanks, I'll have a go with that. I have made a file with as many different things in it as I can think of, currently fixing problems with that.Martin wrote: Fri Dec 20, 2024 11:52 am Andrew - (thanks Chris)
The attached ZIP contains the OPL's from the Psion DEMO pack. Check out the read-me as it outlines which procedures need TRANslating in LZ or CM/XP.
It expects to be on a datapak so you might need to REM out the FILEMAIN calls
It is probably worth giving it a try as it as it detects the machine its on. A bit like Jaap's INFO ..
Sincerely
Martin
.
DEMOpack.zip
-
- Posts: 432
- Joined: Tue Jan 03, 2023 7:54 pm
Re: Is there an OPL program that uses everything?
I've put together a file that I think has all keywords in it. It's syntax only so it won't run, but it will translate.
There's a few problems with newopl translation and I've commented them out and put them at the end of the file.
This file does translate with newopl_tran and match the original organiser output.
So, nearly there, I just have to sort out the ADDR command and the odd % syntax of the LZ (which is odd, indeed).
There's a few problems with newopl translation and I've commented them out and put them at the end of the file.
This file does translate with newopl_tran and match the original organiser output.
So, nearly there, I just have to sort out the ADDR command and the odd % syntax of the LZ (which is odd, indeed).
You do not have the required permissions to view the files attached to this post.
- Zenerdiode
- Posts: 81
- Joined: Wed Jan 04, 2023 12:45 am
- Location: Newcastle, England
Re: Is there an OPL program that uses everything?
I’ve disassembled the BOOT.BIN you included with the RevTran’d .OPL files - thanks for splitting that out too.
It has a couple of enhancements over the regular BOOT.BIN that just searches for and executes an OPL file called ‘BOOT’. In this BOOT.BIN it carries out the following in order:
Set time before switch-off to 250 seconds (4m10s).
Sets default switch-off time to the above.
Re-vectors the switch-off routine; so next switch-on carries out a Cold Boot. (** CAUTION ** ALL data will be lost from A:)
Insert ‘PDEMO’ in menu before OFF
Insert ‘CDEMO’ in menu before OFF
Insert ‘DEMO’ in menu before OFF
Test for ON/CLEAR to be released then calls DEMO OPL procedure
When DEMO runs, it alters the behaviour of the Cold Boot by disabling language selection and forcing English as the default. It also disables the second boot of devices that would normally take place after the language is set.
Heed the caution, in fact even if you decline to run the demo, once that pack has been booted in your machine it will Cold Start at next switch-on.
It has a couple of enhancements over the regular BOOT.BIN that just searches for and executes an OPL file called ‘BOOT’. In this BOOT.BIN it carries out the following in order:
Set time before switch-off to 250 seconds (4m10s).
Sets default switch-off time to the above.
Re-vectors the switch-off routine; so next switch-on carries out a Cold Boot. (** CAUTION ** ALL data will be lost from A:)
Insert ‘PDEMO’ in menu before OFF
Insert ‘CDEMO’ in menu before OFF
Insert ‘DEMO’ in menu before OFF
Test for ON/CLEAR to be released then calls DEMO OPL procedure
When DEMO runs, it alters the behaviour of the Cold Boot by disabling language selection and forcing English as the default. It also disables the second boot of devices that would normally take place after the language is set.
Heed the caution, in fact even if you decline to run the demo, once that pack has been booted in your machine it will Cold Start at next switch-on.
Christopher. - Check out my TRAP message, it’s not difficult to decode and is sometimes uttered under the breath when said message appears… 

- Martin
- Global Admin
- Posts: 442
- Joined: Mon Jan 02, 2023 5:18 pm
Re: Is there an OPL program that uses everything?
Andrewamenjet wrote: Sat Dec 21, 2024 8:07 am I've put together a file that I think has all keywords in it. It's syntax only so it won't run, but it will translate.
qfox1.opl
I translated qfox1 in ORG2 without any issues.. I was looking at something similar to check it the values produced match those from an actual Organiser.
LPRINT x,y%;a$
I notice you have included LPRINT which will be handy for 'printing' from the recreation. Which brings up the topic of getting 'stuff' on or off it to/from a PC or laptop. I'm assuming you will be using some sort of wireless link.
When I produce routines that uses the Comms Link LPRINT with Psi2Win (print mode) or ORG-Link (file relay). I use LSET first to ensure the parameters are set correctly for the LPRINT to work.
COPYW "dev1:*.*","dev2:"
DELETEW "C:*.NTS"
I see you have COPY(W) and DELETE(W). These of course work on devices A:, B:, C:, (and I think D: ).
Which brings up the thought about filing structures on what I assume will be an SDCard. Will you 'format' the card to have drives/devices B: & C: for example?
Will you be able to write 'stuff' on a PC/Laptop and send it to/ from the recreation (TRANSMIT or RECEIVE)(XTSEND and XTRECV)
It look like you are getting close... There is a lot of work here. I can't wait to try it.
Sincerely
Martin