易码技术论坛

 找回密码
 加入易码
搜索
查看: 300228|回复: 6

[分享][原创]文件列表 bas版 for nc3000

[复制链接]
发表于 2006-5-12 19:18:00 | 显示全部楼层
不错啊!支持 !

怎么没人回呢?帮你回了!
发表于 2006-5-13 16:26:00 | 显示全部楼层
呼哈哈,有价值
发表于 2006-6-26 15:30:00 | 显示全部楼层
玩汇编之后很久没来bas版了,今天无意中来到了这里,发现好文章还真的比较的多啊

呵呵,BAS的未来就靠你们这些强人了哦!!!


发表于 2006-7-1 21:20:00 | 显示全部楼层
这么长!
发表于 2006-12-29 15:10:04 | 显示全部楼层
DING
发表于 2006-12-30 18:20:51 | 显示全部楼层
研究一下看看
 楼主| 发表于 2006-5-12 17:47:48 | 显示全部楼层 |阅读模式
玩汇编之后很久没来bas版了,今天发一个bas版的文件列表程序.

0 :
20 REM 文件列表for nc3000
30 REM 按键常数
40 KU =20:KD =21:KL =23:KR =22:KPD =14:KPU =19:KMR =13:KAC =27:KHELP =25
50 FNAMEADD =2189: REM 文件名地址
60 NRNL =2184:NRNH =2185: REM 读NAND块号
70 NRLL =2514:NRLH =2515: REM 读NAND长度
80 NRDL =240:NRDH =241: REM 读NAND目标地址
90 NROL =2186:NROH =2187: REM 读NAND偏移
100 ERRORCODE =2252: REM 文件操作出错码$8cc
110 OPENDIR =1293: REM $050D
111 NANDREAD =1285: REM $0505
112 SHOWCUR =50973: REM $C71D,反显某行
113 UPLCD =50969: REM $C719,刷屏
114 CLLCD =50986: REM $C72A,清文字缓存
115 I050A =1290: REM $050A,根据INODE读文件夹
120 BLK1L =2278:BLK1H =2279: REM 文件占用的第一块
130 CURK =947:CURX =948:CURY =949: REM 光标参数
500 F$ ="/我的图片": GOSUB 1500: REM 打开文件夹
510 IF PEEK(ERRORCODE) =2  THEN PRINT "打开文件夹";F$;"失败!": END
520 GOSUB 1700: IF FILENUM =0  THEN PRINT "没有文件!": END
530 FF =0:MPOS =0: POKE CURK,255
540 INTNUM =CLLCD: GOSUB 1600 : GOSUB 1200: GOSUB 1300: REM 将文件名写到文字缓存
550 GOSUB 1400:INTNUM =UPLCD: GOSUB 1600:K =ASC( INKEY$): REM 显示光标,文字,并按键
560 G =(K =KAC) +(K =KMR) *2 +(K =KU) *3 +(K =KD) *4 +(K =KR) *4 +(K =KL) *3 +(K =KPD) *5 +(K =KPU) *6 +(K =KHELP) *7
570 ON G  GOSUB 590,600,700,800,900,1000,595
580 GOTO 550
590 POP : POKE 199,255: END
595 CLS : PRINT " ","   文件列表BAS版          BY 立天";
596 K =ASC( INKEY$): POP : GOTO 540
600 CLS : PRINT "你选择了:"
610 FOR C =0  TO 13 =PEEK(C +6144 +MPOS *16 +2): IF D =0  THEN 630: ELSE POKE C +724,D
620 NEXT
630 INTNUM =UPLCD: GOSUB 1600:K =ASC( INKEY$)
640 POP : GOTO 540
700 REM 上
705 IF MPOS >0  THEN MPOS =MPOS -1: GOTO 730
710 IF FF >0  THEN FF =FF -1
720 POP : GOTO 540
730 RETURN
800 REM 下
805 IF FF +MPOS +1 =FILENUM  THEN 830
810 IF MPOS <4  THEN MPOS  =MPOS +1: GOTO 830
820 FF =FF +1: POP : GOTO 540
830 RETURN
900 REM 下翻
910 IF FF +5 >=FILENUM  THEN 940
920 FF =FF +5: IF FF +MPOS +1 >=FILENUM  THEN MPOS =FILENUM -FF -1
930 POP : GOTO 540
940 RETURN
1000 REM 上翻
1010 IF FF =0  THEN 1040
1020 IF FF >4  THEN FF =FF -5  ELSE FF =0
1030 POP : GOTO 540
1040 RETURN
1200 REM 下面将五个文件名读出
1205 FO =(FF +1) *16
1210 POKE NRNL,DIRBLKL: POKE NRNH,DIRBLKH
1220 H =INT(FO /256) =FO -H *256: POKE NROL,L: POKE NROH,H
1230 POKE NRLL,80: POKE NRLH,0: REM 读80字节
1240 POKE NRDL,0: POKE NRDH,24: REM 读到$1800,6144
1250 INTNUM =NANDREAD: GOSUB 1600: RETURN
1300 REM 显示文件名
1310 N =FILENUM -FF: IF N >5  THEN N =5
1320 FOR I =1  TO N
1330 A =(I -1) *20 +704:B =(I -1) *16 +6144
1340 FOR C =0  TO 13
1350 D =PEEK(B +2 +C): IF D =0  THEN 1370  ELSE POKE A +C,D
1360 NEXT C
1370 NEXT I
1380 RETURN
1400 REM 显示光标
1410 POKE 640,160: POKE 641,MPOS: POKE 642,162: POKE 643,0: POKE 644,0
1420 H =INT(SHOWCUR /256) =SHOWCUR -H *256: POKE 645,L: POKE 646,H: POKE 647,96
1430 CALL 640: RETURN
1500 REM 打开文件夹,文件夹名F$
1510 C =0: FOR A =1  TO LEN(F$):B =ASC( MID$(F$,A,1)): IF B =31  THEN 1530
1520 POKE FNAMEADD +C,B:C =C +1
1530 NEXT : POKE FNAMEADD +C,0
1540 POKE ERRORCODE,0:INTNUM =OPENDIR: GOSUB 1600
1545 IF PEEK(FNAMEADD) =ASC("/") AND PEEK(FNAMEADD +1) =0  THEN INTNUM =I050A: GOSUB 1600
1550 DIRBLKL =PEEK(BLK1L)IRBLKH =PEEK(BLK1H)
1560 RETURN
1600 REM 运行某中断,入参中断号INTNUM
1610 A =INT(INTNUM /256):B =INTNUM -A *256: POKE 4096,0: POKE 4097,B: POKE 4098,A: POKE 4099,96
1620 CALL 4096: RETURN
1700 REM 统计文件个数
1710 FILENUM =0:FO =16
1715 POKE NRNL,DIRBLKL: POKE NRNH,DIRBLKH
1720 FOR N =1  TO 16
1730 H =INT(FO /256) =FO -H *256: POKE NROL,L: POKE NROH,H
1740 POKE NRLL,0: POKE NRLH,1: REM 读256字节
1750 POKE NRDL,0: POKE NRDH,24: REM 读到$1800,6144
1760 INTNUM =NANDREAD: GOSUB 1600:FO =FO +256
1770 FOR I =1  TO 16
1775 A =(I -1) *16 +6144
1780 IF PEEK(A) =255  AND PEEK(A +1) =255  THEN 1810
1790 FILENUM =FILENUM +1
1800 NEXT
1805 NEXT
1810 RETURN
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-16 15:46 , Processed in 0.009514 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表