mirror of
https://github.com/dschmenk/PLASMA.git
synced 2024-12-28 10:30:17 +00:00
Improve indent/undent and toggle gutter view. Additional compiler stats
This commit is contained in:
parent
9011b1cc64
commit
454ecb29a8
@ -1,4 +1,4 @@
|
|||||||
# 12/14/2019 PLASMA 2.0 Developer Preview 1ED Available!
|
# 12/16/2019 PLASMA 2.0 Developer Preview 1 E+C Available!
|
||||||
[Download and read the Release Notes](https://github.com/dschmenk/PLASMA/blob/master/doc/Version%202.0.md)
|
[Download and read the Release Notes](https://github.com/dschmenk/PLASMA/blob/master/doc/Version%202.0.md)
|
||||||
|
|
||||||
# 4/29/2018 PLASMA 1.2 Available!
|
# 4/29/2018 PLASMA 1.2 Available!
|
||||||
|
@ -83,7 +83,7 @@ EDIT COMMANDS:
|
|||||||
APPLE ][, UPPER AND LOWER CASE
|
APPLE ][, UPPER AND LOWER CASE
|
||||||
ENTRY WORKS AS EXPECTED.
|
ENTRY WORKS AS EXPECTED.
|
||||||
|
|
||||||
ESC T = FORCE LOWER-CASE CHARS
|
ESC T C = FORCE LOWER-CASE CHARS
|
||||||
|
|
||||||
If you have a lower-case character
|
If you have a lower-case character
|
||||||
generator installed, you can force
|
generator installed, you can force
|
||||||
@ -98,11 +98,12 @@ EDIT COMMANDS:
|
|||||||
The 'SOLID-APPLE' key will modify
|
The 'SOLID-APPLE' key will modify
|
||||||
theese keys:
|
theese keys:
|
||||||
|
|
||||||
SA-RETURN = OPEN LINE
|
SA-RETURN = OPEN FOLLOWING LINE
|
||||||
SA-LEFT ARROW = JUMP LEFT
|
SA-LEFT ARROW = JUMP LEFT
|
||||||
SA-RIGHT ARROW = JUMP RIGHT
|
SA-RIGHT ARROW = JUMP RIGHT
|
||||||
SA-UP ARROR = JUMP UP
|
SA-UP ARROR = JUMP UP
|
||||||
SA-DOWN ARROW = JUMP DOWN
|
SA-DOWN ARROW = JUMP DOWN
|
||||||
|
SA-TAB = DETAB
|
||||||
|
|
||||||
Apple /// FEATURES:
|
Apple /// FEATURES:
|
||||||
-------------------
|
-------------------
|
||||||
@ -111,11 +112,12 @@ EDIT COMMANDS:
|
|||||||
these keys:
|
these keys:
|
||||||
|
|
||||||
OA-\ = DELETE CHAR LEFT
|
OA-\ = DELETE CHAR LEFT
|
||||||
OA-RETURN = OPEN LINE
|
OA-RETURN = OPEN FOLLOWING LINE
|
||||||
OA-LEFT ARROW = JUMP LEFT
|
OA-LEFT ARROW = JUMP LEFT
|
||||||
OA-RIGHT ARROW = JUMP RIGHT
|
OA-RIGHT ARROW = JUMP RIGHT
|
||||||
OA-UP ARROR = JUMP UP
|
OA-UP ARROR = JUMP UP
|
||||||
OA-DOWN ARROW = JUMP DOWN
|
OA-DOWN ARROW = JUMP DOWN
|
||||||
|
OA-TAB = DETAB
|
||||||
|
|
||||||
On the keypad, 'OPEN-APPLE' allows
|
On the keypad, 'OPEN-APPLE' allows
|
||||||
the keys for navigation and misc:
|
the keys for navigation and misc:
|
||||||
@ -129,9 +131,9 @@ EDIT COMMANDS:
|
|||||||
OA-7 = JUMP BEGIN
|
OA-7 = JUMP BEGIN
|
||||||
OA-1 = JUMP END
|
OA-1 = JUMP END
|
||||||
OA-5 = DELETE CHAR
|
OA-5 = DELETE CHAR
|
||||||
OA-- = DELETE/CUT LI
|
OA-- = CUT SELECTION INTO CLIPBOARD
|
||||||
OA-0 = COPY DELETED LINE
|
OA-0 = PASTE CLIPBOARD
|
||||||
OA-ENTER = OPEN NEW LINE
|
OA-ENTER = OPEN FOLLOWING LINE
|
||||||
OA-. = TOGGLE INSERT/OVERWRITE
|
OA-. = TOGGLE INSERT/OVERWRITE
|
||||||
|
|
||||||
COMMAND MODE:
|
COMMAND MODE:
|
||||||
@ -147,7 +149,8 @@ COMMAND MODE:
|
|||||||
P <PREFIX> = SET PREFIX
|
P <PREFIX> = SET PREFIX
|
||||||
H [SLOT] = HARDCOPY TO DEVICE IN SLOT (DEFAULT 1)
|
H [SLOT] = HARDCOPY TO DEVICE IN SLOT (DEFAULT 1)
|
||||||
N = CLEAR TEXT IN MEMORY
|
N = CLEAR TEXT IN MEMORY
|
||||||
T = TOGGLE LOWER-CASE SUPPORT (APPLE ][)
|
T G = TOGGLE GUTTER VIEW
|
||||||
|
T C = TOGGLE LOWER-CASE SUPPORT (APPLE ][)
|
||||||
G <LINE> = GO TO LINE #
|
G <LINE> = GO TO LINE #
|
||||||
F [STRING] = FIND STRING
|
F [STRING] = FIND STRING
|
||||||
E = EDIT MODE
|
E = EDIT MODE
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# PLASMA Version 2.0 Developer Preview 1ED
|
# PLASMA Version 2.0 Developer Preview 1 E+C
|
||||||
|
|
||||||
Welcome to PLASMA: the Grand Unifying Platform for the Apple 1, ][, and ///.
|
Welcome to PLASMA: the Grand Unifying Platform for the Apple 1, ][, and ///.
|
||||||
|
|
||||||
@ -102,9 +102,9 @@ There is a [YouTube playlist](https://www.youtube.com/playlist?list=PLlPKgUMQbJ7
|
|||||||
|
|
||||||
- The documentation is sparse and incomplete. Yep, could use your help...
|
- The documentation is sparse and incomplete. Yep, could use your help...
|
||||||
|
|
||||||
# Changed in PLASMA for 2.0 DP 1ED
|
# Changed in PLASMA for 2.0 DP 1 E+C
|
||||||
|
|
||||||
1. Greatly improved code editor
|
1. Greatly improved code editor and additional compiler stats
|
||||||
|
|
||||||
# Changed in PLASMA for 2.0 DP 1a
|
# Changed in PLASMA for 2.0 DP 1a
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -51,6 +51,8 @@ const keyctrlw = $97
|
|||||||
const keyctrlx = $98
|
const keyctrlx = $98
|
||||||
const keyctrly = $99
|
const keyctrly = $99
|
||||||
const keyctrlz = $9A
|
const keyctrlz = $9A
|
||||||
|
const keytab = keyctrli
|
||||||
|
const keydetab = $9D
|
||||||
const keydelete = $FF
|
const keydelete = $FF
|
||||||
//
|
//
|
||||||
// Data and text buffer constants
|
// Data and text buffer constants
|
||||||
@ -64,18 +66,21 @@ const MAXSTRPLSIZE = $8000
|
|||||||
const pgjmp = 16
|
const pgjmp = 16
|
||||||
const changed = 1
|
const changed = 1
|
||||||
const insmode = 2
|
const insmode = 2
|
||||||
const showcurs = 4
|
const gutter = 4
|
||||||
const uppercase = 8
|
const uppercase = 8
|
||||||
const selection = 16
|
const selection = 16
|
||||||
|
const showcurs = 32
|
||||||
const shiftlock = 128
|
const shiftlock = 128
|
||||||
//
|
//
|
||||||
// Text screen row address array
|
// Text screen row address array
|
||||||
//
|
//
|
||||||
const scrnwidth = 35
|
const scrnheight = 24
|
||||||
const scrnheight = 23
|
const scrnbottom = 23
|
||||||
word txtscrn = $0404,$0484,$0504,$0584,$0604,$0684,$0704,$0784
|
word scrnwidth = 36
|
||||||
word = $042C,$04AC,$052C,$05AC,$062C,$06AC,$072C,$07AC
|
word scrnright = 35
|
||||||
word = $0454,$04D4,$0554,$05D4,$0654,$06D4,$0754,$07D4
|
word txtscrn = $0400,$0480,$0500,$0580,$0600,$0680,$0700,$0780
|
||||||
|
word = $0428,$04A8,$0528,$05A8,$0628,$06A8,$0728,$07A8
|
||||||
|
word = $0450,$04D0,$0550,$05D0,$0650,$06D0,$0750,$07D0
|
||||||
//
|
//
|
||||||
// Editor variables
|
// Editor variables
|
||||||
//
|
//
|
||||||
@ -466,16 +471,16 @@ def drawrow(row, ofst, strptr)#0
|
|||||||
byte numchars
|
byte numchars
|
||||||
word scrnptr
|
word scrnptr
|
||||||
|
|
||||||
scrnptr = txtscrn[row]
|
scrnptr = txtscrn[row] + (flags & gutter)
|
||||||
if ofst >= ^strptr
|
if ofst >= ^strptr
|
||||||
numchars = 0
|
numchars = 0
|
||||||
else
|
else
|
||||||
numchars = ^strptr - ofst
|
numchars = ^strptr - ofst
|
||||||
fin
|
fin
|
||||||
if numchars >= 36
|
if numchars >= scrnwidth
|
||||||
numchars = 36
|
numchars = scrnwidth
|
||||||
else
|
else
|
||||||
memset(scrnptr + numchars, $A0A0, 36 - numchars)
|
memset(scrnptr + numchars, $A0A0, scrnwidth - numchars)
|
||||||
fin
|
fin
|
||||||
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
||||||
end
|
end
|
||||||
@ -491,7 +496,7 @@ def drawgutter(scrnrow, ofst)#0
|
|||||||
huns, tens = divmod(scrnrow + 1, 100)
|
huns, tens = divmod(scrnrow + 1, 100)
|
||||||
tens, ones = divmod(tens, 10)
|
tens, ones = divmod(tens, 10)
|
||||||
for row = 0 to 23
|
for row = 0 to 23
|
||||||
scrnptr = txtscrn[row] - 4
|
scrnptr = txtscrn[row]
|
||||||
if scrnrow < numlines
|
if scrnrow < numlines
|
||||||
if flags & selection and (scrnrow >= selrow and scrnrow <= cursrow) or (scrnrow >= cursrow and scrnrow <= selrow)
|
if flags & selection and (scrnrow >= selrow and scrnrow <= cursrow) or (scrnrow >= cursrow and scrnrow <= selrow)
|
||||||
hilite = $00
|
hilite = $00
|
||||||
@ -545,38 +550,41 @@ def drawgutter(scrnrow, ofst)#0
|
|||||||
next
|
next
|
||||||
end
|
end
|
||||||
def drawscrn(toprow, ofst)#0
|
def drawscrn(toprow, ofst)#0
|
||||||
byte row, numchars
|
byte row, numchars, lofst
|
||||||
word strptr, scrnptr
|
word strptr, scrnptr
|
||||||
|
|
||||||
drawgutter(toprow, ofst)
|
lofst = flags & gutter
|
||||||
|
if lofst
|
||||||
|
drawgutter(toprow, ofst)
|
||||||
|
fin
|
||||||
//
|
//
|
||||||
// Draw text
|
// Draw text
|
||||||
//
|
//
|
||||||
if ofst
|
if ofst
|
||||||
for row = 0 to 23
|
for row = 0 to 23
|
||||||
strptr = txtlinbuf=>[toprow + row]
|
strptr = txtlinbuf=>[toprow + row]
|
||||||
scrnptr = txtscrn[row]
|
scrnptr = txtscrn[row] + lofst
|
||||||
if ofst >= ^strptr
|
if ofst >= ^strptr
|
||||||
numchars = 0
|
numchars = 0
|
||||||
else
|
else
|
||||||
numchars = ^strptr - ofst
|
numchars = ^strptr - ofst
|
||||||
fin
|
fin
|
||||||
if numchars >= 36
|
if numchars >= scrnwidth
|
||||||
numchars = 36
|
numchars = scrnwidth
|
||||||
else
|
else
|
||||||
memset(scrnptr + numchars, $A0A0, 36 - numchars)
|
memset(scrnptr + numchars, $A0A0, scrnwidth - numchars)
|
||||||
fin
|
fin
|
||||||
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
||||||
next
|
next
|
||||||
else
|
else
|
||||||
for row = 0 to 23
|
for row = 0 to 23
|
||||||
strptr = txtlinbuf=>[toprow + row]
|
strptr = txtlinbuf=>[toprow + row]
|
||||||
scrnptr = txtscrn[row]
|
scrnptr = txtscrn[row] + lofst
|
||||||
numchars = ^strptr
|
numchars = ^strptr
|
||||||
if numchars >= 36
|
if numchars >= scrnwidth
|
||||||
numchars = 36
|
numchars = scrnwidth
|
||||||
else
|
else
|
||||||
memset(scrnptr + numchars, $A0A0, 36 - numchars)
|
memset(scrnptr + numchars, $A0A0, scrnwidth - numchars)
|
||||||
fin
|
fin
|
||||||
memcpy(scrnptr, strptr + 1, numchars)
|
memcpy(scrnptr, strptr + 1, numchars)
|
||||||
next
|
next
|
||||||
@ -587,23 +595,29 @@ def cursoff#0
|
|||||||
|
|
||||||
if flags & showcurs
|
if flags & showcurs
|
||||||
^cursptr = underchr
|
^cursptr = underchr
|
||||||
scrnptr = txtscrn[cursy] - 4
|
if flags & gutter
|
||||||
*scrnptr = *scrnptr | $8080
|
scrnptr = txtscrn[cursy]
|
||||||
^(scrnptr+2) = ^(scrnptr+2) | $80
|
*scrnptr = *scrnptr | $8080
|
||||||
|
^(scrnptr+2) = ^(scrnptr+2) | $80
|
||||||
|
fin
|
||||||
flags = flags & ~showcurs
|
flags = flags & ~showcurs
|
||||||
|
|
||||||
fin
|
fin
|
||||||
end
|
end
|
||||||
def curson#0
|
def curson#0
|
||||||
|
byte lofst
|
||||||
word scrnptr
|
word scrnptr
|
||||||
|
|
||||||
if !(flags & showcurs)
|
if !(flags & showcurs)
|
||||||
cursptr = txtscrn[cursy] + cursx
|
lofst = flags & gutter
|
||||||
|
if lofst
|
||||||
|
scrnptr = txtscrn[cursy]
|
||||||
|
*scrnptr = *scrnptr & $7F7F
|
||||||
|
^(scrnptr+2) = ^(scrnptr+2) & $7F
|
||||||
|
fin
|
||||||
|
cursptr = txtscrn[cursy] + lofst + cursx
|
||||||
underchr = ^cursptr
|
underchr = ^cursptr
|
||||||
^cursptr = curschr
|
^cursptr = curschr
|
||||||
scrnptr = txtscrn[cursy] - 4
|
|
||||||
*scrnptr = *scrnptr & $7F7F
|
|
||||||
^(scrnptr+2) = ^(scrnptr+2) & $7F
|
|
||||||
flags = flags | showcurs
|
flags = flags | showcurs
|
||||||
fin
|
fin
|
||||||
end
|
end
|
||||||
@ -630,9 +644,9 @@ def curshpos(hpos)#1
|
|||||||
if hpos > MAXLNLEN; hpos = MAXLNLEN; fin
|
if hpos > MAXLNLEN; hpos = MAXLNLEN; fin
|
||||||
curscol = hpos
|
curscol = hpos
|
||||||
cursx = curscol - scrnleft
|
cursx = curscol - scrnleft
|
||||||
if cursx > scrnwidth
|
if cursx > scrnright
|
||||||
cursx = scrnwidth
|
cursx = scrnright
|
||||||
scrnleft = curscol - scrnwidth
|
scrnleft = curscol - scrnright
|
||||||
elsif cursx < 0
|
elsif cursx < 0
|
||||||
cursx = 0
|
cursx = 0
|
||||||
scrnleft = curscol
|
scrnleft = curscol
|
||||||
@ -649,9 +663,9 @@ def cursvpos(vpos)#1
|
|||||||
if vpos > numlines - 1; vpos = numlines - 1; fin
|
if vpos > numlines - 1; vpos = numlines - 1; fin
|
||||||
cursrow = vpos
|
cursrow = vpos
|
||||||
cursy = cursrow - scrntop
|
cursy = cursrow - scrntop
|
||||||
if cursy > scrnheight
|
if cursy > scrnbottom
|
||||||
cursy = scrnheight
|
cursy = scrnbottom
|
||||||
scrntop = cursrow - scrnheight
|
scrntop = cursrow - scrnbottom
|
||||||
elsif cursy < 0
|
elsif cursy < 0
|
||||||
cursy = 0
|
cursy = 0
|
||||||
scrntop = cursrow
|
scrntop = cursrow
|
||||||
@ -770,10 +784,10 @@ def cursright#0
|
|||||||
if curscol < MAXLNLEN
|
if curscol < MAXLNLEN
|
||||||
cursoff
|
cursoff
|
||||||
curscol++
|
curscol++
|
||||||
if cursx < scrnwidth
|
if cursx < scrnright
|
||||||
cursx++
|
cursx++
|
||||||
else
|
else
|
||||||
scrnleft = curscol - scrnwidth
|
scrnleft = curscol - scrnright
|
||||||
drawscrn(scrntop, scrnleft)
|
drawscrn(scrntop, scrnleft)
|
||||||
fin
|
fin
|
||||||
curson
|
curson
|
||||||
@ -793,12 +807,12 @@ end
|
|||||||
//
|
//
|
||||||
// Find string in text
|
// Find string in text
|
||||||
//
|
//
|
||||||
def findline(strptr)#1
|
def findline(strptr, start)#1
|
||||||
byte upstr[MAXLNLEN+1], scan, i
|
byte upstr[MAXLNLEN+1], scan, i
|
||||||
|
|
||||||
if ^strptr >= findstr
|
if ^strptr >= findstr
|
||||||
lnupcpy(@upstr, strptr)
|
lnupcpy(@upstr, strptr)
|
||||||
for scan = 1 to upstr - findstr + 1
|
for scan = start to upstr - findstr + 1
|
||||||
if upstr[scan] == findstr[1]
|
if upstr[scan] == findstr[1]
|
||||||
for i = 2 to findstr
|
for i = 2 to findstr
|
||||||
if upstr[scan + i - 1] <> findstr[i]
|
if upstr[scan + i - 1] <> findstr[i]
|
||||||
@ -820,8 +834,11 @@ def findtxt#0
|
|||||||
//
|
//
|
||||||
// Search from current pos to end
|
// Search from current pos to end
|
||||||
//
|
//
|
||||||
|
if findline(txtlinbuf=>[cursrow], curscol + 2)
|
||||||
|
return
|
||||||
|
fin
|
||||||
for f = cursrow + 1 to numlines - 1
|
for f = cursrow + 1 to numlines - 1
|
||||||
if findline(txtlinbuf=>[f])
|
if findline(txtlinbuf=>[f], 1)
|
||||||
cursvpos(f)
|
cursvpos(f)
|
||||||
return
|
return
|
||||||
fin
|
fin
|
||||||
@ -830,7 +847,7 @@ def findtxt#0
|
|||||||
// Search from beginning to current pos
|
// Search from beginning to current pos
|
||||||
//
|
//
|
||||||
for f = 0 to cursrow
|
for f = 0 to cursrow
|
||||||
if findline(txtlinbuf=>[f])
|
if findline(txtlinbuf=>[f], 1)
|
||||||
cursvpos(f)
|
cursvpos(f)
|
||||||
return
|
return
|
||||||
fin
|
fin
|
||||||
@ -891,7 +908,9 @@ def keyin3
|
|||||||
key = keyctrlz; break
|
key = keyctrlz; break
|
||||||
is keyenter
|
is keyenter
|
||||||
key = keyctrlf; break
|
key = keyctrlf; break
|
||||||
is $80 | '\\'
|
is keytab
|
||||||
|
key = keydetab; break
|
||||||
|
is $80 | '\\'
|
||||||
key = keydelete; break // Delete
|
key = keydelete; break // Delete
|
||||||
//
|
//
|
||||||
// Map OA+keypad
|
// Map OA+keypad
|
||||||
@ -943,6 +962,8 @@ def keyin2e
|
|||||||
key = keyctrlz; break
|
key = keyctrlz; break
|
||||||
is keyenter
|
is keyenter
|
||||||
key = keyctrlf; break
|
key = keyctrlf; break
|
||||||
|
is keytab
|
||||||
|
key = keydetab; break
|
||||||
wend
|
wend
|
||||||
fin
|
fin
|
||||||
return key
|
return key
|
||||||
@ -981,6 +1002,11 @@ def keyin2
|
|||||||
key = keydelete
|
key = keydelete
|
||||||
fin
|
fin
|
||||||
break
|
break
|
||||||
|
is keyarrowright
|
||||||
|
if ^pushbttn3 < 128
|
||||||
|
key = keytab
|
||||||
|
fin
|
||||||
|
break
|
||||||
otherwise
|
otherwise
|
||||||
if key >= $C0 and flags < shiftlock
|
if key >= $C0 and flags < shiftlock
|
||||||
if ^pushbttn3 < 128
|
if ^pushbttn3 < 128
|
||||||
@ -1014,9 +1040,6 @@ def setkeyin#0
|
|||||||
keyin = @keyin2
|
keyin = @keyin2
|
||||||
wend
|
wend
|
||||||
end
|
end
|
||||||
def tabkeyin
|
|
||||||
return curscol < MAXLNLEN and curscol & $01 ?? keyspace :: 0
|
|
||||||
end
|
|
||||||
//
|
//
|
||||||
// Printer routines
|
// Printer routines
|
||||||
//
|
//
|
||||||
@ -1266,19 +1289,19 @@ def editline(key)
|
|||||||
repeat
|
repeat
|
||||||
if key >= keyspace
|
if key >= keyspace
|
||||||
if key == keydelete
|
if key == keydelete
|
||||||
if curscol > 0
|
if curscol > 0
|
||||||
if curscol <= editstr
|
if curscol <= editstr
|
||||||
memcpy(@editstr[curscol], @editstr[curscol + 1], editstr - curscol)
|
memcpy(@editstr[curscol], @editstr[curscol + 1], editstr - curscol)
|
||||||
editstr--
|
editstr--
|
||||||
fin
|
fin
|
||||||
cursoff
|
cursoff
|
||||||
if curshpos(curscol - 1)
|
if curshpos(curscol - 1)
|
||||||
drawscrn(scrntop, scrnleft)
|
drawscrn(scrntop, scrnleft)
|
||||||
else
|
else
|
||||||
drawrow(cursy, scrnleft, @editstr)
|
drawrow(cursy, scrnleft, @editstr)
|
||||||
fin
|
fin
|
||||||
curson
|
curson
|
||||||
fin
|
fin
|
||||||
elsif curscol < MAXLNLEN
|
elsif curscol < MAXLNLEN
|
||||||
curscol++
|
curscol++
|
||||||
if flags & insmode
|
if flags & insmode
|
||||||
@ -1412,27 +1435,29 @@ def editmode#0
|
|||||||
joinline
|
joinline
|
||||||
redraw
|
redraw
|
||||||
break
|
break
|
||||||
is keyctrli
|
is keytab
|
||||||
if flags & selection
|
if flags & insmode
|
||||||
if flags & insmode
|
indentsel
|
||||||
indentsel
|
else
|
||||||
else
|
undentsel
|
||||||
undentsel
|
fin
|
||||||
fin
|
if not (flags & selection)
|
||||||
else
|
cursoff
|
||||||
keyin = @tabkeyin
|
autoindent(txtlinbuf=>[cursrow])
|
||||||
editline(keyspace)
|
curson
|
||||||
setkeyin
|
fin
|
||||||
fin
|
break
|
||||||
|
is keydetab
|
||||||
|
undentsel
|
||||||
|
if not (flags & selection)
|
||||||
|
cursoff
|
||||||
|
autoindent(txtlinbuf=>[cursrow])
|
||||||
|
curson
|
||||||
|
fin
|
||||||
break
|
break
|
||||||
is keyctrly
|
is keyctrly
|
||||||
if flags & insmode
|
flags = flags ^ insmode
|
||||||
flags = flags & ~insmode
|
curschr = flags & insmode ?? '+' :: ' '
|
||||||
curschr = ' '
|
|
||||||
else
|
|
||||||
flags = flags | insmode
|
|
||||||
curschr = '+'
|
|
||||||
fin
|
|
||||||
break
|
break
|
||||||
is keyescape
|
is keyescape
|
||||||
if MACHID == $F2 // Apple 3
|
if MACHID == $F2 // Apple 3
|
||||||
@ -1552,11 +1577,27 @@ def cmdmode#0
|
|||||||
findtxt
|
findtxt
|
||||||
return
|
return
|
||||||
is 'T' // Toggle upper/lower case display
|
is 'T' // Toggle upper/lower case display
|
||||||
if flags & uppercase
|
if ^cmdptr
|
||||||
txtlower
|
when toupper(^(cmdptr + 1))
|
||||||
else
|
is 'G' // Gutter view
|
||||||
txtupper
|
flags = flags ^ gutter
|
||||||
fin
|
if flags & gutter
|
||||||
|
scrnwidth = 36
|
||||||
|
scrnright = 35
|
||||||
|
else
|
||||||
|
scrnwidth = 40
|
||||||
|
scrnright = 39
|
||||||
|
fin
|
||||||
|
break
|
||||||
|
is 'C' // Lower case chip (Apple ][/][+ only)
|
||||||
|
if flags & uppercase
|
||||||
|
txtlower
|
||||||
|
else
|
||||||
|
txtupper
|
||||||
|
fin
|
||||||
|
break
|
||||||
|
wend
|
||||||
|
fin
|
||||||
return
|
return
|
||||||
is 'G' // Goto line #
|
is 'G' // Goto line #
|
||||||
line = strtonum(cmdptr)
|
line = strtonum(cmdptr)
|
||||||
@ -1640,7 +1681,7 @@ if ^arg
|
|||||||
readtxt(@filename, 0)
|
readtxt(@filename, 0)
|
||||||
fin
|
fin
|
||||||
curschr = '+'
|
curschr = '+'
|
||||||
flags = flags | insmode
|
flags = flags | insmode | gutter
|
||||||
drawscrn(scrntop, scrnleft)
|
drawscrn(scrntop, scrnleft)
|
||||||
curson
|
curson
|
||||||
editmode
|
editmode
|
||||||
|
Loading…
Reference in New Issue
Block a user