📄 enhanced_unicode.s01
字号:
PUSH HL
POP IY
; 136. if(code >= 0x0E00 && code <= 0x0E7F)
LD BC,3584
AND A
SBC HL,BC
JR C,?0035
PUSH IY
POP BC
LD HL,3711
SBC HL,BC
JR C,?0035
?0037:
?0036:
?0034:
; 137. code = str[s_cnt]+0xA0;
LD L,(IX-6)
LD H,(IX-5)
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
LD C,(HL)
LD B,0
LD HL,160
ADD HL,BC
PUSH HL
POP IY
JP LWRD ?0065
?0035:
; 138. else if(code == 0x20AC)
LD HL,8364
PUSH IY
POP BC
AND A
SBC HL,BC
JR NZ,?0040
?0039:
; 139. code = 0x80;
LD IY,128
JP LWRD ?0065
?0040:
; 140. else if(code == 0x2026)
LD HL,8230
AND A
SBC HL,BC
JR NZ,?0043
?0042:
; 141. code = 0x85;
LD IY,133
JR ?0065
?0043:
; 142. else if(code == 0x2018)
LD HL,8216
AND A
SBC HL,BC
JR NZ,?0046
?0045:
; 143. code = 0x91;
LD IY,145
JR ?0065
?0046:
; 144. else if(code == 0x2019)
LD HL,8217
AND A
SBC HL,BC
JR NZ,?0049
?0048:
; 145. code = 0x92;
LD IY,146
JR ?0065
?0049:
; 146. else if(code == 0x201C)
LD HL,8220
AND A
SBC HL,BC
JR NZ,?0052
?0051:
; 147. code = 0x93;
LD IY,147
JR ?0065
?0052:
; 148. else if(code == 0x201D)
LD HL,8221
AND A
SBC HL,BC
JR NZ,?0055
?0054:
; 149. code = 0x94;
LD IY,148
JR ?0065
?0055:
; 150. else if(code == 0x2022)
LD HL,8226
AND A
SBC HL,BC
JR NZ,?0058
?0057:
; 151. code = 0x95;
LD IY,149
JR ?0065
?0058:
; 152. else if(code == 0x2013)
LD HL,8211
AND A
SBC HL,BC
JR NZ,?0061
?0060:
; 153. code = 0x96;
LD IY,150
JR ?0065
?0061:
; 154. else if(code == 0x2014)
LD HL,8212
AND A
SBC HL,BC
JR NZ,?0064
?0063:
; 155. code = 0x97;
LD IY,151
; 156. else
JR ?0065
?0064:
; 157. code = str[s_cnt];
LD L,(IX-6)
LD H,(IX-5)
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
LD C,(HL)
LD B,0
PUSH BC
POP IY
?0065:
?0062:
?0059:
?0056:
?0053:
?0050:
?0047:
?0044:
?0041:
?0038:
; 158. str[d_cnt++]=code;
LD L,(IX-2)
LD H,(IX-1)
INC HL
LD (IX-2),L
LD (IX-1),H
DEC HL
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
PUSH IY
POP BC
LD (HL),C
; 159. s_cnt+=2;
LD HL,2
ADD HL,SP
LD A,(HL)
ADD A,2
LD (HL),A
JR NC,?0089
INC HL
INC (HL)
?0089:
JP LWRD ?0028
?0027:
; 160. }
; 161. str[d_cnt]=0; //结尾添0
LD L,(IX-2)
LD H,(IX-1)
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
LD (HL),0
; 162. return 1;
JP LWRD ?0099
; 163. //-break;
; 164. default: //ASCII和拉丁文
?0066:
; 165. fp=SD_FOpen(ftbl_LA,MODE_READ);
LD C,A
LD DE,ftbl_LA
?0105:
CALL LWRD SD_FOpen
LD (IX-4),L
LD (IX-3),H
; 166. break;
?0018:
; 167. }
; 168.
; 169.
; 170. if(fp==NULL)
LD A,L
OR H
JR NZ,?0068
?0067:
; 171. {
; 172. SD_FClose(fp);
LD E,L
LD D,H
CALL LWRD SD_FClose
; 173. return 0;
LD L,0
; 174. }
JP LWRD ?0082
?0068:
; 175.
; 176. for(d_cnt=0,s_cnt=0; (s_cnt<len)
XOR A
LD (IX-2),A
LD (IX-1),A
LD (IX-6),A
LD (IX-5),A
?0070:
; 177. && ( (str[s_cnt]!=0) || (str[s_cnt+1]!=0) ); )
LD C,(IX+4)
LD B,(IX+5)
LD L,(IX-6)
LD H,(IX-5)
CALL LWRD ?SS_CMP_L02
JP NC,?0069
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
LD A,(HL)
OR A
JR NZ,?0074
LD L,(IX-6)
LD H,(IX-5)
ADD HL,BC
INC HL
LD A,(HL)
OR A
JP Z,?0069
?0074:
?0075:
?0073:
?0072:
?0071:
; 178. {
; 179. code=OneUniToChar(str[s_cnt]+str[s_cnt+1]*0x100, fp, encode);
LD L,(IX+10)
PUSH HL
LD C,(IX-4)
LD B,(IX-3)
LD L,(IX-6)
LD H,(IX-5)
LD E,(IX+2)
LD D,(IX+3)
ADD HL,DE
INC HL
LD H,(HL)
LD L,0
PUSH HL
LD L,(IX-6)
LD H,(IX-5)
ADD HL,DE
LD E,(HL)
LD D,0
POP HL
ADD HL,DE
EX DE,HL
LD A,BYTE3 OneUniToChar
LD HL,LWRD OneUniToChar
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
PUSH HL
POP IY
; 180. str[d_cnt++]=code;//放了低位
LD C,(IX-2)
LD B,(IX-1)
INC BC
LD (IX-2),C
LD (IX-1),B
DEC BC
LD L,(IX+2)
LD H,(IX+3)
ADD HL,BC
PUSH IY
POP BC
LD (HL),C
; 181. if((encode!=1)&&(encode<5))
LD B,(IX+10)
DEC B
JR Z,?0081
LD A,(IX+10)
CP 5
JR NC,?0081
?0079:
?0078:
?0076:
; 182. {
; 183. if(code>127)
PUSH IY
POP BC
LD HL,127
AND A
SBC HL,BC
JR NC,?0081
?0080:
; 184. {
; 185. str[d_cnt++]=code>>8;//把高位移到低位去
LD L,(IX-2)
LD H,(IX-1)
INC HL
LD (IX-2),L
LD (IX-1),H
DEC HL
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
PUSH IY
POP BC
LD (HL),B
?0081:
?0077:
; 186. }
; 187. }
; 188. s_cnt+=2;
LD HL,2
ADD HL,SP
LD A,(HL)
ADD A,2
LD (HL),A
JR NC,?0090
INC HL
INC (HL)
?0090:
; 189. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
JP LWRD ?0070
?0069:
; 190. }
; 191.
; 192. //str[s_cnt]=0; //结尾添0
; 193. str[d_cnt]=0; //Rcmai 04-1-31 20:37
LD L,(IX-2)
LD H,(IX-1)
LD C,(IX+2)
LD B,(IX+3)
ADD HL,BC
LD (HL),0
; 194. SD_FClose(fp);
LD E,(IX-4)
LD D,(IX-3)
CALL LWRD SD_FClose
; 195.
; 196. //清 WATCH_DOG
; 197. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 198.
; 199. return 1;
?0099:
LD L,1
; 200. }
?0082:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
RSEG MOC_EH_UNI
ftbl_GB:
DEFB 'FTBL_GB.$$$'
DEFB 0
ftbl_B5:
DEFB 'FTBL_B5.$$$'
DEFB 0
ftbl_JP:
DEFB 'FTBL_JP.$$$'
DEFB 0
ftbl_KR:
DEFB 'FTBL_KR.$$$'
DEFB 0
ftbl_RS:
DEFB 'U1251.BIN'
DEFB 0
ftbl_BC:
DEFB 'U1250.BIN'
DEFB 0
ftbl_LA:
DEFB 'U1252.BIN'
DEFB 0
ftbl_XL:
DEFB 'U1255.BIN'
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -