📄 e3.s
字号:
KeyEmaMark: A_DR r12,EmaMark str r4,[r12] b ShowBl1KeyCtrlKR: CALL ReadBlock blo CtrlKREnd CALL KeyCtrlKB adds r2,r2,r4 A_DR r12,blockende str r2,[r12] A_DR r12,mode mov r11,#0x12 ldrB r10,[r12] tst r10,r11 beq NO_EM03 A_DR r12,EmaMark str r2,[r12] CALL ShowBl0NO_EM03: A_DR r12,mode ldr r11,= PI ldrB r10,[r12] cmp r10,r11 bne CtrlKREnd mov r4,r2CtrlKREnd: b RestKursPosKeyCtrlKW: CALL CheckBlock blo CtrlKSEnd CALL SaveBlock b CtrlKREndKeyEmaCtrlXF: A_DR r12,changed ldr r11,= UNCHANGED ldrB r10,[r12] cmp r10,r11 beq KECF A_DR r5,asksave2 CALL DE1 CALL RestKursPos CALL CheckUserAbort beq CtrlKSEnd mov r12,#0xdf mov r11,r0,lsl #24 mov r11,r11,lsr #24 ands r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11 mov r12,#0x4e mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12KECF: beq KCKD2 b KeyCtrlKDKeyEmaCtrlXW: CALL GetBlockName blo CtrlKSEnd A_DR r5,blockpathXW1: mov r7,#+1 stmfd r13!,{r0-r6} A_DR r4,filepathXW0: ldrb r12,[r5] add r5,r5,r7 and r12,r12,#0xFF bic r0,r0,#0xFF orr r0,r0,r12 strb r0,[r4] add r4,r4,r7 mov r12,r0 and r12,r12,#0xFF mov r11,r0,lsl #24 mov r11,r11,lsr #24 orrs r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11 bne XW0 strb r0,[r4] add r4,r4,r7 ldmfd r13!,{r0-r6}KeyCtrlKS0: CALL SetChgKeyCtrlKS: CALL SaveFile mrs r12, CPSR stmfd r13!,{r7,r12} CALL RestKursPos ldmfd r13!,{r7,r12} msr CPSR_f,r12 blo CtrlKSEndUnchg: A_DR r12,changed ldr r11,= UNCHANGED strB r11,[r12]CtrlKSEnd: RETKeyCtrlKD: CALL KeyCtrlKS blo KeyKXendKCKD2: A_DR r12,endeedit mov r11,#0x2 strB r11,[r12] RETKeyCtrlKQ: A_DR r12,changed ldr r11,= UNCHANGED ldrB r10,[r12] cmp r10,r11 beq KCKXend A_DR r5,asksave CALL DE1 CALL RestKursPos CALL CheckUserAbort beq CtrlKSEnd mov r12,#0xdf mov r11,r0,lsl #24 mov r11,r11,lsr #24 ands r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11 mov r12,#0x4e mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq KCKXend mov r12,#0x4c mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne KeyCtrlKX CALL KCKXendKeyCtrlKX: CALL KeyCtrlKS blo CtrlKSEndKCKXend: mrs r8,CPSR and r8,r8,#0x20000000 A_DR r12,endeedit mov r11,#0x1 ldrB r10,[r12] adds r10,r10,r11 strB r10,[r12] mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12KeyKXend: RETKeyVICmdW: mov r9,r2 mov r10,#0x2 add r9,r9,r10 mov r5,R9 ldr r11,= SPACECHAR ldrB r10,[r5] cmp r10,r11 bhi XW1 RETVINoLineCmd: ldr r0,[r2] mov r12,#0x77 mov r8,#0x21 add r12,r12,r8,lsl #8 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyCtrlKS0 mov r12,#0x77 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyCtrlKS mov r12,#0x78 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyCtrlKX mov r12,#0x24 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 bne KVI_KX0KeyCtrlQC: mov r4,r6 b CQFNumKVI_KX0: mov r12,#0x77 mov r8,#0x71 add r12,r12,r8,lsl #8 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12KVI_KX: beq KeyCtrlKX mov r12,#0x77 mov r8,#0x20 add r12,r12,r8,lsl #8 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyVICmdW mov r12,#0x71 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyCtrlKQ mov r12,#0x71 mov r8,#0x21 add r12,r12,r8,lsl #8 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KCKXend mov r12,#0x65 mov r8,#0x20 add r12,r12,r8,lsl #8 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyVICmdE mov r12,#0x68 mov r11,r0,lsl #16 mov r11,r11,lsr #16 cmp r11,r12 beq KeyHelp.ifndef USE_PIPE RET.else .endif KeyVICmdZ: CALL ReadOneChar mov r12,#0x5a mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq KVI_KX RETKeyVI1Char: CALL KeyHome ldr r11,= SPACECHAR ldrB r10,[r4] cmp r10,r11 bhi KFC2KFC1: ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 beq KFC2 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 ldr r11,= SPACECHAR ldrB r10,[r4] cmp r10,r11 bls KFC1 mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldr r11,= SPACECHAR ldrB r10,[R9] cmp r10,r11 bhi KFC1KFC2: RETKeyVICmdS: CALL KeyHome CALL KeyEmaCtrlK A_DR r12,VInolinebased mov r11,#0x1 strB r11,[r12] b KeyVICmdIKeyVICmdd: CALL ReadOneChar mov r12,#0x77 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 A_DR r12,VInolinebased mov r11,#0x1 strB r11,[r12] beq KeyCmddw mov r12,#0x64 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 A_DR r12,VInolinebased mov r11,#0x0 strB r11,[r12] beq KeyCtrlY mov r12,#0x27 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne KFC2 CALL ReadOneChar mov r12,#0x61 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne KFC2 A_DR r12,blockbegin ldr r2,[r12] cmp r2,#0 beq KFC2 CALL VIsetMarkercallKECW: CALL KeyEmaCtrlW eors r0,r0,r0 A_DR r12,blockbegin str r0,[r12] b JmpCQFnKeyVICmdI: CALL KeyVI1Char b KeyVImode0KeyVICmdp: A_DR r12,EmaKiSize ldr r2,[r12]jmpKFC2: cmp r2,#0 beq KFC2 A_DR r12,VInolinebased mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 beq KeyVICmdpnLB CALL OvrRetKeyVICmdP: A_DR r12,EmaKiSize ldr r2,[r12] cmp r2,#0 beq jmpKFC2 A_DR r12,VInolinebased mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 beq KeyVICmdPnLB CALL KeyHomeKeyVICP2: stmfd r13!,{r4} CALL KeyEmaCtrlY ldmfd r13!,{r4}JmpCQFn: b CQFNumKeyVICmdR: A_DR r12,insstat mov r11,#0xfe strB r11,[r12] b KeyVImode0KeyVICmdO: CALL KeyHome CALL KeyRet CALL KeyUp b KeyVImode0KeyVICmdo: CALL KeyEnd CALL KeyRet b KeyVImode0KeyVICmdA: CALL KeyEnd b KeyVImode0KeyVIcmda: CALL KeyRightKeyVIcmdi: A_DR r12,insstat mov r11,#0x1 strB r11,[r12]KeyVImode0: mov r12,#0x0 stmfd r13!,{r12} b KVim1KeyVICmdC: CALL KeyEmaCtrlK A_DR r12,VInolinebased mov r11,#0x1 strB r11,[r12] b KeyVImode0KeyVICmdpnLB: CALL KeyRightKeyVICmdPnLB: CALL KeyVICP2 A_DR r12,EmaKiSize ldr r10,[r12] adds r4,r4,r10KeyLeft: mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldr r11,= NEWLINE ldrB r10,[R9] cmp r10,r11 bne KeyLNoMargin A_DR r11,sot cmp r4,r11 beq KeyLeftEnd CALL IsViMode beq KeyLeftEnd CALL GoUpKeyLNoMargin: 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.ifdef W32LF .endif KeyLeftEnd: RETKeyEnd: CALL CountToLineEnd adds r4,r4,r0 RETKeyVImode1: mov r12,#0x1 stmfd r13!,{r12}KVim1: ldmfd r13!,{r0} A_DR r12,VICmdMode strB r0,[r12] RETKeyVIex: CALL InputStringWithMessage0 mrs r12, CPSR stmfd r13!,{r7,r12} CALL RestKursPos ldmfd r13!,{r7,r12} msr CPSR_f,r12 blo Kviex A_DR r5,optbuffer eors r3,r3,r3 mov r2,r0 cmp r2,#0 beq Kviex stmfd r13!,{r5} mov r7,#+1CheckDig: ldrb r12,[r5] add r5,r5,r7 and r12,r12,#0xFF bic r0,r0,#0xFF orr r0,r0,r12 mov r12,#0x30 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhs CD1 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r3,r3,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12CD1: mov r12,#0x3a mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 blo CD2 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r3,r3,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12CD2: subs r2,r2,#1 bne CheckDig ldmfd r13!,{r2} orrs r3,r3,r3 bne VINoLineCmd CALL GetAsciiToInteger b ViSpecialIsViMode: A_DR r12,mode ldr r11,= VI ldrB r10,[r12] cmp r10,r11 RETIsEmMode: A_DR r12,mode ldr r11,= EM ldrB r10,[r12] cmp r10,r11Kviex: RETDispNewScreen: A_DR r12,mode mov r11,#0x16 ldrB r10,[r12] tst r10,r11 beq NoEmBlock A_DR r12,showblock ldr r2,[r12] cmp r2,#0 beq NoEmBlock A_DR r12,EmaMark ldr r2,[r12] cmp r2,#0 beq NoEmBlock mov r0,r4 cmp r2,r0 blo EmBlock mov r12,r2 mov r2,r0 mov r0,r12EmBlock: A_DR r12,blockbegin str r2,[r12] A_DR r12,blockende str r0,[r12]NoEmBlock: CALL GetEditScreenSize eors r0,r0,r0 A_DR r12,isbold strB r0,[r12] A_DR r12,inverse strB r0,[r12] A_DR r12,zloffst str r0,[r12] A_DR r12,columne str r0,[r12] A_DR r12,fileptr str r4,[r12] stmfd r13!,{r4} CALL CountColToLineBeginVis A_DR r12,columns ldr r1,[r12] mov r9,r1 mov r10,#0x4 sub r9,r9,r10 mov r1,R9 cmp r0,r1 blo DispShortLine subs r0,r0,r1 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,zloffst str r0,[r12]DispShortLine: CALL LookPgBegin mov r5,r4 A_DR r12,lines ldr r2,[r12] cmp r2,#0 beq Kviex mov r7,#+1 mov r12,#0xff bic r1,r1,#0xFF00 orr r1,r1,r12,lsl #8DispNewLine: mrs r8,CPSR and r8,r8,#0x20000000 mov r12,#0x1 mov r11,r1,lsl #16 mov r11,r11,lsr #24 adds r11,r11,r12 and r11,r11,#0xFF bic r1,r1,#0xFF00 orr r1,r1,r11,lsl #8 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 A_DR r4,screenline eors r3,r3,r3 mov r12,#0x0 bic r1,r1,#0xFF orr r1,r1,r12.ifdef LESSWRITEOPS CALL SetColor2.endif DispCharLoop: A_DR r12,fileptr ldr r10,[r12] cmp r5,r10 bne DispCharL1 A_DR r12,tabcnt mov r11,#0x0 ldrB r10,[r12] cmp r10,r11 bne DispCharL1 A_DR r12,kurspos str r1,[r12] A_DR r12,columne strB r1,[r12] A_DR r12,zloffst ldr r0,[r12] A_DR r12,columne ldr r10,[r12] adds r10,r10,r0 str r10,[r12].ifdef CURSORMGNT mrs r12, CPSR and r12,r12,#0xDFFFFFFF msr CPSR_f,r12 CALL SetInverseStatus bhs DispEndLine.endif DispCharL1: CALL SetColorDispEndLine: cmp r5,r6 bhi FillLine A_DR r12,tabcnt mov r11,#0x0 ldrB r10,[r12] cmp r10,r11 beq ELZ mrs r8,CPSR and r8,r8,#0x20000000 A_DR r12,tabcnt mov r11,#0x1 ldrB r10,[r12] subs r10,r10,r11 strB r10,[r12] mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b ELZ2ELZ: cmp r5,r6 bne ELZ6 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r5,r5,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b ELZ2ELZ6: ldrb r12,[r5] add r5,r5,r7 and r12,r12,#0xFF bic r0,r0,#0xFF orr r0,r0,r12 ldr r12,= TABCHAR mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne ELZ3 CALL SpacesForTab mrs r8,CPSR and r8,r8,#0x20000000 mov r12,#0x1 mov r11,r0,lsl #16 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF00 orr r0,r0,r11,lsl #8 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 A_DR r12,tabcnt mov r11,r0,lsr #8 strB r11,[r12]ELZ2: ldr r12,= SPACECHAR bic r0,r0,#0xFF orr r0,r0,r12ELZ3: ldr r12,= NEWLINE mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq FillLine.ifdef W32LF .endif ldr r12,= SPACECHAR mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhs ELZ9 mov r12,#0x2e bic r0,r0,#0xFF orr r0,r0,r12ELZ9:.ifndef W32 mov r12,#0x7f mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 blo ELZ7 mov r12,#0x9f mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhi ELZ7 mov r12,#0x2e bic r0,r0,#0xFF orr r0,r0,r12ELZ7:.endif A_DR r10,columns ldrB r12,[r10] mov r11,r1,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhs DispEndLine 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 A_DR r12,zloffst ldr r10,[r12] cmp r3,r10 bls ELZ5 strb r0,[r4] add r4,r4,r7.ifdef CURSORMGNT mrs r12, CPSR orr r12,r12,#0x20000000 msr CPSR_f,r12 CALL SetInverseStatus.endif mrs r8,CPSR and r8,r8,#0x20000000 mov r12,#0x1 mov r11,r1,lsl #24 mov r11,r11,lsr #24 adds r11,r11,r12 and r11,r11,#0xFF bic r1,r1,#0xFF orr r1,r1,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12ELZ5: b DispCharLoopFillLine: stmfd r13!,{r2} A_DR r12,columns ldr r2,[r12] mov r12,r1 and r12,r12,#0xFF mov r11,r2,lsl #24 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r2,r2,#0xFF orr r2,r2,r11 ldr r12,= SPACECHAR bic r0,r0,#0xFF orr r0,r0,r12 cmp r2,#0 beq FillLine2 A_DR r12,inverse mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 bne FillLine1 strb r0,[r4] add r4,r4,r7.ifdef CURSORMGNT mrs r12, CPSR orr r12,r12,#0x20000000 msr CPSR_f,r12 CALL SetInverseStatus.endif mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r2,r2,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 beq FillLine2FillLine1:@reploop: strb r0,[r4] add r4,r4,r7 subs r2,r2,#1 subne pc,pc,#20 @rep stosbFillLine2: ldmfd r13!,{r2} mov r11,#0x0 strB r11,[r4] CALL ScreenLineShow mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r2,r2,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 bne DispNewLine ldmfd r13!,{r4} b RestKursPos.ifdef CURSORMGNT SetInverseStatus: stmfd r13!,{r2} stmfd r13!,{r5} bhs SIS1 A_DR r12,insstat mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 mrs r12, CPSR and r12,r12,#0xDFFFFFFF msr CPSR_f,r12 bne SIS4 A_DR r12,inverse mov r11,#0x1 strB r11,[r12] A_DR r5,reversevideoX A_DR r12,revvoff ldr r10,[r12] adds r5,r5,r10 b SIS2SIS1: A_DR r12,inverse mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 bne SIS3 A_DR r12,inverse mov r11,#0x0 strB r11,[r12].endif .ifdef W32 .else SIS6: A_DR r12,isbold mov r11,#0x0 strB r11,[r12]SIS5: A_DR r5,bold0SIS2: ldr r12,= boldlen stmfd r13!,{r12} ldmfd r13!,{r2} cmps r2,#0 addeq pc,pc,#16@reploop: ldrb r12,[r5] add r5,r5,r7 strb r12,[r4] add r4,r4,r7 subs r2,r2,#1 subne pc,pc,#28 @rep movsbSIS3: mrs r12, CPSR orr r12,r12,#0x20000000 msr CPSR_f,r12SIS4: ldmfd r13!,{r5} ldmfd r13!,{r2} RETSetColor: stmfd r13!,{r2} stmfd r13!,{r5} CALL IsShowBlock bhs SCEsc1 A_DR r12,isbold
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -