易码技术论坛

 找回密码
 加入易码
搜索
查看: 747708|回复: 18

[原创]文件列表代码FOR TC1K&&NC3K(支持后缀名判断)

[复制链接]
发表于 2005-8-9 22:57:00 | 显示全部楼层
手机上看到这篇文章,特上因特网封你精华!
 楼主| 发表于 2005-8-9 23:30:00 | 显示全部楼层
呵呵,多谢.
ps:我喜欢精华贴^_^
发表于 2005-8-10 16:03:00 | 显示全部楼层
好文啊,不过.........好长的说......

12379_25707_4902.rar

14 KB, 下载次数: 149

12379_25707_4977.rar

15 KB, 下载次数: 131

12379_25707_5018.rar

15 KB, 下载次数: 126

 楼主| 发表于 2005-8-10 16:10:00 | 显示全部楼层
呵呵,那你写个更简单的代码试试...
这个filelist 宏一共 700多字节(包括帮助信息..),功能应该算很强的了.
发表于 2005-8-11 09:41:00 | 显示全部楼层
我是说......太长了又没有注释,加上偶很菜,看不懂啊......
发表于 2005-8-26 14:45:00 | 显示全部楼层
好好!省心!省了好多[em02]

13257_32999_5420.rar

300 KB, 下载次数: 131

13257_32999_5421.rar

216 KB, 下载次数: 114

发表于 2005-8-28 17:10:00 | 显示全部楼层
那个编好的3K的怎么改为TC1000的(在WQX上)急!!!!!!!!
[em05]
编译好的FOR TC1000的bin程序

Eastsun 编辑

 楼主| 发表于 2005-8-28 17:37:00 | 显示全部楼层
以下是引用Eastsun在2005-8-9 22:34:00的发言:[BR];FileD   =$00                                  ;改为$6b即为TC1K
发表于 2005-8-29 14:21:00 | 显示全部楼层
在WQX上,用PACMGR 改的话,我没电脑!谢谢!!!这东西能用GAMEGHOST的星端汇编编译器编译吗??

13402_34149_5502.rar

91 KB, 下载次数: 137

 楼主| 发表于 2005-8-29 17:30:00 | 显示全部楼层
1.如果你懂汇编,稍稍看一下代码,应该知道如何在wqx上改的。。。
2.gh的那个编译器尚有bug,编译不出正确的代码
3.没电脑你这个帖子如何发出来的?
发表于 2005-9-3 18:58:00 | 显示全部楼层
网吧拉!!!!!谢谢我会看的,我在WQX上用PACMGR反汇编出来代码不对。看起来云!!
[em04][em05]
发表于 2005-9-4 02:18:00 | 显示全部楼层
TC1000一运行就关机
我得内核是3.4的
 楼主| 发表于 2005-9-4 09:43:00 | 显示全部楼层
编译好的FOR TC1000的bin程序
[attachment:4183]
Eastsun 编辑

楼上用的是这个程序吗?
主楼那个是FOR NC3K的。
另外,我没有TC1000的机器,上面程序只在TC1000的模拟器上测试过,理论上应该没问题。
发表于 2005-9-9 20:57:00 | 显示全部楼层
<br>好东东!很强!

不过我承认那个编译器确实还有些bug,那个宏还不支持参数,而且由于大意,and的写成asl了,int可以直接用,要编译就取掉那个宏,我编译了下,已经没什么问题了,下回换个网吧传上来。
发表于 2006-5-9 20:24:00 | 显示全部楼层
我正在用汇编在研究tc808(工具和资料少的可怜啊),别笑我,希望有方法改成808的,chr好像说过用过808,希望编一个
发表于 2006-11-27 12:10:14 | 显示全部楼层
很值得学习一下的!!
发表于 2006-12-27 13:11:31 | 显示全部楼层
好东西越来越多了.顶一个.
发表于 2007-2-12 04:02:00 | 显示全部楼层
希望可以有人帮忙注解一下
 楼主| 发表于 2005-8-9 22:34:29 | 显示全部楼层 |阅读模式
;样本程序
;用6502simulator编译后再用文件转换工具转换为WQX格式即
                .ORG $4010
                JMP main
               
int   .MACRO   int_p
      .DB $00
      .DW int_p
      .ENDM
                .INCLUDE "./filelist.h"
blocknum      .DB "0000000000000000"
workdir       .DB "0000000000000000"
choice        .DB "0000000000000000"
depth         .DB $00
root          .DB "/..",$00
main
              LDA $08d2-FileD
              PHA
              LDA $08d3-FileD
              PHA
              LDA $08c8-FileD
              PHA
              JSR ScanDir
              PLA
              STA $08c8-FileD
              PLA
              STA $08d3-FileD
              PLA
              STA $08d2-FileD
              RTS
ScanDir
              LDX #$ff
sdloop1       INX
              LDA root,x
              STA $088d-FileD,x
              BNE sdloop1
              int $050d
              LDA #$00
              STA depth
sdloop      
              LDA depth
              ASL
              TAX
              LDA $08e6-FileD
              STA blocknum,x
              LDA $08e7-FileD
              STA blocknum+1,x
              LDA $08d2-FileD
              STA workdir,x
              LDA $08d3-FileD
              STA workdir+1,x
              LDA #$00
              STA CurFirst
              STA CurRow
sdloop2
              LDA depth
              ASL
              TAX
              LDA blocknum,x
              STA $08e6-FileD
              LDA blocknum+1,x
              STA $08e7-FileD
              LDA workdir,x
              STA $08d2-FileD
              LDA workdir+1,x
              STA $08d3-FileD
              filelist
              BCS sdl1
              BEQ sdl1
              int $050d
              BCS sdl3
              LDA depth
              ASL
              TAX
              LDA CurRow
              STA choice+1,x
              LDA CurFirst
              STA choice,x
              INC depth
              JMP sdloop
sdl1
              LDA depth
              BNE sdl2
              RTS
sdl2
              DEC depth
              LDA depth
              ASL
              TAX
              LDA choice,x
              STA CurFirst
              LDA choice+1,x
              STA CurRow
              JMP sdloop2
sdl3
              int $c72a
              LDX #$ff
sdloop3       INX
              LDA $088d-FileD,x
              STA $02c0,x
              BNE sdloop3
              LDX #$0c
sdloop4
              LDA Msg,x
              STA $02d4,x
              DEX
              BPL sdloop4
              int $c719
              int $c006
              JMP sdloop2
Msg          .DB "这是一个文件!"
;#####################################################
;"filelist.h"
FileD   =$00                                  ;改为$6b即为TC1K
filelist: .MACRO
     JSR _filelist
          .ENDM
;******************address define**********
_flbufbegin        =$cf00
NumTable           =_flbufbegin
FileTable          =NumTable+$100
FileTableADD2      =FileTable+2
_fltempbegin       =$0d00
CurFirst           =_fltempbegin
CurRow             =CurFirst+1
FileNum            =CurRow+1
Tag                =FileNum+1
;##########################################
_filelist  
          LDA $0a
          PHA
          AND #$f0
          ORA #$01
          STA $0a
          LDA $08e6-FileD
          STA $0888-FileD
          LDA $08e7-FileD
          STA $0889-FileD
          LDA #$00
          STA $088a-FileD
          STA $088b-FileD
          STA $09d2-FileD
          LDA #$10
          STA $09d3-FileD
          LDA #<FileTable
          STA $f0
          LDA #>FileTable
          STA $f1
          int $0505
          LDA #'<'
          STA FileTable+2
          LDA #'-'
          STA FileTable+3
          STA FileTable+4
          LDA #$00
          STA FileTable+5
          STA FileTable
GetFileNum
          LDA #$00
          STA $40
          STA $41
          LDA #<FileTable
          STA $80
          LDA #>FileTable
          STA $81
_fllabel1
          LDY #$00
          LDA ($80),y
          INY
          AND ($80),y
          EOR #$ff
          BEQ _fllabel8
          LDA Tag
          BEQ _fllabel5
_fllabel2
          INY
          CPY #$10
          BEQ _fllabel5
          LDA ($80),y
          BEQ _fllabel5
          CMP #'.'
          BNE _fllabel2
          LDX #$ff
_fllabel3
          INX
          INY
          LDA Suffix,x
          BEQ _fllabel4
          CMP ($80),y
          BEQ _fllabel3
          BNE _fllabel6
_fllabel4
          CPY #$10
          BEQ _fllabel5
          LDA ($80),y
          BNE _fllabel6
_fllabel5
          LDX $41
          LDA $40
          STA NumTable,x
          INC $41
_fllabel6
          CLC
          LDA $80
          ADC #$10
          STA $80
          BCC _fllabel7
          INC $81
_fllabel7
          INC $40
          BNE _fllabel1
          PLA
          STA $0a
          LDA #$ff
          SEC
          RTS          ;overflow
_fllabel8
          LDA $41
          STA FileNum
FLPrint
          LDA #$ff
          STA $03b4
          int $c72a
          CLC
          LDA CurFirst
          STA $40
          ADC CurRow
          TAX
          BNE _fllabel9
        .DB $2c
_fllabel9
          LDA #$40
          STA $41
          INX
          CPX FileNum
          BNE _fllabel10
          LDA #$00
         .DB $2c
_fllabel10
          LDA #$80
          ORA $41
          STA $0390
          LDA #$c0
          STA $82
          LDA #$02
          STA $83
          LDA #$05
          STA $41
_flloop1
          LDY #$00
          STY $81
          LDX $40
          LDA NumTable,x
          ASL
          ROL $81
          ASL
          ROL $81
          ASL
          ROL $81
          ASL
          ROL $81
          CLC
          ADC #<FileTableADD2
          STA $80
          LDA $81
          ADC #>FileTableADD2
          STA $81
_fllabel11
          LDA ($80),y
          BEQ _fllabel13
          LDX Tag
          BEQ _fllabel12
          CMP #'.'
          BEQ _fllabel13
_fllabel12
          STA ($82),y
          INY
          CPY #$0e
          BNE _fllabel11
_fllabel13
          LDA #$20
          STA ($82),y
          CLC
          LDA $82
          ADC #$14
          STA $82
          BCC _fllabel14
          INC $83
_fllabel14
          INC $40
          LDA $40
          CMP FileNum
          BCS _fllabel15
          DEC $41
          BNE _flloop1
_fllabel15
          LDX #$00
          LDY CurRow
          int $c71d
          int $c719
_flwaitkey
          int $c006
          LDX #$09
_fllabel16
          CMP KeyTable,x
          BEQ _fllabel17
          DEX
          BPL _fllabel16
          JMP _flwaitkey
_fllabel17
          TXA
          ASL
          TAX
          LDA OpeTable,x
          STA $80
          LDA OpeTable+1,x
          STA $81
          JMP ($0080)
KeyTable .DB $17,$16,$14,$15,$13,$0e,$19,$1c,$1b,$0d
OpeTable .DW _flleft,_flright,_flup,_fldown,_flpageup,_flpagedown,_flhelp,_flf1,_flesc,_flenter
_flleft
_flup
          LDA $0390
          AND #$40
          BEQ _upl3
          LDA CurRow
          BEQ _upl2
          DEC CurRow
          JMP FLPrint
_upl2   
          DEC CurFirst
_upl3
          JMP FLPrint
         
_flright
_fldown
          LDA $0390
          AND #$80
          BEQ _downl3
          LDA CurRow
          CMP #$04
          BEQ _downl2
          INC CurRow
          JMP FLPrint
_downl2   
          INC CurFirst
_downl3
          JMP FLPrint
         
_flhelpmsg .DB "======文件列表======"
           .DB "用方向键或换页键切换"
           .DB "要选择的文件,用<MR> "
           .DB "键来确认选择.       "
           .DB "<F1>键切换<普通/过滤"
           .DB ">浏览模式.",$00,$00
_flhelp     
           LDA #<_flhelpmsg
           STA $a6
           LDA #>_flhelpmsg
           STA $a7
           int $cb09
           JMP FLPrint
           
_flf1
           LDA Tag
           BNE _f1l1
           LDA #$ff
           .DB $2c
_f1l1
           LDA #$00
           STA Tag
           LDA #$00
           STA CurFirst
           STA CurRow
           JMP GetFileNum
           
_flenter  
           CLC
           LDA CurFirst
           ADC CurRow
           BNE _enterl1
           PLA
           STA $0a
           LDA #$00
           CLC
           RTS
_enterl1
           TAX
           LDA NumTable,x
           LDY #$00
           STY $81
          ASL
          ROL $81
          ASL
          ROL $81
          ASL
          ROL $81
          ASL
          ROL $81
          CLC
          ADC #<FileTableADD2
          STA $80
          LDA $81
          ADC #>FileTableADD2
          STA $81
_enterl2
           LDA ($80),y
           BEQ _enterl3
           STA $088d-FileD,y
           INY
           CPY #$0e
           BNE _enterl2
_enterl3
           LDA #$00
           STA $088d-FileD,y
           PLA
           STA $0a
           CLC
           RTS
                     
_flesc
           PLA
           STA $0a
           LDA #$00
           SEC
           RTS
                                                                                         
_flpageup
           LDA $0390
           AND #$40
           BEQ _flpul2
           SEC
           LDA CurFirst
           BEQ _flpul3
           SBC #$05
           BCC _flpul1
          .DB $2c
_flpul1   
           LDA #$00
           STA CurFirst
_flpul2
           JMP FLPrint
_flpul3   
           STA CurRow
           BEQ _flpul2
                                          
_flpagedown
           LDA $0390
           AND #$80
           BEQ _flpdl1
           CLC
           LDA CurFirst
           ADC #$05
           CMP FileNum
           BCS _flpdl2
           STA CurFirst
           LDA CurFirst
           ADC CurRow
           CMP FileNum
           BCS _flpdl2
_flpdl1
           JMP FLPrint
_flpdl2
           LDA FileNum
           SBC CurFirst
           TAX
           DEX
           STX CurRow
           JMP FLPrint                  
Suffix          .DB "bin",$00              //后缀名
                       
                              
         
         
         

里面有编译好的NC3K的文件列表样本程序。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-3-29 08:37 , Processed in 0.012431 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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