📄 fsearch.asm
字号:
.nolist.include "param.inc".list .comm fileID, 2 .bitcomm fastI2C, 1 .text.global searchfilesearchfile:;r4 file type;dptr file start;r2r3 file end.ifdef I2Cfilesystem jnb I2Cpresent,L_NoScanI2C clr fastI2C mov dptr,#4 ;offset of "file directory" in I2C EEPROML_I2Cdir: lcall read_random inc a ;end of directory ? jz L_I2Ceof dec a xrl a,fileID jnz L_nextI2Cdir lcall read_current xrl a,fileID+1 jnz L_nextI2Cdir lcall read_current mov r4,a ;file type lcall read_current ;reserved lcall read_current mov dph,a ;MSB file start lcall read_current mov dpl,a ;LSB file start lcall read_current mov r2,a ;MSB file end lcall read_current mov r3,a ;LSB file end mov r5,#0 ;I2C filesystem clr c ;O.K. retL_nextI2Cdir: mov a,dpl add a,#8 mov dpl,a jnc L_I2Cdir inc dph sjmp L_I2CdirL_I2Ceof:L_NoScanI2C:.endif.ifdef ROMfilesystem mov dptr,#filedir ;offset of "file directory" in ROML_ROMdir: clr a movc a,@a+dptr inc a ;end of directory ? jz L_ROMeof dec a xrl a,fileID jnz L_nextROMdir mov a,#1 movc a,@a+dptr xrl a,fileID+1 jnz L_nextROMdir mov a,#2 movc a,@a+dptr mov r4,a ;file type mov a,#6 movc a,@a+dptr mov r2,a ;MSB file end mov a,#7 movc a,@a+dptr mov r3,a ;LSB file end mov a,#4 movc a,@a+dptr push acc ;MSB file start mov a,#5 movc a,@a+dptr mov dpl,a ;LSB file start pop dph ;MSB file start mov r5,#1 ;ROM filesystem clr c ;O.K. retL_nextROMdir: mov a,dpl add a,#8 mov dpl,a jnc L_ROMdir inc dph sjmp L_ROMdirL_ROMeof:.endif.ifdef EEfilesystem mov dptr,#fileee ;offset of "file directory" in EEPROM ENABLE_EEL_EEdir: clr a movx a,@dptr inc a ;end of directory ? jz L_EEeof dec a xrl a,fileID jnz L_nextEEdir inc dptr ;1 movx a,@dptr xrl a,fileID+1 jnz L_nextEEdir7 inc dptr ;2 movx a,@dptr mov r4,a ;file type inc dptr ;3 inc dptr ;4 movx a,@dptr push acc ;MSB file start inc dptr ;5 movx a,@dptr push acc ;LSB file start inc dptr ;6 movx a,@dptr mov r2,a ;MSB file end inc dptr ;7 movx a,@dptr mov r3,a ;LSB file end pop dpl ;LSB file start pop dph ;MSB file start clr c ;O.K. DISABLE_EE mov r5,#2 ;EEPROM filesystem retL_nextEEdir: inc dptrL_nextEEdir7: mov a,dpl add a,#7 mov dpl,a jnc L_EEdir inc dph sjmp L_EEdirL_EEeof: DISABLE_EE.endif setb c ;file not found ret; ;; END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -