Thanks, will try this when I get home tonight. Do you mind if I put this on my website, to go with the SMSQ/E Modules article? I'm sure people would find a 'module lister' useful.
Dilwyn Jones > > From: Marcel Kilgus <[EMAIL PROTECTED]> > Date: 2005/01/31 Mon PM 11:49:53 GMT > To: [EMAIL PROTECTED] > Subject: Re: [ql-users] smsq gold > > P Witte wrote: > >> Only way of telling for sure is the file length - maybe Roy can remind us > >> all of the file length for the two versions... > > Another way of detecting whether you have the colour version is by noting > > the difference in the price... > > lol. That's what I originally thought, too ;-) > > Anyway here's a BASIC program that lists the modules in an SMSQ/E > file. In case of the High Colour Aurora driver there should be a > module surprisingly named "SMSQ GOLD 8 bit CON Driver". > > 100 REMark - scan bootloader file > 110 DIM version$(4): version$(0)=4 > 120 OPEN #0,CON: CLS: BORDER 1,4 > 130 height = 17 > 140 INPUT 'SMSQ file>';f$ > 150 OPEN_IN #3,f$ > 160 fln = FLEN(#3) > 170 LGET #3\fln-$18+$4,mod_ptr : REMark - get length of host module > 180 LGET #3\fln-$18+$14,bln : REMark - length of bootloader file > 190 IF bln: mod_ptr = mod_ptr + fln - bln > 200 FOR i=1 to 9999 > 210 LGET #3\(mod_ptr),mbase,mlength > 220 IF NOT mbase: EXIT : REMark - end of file > 230 IF NOT i mod height: INPUT a$; : REMark - pause at screen full > 240 WGET#3\(mod_ptr+$16),name_rel: REMark - relative pointer to name > 250 GET#3\(mod_ptr+$16+name_rel),name$ : REMark - fetch module name > 260 IF LEN (name$)&&1: BGET#3,a : REMark - odd length name is padded > 270 BGET #3,version$(1 TO 4) : REMark - get version, if any > 280 PRINT HEX$(mlength,24) !! version$ ! name$ > 290 mod_ptr = mod_ptr + mbase + mlength > 300 END FOR i > 310 CLOSE #3 > 320 INPUT a$ > > Marcel > > _______________________________________________ > 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
