mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-05 10:39:33 +00:00
Kernel 0.93+
This commit is contained in:
parent
7b84824df3
commit
9830a906a5
Binary file not shown.
@ -351,7 +351,7 @@ BUF.ComputeCOffset
|
||||
phy save line length
|
||||
|
||||
>LDA.G FileX
|
||||
clc
|
||||
* clc
|
||||
adc BUF.LOffset
|
||||
sta BUF.COffset
|
||||
|
||||
|
@ -512,7 +512,7 @@ Prompt.Save cmp #3 Ctrl-C
|
||||
.11 pla
|
||||
>STA.G hFileName
|
||||
>STZ.G PromptMode
|
||||
jsr SaveFile
|
||||
jsr FILE.Save
|
||||
bcc .81
|
||||
|
||||
.12 jsr SCRN.LineBufInit
|
||||
|
@ -2,114 +2,134 @@ NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
NewFile stz FileLen
|
||||
stz FileLen+1
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
LoadFile >PUSHEA.G STATBUF
|
||||
>LDA.G hFileName
|
||||
>SYSCALL GetMemPtr
|
||||
>SYSCALL stat
|
||||
bcs NewFile
|
||||
|
||||
>LDA.G STATBUF+S.STAT.P.TYPE
|
||||
cmp #S.FI.T.TXT
|
||||
beq LoadFile.TXT
|
||||
cmp #$FA S-C/ASM?
|
||||
bne .91
|
||||
|
||||
jmp LoadFile.ASM
|
||||
|
||||
.91 lda #MLI.E.INCFF
|
||||
sec
|
||||
rts
|
||||
|
||||
>LDA.G STATBUF+S.STAT.SIZE+3
|
||||
dey
|
||||
ora (pData),y
|
||||
bne .90
|
||||
|
||||
dey
|
||||
lda (pData),y Size HI
|
||||
adc #4 1K more
|
||||
|
||||
ldy #0 Size LO
|
||||
FILE.New >LDYAI 4096
|
||||
>STYA BufLen
|
||||
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA BufPtr
|
||||
|
||||
txa
|
||||
>STA.G hBuffer
|
||||
|
||||
ldy #0
|
||||
|
||||
ldx #0
|
||||
>STA.G hBuffer FileLen already set to 0
|
||||
|
||||
.1 lda (BufPtrBackup),y
|
||||
beq .8
|
||||
|
||||
cpx #C.CR
|
||||
bne .2
|
||||
lda #0
|
||||
sta (BufPtr)
|
||||
|
||||
cmp #C.LF
|
||||
beq .5
|
||||
stz FileLen
|
||||
stz FileLen+1
|
||||
|
||||
.2 cmp #C.SPACE
|
||||
bcs .3
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
FILE.Load jsr BUF.ResetSel
|
||||
|
||||
cmp #C.CR
|
||||
bne .5
|
||||
>PUSHEA.G STATBUF
|
||||
>LDA.G hFileName
|
||||
>SYSCALL GetMemPtr
|
||||
>SYSCALL stat
|
||||
bcs FILE.New
|
||||
|
||||
>LDA.G STATBUF+S.STAT.P.TYPE
|
||||
cmp #S.FI.T.TXT
|
||||
beq FILE.Load.TXT
|
||||
cmp #$FA S-C/ASM?
|
||||
bne .9
|
||||
|
||||
.3 sta (BufPtr)
|
||||
inc BufPtr
|
||||
bne .4
|
||||
inc BufPtr+1
|
||||
.4 inc FileLen
|
||||
bne .5
|
||||
inc FileLen+1
|
||||
|
||||
.5 tax set previous char
|
||||
iny
|
||||
bne .1
|
||||
|
||||
inc BufPtrBackup+1
|
||||
bra .1
|
||||
|
||||
.8 sta (BufPtr)
|
||||
clc
|
||||
.9 jmp BUF.ResetSel
|
||||
|
||||
.90 lda #E.FTB
|
||||
jmp FILE.Load.ASM
|
||||
|
||||
.9 lda #MLI.E.INCFF
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
LoadFile.TXT stz FileLen
|
||||
FILE.Load.TXT stz FileLen
|
||||
stz FileLen+1
|
||||
|
||||
>PUSHWZ Aux type
|
||||
stz TmpByte hLineBuffer
|
||||
stz TmpIndex hFile
|
||||
|
||||
>STZ.G FileType
|
||||
|
||||
jsr FILE.GetBuffer
|
||||
bcs .99
|
||||
|
||||
>LDYA 256
|
||||
>SYSCALL GetMem
|
||||
bcs .99
|
||||
|
||||
>STYA ZPPTR1
|
||||
stx TmpByte
|
||||
|
||||
>PUSHWZ Aux type
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHBI O.RDONLY+O.TEXT
|
||||
>LDA.G hFileName
|
||||
>SYSCALL GetMemPtr
|
||||
>SYSCALL fopen
|
||||
bcs .9
|
||||
.99 bcs .9
|
||||
|
||||
txa
|
||||
>STA.G hFile
|
||||
sta TmpIndex
|
||||
|
||||
.1 >PUSHWI 254
|
||||
>PUSHW ZPPTR1
|
||||
lda TmpIndex
|
||||
>SYSCALL fread
|
||||
bcs .8
|
||||
|
||||
lda #0
|
||||
sta (ZPPTR1),y Y = line len
|
||||
|
||||
lda (ZPPTR1)
|
||||
|
||||
clc
|
||||
eor #C.LF
|
||||
bne .2
|
||||
|
||||
lda #2
|
||||
>STA.G FileType
|
||||
sec
|
||||
|
||||
.9 rts
|
||||
.2 lda ZPPTR1
|
||||
adc #0
|
||||
tay
|
||||
|
||||
lda ZPPTR1+1
|
||||
adc #0
|
||||
>PUSHYA
|
||||
>LDYA BufPtr
|
||||
>SYSCALL strcat
|
||||
bra .1
|
||||
|
||||
.8 cmp #MLI.E.EOF
|
||||
bne .9
|
||||
|
||||
>LDYA BufPtr
|
||||
>SYSCALL strlen
|
||||
>STYA FileLen
|
||||
|
||||
clc
|
||||
.9 jmp FILE.Load.Cleanup
|
||||
*--------------------------------------
|
||||
LoadFile.ASM
|
||||
FILE.Load.ASM
|
||||
lda #MLI.E.INCFF
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SaveFile >PUSHWZ Aux type
|
||||
FILE.Load.Cleanup
|
||||
php
|
||||
pha
|
||||
lda TmpByte
|
||||
beq .1
|
||||
>SYSCALL freemem
|
||||
|
||||
.1 lda TmpIndex
|
||||
beq .2
|
||||
|
||||
>SYSCALL fclose
|
||||
|
||||
.2 pla
|
||||
plp
|
||||
rts
|
||||
*--------------------------------------
|
||||
FILE.Save >PUSHWZ Aux type
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHBI O.CREATE+O.WRONLY
|
||||
>LDA.G hFileName
|
||||
@ -144,6 +164,37 @@ SaveFile >PUSHWZ Aux type
|
||||
jsr SCRN.UpdateTopBar
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
|
||||
dey
|
||||
ora (pData),y
|
||||
bne .9
|
||||
|
||||
dey
|
||||
lda (pData),y Size HI
|
||||
cmp #16
|
||||
bcs .1
|
||||
|
||||
lda #13 Min = 3k
|
||||
|
||||
.1 adc #3 1K more
|
||||
|
||||
ldy #0 Size LO
|
||||
>STYA BufLen
|
||||
>SYSCALL GetMem
|
||||
bcs .99
|
||||
>STYA BufPtr
|
||||
|
||||
txa
|
||||
>STA.G hBuffer
|
||||
|
||||
lda #0
|
||||
sta (BufPtr)
|
||||
|
||||
rts
|
||||
|
||||
.9 lda #E.FTB
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/EDIT.S.FILE
|
||||
|
@ -44,6 +44,10 @@ SCRN.UpdateTopBar
|
||||
>LDYA L.MSG.GOTOXY
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
>LDA.G FileType
|
||||
tax
|
||||
>PUSHW L.MSG.FILETYPES,x
|
||||
|
||||
>LDA.G hFileName
|
||||
beq .1
|
||||
@ -54,7 +58,7 @@ SCRN.UpdateTopBar
|
||||
.1 >LDYA L.MSG.NEWFILE
|
||||
|
||||
.2 >PUSHYA
|
||||
>PUSHBI 2
|
||||
>PUSHBI 4
|
||||
>PUSHW L.MSG.TOPBAR
|
||||
>LDYA ZPPTR1
|
||||
>SYSCALL sprintf
|
||||
@ -340,7 +344,6 @@ SCRN.LineBufOutBar
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
jmp SCRN.GotoCurXCurY
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.CursorAdjust
|
||||
@ -396,7 +399,10 @@ SCRN.UpdateViewPort
|
||||
ror bRepaint
|
||||
bra .1
|
||||
|
||||
.2 >LDA.G ScreenX
|
||||
.2 bit bRepaint
|
||||
bmi .30
|
||||
|
||||
.21 >LDA.G ScreenX
|
||||
>ADC.G ScreenW
|
||||
dec
|
||||
>CMP.G FileX
|
||||
@ -405,16 +411,17 @@ SCRN.UpdateViewPort
|
||||
>INC.G ScreenX
|
||||
sec
|
||||
ror bRepaint
|
||||
bra .2
|
||||
bra .21
|
||||
|
||||
.3 ldy #FileY+1
|
||||
lda (pData),y
|
||||
.3 bit bRepaint
|
||||
.30 bmi .6
|
||||
|
||||
.31 >LDA.G FileY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y A,X = FileY
|
||||
|
||||
ldy #ScreenY
|
||||
cmp (pData),y
|
||||
>CMP.G ScreenY
|
||||
iny
|
||||
txa
|
||||
sbc (pData),y
|
||||
@ -422,26 +429,27 @@ SCRN.UpdateViewPort
|
||||
|
||||
>DECW.G ScreenY move viewport up one line....
|
||||
bit bRepaint
|
||||
bmi .3 skip scroll, will be repainted later
|
||||
bmi .31 skip scroll, will be repainted later
|
||||
|
||||
jsr SCRN.scrollDn ...and move content one line down
|
||||
bcc .3
|
||||
bcc .31
|
||||
rts
|
||||
|
||||
.4 ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
.4 bit bRepaint
|
||||
bmi .6
|
||||
|
||||
.41 >LDA.G ScreenY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
||||
>ADC.G ViewPortHm1
|
||||
>ADC.G ViewPortHm2
|
||||
bcc .5
|
||||
|
||||
inx
|
||||
|
||||
.5 ldy #FileY A,X = screen bottom
|
||||
clc
|
||||
sbc (pData),y
|
||||
cmp (pData),y
|
||||
txa
|
||||
iny FileY > screen bottom ?
|
||||
sbc (pData),y
|
||||
@ -449,11 +457,10 @@ SCRN.UpdateViewPort
|
||||
|
||||
>INCW.G ScreenY move viewport down one line....
|
||||
bit bRepaint
|
||||
bmi .4
|
||||
bmi .41
|
||||
|
||||
jsr SCRN.scrollUp ...and move content one line up
|
||||
bcc .4
|
||||
|
||||
bcc .41
|
||||
.9 rts
|
||||
|
||||
.6 >LDA.G FileX
|
||||
@ -489,8 +496,7 @@ SCRN.scrollUp >LDA.G CurX
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
>LDA.G ScreenY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
@ -520,8 +526,7 @@ SCRN.scrollDn >LDA.G CurX
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
>LDA.G ScreenY+1
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
|
@ -3,11 +3,12 @@ NEW
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF BIN/EDIT
|
||||
.TF BIN/EDIT2
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/MLI.I
|
||||
.INB INC/MLI.E.I
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
@ -26,6 +27,7 @@ FileLen .BS 2
|
||||
BufLen .BS 2
|
||||
SelLen .BS 2
|
||||
TmpLen .BS 2
|
||||
|
||||
TmpIndex .BS 2
|
||||
|
||||
ZPPTR1 .BS 2
|
||||
@ -73,6 +75,9 @@ L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
|
||||
L.SEQ.CEOL .DA SEQ.CEOL
|
||||
L.SEQ.BAR .DA SEQ.BAR
|
||||
L.MSG.TOPBAR .DA MSG.TOPBAR
|
||||
L.MSG.FILETYPES .DA MSG.TXTCR
|
||||
.DA MSG.TXTCRLF
|
||||
.DA MSG.TXTASM
|
||||
L.MSG.STATUSBAR .DA MSG.STATUSBAR
|
||||
.DA MSG.STATUSBAR.H
|
||||
.DA MSG.STATUSBAR.F
|
||||
@ -123,12 +128,12 @@ J.CTRL .DA Ctrl.Invalid
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
rts
|
||||
CS.INIT.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN >PUSHBI 0
|
||||
>LDYA L.SEQ.DETECT
|
||||
>SYSCALL printf Send Query for term W & H
|
||||
bcs CS.RUN.RTS
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
.1 >SYSCALL GetChar
|
||||
bcs CS.RUN.RTS
|
||||
@ -150,19 +155,15 @@ CS.RUN >PUSHBI 0
|
||||
>SYSCALL RealPath
|
||||
txa
|
||||
>STA.G hFileName
|
||||
jsr LoadFile
|
||||
jsr FILE.Load
|
||||
bcc .3 if CS, Failed to load file, keep name, but new file....
|
||||
|
||||
cmp #E.OOM
|
||||
beq CS.RUN.RTS
|
||||
|
||||
.2 >LDYAI 1 buffer size = 0 (+ 1 for ending 0)
|
||||
>SYSCALL GetMem0
|
||||
.2 jsr FILE.New
|
||||
bcs CS.RUN.RTS
|
||||
|
||||
txa
|
||||
>STA.G hBuffer FileLen already set to 0
|
||||
|
||||
.3 lda #$ff
|
||||
>STA.G bSaved
|
||||
|
||||
@ -317,6 +318,10 @@ CharIn.Esc >STZ.G bEscMode
|
||||
|
||||
>STA.G ViewPortHm1 Remove 1 more to store offsert to last line of viewport
|
||||
|
||||
dec
|
||||
|
||||
>STA.G ViewPortHm2
|
||||
|
||||
ply
|
||||
stz TmpByte
|
||||
|
||||
@ -364,7 +369,10 @@ SEQ.NORM .AZ "\e[0m"
|
||||
SEQ.INV .AZ "\e[7m"
|
||||
SEQ.EDIT .AS "\e[93;44m" +SEQ.CEOL
|
||||
SEQ.CEOL .AZ "\e[K"
|
||||
MSG.TOPBAR .AZ "A2osX Edit:%s"
|
||||
MSG.TOPBAR .AZ "A2osX Edit:%s %s"
|
||||
MSG.TXTCR .AZ "TXT/CR"
|
||||
MSG.TXTCRLF .AZ "TXT/CRLF"
|
||||
MSG.TXTASM .AZ "S-C/ASM"
|
||||
MSG.STATUSBAR .AZ "(Press Ctrl-A For Help) Len: %5D Pos: %5D Col: %3d Line: %5D"
|
||||
MSG.STATUSBAR.H .AZ "Press any key to exit this screen:"
|
||||
MSG.STATUSBAR.F .AZ "Find:%s"
|
||||
@ -397,7 +405,7 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
|
||||
>PSTR " Ctrl-Z : Erase char under cursor"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
MSG.NEWFILE .AZ "(new file)"
|
||||
MSG.NEWFILE .AZ "newfile"
|
||||
EscChars >PSTR "DBAC"
|
||||
EscAscii .HS 04080A0B15
|
||||
*--------------------------------------
|
||||
@ -409,10 +417,9 @@ PromptBufPtr .BS 1
|
||||
PromptMode .BS 1
|
||||
bExit .BS 1
|
||||
bSaved .BS 1
|
||||
bCRLF .BS 1
|
||||
bEscMode .BS 1
|
||||
EscBuffer .BS 16
|
||||
hFile .BS 1
|
||||
FileType .BS 1
|
||||
hFileName .BS 1
|
||||
hFind .BS 1
|
||||
hReplace .BS 1
|
||||
@ -427,6 +434,7 @@ ScreenW .BS 1
|
||||
ScreenH .BS 1
|
||||
ViewPortH .BS 1
|
||||
ViewPortHm1 .BS 1
|
||||
ViewPortHm2 .BS 1
|
||||
FileX .BS 1
|
||||
FileY .BS 2
|
||||
ScreenX .BS 1
|
||||
|
@ -47,23 +47,23 @@ ERR.Count .EQ *-ERR.Codes
|
||||
*--------------------------------------
|
||||
ERR.Messages >PSTR "I/O Error"
|
||||
>PSTR "No Device"
|
||||
>PSTR "Disk Write-Protected"
|
||||
>PSTR "Disk Write-Prot."
|
||||
>PSTR "Disk Switched"
|
||||
>PSTR "Device Is Offline"
|
||||
>PSTR "Offline Device"
|
||||
>PSTR "Invalid Path"
|
||||
>PSTR "Path Not Found"
|
||||
>PSTR "Volume Not Found"
|
||||
>PSTR "Vol Not Found"
|
||||
>PSTR "File Not Found"
|
||||
>PSTR "Duplicate Filename"
|
||||
>PSTR "Volume Is Full"
|
||||
>PSTR "Directory Is Full"
|
||||
>PSTR "Unsupported Storage Type"
|
||||
>PSTR "Dup. Filename"
|
||||
>PSTR "Vol Is Full"
|
||||
>PSTR "Dir Is Full"
|
||||
>PSTR "Unsupp. Storage"
|
||||
>PSTR "End Of File"
|
||||
>PSTR "File Access Error, File Locked"
|
||||
>PSTR "File Already Open"
|
||||
>PSTR "File Locked"
|
||||
>PSTR "File Opened"
|
||||
*--------------------------------------
|
||||
>PSTR "Out Of Memory"
|
||||
>PSTR "Out Of Memory Handle"
|
||||
>PSTR "Out Of Handle"
|
||||
>PSTR "Invalid Handle"
|
||||
>PSTR "Buffer Overflow"
|
||||
>PSTR "Bad Path"
|
||||
@ -71,20 +71,20 @@ ERR.Messages >PSTR "I/O Error"
|
||||
>PSTR "No Such Process"
|
||||
>PSTR "Syntax Error"
|
||||
>PSTR "Env Is Full"
|
||||
>PSTR "Invalid BIN format"
|
||||
>PSTR "Invalid BIN"
|
||||
>PSTR "File Too Big"
|
||||
>PSTR "User Interrupt"
|
||||
*--------------------------------------
|
||||
>PSTR "Command Syntax Error"
|
||||
>PSTR "Expression Syntax Error"
|
||||
>PSTR "Cmd Syntax Error"
|
||||
>PSTR "Exp. Syntax Error"
|
||||
>PSTR "Stack Error"
|
||||
>PSTR "Stack Overflow"
|
||||
>PSTR "LOOP Without WHILE"
|
||||
>PSTR "NEXT Without FOR"
|
||||
>PSTR "FI/ELSE Without IF"
|
||||
>PSTR "Bad File Type"
|
||||
>PSTR "Undefined Function"
|
||||
>PSTR "Unexpected EOF"
|
||||
>PSTR "Undef. Function"
|
||||
>PSTR "Unexp. EOF"
|
||||
*--------------------------------------
|
||||
>PSTR "Unknown Error"
|
||||
*--------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user