📄 e3.s
字号:
strb r12,[r4] add r4,r4,r7 subs r2,r2,#1 subne pc,pc,#28 @rep movsbSimpleRet: RETOvrRet: eors r0,r0,r0 A_DR r12,ch2linebeg str r0,[r12] b DownRetKeyDown: CALL CountColToLineBeginVisDownRet: CALL GoDown CALL LookLineDown b JmpSCKeyUp: CALL GoUp CALL CountColToLineBeginVis CALL LookLineUp b JmpSCKeyHalfPgUp: CALL CountColToLineBeginVis CALL LookHalfPgUp b SetColumnKeyHalfPgDn: CALL CountColToLineBeginVis CALL LookHalfPgDn b SetColumnKeyScrollUp: CALL CountColToLineBeginVis CALL LookScrUp b SetColumnKeyScrollDn: CALL CountColToLineBeginVis CALL LookScrDn b SetColumnKeyPgUp: CALL CountColToLineBeginVis CALL LookPageUpJmpSC: b SetColumnKeyPgDn: CALL CountColToLineBeginVis CALL LookPgDownSetColumn: A_DR r12,ch2linebeg ldr r2,[r12] eors r3,r3,r3 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12SCloop: mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 cmp r3,r2 bhs SCret ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 beq SCret ldr r11,= TABCHAR ldrB r10,[r4] cmp r10,r11 beq SCtab mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r3,r3,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b SCloopSCtab: CALL SpacesForTab mov r12,r0,lsr #8 and r12,r12,#0xFF mov r11,r3,lsl #24 mov r11,r11,lsr #24 adds r11,r11,r12 and r11,r11,#0xFF bic r3,r3,#0xFF orr r3,r3,r11 cmp r3,r2 bls SCloopSCret: RETVIsetMarker: cmp r4,r2 bhi Marker_above_cursor A_DR r12,blockende ldr r2,[r12] mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r2,r2,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 cmp r2,r6 blo Mbel mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r2,r2,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12Mbel: A_DR r12,EmaMark str r2,[r12]KeyHome: CALL CountToLineBegin subs r4,r4,r0 RETMarker_above_cursor: A_DR r12,EmaMark str r2,[r12] CALL KeyEnd mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 cmp r4,r6 blo Mret mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12Mret: RETKeyIns: A_DR r12,insstat ldrB r11,[r12] mvns r11,r11 strB r11,[r12] eors r0,r0,r0 CALL IsViMode bne KeyIns2 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 A_DR r12,VICmdMode ldrB r10,[r12] mov r11,r0 and r11,r11,#0xFF cmp r10,r11 bne KeyIns2 A_DR r12,insstat strB r0,[r12] CALL KeyVImode0KeyIns2: CALL IsEmMode bne KeyIns3 A_DR r12,showblock strB r0,[r12]KeyIns3: RETKeyVICmdJ: CALL KeyEnd b KeyDelKeyDell: CALL KeyLeft beq KeyDell2KeyDel: cmp r4,r6 bhs KeyIns3 eors r0,r0,r0 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12.ifdef W32LF .endif CALL IsViMode bne DeleteByte mov r5,r4 A_DR r12,VInolinebased mov r11,#0x1 strB r11,[r12] CALL KeyEmaAltW2 b DeleteByteKeyDell2: A_DR r11,sot cmp r4,r11 bls KeyIns3 mrs r8,CPSR and r8,r8,#0x20000000 A_DR r12,linenr mov r11,#0x1 ldr r10,[r12] subs r10,r10,r11 str r10,[r12] mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b KeyCtrlT1KeyEmaCtrlT: A_DR r11,sot cmp r4,r11 bls KeyRightEnd ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 bne KECT mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12KECT:.ifdef USE_UNDO .endif ldrB r12,[r4] bic r0,r0,#0xFF orr r0,r0,r12 mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldrB r12,[R9] mov r11,r0,lsl #24 mov r11,r11,lsr #24 strB r11,[R9] bic r0,r0,#0xFF orr r0,r0,r12 CALL KeyVICmdr2KeyRight: ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 bne KeyRNoMargin CALL CheckEof bhs KeyRightEnd CALL IsViMode beq KeyRightEnd CALL GoDownKeyRNoMargin: mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12KeyRightEnd: RETKeyCLeft3: A_DR r11,sot cmp r4,r11 bls KeyCLEnd mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12KeyCtrlQW: mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldr r11,= NEWLINE ldrB r10,[R9] cmp r10,r11 beq KeyCLeft3 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 mov r11,#0x2f ldrB r10,[r4] cmp r10,r11 bls KeyCtrlQW mov r9,r4 mov r10,#0x1 sub r9,r9,r10 mov r11,#0x2f ldrB r10,[R9] cmp r10,r11 bhi KeyCtrlQWKeyCLEnd: RETKeyCRight3: CALL CheckEof bhs KeyCREnd b KQZ1KeyCtrlQZ: mov r12,#0x2f bic r0,r0,#0xFF orr r0,r0,r12 ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 beq KeyCRight3KQZ1: mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 CALL IsEmMode beq ISEM2 ldrB r10,[r4] mov r11,r0 and r11,r11,#0xFF cmp r10,r11 bls KeyCtrlQZ mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldrB r10,[R9] mov r11,r0 and r11,r11,#0xFF cmp r10,r11 b ISEM22ISEM2: mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldrB r10,[R9] mov r11,r0 and r11,r11,#0xFF cmp r10,r11 bls KeyCtrlQZ ldrB r10,[r4] mov r11,r0 and r11,r11,#0xFF cmp r10,r11ISEM22: bhi KeyCtrlQZKeyCREnd: RETKeyVIcmde3: CALL CheckEof bhs KeyCREnd mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12KeyVIcmde: ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 beq KeyVIcmde3 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 mov r11,#0x2f ldrB r10,[r4] cmp r10,r11 bls KeyVIcmde mov r9,r4 mov r10,#0x1 add r9,r9,r10 mov r11,#0x2f ldrB r10,[R9] cmp r10,r11 bhi KeyVIcmde RETKeyEmaCtrlO: CALL Insert1Byte blo KeyRightEnd ldr r12,= NEWLINE bic r0,r0,#0xFF orr r0,r0,r12 strB r0,[r4] RETKeyCtrlQE: CALL LookPgBegin CALL KursorFirstLine b KCtKV1KeyCtrlQX: CALL LookPgEnd CALL KeyEnd CALL KursorLastLine b KCtKV1KeyCtrlQV: A_DR r12,bereitsges mov r11,#0x0 ldrB r10,[r12] cmp r10,r11 beq KeyCREnd A_DR r12,oldQFpos ldr r4,[r12]KCtKV1: b CQFNumKeyVIbsearch: mov r12,#0xff mov r8,#0xff add r12,r12,r8,lsl #8 mov r8,#0xff add r12,r12,r8,lsl #16 mov r8,#0xff add r12,r12,r8,lsl #24 stmfd r13!,{r12} b KVIfKeyVIfsearch: mov r12,#0x1 stmfd r13!,{r12}KVIf: A_DR r12,grossklein mov r11,#0xff strB r11,[r12] b KeyECtS1PicoCtrlTpico: A_DR r12,PicoSearch str r4,[r12]KeyEmaAltPer: mov r12,#0x1 stmfd r13!,{r12} ldmfd r13!,{r12} A_DR r11,vorwarts str r12,[r11] A_DR r12,grossklein mov r11,#0xdf strB r11,[r12]KeyCtrlQA: A_DR r12,bereitsges mov r11,#0x2 strB r11,[r12] CALL AskForReplace blo SimpleRet9CQACtrlL: stmfd r13!,{r4} CALL FindText bhs CQACL2 ldmfd r13!,{r4}SimpleRet9: RETCQACL2: A_DR r12,suchlaenge ldr r0,[r12] CALL DeleteByte A_DR r12,repllaenge ldr r0,[r12] CALL InsertByte A_DR r5,replacetext CALL MoveBlock b CQFFoundKeyPiCtrlJT: A_DR r12,bereitsges mov r11,#0x2 ldrB r10,[r12] cmp r10,r11 beq CQACtrlL RETKeyEmaCtrlR: mov r12,#0xff mov r8,#0xff add r12,r12,r8,lsl #8 mov r8,#0xff add r12,r12,r8,lsl #16 mov r8,#0xff add r12,r12,r8,lsl #24 stmfd r13!,{r12} b KECSKeyEmaCtrlS: mov r12,#0x1 stmfd r13!,{r12}KECS: A_DR r12,grossklein mov r11,#0xdf strB r11,[r12]KeyECtS1: ldmfd r13!,{r12} A_DR r11,vorwarts str r12,[r11] A_DR r12,EmaMark str r4,[r12] CALL ShowBl0KeyCtrlQF: CALL IsEmMode bne NO_EM04 A_DR r12,EmaCtrlS mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 beq KeyCtrlLNO_EM04: A_DR r12,suchtext ldr r12,[r12] stmfd r13!,{r12} A_DR r12,bereitsges mov r11,#0x1 strB r11,[r12] CALL AskForFind ldmfd r13!,{r1} mrs r12, CPSR stmfd r13!,{r7,r12} A_DR r12,mode mov r11,#0xc ldrB r10,[r12] tst r10,r11 beq NO_VIPI01 ldmfd r13!,{r7,r12} msr CPSR_f,r12 orrs r0,r0,r0 bne QFpico mov r12,r1 and r12,r12,#0xFF mov r11,r1,lsl #24 mov r11,r11,lsr #24 orrs r11,r11,r12 and r11,r11,#0xFF bic r1,r1,#0xFF orr r1,r1,r11 beq CtrlQFEnd A_DR r12,suchtext strB r1,[r12]QFpico: A_DR r12,PicoSearch str r4,[r12] b CQFCtrlLNO_VIPI01: ldmfd r13!,{r7,r12} msr CPSR_f,r12 blo CtrlQFEndCQFCtrlL: stmfd r13!,{r4} CALL FindText A_DR r12,EmaCtrlS mov r11,#0x1 strB r11,[r12] blo CtrlQFNotFoundCQFFound: A_DR r12,oldQFpos str r4,[r12] ldmfd r13!,{r5}CQFNum: b CheckENumCtrlQFNotFound: ldmfd r13!,{r4}CtrlQFEnd: RETKeyCtrlL: A_DR r12,bereitsges ldr r0,[r12] mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 beq CQFCtrlL A_DR r12,mode mov r11,#0x15 ldrB r10,[r12] tst r10,r11 beq SimpleRet4 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 beq CQACtrlLSimpleRet4: RETKeyVIcmd1: CALL ReadOneChar mov r12,#0x47 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq KeyCtrlQR RETViSpecial: cmp r2,#0 beq KeyCtrlQR b KCQIKeyNedCtrlA: A_DR r12,EmaMark str r6,[r12] CALL ShowBl1KeyCtrlQR: A_DR r4,sot b CQFNumKeyCtrlQP: A_DR r12,veryold ldr r2,[r12] cmp r2,r6 bhi SimpleRet4 mov r4,r2JmpCQFN3: b CQFNumKeyCtrlQB: mov r12,r4 mov r4,r0 mov r0,r12 A_DR r12,blockbegin ldr r4,[r12]CtrlQB2: orrs r4,r4,r4 bne CQFNum mov r12,r0 mov r0,r4 mov r4,r12 RETKeyCtrlQK: mov r12,r4 mov r4,r0 mov r0,r12 A_DR r12,blockende ldr r4,[r12] b CtrlQB2KeyCtrlQI: A_DR r5,asklineno CALL GetAsciiToInteger bls CtrlQFEndKCQI: A_DR r4,sot CALL LookPD2JmpCQFN: b JmpCQFN3KeyCtrlQDel: CALL KeyLeft CALL CountToLineBegin subs r4,r4,r0 b KCYKeyVICmdD: A_DR r12,VInolinebased mov r11,#0x1 strB r11,[r12]KeyCtrlQY: CALL CountToLineEnd.ifdef W32LF .endif CALL IsViMode bne CtrlTEnd1 CALL CtrlTEnd1 b KeyLeftKeyCmddw: CALL CountToWordBeginVIstyle b NO_EM05KeyCtrlY: CALL CountToLineBegin subs r4,r4,r0 CALL CountToLineEnd A_DR r12,mode ldr r11,= WS ldrB r10,[r12] cmp r10,r11 bne NO_WS01KCY: CALL DeleteByteCheckMarker b KeyCtrlT1NO_WS01: A_DR r12,mode mov r11,#0xc ldrB r10,[r12] tst r10,r11 beq KeyCtrlT mov r9,r4 add r9,r9,r0 mov r2,R9 cmp r2,r6 beq CtrlTEnd1 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b CtrlTEnd1KeyCtrlT: CALL CountToWordBegin CALL IsEmMode bne NO_EM05KeyEmaCtrlK: CALL CountToLineEndNO_EM05: ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 bne CtrlTEnd1KeyCtrlT1: eors r0,r0,r0 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r0,r0,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12.ifdef W32LF .endif CtrlTEnd1: CALL CheckEof beq SimpleRet3 A_DR r12,mode ldr r11,= WS ldrB r10,[r12] cmp r10,r11 beq DeleteByteCheckMarker mov r5,r4 CALL KeyEmaAltW2 b DelBjmpKeyEmaCtrlW: A_DR r12,showblock ldr r2,[r12] A_DR r12,mode ldr r11,= PI ldrB r10,[r12] cmp r10,r11 bne NOPI1KECW: cmp r2,#0 beq KeyCtrlY A_DR r12,EmaMark ldr r2,[r12] cmp r2,#0 beq KECW b NOPI2NOPI1: cmp r2,#0 beq SimpleRet3 A_DR r12,EmaMark ldr r2,[r12] cmp r2,#0 beq SimpleRet3NOPI2: CALL KeyEmaAltW A_DR r12,EmaKiSrc ldr r4,[r12] A_DR r12,EmaKiSize ldr r0,[r12]DelBjmp: b DeleteByteKeyCtrlKY: CALL CheckBlock blo SimpleRet3 A_DR r12,blockende ldr r0,[r12] mov r4,r5 subs r0,r0,r5 CALL DeleteByte mov r12,r2 mov r2,r0 mov r0,r12 CALL InitSV2JmpCQFN2: b JmpCQFNKeyCtrlKH: A_DR r12,showblock mov r11,#0x1 ldrB r10,[r12] eors r10,r10,r11 strB r10,[r12]SimpleRet3: RETKeyCtrlKK: A_DR r12,blockende str r4,[r12] b ShowBl1KeyCtrlKC: CALL CopyBlock blo SimpleRet2CtrlKC2: A_DR r12,blockbegin str r4,[r12] adds r0,r0,r4 b InitSV3KeyCtrlXX: A_DR r12,EmaMark ldr r2,[r12] cmp r2,#0 beq SimpleRet3 CALL KeyEmaMark mov r4,r2 CALL KeyEmaCtrlLKeyCXX: b JmpCQFN2KeyCtrlKV: CALL CopyBlock blo SimpleRet2 stmfd r13!,{r4} A_DR r12,blockbegin ldr r10,[r12] cmp r4,r10 mrs r12, CPSR stmfd r13!,{r7,r12} A_DR r12,blockbegin ldr r4,[r12] CALL DeleteByte rsbs r0,r0,#0 ldmfd r13!,{r7,r12} msr CPSR_f,r12 ldmfd r13!,{r4} blo CtrlKC2 A_DR r12,blockende str r4,[r12] subs r4,r4,r0KeyCtrlKB: A_DR r12,blockbegin str r4,[r12]ShowBl1: A_DR r12,showblock mov r11,#0x1 strB r11,[r12]SimpleRet2: RETShowBl0: A_DR r12,showblock mov r11,#0x0 strB r11,[r12] RETKeyVICmdm: CALL ReadOneChar mov r12,#0x61 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne SimpleRet2 stmfd r13!,{r4} CALL KeyHome A_DR r12,blockbegin str r4,[r12] ldmfd r13!,{r4} RETKeyVICmdJmpM: CALL ReadOneChar mov r12,#0x61 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne SimpleRet2 A_DR r12,blockbegin ldr r2,[r12] cmp r2,#0 beq SimpleRet2 mov r4,r2 b KeyCXX
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -