Stuart Halliday replied to a request to find out the OS version identifier... Use something like this:
SYS"OS_Byte",129,0,&FF TO ,O%
CASE O% OF
WHEN &A0 : OS%=120
WHEN &A1 : OS%=200
WHEN &A2 : OS%=201
WHEN &A3 : OS%=300
WHEN &A4 : OS%=311
WHEN &A5 : OS%=350
WHEN &A6 : OS%=360
WHEN &A7 : OS%=370
WHEN &A8 : OS%=400
OTHERWISE
OS%=0
ENDCASE
OSCLI("Set RiscOS$Version"+STR$(OS%))
David Holden, A.P.D.L. also pointed out that:
Wimp_Initialise doesn't return the OS version, but returns the version of the Wimp
× 100, and this may be different. For example, an OS 3.7 machine with the
'New Boot' structure, soft loading the nested wimp, will return 385 (well, mine does).
My version of RO4 returns 415, though I don't know if production versions will have
this number. You can't rely on these numbers being constant because, even on older
machines, 'patches' can update them. They should only be used to check for minimum
functionality, e.g. if it's less than 350 it's not a RiscPC architecture machine, if
it's less than 370 it can't be a StrongARM, if it's less than 380 it can't be running
the nested wimp.
| Source: | Archive Magazine - 13.1 - "Hints and Tips" |
| Publication: | Archive Magazine |
| Contributors: | Stuart Halliday , Dave Holden |