home *** CD-ROM | disk | FTP | other *** search
- 1 DEFINT A-Z
- 100 DIM READ.DIR.CODE%(40), DIR.ENTRY%(40) 'move this line to start of pgm.
- 110 DEF SEG: FOR I=0 TO 40: DIR.ENTRY%(I)= -1: NEXT
- 120 FOR I=0 TO 65: READ J: POKE ( VARPTR( READ.DIR.CODE%(0) ) +I ), J: NEXT
- 130 READ.FIRST% = &H4E
- 140 READ.NEXT% = &H4F
- 150 ' sample usage:
- 160 ' define parameters:
- 170 FILE.SPEC$ = "A:*.*" + CHR$(0)
- 180 ATTRIB% = 255
- 190 ERR.CODE%= 0
- 200 FUNCTION% = READ.FIRST%: GOSUB 240 'change these line numbers to actual
- 210 FUNCTION% = READ.NEXT%: GOSUB 240 'use same filespec & attrib.
- 220 IF ERR.CODE% = 0 THEN 210 'if not FILE NOT FOUND, get another
- 230 END
- 240 DEF SEG: READ.DIR.SUBR% = VARPTR(READ.DIR.CODE%(0))
- 250 ' IF COMPILED(1) THEN CALL ABSOLUTE(FUNCTION%, ATTRIB%, FILE.SPEC$, DIR.ENTRY%(0), ERR.CODE%, READ.DIR.SUBR%) ELSE CALL READ.DIR.SUBR%(FUNCTION%, ATTRIB%, FILE.SPEC$, DIR.ENTRY%(0), ERR.CODE%)
- 260 CALL READ.DIR.SUBR%(FUNCTION%,ATTRIB%,FILE.SPEC$, DIR.ENTRY%(0), ERR.CODE%)
- 270 '
- 280 ' read file creation date:
- 290 IF ERR.CODE% = 18 THEN RETURN
- 300 X1 = PEEK( VARPTR( DIR.ENTRY%(0) ) + 24 )
- 310 X2 = PEEK( VARPTR( DIR.ENTRY%(0) ) + 25 )
- 320 YR = ( ( X2 AND 254 ) / 2 ) + 80
- 330 MO = ( X2 AND 1 ) * 8 + ( ( X1 AND 224 ) / 32 )
- 340 DY = ( X1 AND 31 )
- 350 DT$ = RIGHT$(STR$(MO),2) +"/"+ RIGHT$(STR$(DY),2) +"/" + RIGHT$(STR$(YR),2)
- 360 IF MO < 10 THEN MID$( DT$,1,1 ) = "0"
- 370 IF DY < 10 THEN MID$( DT$,4,1 ) = "0"
- 380 ' read file size:
- 390 FOR I = 26 TO 30: SIZ!(I-26) = PEEK( VARPTR( DIR.ENTRY%(0) ) + I ): NEXT
- 400 SIZE!= SIZ!(0) +SIZ!(1)*256 +(SIZ!(2)+(SIZ!(3)*256))*65536!
- 410 ' read file name:
- 420 FOR I = 30 TO 43
- 430 X = PEEK( VARPTR( DIR.ENTRY%(0) ) +I )
- 440 IF X <> 0 THEN PRINT CHR$(X); ELSE I=43
- 450 NEXT
- 460 PRINT , DT$ USING "###,###,###"; SIZE!
- 470 RETURN
- 480 END
- 490 '* 21 BYTES - RESERVED FOR DOS USE ON SUBSEQUENT
- 500 '* FIND NEXT CALLS
- 510 '* 2 BYTES - FILES CREATE/UPDATE TIME
- 520 '* 2 BYTES - FILES CREATE/UPDATE DATE
- 530 '* 2 BYTES - LOW WORD OF FILE SIZE
- 540 '* 2 BYTES - HIGH WORD OF FILE SIZE
- 550 '* 13 BYTES - NAME AND EXTENTION OF FILE FOUND
- 560 '* 1 BYTE FOLLOWED BY A BYTE OF HEX 00.
- 570 '* 43 BYTES TOTAL
- 580 '
- 590 DATA &H55
- 600 DATA &H89,&HE5
- 610 DATA &H31,&HC0
- 620 DATA &H31,&HC9
- 630 DATA &H31,&HD2
- 640 DATA &H8B,&H76,&H0E
- 650 DATA &H8A,&H24
- 660 DATA &H8B,&H76,&H0C
- 670 DATA &H8B,&H0C
- 680 DATA &H8B,&H76,&H0A
- 690 '********COMMENT OUT THE NEXT DATA STATEMENT IF USED WITH THE BASIC COMPILER
- 700 DATA &H8B,&H54,&H01
- 710 '********COMMENT OUT THE NEXT DATA STATEMENT IF USED WITH THE BASIC INTERPRETER
- 720 'DATA &H8B,&H54,&H02
- 730 DATA &HCD,&H21
- 740 DATA &H8B,&H76,&H06
- 750 DATA &H88,&H04
- 760 DATA &H8B,&H76,&H08
- 770 DATA &H89,&HF7
- 780 DATA &H06
- 790 DATA &H31,&HDB
- 800 DATA &HB4,&H2F
- 810 DATA &HCD,&H21
- 820 DATA &HFC
- 830 DATA &HB9,&H2C,&H00
- 840 DATA &H89,&HDE
- 850 DATA &H90,&H90,&H90
- 860 DATA &H1E
- 870 DATA &H06
- 880 DATA &H1F
- 890 DATA &H07
- 900 DATA &HF3
- 910 DATA &HA4
- 920 DATA &H06
- 930 DATA &H1F
- 940 DATA &H07
- 950 DATA &H5D
- 960 DATA &HCA,&H0A,&H00