📄 sort_store_list.lst
字号:
\ 00E6 2171FE LD HL,65137
\ 00E9 DD4EEC LD C,(IX-20)
\ 00EC DD46ED LD B,(IX-19)
\ 00EF 09 ADD HL,BC
\ 00F0 4D LD C,L
\ 00F1 44 LD B,H
\ 00F2 112900 LD DE,41
\ 00F5 ?0050:
\ 00F5 CD0000 CALL LWRD ?S_MUL_L02
\ 00F8 DD6EFC LD L,(IX-4)
\ 00FB DD66FD LD H,(IX-3)
\ 00FE 19 ADD HL,DE
\ 00FF DD75F8 LD (IX-8),L
\ 0102 DD74F9 LD (IX-7),H
\ 0105 ?0018:
57 }
58 memcpy(&WritrVMBuffer[30+71*j],store_location,OneLocationBYTE);
\ 0105 211E00 LD HL,WritrVMBuffer+30
\ 0108 114700 LD DE,71
\ 010B FDE5 PUSH IY
\ 010D C1 POP BC
\ 010E CD0000 CALL LWRD ?S_MUL_L02
\ 0111 19 ADD HL,DE
\ 0112 EB EX DE,HL
\ 0113 DD6EF8 LD L,(IX-8)
\ 0116 DD66F9 LD H,(IX-7)
\ 0119 012900 LD BC,41
\ 011C EDB0 LDIR
59 output8(0x05,BakIO05);
\ 011E DD7EFB LD A,(IX-5)
\ 0121 D305 OUT (5),A
60 }
61 file_counter++;
\ 0123 DD34EE INC (IX-18)
\ 0126 2003 JR NZ,?0045
\ 0128 DD34EF INC (IX-17)
\ 012B ?0045:
62 //////////////////////test
63 if(file_counter==390)
\ 012B 218601 LD HL,390
\ 012E DD4EEE LD C,(IX-18)
\ 0131 DD46EF LD B,(IX-17)
\ 0134 A7 AND A
\ 0135 ED42 SBC HL,BC
\ 0137 2006 JR NZ,?0020
\ 0139 ?0019:
64 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0139 DB4E IN A,(78)
\ 013B CBDF SET 3,A
\ 013D D34E OUT (78),A
\ 013F ?0020:
65 //////////////////////test
66 if(file_counter>g_file_total) //总的存储项
\ 013F 2A0000 LD HL,(g_file_total)
\ 0142 A7 AND A
\ 0143 ED42 SBC HL,BC
\ 0145 3805 JR C,?0012
\ 0147 ?0021:
67 break;
\ 0147 ?0022:
\ 0147 FD23 INC IY
\ 0149 C36D00 JP LWRD ?0013
\ 014C ?0012:
68 }
69 output8(0x05,IO05bak); //05 端口恢复,否则可能和文件系统冲突
\ 014C DD7EFA LD A,(IX-6)
\ 014F D305 OUT (5),A
70 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0151 DB4E IN A,(78)
\ 0153 CBDF SET 3,A
\ 0155 D34E OUT (78),A
71 FS_FWrite(WritrVMBuffer,1,listhandle); //
\ 0157 DD6E08 LD L,(IX+8)
\ 015A DD6609 LD H,(IX+9)
\ 015D E5 PUSH HL
\ 015E 0E01 LD C,1
\ 0160 110000 LD DE,WritrVMBuffer
\ 0163 CD0000 CALL LWRD FS_FWrite
\ 0166 E1 POP HL
\ 0167 DD34F0 INC (IX-16)
\ 016A C22900 JP NZ,?0003
\ 016D DD34F1 INC (IX-15)
\ 0170 C32900 JP LWRD ?0003
\ 0173 ?0002:
72 }
73 FS_FClose(listhandle); //写文件结束
\ 0173 DD5E08 LD E,(IX+8)
\ 0176 DD5609 LD D,(IX+9)
\ 0179 CD0000 CALL LWRD FS_FClose
74 }
\ 017C ?0064:
\ 017C DDF9 LD SP,IX
\ 017E DDE1 POP IX
\ 0180 FDE1 POP IY
\ 0182 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0185 StoreList:
75
76 void StoreList(char *listaddress,int pagenum,char listtype)
77 {
\ 0185 FDE5 PUSH IY
\ 0187 DDE5 PUSH IX
\ 0189 D5 PUSH DE
\ 018A C5 PUSH BC
\ 018B FDE1 POP IY
78 handle TempFileHandle;
79 FS_CD(":"); //回根目录创建列表文件
\ 018D 110000 LD DE,?0023
\ 0190 CD0000 CALL LWRD FS_CD
80 switch(listtype)
\ 0193 210A00 LD HL,10
\ 0196 39 ADD HL,SP
\ 0197 5E LD E,(HL)
\ 0198 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 019B 00 DEFB 0
\ 019C 0400 DEFW 4
\ 019E ED01 DEFW ?0040
\ 01A0 A801 DEFW ?0025
\ 01A2 B401 DEFW ?0029
\ 01A4 C001 DEFW ?0033
\ 01A6 CC01 DEFW ?0037
\ 01A8 ?0025:
81 {
82 case 0:
83 //FS_FRemove(TIT2FileName); //删除原来列表
84 TempFileHandle = FS_FCreate(TIT2FileName);
\ 01A8 110200 LD DE,?0026
\ 01AB CDF501 CALL LWRD ?0065
85 if(TempFileHandle!=NULL)
\ 01AE 283D JR Z,?0040
\ 01B0 ?0027:
86 WriteVmData(listaddress,pagenum,TempFileHandle,0);
\ 01B0 0E00 LD C,0
\ 01B2 1822 JR ?0057
\ 01B4 ?0028:
87 break;
\ 01B4 ?0029:
88
89 case 1: //删除原来列表
90 //FS_FRemove(TPE1FileName); //删除原来
91 TempFileHandle = FS_FCreate(TPE1FileName);
\ 01B4 110E00 LD DE,?0030
\ 01B7 CDF501 CALL LWRD ?0065
92 if(NULL!= TempFileHandle)
\ 01BA 2831 JR Z,?0040
\ 01BC ?0031:
93 WriteVmData(listaddress,pagenum,TempFileHandle,1);
\ 01BC 0E01 LD C,1
\ 01BE 1816 JR ?0057
\ 01C0 ?0032:
94 break;
\ 01C0 ?0033:
95
96 case 2:
97 //FS_FRemove(TALBFileName); //删除原来列表
98 TempFileHandle = FS_FCreate(TALBFileName);
\ 01C0 111A00 LD DE,?0034
\ 01C3 CDF501 CALL LWRD ?0065
99 if(NULL!= TempFileHandle)
\ 01C6 2825 JR Z,?0040
\ 01C8 ?0035:
100 WriteVmData(listaddress,pagenum,TempFileHandle,2);
\ 01C8 0E02 LD C,2
\ 01CA 180A JR ?0057
\ 01CC ?0036:
101 break;
\ 01CC ?0037:
102
103 case 3:
104 //FS_FRemove(FILENAMELSIT); //删除原来列表
105 TempFileHandle = FS_FCreate(FILENAMELSIT);
\ 01CC 112600 LD DE,?0038
\ 01CF CDF501 CALL LWRD ?0065
106 if(NULL!= TempFileHandle)
\ 01D2 2819 JR Z,?0040
\ 01D4 ?0039:
107 WriteVmData(listaddress,pagenum,TempFileHandle,3);
\ 01D4 0E03 LD C,3
\ 01D6 ?0057:
\ 01D6 C5 PUSH BC
\ 01D7 DDE5 PUSH IX
\ 01D9 FDE5 PUSH IY
\ 01DB C1 POP BC
\ 01DC 210400 LD HL,4
\ 01DF 39 ADD HL,SP
\ 01E0 5E LD E,(HL)
\ 01E1 23 INC HL
\ 01E2 56 LD D,(HL)
\ 01E3 3E00 LD A,BYTE3 WriteVmData
\ 01E5 210000 LD HL,LWRD WriteVmData
\ 01E8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01EB E1 POP HL
\ 01EC E1 POP HL
\ 01ED ?0040:
108 break;
\ 01ED ?0041:
109
110 default:
111 break;
\ 01ED ?0024:
112 }
113 }
\ 01ED E1 POP HL
\ 01EE DDE1 POP IX
\ 01F0 FDE1 POP IY
\ 01F2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01F5 ?0065:
\ 01F5 CD0000 CALL LWRD FS_FCreate
\ 01F8 E5 PUSH HL
\ 01F9 DDE1 POP IX
\ 01FB 7D LD A,L
\ 01FC B4 OR H
\ 01FD C9 RET
\ 01FE SortStoreListToFile:
114 void SortStoreListToFile(char *liststart,int file_num)
115 {
\ 01FE FDE5 PUSH IY
\ 0200 DDE5 PUSH IX
\ 0202 DD210000 LD IX,0
\ 0206 DD39 ADD IX,SP
\ 0208 C5 PUSH BC
\ 0209 F5 PUSH AF
\ 020A F5 PUSH AF
\ 020B D5 PUSH DE
\ 020C FDE1 POP IY
116 char IO05bak = input8(0x05);
\ 020E DB05 IN A,(5)
\ 0210 DD77FC LD (IX-4),A
117 int pagenum = file_num/Pagelist; //VM 的每一页存储7个列表
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -