⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e3.s

📁 e3 是一个全屏的用户友好的文本编辑器
💻 S
📖 第 1 页 / 共 5 页
字号:
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 + -