Fix the same speed issues as in the last commit with deleting lines
This commit is contained in:
parent
8da8d780f5
commit
f644d3d1bc
50
gidubba.asm
50
gidubba.asm
|
@ -616,7 +616,7 @@ cpend: breq r0, r0, copy
|
||||||
|
|
||||||
;Delete a line
|
;Delete a line
|
||||||
|
|
||||||
;Check the counter
|
;Check for an empty counter
|
||||||
delete: xor r0, r0
|
delete: xor r0, r0
|
||||||
load r1, count
|
load r1, count
|
||||||
breq r0, r1, cmdp
|
breq r0, r1, cmdp
|
||||||
|
@ -652,28 +652,18 @@ dchend: load r0, 0
|
||||||
load r1, #1a
|
load r1, #1a
|
||||||
breq r0, r1, cmdp
|
breq r0, r1, cmdp
|
||||||
|
|
||||||
;Increment the line number
|
;Increment the buffer address
|
||||||
;Load the number
|
|
||||||
load r0, target
|
|
||||||
load r1, target + 1
|
|
||||||
;Increment
|
|
||||||
cleq r0, r0, incdw
|
|
||||||
;Store the number
|
|
||||||
store target, r0
|
|
||||||
store target + 1, r1
|
|
||||||
|
|
||||||
;Reset the line number
|
|
||||||
xor r0, r0
|
|
||||||
store lnnum, r0
|
|
||||||
store lnnum + 1, r0
|
|
||||||
|
|
||||||
;Get the save start address
|
|
||||||
;High byte
|
|
||||||
load r0, svstrt
|
|
||||||
store eoflod + 1, r0
|
|
||||||
;Low byte
|
;Low byte
|
||||||
load r0, svstrt + 1
|
load r0, target + 1
|
||||||
store eoflod + 2, r0
|
load r2, count
|
||||||
|
cleq r0, r0, sum
|
||||||
|
store target + 1, r0
|
||||||
|
;Add the overflow to the high byte
|
||||||
|
load r0, target
|
||||||
|
xor r2, r2
|
||||||
|
xor r2, r1
|
||||||
|
cleq r0, r0, sum
|
||||||
|
store target, r0
|
||||||
|
|
||||||
;Find the next line in the save and store its number
|
;Find the next line in the save and store its number
|
||||||
cleq r0, r0, fend
|
cleq r0, r0, fend
|
||||||
|
@ -717,20 +707,8 @@ stomov: store 0, r0
|
||||||
;Move the next character
|
;Move the next character
|
||||||
breq r0, r0, lodmov
|
breq r0, r0, lodmov
|
||||||
|
|
||||||
;Loop
|
;Return to the command prompt
|
||||||
;Decrement the counter
|
delend: breq r0, r0, cmdp
|
||||||
delend: load r0, count
|
|
||||||
load r2, #ff
|
|
||||||
cleq r0, r0, sum
|
|
||||||
store count, r0
|
|
||||||
;Decrement the line number
|
|
||||||
load r0, target
|
|
||||||
load r1, target + 1
|
|
||||||
cleq r0, r0, decdw
|
|
||||||
store target, r0
|
|
||||||
store target + 1, r1
|
|
||||||
;Loop
|
|
||||||
breq r0, r0, delete
|
|
||||||
|
|
||||||
;***
|
;***
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue