mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-29 09:55:53 +00:00
Kernel 0.93+
This commit is contained in:
parent
3ebca5bfa7
commit
385ed9dc62
Binary file not shown.
@ -41,6 +41,47 @@ BUF.InsertClipboard
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
BUF.InsertTAB jsr BUF.ComputeCOffset
|
||||
cpy #256-TABLEN
|
||||
beq .8
|
||||
|
||||
lda BufLen
|
||||
sec
|
||||
adc #TABLEN
|
||||
tay
|
||||
lda BufLen+1
|
||||
adc #0
|
||||
|
||||
jsr BUF.GetNewYA
|
||||
bcs .9
|
||||
|
||||
>LDYA BUF.COffset
|
||||
jsr BUF.Start2YA
|
||||
|
||||
ldy #TABLEN
|
||||
lda #C.SPACE
|
||||
|
||||
.1 sta (BufPtr)
|
||||
inc BufPtr
|
||||
bne .2
|
||||
inc BufPtr+1
|
||||
|
||||
.2 dey
|
||||
bne .1
|
||||
|
||||
.3 jsr BUF.CopyTail
|
||||
|
||||
.4 lda BufLen
|
||||
clc
|
||||
adc #TABLEN
|
||||
sta BufLen
|
||||
bcc .8
|
||||
|
||||
inc BufLen+1
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
BUF.InsertA sta TmpByte
|
||||
jsr BUF.ComputeCOffset
|
||||
cpy #255
|
||||
@ -166,12 +207,13 @@ BUF.SelToClipboard
|
||||
|
||||
pha
|
||||
tya
|
||||
* clc
|
||||
|
||||
>ADC.G SelStart
|
||||
sta BufPtr
|
||||
|
||||
pla
|
||||
>ADC.G SelStart+1
|
||||
iny SelStart+1
|
||||
adc (pData),y
|
||||
sta BufPtr+1
|
||||
|
||||
lda SelLen
|
||||
@ -432,10 +474,11 @@ BUF.GetNewYA tax In 256 bytes page to avoid fragmentation
|
||||
>LDA.G bSaved
|
||||
beq .8
|
||||
|
||||
lda #0
|
||||
sta (pData),y
|
||||
|
||||
jsr SCRN.UpdateTopBar
|
||||
bcs .9
|
||||
|
||||
>STZ.G bSaved
|
||||
.8
|
||||
* clc
|
||||
.9 rts
|
||||
|
@ -93,6 +93,7 @@ Ctrl.A lda #PromptModeHelp
|
||||
.8 jmp SCRN.UpdateStatusBar
|
||||
*--------------------------------------
|
||||
Ctrl.B jsr BUF.ComputeCOffset
|
||||
|
||||
lda BUF.COffset
|
||||
ldy #SelStart
|
||||
sta (pData),y
|
||||
@ -104,6 +105,7 @@ Ctrl.B jsr BUF.ComputeCOffset
|
||||
Ctrl.C jmp BUF.SelToClipboard
|
||||
*--------------------------------------
|
||||
Ctrl.E jsr BUF.ComputeCOffset
|
||||
|
||||
lda BUF.COffset
|
||||
ldy #SelEnd
|
||||
sta (pData),y
|
||||
@ -116,8 +118,7 @@ Ctrl.F lda #PromptModeFind
|
||||
>STA.G PromptMode
|
||||
jmp SCRN.UpdateStatusBar
|
||||
*--------------------------------------
|
||||
Ctrl.G ldy #FileX
|
||||
lda (pData),y
|
||||
Ctrl.G >LDA.G FileX
|
||||
beq .8
|
||||
|
||||
lda #0
|
||||
@ -130,16 +131,14 @@ Ctrl.G ldy #FileX
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.BS ldy #FileX
|
||||
lda (pData),y
|
||||
Ctrl.BS >LDA.G FileX
|
||||
beq .1 already at beginning of line
|
||||
|
||||
dec
|
||||
sta (pData),y
|
||||
bra .3
|
||||
|
||||
.1 ldy #FileY+1
|
||||
lda (pData),y
|
||||
.1 >LDA.G FileY+1
|
||||
tax
|
||||
dey
|
||||
ora (pData),y
|
||||
@ -155,8 +154,7 @@ Ctrl.BS ldy #FileX
|
||||
bcs .8
|
||||
|
||||
tya
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
>STA.G FileX
|
||||
|
||||
>DECW.G FileY
|
||||
|
||||
@ -167,16 +165,42 @@ Ctrl.BS ldy #FileX
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.TAB
|
||||
Ctrl.TAB jsr BUF.InsertTAB
|
||||
bcs .9
|
||||
|
||||
>LDA.G FileX
|
||||
clc
|
||||
rts
|
||||
adc #TABLEN
|
||||
sta (pData),y
|
||||
|
||||
>LDA.G CurX
|
||||
clc
|
||||
adc #TABLEN
|
||||
sta (pData),y
|
||||
|
||||
>SBC.G ScreenX
|
||||
>SBC.G ScreenW
|
||||
|
||||
bcs .8
|
||||
jsr SCRN.UpdateCurrentLine
|
||||
bcs .9
|
||||
jmp SCRN.UpdateStatusBar
|
||||
|
||||
.8 >ADC.G ScreenX
|
||||
inc
|
||||
sta (pData),y
|
||||
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Ctrl.LF jsr BUF.GetNextLine
|
||||
bcs .8
|
||||
|
||||
tya Y = line length
|
||||
ldy #FileX
|
||||
cmp (pData),y
|
||||
>CMP.G FileX
|
||||
bcs .2
|
||||
|
||||
sta (pData),y
|
||||
@ -189,8 +213,7 @@ Ctrl.LF jsr BUF.GetNextLine
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.VT ldy #FileY+1
|
||||
lda (pData),y
|
||||
Ctrl.VT >LDA.G FileY+1
|
||||
tax
|
||||
dey
|
||||
ora (pData),y
|
||||
@ -206,9 +229,9 @@ Ctrl.VT ldy #FileY+1
|
||||
bcs .8
|
||||
|
||||
tya Y = line length
|
||||
ldy #FileX
|
||||
cmp (pData),y
|
||||
>CMP.G FileX
|
||||
bcs .2
|
||||
|
||||
sta (pData),y
|
||||
|
||||
.2 >DECW.G FileY
|
||||
@ -216,22 +239,19 @@ Ctrl.VT ldy #FileY+1
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
.8 clc
|
||||
.8
|
||||
Ctrl.VT.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.L jsr BUF.GetLine
|
||||
bcs .8
|
||||
bcs Ctrl.VT.8
|
||||
|
||||
tya Y = line length
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
>STA.G FileX
|
||||
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.CR lda #C.CR
|
||||
jsr BUF.InsertA
|
||||
@ -252,6 +272,7 @@ Ctrl.O ldy #FileY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
||||
ldy #ViewPortH
|
||||
sec
|
||||
sbc (pData),y
|
||||
@ -265,9 +286,8 @@ Ctrl.O ldy #FileY+1
|
||||
dey
|
||||
pla
|
||||
sta (pData),y
|
||||
lda #0
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
|
||||
>STZ.G FileX
|
||||
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
@ -281,6 +301,7 @@ Ctrl.P ldy #FileY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
||||
ldy #ViewPortH
|
||||
clc
|
||||
adc (pData),y
|
||||
@ -294,8 +315,7 @@ Ctrl.P ldy #FileY+1
|
||||
bcs .8
|
||||
|
||||
tya Y = line length
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
>STA.G FileX
|
||||
|
||||
ldy #FileY+1
|
||||
pla
|
||||
@ -318,7 +338,7 @@ Ctrl.R lda #PromptModeReplace
|
||||
jmp SCRN.UpdateStatusBar
|
||||
*--------------------------------------
|
||||
Ctrl.Q lda #$FF
|
||||
>STA.G bCANCEL
|
||||
>STA.G bExit
|
||||
|
||||
>LDA.G bSaved
|
||||
beq Ctrl.S
|
||||
@ -345,18 +365,31 @@ Ctrl.S lda #PromptModeSave
|
||||
|
||||
jmp SCRN.UpdateStatusBar
|
||||
*--------------------------------------
|
||||
Ctrl.T >STZ.G FileX
|
||||
>STZW.G FileY
|
||||
>DEBUG
|
||||
Ctrl.T jsr SCRN.Home
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
*--------------------------------------
|
||||
Ctrl.Y jsr BUF.GetNextLine
|
||||
bcs .1
|
||||
|
||||
>INCW.G FileY
|
||||
bra Ctrl.Y
|
||||
|
||||
.1 jsr BUF.GetLine
|
||||
|
||||
tya Y = line length
|
||||
>STA.G FileX
|
||||
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
*--------------------------------------
|
||||
Ctrl.FS jsr BUF.GetLine
|
||||
bcs .8
|
||||
|
||||
tya Y = line length
|
||||
ldy #FileX
|
||||
cmp (pData),y
|
||||
>CMP.G FileX
|
||||
beq .1 already at end of line
|
||||
|
||||
lda (pData),y
|
||||
@ -424,32 +457,6 @@ Ctrl.D jsr BUF.DelSel
|
||||
|
||||
jmp SCRN.UpdateStatusBar
|
||||
*--------------------------------------
|
||||
Ctrl.Y ldy #FileY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
inc
|
||||
bne .1
|
||||
|
||||
inx
|
||||
|
||||
.1 jsr BUF.GetLineAX
|
||||
|
||||
bcs .2
|
||||
|
||||
>INCW.G FileY
|
||||
bra Ctrl.Y
|
||||
|
||||
.2 jsr BUF.GetLine
|
||||
|
||||
tya Y = line length
|
||||
>STA.G FileX
|
||||
|
||||
jsr BUF.ComputeCOffset
|
||||
|
||||
jmp SCRN.UpdateViewPort
|
||||
*--------------------------------------
|
||||
Ctrl.Z jsr BUF.ComputeCOffset
|
||||
|
||||
lda BUF.COffset
|
||||
@ -551,7 +558,7 @@ Prompt.Save cmp #3 Ctrl-C
|
||||
>LDA.G PromptBufPtr
|
||||
tay
|
||||
pla
|
||||
cpy #PromptBufMax
|
||||
cpy #PROMPTBUFMAX
|
||||
beq .8
|
||||
|
||||
sta (pData),y
|
||||
|
@ -17,23 +17,7 @@ SCRN.Init >LDYAI 510+5+5+4+1 potentially 255*\\ NORM,INV,CEOL & \0
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
|
||||
ldy #FileY
|
||||
sta (pData),y
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
ldy #ScreenX
|
||||
sta (pData),y
|
||||
|
||||
ldy #ScreenY
|
||||
sta (pData),y
|
||||
iny
|
||||
sta (pData),y
|
||||
jsr SCRN.Home
|
||||
|
||||
jsr SCRN.UpdateTopBar
|
||||
bcs .9
|
||||
@ -42,6 +26,22 @@ SCRN.Init >LDYAI 510+5+5+4+1 potentially 255*\\ NORM,INV,CEOL & \0
|
||||
jsr SCRN.UpdateMain
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.Home lda #0
|
||||
|
||||
ldy #FileX
|
||||
|
||||
.1 sta (pData),y
|
||||
iny
|
||||
|
||||
cpy #CurX
|
||||
bne .1
|
||||
|
||||
inc
|
||||
sta (pData),y CurX
|
||||
iny
|
||||
sta (pData),y CurY
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.UpdateTopBar
|
||||
jsr SCRN.LineBufInit
|
||||
|
||||
@ -76,7 +76,7 @@ SCRN.UpdateTopBar
|
||||
lda (ZPPTR1),y
|
||||
bne .3
|
||||
|
||||
lda #"*"
|
||||
lda #'!'
|
||||
sta (ZPPTR1),y
|
||||
|
||||
iny
|
||||
@ -143,7 +143,9 @@ SCRN.UpdateCurrentLine
|
||||
clc
|
||||
>ADC.G CurY
|
||||
bcc .1
|
||||
|
||||
inx
|
||||
|
||||
.1 jsr BUF.GetLineAX
|
||||
bcs SCRN.UpdateMain.9
|
||||
|
||||
@ -393,16 +395,11 @@ SCRN.UpdateViewPort
|
||||
lda #$ff
|
||||
sta bNotRepaint
|
||||
|
||||
.1 ldy #FileX
|
||||
lda (pData),y
|
||||
ldy #ScreenX
|
||||
cmp (pData),y
|
||||
.1 >LDA.G FileX
|
||||
>CMP.G ScreenX
|
||||
bcs .2 out of left border ?
|
||||
|
||||
ldy #ScreenX yes
|
||||
lda (pData),y
|
||||
dec
|
||||
sta (pData),y
|
||||
>DEC.G ScreenX yes
|
||||
stz bNotRepaint
|
||||
bra .1
|
||||
|
||||
@ -416,10 +413,7 @@ SCRN.UpdateViewPort
|
||||
cmp (pData),y
|
||||
bcs .3 out of right border ?
|
||||
|
||||
ldy #ScreenX
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
>INC.G ScreenX
|
||||
stz bNotRepaint
|
||||
bra .2
|
||||
|
||||
@ -428,6 +422,7 @@ SCRN.UpdateViewPort
|
||||
tax
|
||||
dey
|
||||
lda (pData),y A,X = FileY
|
||||
|
||||
ldy #ScreenY
|
||||
cmp (pData),y
|
||||
iny
|
||||
@ -435,14 +430,7 @@ SCRN.UpdateViewPort
|
||||
sbc (pData),y
|
||||
bcs .4 out of top border ?
|
||||
|
||||
ldy #ScreenY move viewport up one line....
|
||||
lda (pData),y
|
||||
sbc #0 CC from BCS
|
||||
sta (pData),y
|
||||
iny
|
||||
lda (pData),y
|
||||
sbc #0
|
||||
sta (pData),y
|
||||
>DECW.G ScreenY move viewport up one line....
|
||||
bit bNotRepaint
|
||||
bpl .3
|
||||
|
||||
@ -454,9 +442,8 @@ SCRN.UpdateViewPort
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
ldy #ViewPortHm1
|
||||
clc
|
||||
adc (pData),y
|
||||
|
||||
>ADC.G ViewPortHm1
|
||||
bcc .41
|
||||
|
||||
inx
|
||||
@ -468,15 +455,7 @@ SCRN.UpdateViewPort
|
||||
sbc (pData),y
|
||||
bcs .5 CS : fileY>= screen bottom
|
||||
|
||||
* clc from BCS
|
||||
ldy #ScreenY move viewport down one line....
|
||||
lda (pData),y
|
||||
adc #1
|
||||
sta (pData),y
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
sta (pData),y
|
||||
>INCW.G ScreenY move viewport down one line....
|
||||
bit bNotRepaint
|
||||
bpl .4
|
||||
|
||||
@ -484,20 +463,13 @@ SCRN.UpdateViewPort
|
||||
bcs .9
|
||||
bra .4
|
||||
|
||||
.5 sec
|
||||
ldy #FileX
|
||||
lda (pData),y
|
||||
ldy #ScreenX
|
||||
sbc (pData),y
|
||||
ldy #CurX
|
||||
sta (pData),y
|
||||
sec
|
||||
ldy #FileY
|
||||
lda (pData),y
|
||||
ldy #ScreenY
|
||||
sbc (pData),y
|
||||
ldy #CurY
|
||||
sta (pData),y
|
||||
.5 >LDA.G FileX
|
||||
>SBC.G ScreenX
|
||||
>STA.G CurX
|
||||
|
||||
>LDA.G FileY
|
||||
>SBC.G ScreenY
|
||||
>STA.G CurY
|
||||
bit bNotRepaint
|
||||
bmi .6
|
||||
|
||||
@ -510,12 +482,10 @@ SCRN.UpdateViewPort
|
||||
jmp SCRN.GotoCurXCurY
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.scrollUp ldy #CurX
|
||||
lda (pData),y
|
||||
SCRN.scrollUp >LDA.G CurX
|
||||
inc
|
||||
>PUSHA
|
||||
ldy #CurY
|
||||
lda (pData),y
|
||||
>LDA.G CurY
|
||||
inc
|
||||
inc
|
||||
>PUSHA
|
||||
@ -523,30 +493,32 @@ SCRN.scrollUp ldy #CurX
|
||||
>LDYA L.SEQ.SCROLLUP
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
||||
clc
|
||||
ldy #ViewPortHm1
|
||||
adc (pData),y
|
||||
bcc .1
|
||||
|
||||
inx
|
||||
|
||||
.1 jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
ldy #ViewPortHm1
|
||||
lda (pData),y
|
||||
|
||||
>LDA.G ViewPortHm1
|
||||
jmp SCRN.UpdateLineAtALenY
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.scrollDn ldy #CurX
|
||||
lda (pData),y
|
||||
SCRN.scrollDn >LDA.G CurX
|
||||
inc
|
||||
>PUSHA
|
||||
ldy #CurY
|
||||
lda (pData),y
|
||||
>LDA.G CurY
|
||||
inc
|
||||
inc
|
||||
>PUSHA
|
||||
@ -560,10 +532,13 @@ SCRN.scrollDn ldy #CurX
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
||||
jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
jmp SCRN.UpdateLineAtALenY
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
@ -36,7 +36,8 @@ bSelected .BS 1
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
PromptBufMax .EQ 64
|
||||
PROMPTBUFMAX .EQ 64
|
||||
TABLEN .EQ 4
|
||||
*--------------------------------------
|
||||
PromptModeHelp .EQ 2
|
||||
PromptModeFind .EQ 4
|
||||
@ -165,7 +166,7 @@ CS.RUN.LOOP >SYSCALL GetChar
|
||||
jsr CharIn
|
||||
bcs .9
|
||||
|
||||
>LDA.G bCancel
|
||||
>LDA.G bExit
|
||||
bpl CS.RUN.LOOP
|
||||
|
||||
lda #0
|
||||
@ -186,15 +187,20 @@ CS.QUIT ldy #hLineBuffer
|
||||
|
||||
ldy #hBuffer
|
||||
jsr .8
|
||||
|
||||
ldy #hBufferBackup
|
||||
jsr .8
|
||||
|
||||
ldy #hClipBoard
|
||||
jsr .8
|
||||
|
||||
ldy #hFileName
|
||||
|
||||
.8 lda (pData),y
|
||||
beq .9
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.9 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -479,10 +485,10 @@ EscAscii .HS 04080A0B15
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
PromptBuf .BS PromptBufMax+1
|
||||
PromptBuf .BS PROMPTBUFMAX+1
|
||||
PromptBufPtr .BS 1
|
||||
PromptMode .BS 1
|
||||
bCancel .BS 1
|
||||
bExit .BS 1
|
||||
bSaved .BS 1
|
||||
bEscMode .BS 1
|
||||
EscBuffer .BS 16
|
||||
@ -494,18 +500,18 @@ hBuffer .BS 1
|
||||
hBufferBackup .BS 1
|
||||
hClipBoard .BS 1
|
||||
ClipBoardLen .BS 2
|
||||
SelStart .BS 2
|
||||
SelEnd .BS 2
|
||||
ScreenW .BS 1
|
||||
ScreenH .BS 1
|
||||
ViewPortH .BS 1
|
||||
ViewPortHm1 .BS 1
|
||||
FileX .BS 1
|
||||
FileY .BS 2
|
||||
ScreenX .BS 1
|
||||
ScreenY .BS 2
|
||||
CurX .BS 1
|
||||
CurY .BS 1
|
||||
FileX .BS 1
|
||||
FileY .BS 2
|
||||
SelStart .BS 2
|
||||
SelEnd .BS 2
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
BIN
_Pics/ProDOS.FX.logo.bmp
Normal file
BIN
_Pics/ProDOS.FX.logo.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
Loading…
Reference in New Issue
Block a user