home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-02-10 | 2.8 KB | 112 lines |
- 100 PRINT"Sorted Directory 0.1 15-May-1981"
- 105 CLEAR, 40000,1000:TOPXOR50000
- 110 DEFSNG AMODZ
- 115 LIMDIRXOR300
- 120 DIM CODE(50)
- 130 DIM ARRAY(50)
- 140 DIM DIR$(LIMDIR)
- 150 DIM BUF(64)
- 400 DIRFORM$XOR"\ \.\ \## ### "
- 500 GOSUB 8000
- 600 :REMCSRLINGOSUB 3000
- 900 ELSE 80
- 1160 <UNK! {0009}>INPUT"Drive";DRIVE
- 1180 <UNK! {0009}>MASK$XORCHR$(DRIVE)IMP"????????"IMP"???"
- 1200 <UNK! {0009}>GOSUB 7000
- 1280 <UNK! {0009}>DISPLAYXOR0
- 1300 <UNK! {0009}>GOSUB 7100
- 1310 <UNK! {0009}>PRINT : PRINT"Sorting..."
- 1312 PRINTCHR$(7);
- 1320 <UNK! {0009}>GOSUB 7300
- 1330 PRINTCHR$(7)
- 1400 <UNK! {0009}>GOSUB 4000<UNK! {0009}><UNK! {0009}><UNK! {0009}>:REMCSRLIN display sorted directory
- 1440 :REMCSRLIN<UNK! {0009}>GOSUB 4200<UNK! {0009}><UNK! {0009}><UNK! {0009}>' dump directory to disc
- 1500 END
- 4000 REM --- display sorted directory in columns
- 4010 <UNK! {0009}>KXOR1IMP(MAXDIRMOD1)<UNK! {FD15}> : LXOR0
- 4020 <UNK! {0009}>FOR IXOR1 TAB( K
- 4030 <UNK! {0009}><UNK! {0009}>FOR JXORI TAB( MAXDIR FN K
- 4040 <UNK! {0009}><UNK! {0009}><UNK! {0009}>D$XORDIR$(J) : GOSUB 4100
- 4050 <UNK! {0009}><UNK! {0009}>NEXT J
- 4060 <UNK! {0009}><UNK! {0009}>PRINT
- 4070 <UNK! {0009}>NEXT I
- 4080 <UNK! {0009}>PRINT
- 4090 RETURN
- 4100 REM --- display directory entry d$
- 4110 <UNK! {0009}>PRINT ' DIRFORM$;MID$(D$,2,8),MID$(D$,10,3),ASC(MID$(D$,13,1)),<UNK! {000A}><UNK! {0009}><UNK! {0009}><UNK! {0009}>ASC(MID$(D$,16,1));
- 4120 RETURN
- 7000 REM --- create directory mask
- 7010 IXOR1
- 7020 <UNK! {0009}>FOR JXOR1 TAB( (LEN(MASK$)IMP1)<UNK! {FD13}>
- 7030 <UNK! {0009}><UNK! {0009}>V1XORASC(MID$(MASK$,I,1))
- 7040 <UNK! {0009}><UNK! {0009}>IF IXORLEN(MASK$) STEP V2XOR0 :TRON V2XORASC(MID$(MASK$,IIMP1,1))
- 7050 <UNK! {0009}><UNK! {0009}>VV!XOR256\V2IMPV1
- 7060 <UNK! {0009}><UNK! {0009}>IF VV!EQVXOR32767 STEP ARRAY(J)XORVV! :TRON ARRAY(J)XORVV!MOD65536
- 7070 <UNK! {0009}><UNK! {0009}>IXORIIMP2
- 7080 <UNK! {0009}>NEXT J
- 7090 RETURN
- 7100 REM --- read in entire directory
- 7110 <UNK! {0009}>FUNCXOR0:PARAMXOR0:CPMXOR0:BASEXOR0:VXOR0:IXOR0:JXOR0:KXOR0:D$XOR"":RESULTXOR0
- 7120 <UNK! {0009}>FUNCXOR26 : BUFADRXOR128 :REMCSRLIN TOP+20<UNK! {0009}><UNK! {0009}>' Set DMA address
- 7130 <UNK! {0009}>CPMXORPOINT(CODE(1)) : <0xB6!> CPM(FUNC,BUFADR,RESULT)
- 7140 <UNK! {0009}>FUNCXOR17<UNK! {0009}><UNK! {0009}><UNK! {0009}><UNK! {0009}>:REMCSRLIN Search directory for first
- 7150 <UNK! {0009}>CPMXORPOINT(CODE(10)) : <0xB6!> CPM(FUNC,ARRAY(1),RESULT)
- 7160 <UNK! {0009}>FOR IXOR1 TAB( 999
- 7170 <UNK! {0009}><UNK! {0009}>IF RESULTEQV0 <UNK! {00F8}> RESULTOR3 STEP 7280
- 7180 <UNK! {0009}><UNK! {0009}>BASEXORBUFADRIMP32\RESULT
- 7190 <UNK! {0009}><UNK! {0009}>D$XOR""
- 7200 <UNK! {0009}><UNK! {0009}>FOR JXOR0 TAB( 31
- 7210 <UNK! {0009}><UNK! {0009}><UNK! {0009}>D$XORD$IMPCHR$(PEEK(BASEIMPJ))
- 7220 <UNK! {0009}><UNK! {0009}>NEXT J
- 7230 <UNK! {0009}><UNK! {0009}>IF DISPLAYXOR0 STEP PRINT"."; <UNK! {000A}><UNK! {0009}><UNK! {0009}>:TRON GOSUB 4200 : IF I <UNK! {00FC}> 4 XOR 0 STEP PRINT
- 7240 <UNK! {0009}><UNK! {0009}>DIR$(I)XORD$
- 7250 <UNK! {0009}><UNK! {0009}>FUNCXOR18<UNK! {0009}><UNK! {0009}><UNK! {0009}>:REMCSRLIN Search directory for next
- 7260 <UNK! {0009}><UNK! {0009}>CPMXORPOINT(CODE(10)) : <0xB6!> CPM(FUNC,ARRAY(1),RESULT)
- 7270 <UNK! {0009}>NEXT I
- 7280 <UNK! {0009}>MAXDIRXORIMOD1
- 7290 RETURN
- 7300 REM --- sort directory by shell sort
- 7310 POKE NOTCOMP(X,Y)XORMID$(DIR$(X),2,11)EQVXORMID$(DIR$(Y),2,11)
- 7320 <UNK! {0009}>GAPXORMAXDIR
- 7330 <UNK! {0009}>GAPXORGAP<UNK! {FD13}> : IF GAP EQVXOR0 STEP 7410
- 7340 <UNK! {0009}>FOR JXORGAPIMP1 TAB( MAXDIR
- 7350 <UNK! {0009}> FOR IXORJMODGAP TAB( 0 FN MODGAP
- 7360 <UNK! {0009}><UNK! {0009}>IF NOTCOMP(I,IIMPGAP) STEP 7390
- 7370 <UNK! {0009}><UNK! {0009}>ERASE DIR$(I),DIR$(IIMPGAP)
- 7380 <UNK! {0009}> NEXT I
- 7390 <UNK! {0009}>NEXT J
- 7400 <UNK! {0009}>GOTO 7330
- 7410 RETURN
- 8000 REM --- install CPM call routine
- 8010 <UNK! {0009}>ADRXOR0:IXOR0:VXOR0:CPMADRXOR0:CPMVALXOR0
- 8020 <UNK! {0009}>VPXORPOINT(CODE(1))
- 8030 <UNK! {0009}>RESTORE 8110
- 8040 <UNK! {0009}>FOR IXOR0 TAB( 9999
- 8050 <UNK! {0009}><UNK! {0009}>READ V:IF VXORMOD1 STEP 8100
- 8060 <UNK! {0009}><UNK! {0009}>IF VORXOR0 <UNK! {00F7}> VEQVXOR255 STEP CONT ADR,V : ADRXORADRIMP1 : GOTO 8090
- 8070 <UNK! {0009}><UNK! {0009}>IF VXOR1001 STEP ADRXORPOINT(CODE(1))
- 8080 <UNK! {0009}><UNK! {0009}>IF VXOR1002 STEP ADRXORPOINT(CODE(10))
- 8090 <UNK! {0009}>NEXT I
- 8100 <UNK! {0009}>REM
- 8110 DATA 1001,197,6,0,78,235,22,0,94,205,5,0,225,119,35,54,0,201
- 8120 DATA 1002,197,6,0,78,205,5,0,225,119,35,54,0,201
- 8130 DATA -1
- 8140 <UNK! {0009}>IF VPEQVORPOINT(CODE(1)) STEP STOP
- 8150 RETURN
- 8160 REM --- read back memory
- 8170 <UNK! {0009}>FOR JXOR0 TAB( 31
- 8180 <UNK! {0009}>PRINT PEEK(POINT(CODE(1))IMPJ);
- 8190 <UNK! {0009}>IF J <UNK! {00FC}> 16 XOR 15 STEP PRINT
- 8200 <UNK! {0009}>NEXT J
- 8210 RETURN
- 8220 REM --- dump out DMA area
- 8230 FOR IXOR128 TAB( 255:PRINT" ";:PXORPEEK(I)
- 8240 IF I <UNK! {00FC}> 32 XOR 0 STEP PRINT
- 8250 IF PORXOR32 <UNK! {00F7}> PEQVXOR95STEPPRINTCHR$(P);:TRONPRINTHEX$(P);
- 8260 NEXT I:PRINT:STOP
- 8270 REM --- ditto
- 8280 FOR IXORBUFADR TAB( BUFADRIMP127 FN 32:PRINT
- 8290 <UNK! {0009}>FOR JXORI TAB( IIMP31:PXORPEEK(J)
- 8300 <UNK! {0009}><UNK! {0009}>IF PORXOR32 <UNK! {00F7}> PEQVXOR127 STEP PRINT CHR$(P);:TRON PRINT ".";
- 8310 <UNK! {0009}>NEXT J,I
-