in the data & !passed or easily available from other SYS functions. & ! 90 ON ERROR GOTO 9000 100 ! & !preliminaries & ! 110 GOSUB 1000 120 PRINT \ & PRINT " This program prints the information available in the Date/Time blockette" \ & PRINT "of the GFD." \ & PRINT 200 ! & !get the account number & ! 210 PRINT "Account number"; \ & INPUTLINE PPN$ \ & PPN$ = CVT$$(PPN$,-1%) 220 IF PPN$ = "" THEN GOTO 900 230 IF LEFT(PPN$,1%) = "(" & THEN PPN$ = RIGHT(PPN$,2%) \ & PPN$ = LEFT(PPN$,LEN(PPN$)-1%) 240 COMMA% = INSTR(1%,PPN$,",") 250 PROJ% = VAL( LEFT(PPN$,COMMA%-1%) ) \ & PROG% = VAL( RIGHT(PPN$,COMMA%+1%) ) 300 ! & !get and print the data from the SYS call & ! 310 GOSUB 2000 400 ! & !again & ! 410 GOTO 200 900 ! & !done & ! 990 GOTO 32767 1000 ! & ! & ! SUBROUTINE: preliminaries & ! & ! 1100 ! & !some constants & ! 1110 TRUE% = -1% \ & FALSE% = 0% 1120 BELL$ = CHR$(7%) 1900 ! & !return & ! 1990 RETURN 2000 ! & ! & ! SUBROUTINE: data from SYS call & ! & ! 2100 ! & !dimension the array to store return from SYS call & ! 2110 DIM S%(30%) 2200 ! & !do the SYS call and CHANGE & ! 2210 Z$ = SYS( CHR$(6%) + CHR$(-25%) + CHR$(-1%) + CHR$(4%) & + CHR$(PROG%) + CHR$(PROJ%) ) 2220 CHANGE Z$ TO S% 2300 ! & !select the data & ! 2301 !Data in the relevant blockette is: & ! & ! bytes description & ! 0 - 1 link to next block & ! 2 last keyboard number & ! 3 4 & ! 4 - 5 Date of last login & ! 6 - 7 Time of last login & ! 8 - 9 Date of password change & ! 10 - 11 Time of password change & ! 12 - 13 Date account created & ! 14 - 15 Time account created & ! 2302 ! & !As best as I can tell, the data returned from the SYS call is & ! & ! bytes description & ! 1 Job number (times 2) & ! 2 so far this has always been 2 & ! 3 so far this has always been 255 & ! 4 so far this has always been 4 & ! 5 - 6 PPN in usual format & ! 7 so far this has always been 4 & ! 8 keyboard number last logged in to & ! 9 - 10 date of last login & ! 11 - 12 time of last login & ! 13 - 14 date of last password change & ! 15 - 16 time of last password change & ! 17 - 18 date account created & ! 19 - 20 time account created & ! 21 - 29 so far these have always been zero & ! 30 so far this has always been 50 & ! 2310 PRINT 2320 INDATE$ = DATE$( S%( 9%) + SWAP%(S%(10%)) ) \ & INTIME$ = TIME$( S%(11%) + SWAP%(S%(12%)) ) 2330 KB% = S%(8%) 2340 PRINT "Last login was at KB"; NUM1$(KB%); ":"; \ & PRINT " on ";INDATE$;" at ";INTIME$;"." 2350 CHANGEDATE$ = DATE$( S%(13%) + SWAP%(S%(14%)) ) \ & CHANGETIME$ = TIME$( S%(15%) + SWAP%(S%(16%)) ) 2360 PRINT "Password last changed on "; CHANGEDATE$; \ & PRINT " at ";CHANGETIME$;"." 2370 CREATEDATE$ = DATE$( S%(17%) + SWAP%(S%(18%)) ) \ & CREATETIME$ = TIME$( S%(19%) + SWAP%(S%(20%)) ) 2380 PRINT "Account created on "; CREATEDATE$; \ & PRINT " at ";CREATETIME$;"." 2390 PRINT \ PRINT 2900 ! & !return & ! 2990 RETURN 9000 ! & ! & ! ERROR ROUTINE & ! & ! 9100 IF ERL = 250 & THEN PRINT "Invalid account number." \ & RESUME 200 9110 IF ERL = 2210 & AND ERR = 5 & THEN PRINT "Account doesn't exist." \ & RESUME 200 9120 IF ERL = 2210 & THEN PRINT "Invalid account number." \ & RESUME 200 9120 ON ERROR GOTO 0 32767 END DATETIBAS[.050021]DATETI.BAS[.050021]   X14|H [4;Ik(&'( k ߫H&P` \RrPP2PPzPP{PPPPP2P~\$\\TD 0D \~ hi) +\ ^( n ^( np\^txY\^ˀ\!kVk<\F˰<˴ˬ\VVkˤ1`@lP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<SЬTЬ UQS>