📄 e3.s
字号:
mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 beq SIS4 A_DR r12,isbold mov r11,#0x1 strB r11,[r12]SCEsc2: A_DR r5,bold1 b SIS2SCEsc1: A_DR r12,isbold mov r11,#0x0 ldrB r10,[r12] cmp r10,r11 beq SIS4 b SIS6.ifdef LESSWRITEOPS SetColor2: stmfd r13!,{r2} stmfd r13!,{r5} CALL IsShowBlock bhs SIS5 b SCEsc2.endif .endif IsShowBlock: A_DR r12,showblock mov r11,#0x0 ldrB r10,[r12] cmp r10,r11 beq SBlock A_DR r12,blockbegin mov r11,#0x0 ldr r10,[r12] cmp r10,r11 beq SBlock A_DR r12,blockbegin ldr r10,[r12] cmp r10,r5 bhi SBlock A_DR r12,blockende ldr r10,[r12] cmp r5,r10 blo SB_retSBlock: mrs r12, CPSR orr r12,r12,#0x20000000 msr CPSR_f,r12SB_ret: RETGetEditScreenSize:.ifdef W32 .else ldr r2,= TERMIOS_WSIZE A_DR r3,winsize CALL IOctlTerminal ldr r0,[r3] mov r11,#0xff mov r8,#0xff add r11,r11,r8,lsl #8 cmp r0,r11 blo iserr orrs r0,r0,r0 bne noerriserr: mov r0,#0x18 mov r8,#0x0 add r0,r0,r8,lsl #8 mov r8,#0x50 add r0,r0,r8,lsl #16noerr: 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 A_DR r12,lines strB r0,[r12] mov r0,r0,lsr #16 A_DR r12,columns strB r0,[r12] RET.endif WriteTwo: A_DR r12,screenline str r2,[r12]StatusLineShow:.ifdef W32 .endif eors r2,r2,r2ScreenLineShow: stmfd r13!,{r0-r6}.ifdef LESSWRITEOPS .ifdef W32 .else eors r1,r1,r1.endif A_DR r12,columns ldr r0,[r12] mov r9,r0 mov r10,#0x20 add r9,r9,r10 mov r0,R9 mul r12,r0,r2 mov r0,r12 mov r3,#0 mov r9,r0 A_DR r10,screenbuffer add r9,r9,r10 mov r4,R9.else .endif mov r7,#+1 A_DR r5,screenlinesl3: ldrb r12,[r5] add r5,r5,r7 and r12,r12,#0xFF bic r0,r0,#0xFF orr r0,r0,r12 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.ifdef LESSWRITEOPS A_DR r11,screenbuffer_end cmp r4,r11 bhs sl5 ldrB r12,[r4] mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq sl4 strB r0,[r4]sl5: mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r1,r1,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12sl4: 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.endif 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 sl3 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r3,r3,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12.ifdef LESSWRITEOPS orrs r1,r1,r1 beq NoWrite.endif stmfd r13!,{r3} eors r3,r3,r3 A_DR r10,lines ldrB r12,[r10] bic r3,r3,#0xFF00 orr r3,r3,r12,lsl #8 mov r12,r2 and r12,r12,#0xFF mov r11,r3,lsl #16 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r3,r3,#0xFF00 orr r3,r3,r11,lsl #8.ifdef W32_EXTENDED_IO .else CALL sys_writeKP ldmfd r13!,{r3} stmfd r13!,{r2} A_DR r0,screencolors1 CALL sys_writeSLColors A_DR r2,screenline CALL WriteFile0 ldmfd r13!,{r2} A_DR r0,screencolors0 CALL sys_writeSLColors A_DR r12,kurspos2 ldr r3,[r12] CALL sys_writeKP.endif NoWrite: ldmfd r13!,{r0-r6} RETsys_writeSLColors:.ifndef W32 cmp r2,#0 beq syswSL RETsyswSL: stmfd r13!,{r0-r6} mov r12,r2 mov r2,r0 mov r0,r12 ldr r12,= scolorslen stmfd r13!,{r12} ldmfd r13!,{r3} CALL WriteFile0 ldmfd r13!,{r0-r6}.endif RETInputStringWithMessage0: A_DR r5,extextInputStringWithMessage: CALL WriteMess9MakeLine A_DR r2,optbuffer ldr r12,= optslen stmfd r13!,{r12} ldmfd r13!,{r3} b InputStringInputString00: A_DR r2,suchtextInputString0: CALL WriteMess9MakeLine ldr r3,= maxfilenamelenInputString: stmfd r13!,{r2} stmfd r13!,{r4} mov r12,#0x2 stmfd r13!,{r12} ldmfd r13!,{r0} A_DR r12,VICmdMode ldr r10,[r12] str r0,[r12] mov r0,r10 stmfd r13!,{r0} A_DR r12,kurspos2 ldr r12,[r12] stmfd r13!,{r12} A_DR r12,columns ldr r1,[r12] mov r9,r1 ldr r10,= stdtxtlen sub r9,r9,r10 mov r1,R9 cmp r3,r1 blo IS8 mov r3,r1IS8: eors r1,r1,r1 mov r4,r2IS0: stmfd r13!,{r1} stmfd r13!,{r3} ldr r12,= stdtxtlen 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 A_DR r10,lines ldrB r12,[r10] bic r1,r1,#0xFF00 orr r1,r1,r12,lsl #8 A_DR r12,kurspos2 str r1,[r12].ifdef LESSWRITEOPS A_DR r12,screenbuffer mov r11,#0x0 strB r11,[r12].endif CALL StatusLineShow CALL GetChar ldmfd r13!,{r3} ldmfd r13!,{r1} mov r7,#+1 CALL IsViMode bne NO_VI01 mov r12,#0x0 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq ISANO_VI01: CALL CheckUserAbort bne IS9ISA: eors r1,r1,r1 b IS1IS9: ldr r12,= RETURN mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq IS1 mov r12,#0x8 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne IS2 orrs r1,r1,r1 beq IS0 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r1,r1,r11 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 ldr r12,= SPACECHAR bic r0,r0,#0xFF orr r0,r0,r12 mov r9,r1 A_DR r10,screenline add r9,r9,r10 ldr r10,= stdtxtlen add r9,r9,r10 strB r0,[R9] b IS0IS2: ldr r12,= SPACECHAR mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 blo IS0 strb r0,[r4] add r4,r4,r7 mov r9,r1 A_DR r10,screenline add r9,r9,r10 ldr r10,= stdtxtlen add r9,r9,r10 strB r0,[R9] mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r1,r1,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 cmp r1,r3 blo IS0IS1: eors r0,r0,r0 strb r0,[r4] add r4,r4,r7 ldmfd r13!,{r12} A_DR r11,kurspos2 str r12,[r11] ldmfd r13!,{r12} A_DR r11,VICmdMode str r12,[r11] ldmfd r13!,{r4} ldmfd r13!,{r2} mov r12,r1 mov r1,r0 mov r0,r12 mov r12,#0x1 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12ISready: RETReadChar: mov r0,r4 A_DR r12,old ldr r10,[r12] str r0,[r12] mov r0,r10 A_DR r12,veryold str r0,[r12]GetChar: CALL ReadOneChar.ifdef W32 .endif mov r12,#0x7f mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne RC_No7F.ifndef FREEBSD mov r12,#0x8 bic r0,r0,#0xFF orr r0,r0,r12.else .endif RC_No7F:.equ DoNo,10 CALL IsViMode beq ISVI7 mov r12,#0x1b mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne ISready CALL ReadOneChar b NOVI7ISVI7: A_DR r12,VICmdMode mov r11,#0x1 ldrB r10,[r12] cmp r10,r11 bne NoCMDmode mov r12,#0x1b mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq ESCpressed ldr r12,= VIsize mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhi Other A_DR r1,VIcmdTable b RCready_0ESCpressed: CALL ReadOneChar mov r12,#0x5b mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq Other b NoCursorKeyNoCMDmode: mov r12,#0x1b mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne ISready CALL KeyVImode1.ifdef BEOS .else .ifdef SYS_select stmfd r13!,{r0-r6} CALL Select ldmfd r13!,{r0-r6} beq isSingleEscape.endif .endif CALL ReadOneChar mov r12,#0x5b mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 beq IsCursorKeyNoCursorKey: A_DR r12,VIbufch strB r0,[r12] ldr r12,= DoNo bic r0,r0,#0xFF orr r0,r0,r12 b JmpRCreadyisSingleEscape: mov r12,#0x3 bic r0,r0,#0xFF orr r0,r0,r12 b JmpRCreadyIsCursorKey: CALL KeyVImode0NOVI7: A_DR r12,mode ldr r11,= NE ldrB r10,[r12] cmp r10,r11 bne NONE7 mov r12,#0x69 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne NOi mov r12,#0x10 bic r0,r0,#0xFF orr r0,r0,r12 b JmpRCreadyNOi: mov r12,#0x49 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne NONE7 mov r12,#0x10 bic r0,r0,#0xFF orr r0,r0,r12 b JmpRCreadyNONE7: CALL IsEmMode bne NOEM7 mov r12,#0x25 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne NoAltPer mov r12,#0x28 bic r0,r0,#0xFF orr r0,r0,r12JmpRCready: b RCready_1NoAltPer: mov r12,#0x3c mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne NoAltLt mov r12,#0xe bic r0,r0,#0xFF orr r0,r0,r12 b RCready_1NoAltLt: mov r12,#0x3e mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne NoAltGt mov r12,#0xf bic r0,r0,#0xFF orr r0,r0,r12 b RCready_1NoAltGt: mov r12,#0x5f 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,#0x42 mov r11,r0,lsl #24 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11 bmi Other ldr r12,= ATsize mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhi Other A_DR r1,EmaAltTable b RCready_0NOEM7: mov r12,#0x5f 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,#0x48 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne Other mov r12,#0x3d bic r0,r0,#0xFF orr r0,r0,r12 b RCready_1Other:.ifdef W32 .else CALL ReadOneChar mov r12,#0x38 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhi NoNumber stmfd r13!,{r0} CALL ReadOneChar mov r12,r1 mov r1,r0 mov r0,r12 ldmfd r13!,{r0} mov r12,#0x7e mov r11,r1,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bne GetCharJmpNoNumber: mov r12,#0x30 mov r11,r0,lsl #24 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11 mov r12,#0x9 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 blo IsNumber.ifdef QNX .else mov r12,#0x8 mov r11,r0,lsl #24 mov r11,r11,lsr #24 subs r11,r11,r12 and r11,r11,#0xFF bic r0,r0,#0xFF orr r0,r0,r11.endif mov r12,#0x9 mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 blo GetCharJmp ldr r12,= STsize mov r11,r0,lsl #24 mov r11,r11,lsr #24 cmp r11,r12 bhi GetCharJmpIsNumber: A_DR r1,ScanTable.endif RCready_0: and r12,r0,#0xFF ldrB r12,[r1,r12] bic r0,r0,#0xFF orr r0,r0,r12RCready_1: mov r0,r0,lsl #8 RETGetCharJmp: b GetCharReadOneChar: CALL IsViMode bne NOVI4 eors r0,r0,r0 A_DR r12,VIbufch ldr r10,[r12] str r0,[r12] mov r0,r10 orrs r0,r0,r0 bne RoneCNOVI4: A_DR r2,read_b eors r3,r3,r3 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 CALL ReadFile0.ifdef SELFTEST .endif ldr r0,[r2].ifdef W32_EXTENDED_IO .endif RoneC: mov r12,#0xff bic r0,r0,#0xFF00 orr r0,r0,r12,lsl #8 RETLookBackward: stmfd r13!,{r2} stmfd r13!,{r1} eors r1,r1,r1 mov r9,r4 mov r10,#0x1 sub r9,r9,r10 ldr r11,= NEWLINE ldrB r10,[R9] cmp r10,r11 beq LBa3 ldr r11,= NEWLINE ldrB r10,[r4] cmp r10,r11 bne LBa1 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 mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 adds r1,r1,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12LBa1: mov r2,#0x9f mov r8,#0x86 add r2,r2,r8,lsl #8 mov r8,#0x1 add r2,r2,r8,lsl #16 ldr r12,= NEWLINE bic r0,r0,#0xFF orr r0,r0,r12 mov r7,#-1 and r11,r0,#0xFF@reploop: ldrb r12,[r4] add r4,r4,r7 subs r2,r2,#1 cmpne r12,r11 subne pc,pc,#24 @rep scasb mov r9,r1 mov r10,#0x9d mov r8,#0x86 add r10,r10,r8,lsl #8 mov r8,#0x1 add r10,r10,r8,lsl #16 add r9,r9,r10 mov r0,R9 subs r0,r0,r2LBa5: ldmfd r13!,{r1} ldmfd r13!,{r2} b CheckBofLBa3: eors r0,r0,r0 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 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 LBa5LookForward: stmfd r13!,{r2} mov r2,#0x9f mov r8,#0x86 add r2,r2,r8,lsl #8 mov r8,#0x1 add r2,r2,r8,lsl #16 ldr r12,= NEWLINE bic r0,r0,#0xFF orr r0,r0,r12 mov r7,#+1 and r11,r0,#0xFF@reploop: ldrb r12,[r4] add r4,r4,r7 subs r2,r2,#1 cmpne r12,r11 subne pc,pc,#24 @rep scasb mov r0,#0x9e mov r8,#0x86 add r0,r0,r8,lsl #8 mov r8,#0x1 add r0,r0,r8,lsl #16 subs r0,r0,r2 ldmfd r13!,{r2} mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r4,r4,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12CheckEof: cmp r4,r6 bne CheckEnd b CheckENumCheckBof: A_DR r11,sot-1 cmp r4,r11 bhi CheckEndCheckENum: A_DR r12,numeriere mov r11,#0x1 strB r11,[r12]CheckEnd: RETLookPgBegin: A_DR r12,kurspos2 ldr r3,[r12] mov r2,r3,lsl #16 mov r2,r2,lsr #24 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 b LookPU2LookPgEnd: A_DR r12,kurspos2 ldr r3,[r12] A_DR r12,lines ldr r2,[r12] mov r12,r3,lsr #8 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 b LookPD2LookLineUp: mov r12,#0x2 stmfd r13!,{r12} ldmfd r13!,{r2} 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 b LookPU2LookLineDown: mov r12,#0x2 stmfd r13!,{r12} ldmfd r13!,{r2} mrs r8,CPSR and r8,r8,#0x20000000 A_DR r12,linenr mov r11,#0x1 ldr r10,[r12] adds r10,r10,r11 str r10,[r12] mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12 b LookPD2LookPageUp: A_DR r12,lines ldr r2,[r12] mrs r8,CPSR and r8,r8,#0x20000000 mov r11,#0x1 subs r2,r2,r11 mrs r12,CPSR orrcc r12,r12,r8 msr CPSR_f,r12LookPU1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -