CIFS/EDIT fix Part1

This commit is contained in:
burniouf 2021-07-03 19:18:58 +02:00
parent 45d654382a
commit 369df00095
11 changed files with 161 additions and 161 deletions

Binary file not shown.

Binary file not shown.

View File

@ -71,7 +71,11 @@ A2osX.QC.Start1 sei
cmp $2004
bne .8
ldx $280
* $2005 = BufSize
* $2006 = PathLen
* $2007... Path
.8 jmp $2000

View File

@ -2,8 +2,7 @@ NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
FILE.New jsr BUF.ResetSel
jsr SCRN.UpdateStatusBar
FILE.New jsr FILE.Reset
>LDYA L.MSG.NEWFILE
@ -14,92 +13,35 @@ FILE.New.1 >PUSHYA
txa
>STA.G hFileName
>LDYAI 1024
>STYA BufLen
>SYSCALL GetMem
bcs .9
>STYA BufPtr
>STYA.G BufBase
txa
>STA.G hBuf FileLen already set to 0
lda #0
sta (BufPtr)
stz FileLen
stz FileLen+1
jsr SCRN.Home
clc
.9 rts
*--------------------------------------
FILE.Load jsr BUF.ResetSel
jsr SCRN.UpdateStatusBar
FILE.Load jsr FILE.Reset
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHEA.G STATBUF
>SYSCALL Stat
bcc .1
>LDA.G hFileName
>SYSCALL GetMemPtr
jmp FILE.New.1
.1 >LDYAI 256
>SYSCALL GetMem
bcs .99
>STYA ZPPTR1
stx TmpByte
>LDA.G STATBUF+S.STAT.P.TYPE
cmp #S.FI.T.TXT
bne .2
jsr FILE.Load.TXT
jmp FILE.Close
.2 cmp #$FA S-C/ASM?
bne .9
jsr FILE.Load.ASM
jmp FILE.Close
.9 lda TmpByte
>SYSCALL FreeMem
lda #MLI.E.INCFF
sec
.99 rts
*--------------------------------------
FILE.Load.TXT stz FileLen
stz FileLen+1
jsr SCRN.Home
stz TmpIndex hFile
>STZ.G FileType
jsr FILE.GetTmpBuf
bcs FILE.Load.RTS
ldx #S.FI.T.TXT
jsr FILE.OpenTypeX
bcs .9
lda #O.RDONLY
jsr FILE.OpenAX
bcs .1
>PUSHA
>PUSHEA.G STATBUF
jsr FILE.Load.TXT
jmp FILE.Close
.1 ldx #$FA
lda #O.RDONLY
jsr FILE.OpenAX
bcs .9
>SYSCALL FStat
bcs .9
jsr FILE.GetBuffer
bcs .9
jsr FILE.Load.ASM
jmp FILE.Close
.9 >LDA.G hFileName
>SYSCALL GetMemPtr
bra FILE.New.1
*--------------------------------------
FILE.Load.TXT
.1 ldy #0
jsr FILE.ReadY read 256
bcs .7
@ -119,23 +61,12 @@ FILE.Load.TXT stz FileLen
>STA.G FileType
ply
bra .5
bra .4
.3 sta (BufPtr)
inc BufPtr
bne .4
.3 jsr FILE.Load.2Buf
bcs FILE.Load.RTS
inc BufPtr+1
.4 cmp #C.CR
beq .5
inc FileLen
bne .5
inc FileLen+1
.5 dec TmpCount
.4 dec TmpCount
beq .1
iny
@ -151,22 +82,12 @@ FILE.Load.TXT stz FileLen
rts
.9 sec
rts
FILE.Load.RTS rts
*--------------------------------------
FILE.Load.ASM stz FileLen
stz FileLen+1
lda #4
FILE.Load.ASM lda #4
>STA.G FileType
lda #8
jsr FILE.GetBufferA 2k buffer
bcs .9
ldx #$FA
jsr FILE.OpenTypeX
bcs .99
.1 ldy #3
jsr FILE.ReadY
bcs .7
@ -205,7 +126,7 @@ FILE.Load.ASM.Decode
tax
bmi .2
jsr FILE.Load.ASM.2Buf
jsr FILE.Load.2Buf
bcc .1
.9 rts
@ -219,7 +140,7 @@ FILE.Load.ASM.Decode
.4 lda (ZPPTR1),y Get Repeat Char
jsr FILE.Load.ASM.2Buf
jsr FILE.Load.2Buf
bcs .9
dex
@ -233,7 +154,7 @@ FILE.Load.ASM.Decode
.6 lda #C.SPACE
jsr FILE.Load.ASM.2Buf
jsr FILE.Load.2Buf
bcs .9
dex
@ -243,8 +164,7 @@ FILE.Load.ASM.Decode
.8 lda #C.CR
*--------------------------------------
FILE.Load.ASM.2Buf
phy
FILE.Load.2Buf phy
phx
sta (BufPtr)
@ -278,21 +198,15 @@ FILE.Load.ASM.2Buf
.9 plx
ply
rts
FILE.Save.9 rts
*--------------------------------------
FILE.Save >LDYAI 256
>SYSCALL GetMem
FILE.Save jsr FILE.GetTmpBuf
bcs FILE.Save.9
>STYA ZPPTR1
stx TmpByte
>LDA.G FileType
tax
jmp (J.SAVE,x)
FILE.Save.9 rts
*--------------------------------------
FILE.Save.CR clc
.HS B0 BCS
@ -300,7 +214,8 @@ FILE.Save.CRLF sec
ror TmpIndex+1
ldx #S.FI.T.TXT
jsr FILE.CreateTypeX
lda #O.CREATE+O.WRONLY
jsr FILE.OpenAX
bcs FILE.Save.9
@ -353,8 +268,9 @@ FILE.Save.ASM stz TmpLen
inc TmpLen
ldx #$FA S-C/ASM
jsr FILE.CreateTypeX
ldx #S.FI.T.ASM
lda #O.CREATE+O.WRONLY
jsr FILE.OpenAX
bcs FILE.Save.99
>LDYA.G BufBase
@ -463,9 +379,10 @@ FILE.Close php
pha
lda TmpByte
beq .1
>SYSCALL FreeMem
.1 lda TmpIndex
.1 lda TmpIndex hFile
beq .2
>SYSCALL FClose
@ -474,12 +391,7 @@ FILE.Close php
plp
rts
*--------------------------------------
FILE.OpenTypeX lda #O.RDONLY
bra FILE.Open
FILE.CreateTypeX
lda #O.CREATE+O.WRONLY
FILE.Open stz TmpIndex
FILE.OpenAX stz TmpIndex hFile
phx
pha
@ -493,13 +405,14 @@ FILE.Open stz TmpIndex
>PUSHWZ Aux type
>SYSCALL FOpen
bcs .9
sta TmpIndex
sta TmpIndex hFile
.9 rts
*--------------------------------------
FILE.ReadY phy
>PUSHB TmpIndex
>PUSHB TmpIndex hFile
>PUSHW ZPPTR1
lda #0
@ -514,7 +427,7 @@ FILE.ReadY phy
*--------------------------------------
FILE.WriteY phy
>PUSHB TmpIndex
>PUSHB TmpIndex hFile
>PUSHW ZPPTR1
ply
@ -523,32 +436,43 @@ FILE.WriteY phy
>SYSCALL FWrite
rts
*--------------------------------------
FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
dey
ora (pData),y
bne FILE.GetBuffer.9
FILE.Reset >LDA.G hBuf
beq .1
dey
lda (pData),y Size HI
inc
inc
>SYSCALL FreeMem
FILE.GetBufferA ldy #0 Size LO
.1 >STZ.G hBuf
>STA.G FileType
stz FileLen
stz FileLen+1
jsr BUF.ResetSel
>LDYAI FILEBUF.SIZE
>STYA BufLen
>SYSCALL GetMem
bcs .99
bcs FILE.GetTmpBuf.RTS
>STYA BufPtr
>STYA.G BufBase
txa
>STA.G hBuf
.99 rts
lda #0
sta (BufPtr)
jmp SCRN.UpdateStatusBar
*--------------------------------------
FILE.GetTmpBuf >LDYAI 256
>SYSCALL GetMem
bcs .9
FILE.GetBuffer.9
lda #E.FTB
sec
rts
>STYA ZPPTR1
stx TmpByte
.9
FILE.GetTmpBuf.RTS
rts
*--------------------------------------
MAN
SAVE usr/src/bin/edit.s.file

View File

@ -10,8 +10,8 @@ SCRN.Init >PUSHW L.SEQ.INIT
>SYSCALL PrintF
bcs SCRN.Init.9
jsr SCRN.Home
jmp SCRN.Home
*--------------------------------------
SCRN.Repaint lda #$ff
>STA.G bUpdateTop
>STA.G bUpdateStatus

View File

@ -4,6 +4,8 @@ NEW
.OP 65C02
.OR $2000
.TF bin/edit
*--------------------------------------
FILEBUF.SIZE .EQ 2048
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
@ -68,7 +70,7 @@ L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
L.SEQ.SCROLLCURUP .DA SEQ.SCROLLCURUP
L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN
L.SEQ.CEOL .DA SEQ.CEOL
L.MSG.DETECT .DA MSG.DETECT
L.MSG.TERMCAP .DA MSG.TERMCAP
L.MSG.TOPBAR .DA MSG.TOPBAR
L.MSG.FILETYPES .DA MSG.TXTCR
.DA MSG.TXTCRLF
@ -143,7 +145,7 @@ J.DLG.CTRL.CharIn
CS.INIT clc
CS.INIT.RTS rts
*--------------------------------------
CS.RUN >PUSHW L.MSG.DETECT
CS.RUN >PUSHW L.MSG.TERMCAP
>PUSHBI 0
>SYSCALL PrintF Send Query for term W & H
bcs CS.INIT.RTS
@ -155,6 +157,8 @@ CS.RUN >PUSHW L.MSG.DETECT
>LDA.G ScreenW Wait for Response from terminal for W & H
beq .1
jsr SCRN.Init
>LDYAI 510+5+5+4+1 potentially 255*\\ NORM,INV,CEOL & \0
>SYSCALL GetMem
bcs CS.INIT.RTS
@ -181,7 +185,7 @@ CS.RUN >PUSHW L.MSG.DETECT
.2 jsr FILE.New
bcs CS.RUN.RTS
.3 jsr SCRN.Init
.3 jsr SCRN.Repaint
bcs CS.RUN.RTS
>LDYAI 65
@ -203,7 +207,7 @@ CS.RUN >PUSHW L.MSG.DETECT
lda #0
sta (ZPPTR1)
*--------------------------------------
CS.RUN.LOOP jsr GetCh
bcs CS.RUN.RTS I/O error
@ -482,7 +486,7 @@ SEQ.SCROLLUP .AZ "\eD"
SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr"
SEQ.SCROLLDN .AZ "\eM"
*--------------------------------------
MSG.DETECT .AZ "Querying term caps...\e[999;999H\e[6n"
MSG.TERMCAP .AZ "\e[999;999H\e[6n"
MSG.TOPBAR .AZ "A2osX Edit %d.%d:%s (%s)"
MSG.TXTCR .AZ "TXT/CR"
MSG.TXTCRLF .AZ "TXT/CRLF"
@ -494,6 +498,7 @@ MSG.STATUSBAR.S .AZ "%s Saved."
MSG.STATUSBAR.E .AZ "Error:%h"
MSG.GOTOXY .AZ "\e[%d;%dH"
MSG.HELPLINE .AZ "\e[0m\e[93;44m%S\e[K"
*--------------------------------------
MSG.HELP >PSTR "All commands:"
>PSTR "-------------"
>PSTR " Ctrl-A : This help screen"

View File

@ -1,5 +1,5 @@
NEW
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
* PRODOS Constants
@ -65,6 +65,10 @@ S.FI.T .EQ $04
S.FI.T.TXT .EQ $04
S.FI.T.BIN .EQ $06
S.FI.T.DIR .EQ $0F
S.FI.T.ASM .EQ $FA
S.FI.T.PIX .EQ $CB
S.FI.T.FON .EQ $CC
S.FI.T.PAK .EQ $CF
S.FI.T.SYS .EQ $FF
S.FI.AUXTYPE .EQ $05
S.FI.TBLKS .EQ $05

View File

@ -5,9 +5,12 @@ CIFS.ChTyp
CIFS2.ChTyp
*--------------------------------------
CIFS.ChMod
CIFS2.ChMod
CIFS2.ChMod >DEBUG
lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
CIFS.FStat
CIFS.FStat jsr GetPFD
*--------------------------------------
CIFS2.FStat >DEBUG
lda #MLI.E.BADCALL

View File

@ -557,7 +557,55 @@ CIFS.CallBack bit CIFS.Status
*--------------------------------------
.INB usr/src/lib/libcifs.io.s
*--------------------------------------
TypeLess2ProDOS
TypeLess2ProDOS ldy #$ff
.1 iny
lda (ZPPtr1),y
bne .1
tya
tax save finename len
sbc #4 "x.EXT" ?
beq .9
ldx #0
.4 phy Y = '.' offset
phx
.5 lda PRODOS.FT.TXT,x
iny
cmp (ZPPtr1),y
bne .6
inx
txa
and #3
bne .5
pla
lsr
lsr
tax
lda PRODOS.FT.HEX,x
ply Y = truncated len, A = type
rts
.6 pla
clc
adc #4
tax
ply
cpx #PRODOS.FT.END
bne .4
.9 lda #0 Y = full len, A = 0 (no type)
rts
*--------------------------------------
ProDOS2TypeLess tax
beq .8

View File

@ -62,6 +62,7 @@ ERRORX.ID .DA #MLI.E.BADCALL
.DA #MLI.E.DUPFILE
.DA #MLI.E.VOLFULL
.DA #MLI.E.DIRFULL
.DA #MLI.E.INCFF
.DA #MLI.E.UNSUPST
.DA #MLI.E.EOF
.DA #MLI.E.LOCKED
@ -110,6 +111,7 @@ ERRORX.MSG .AT "Bad MLI Call"
.AT "Dup. Filename"
.AT "Vol Is Full"
.AT "Dir Is Full"
.AT "Incompatible File Format"
.AT "Unsupp. Storage"
.AT "End Of File"
.AT "File Locked"

View File

@ -2,9 +2,19 @@ NEW
AUTO 3,1
*--------------------------------------
FS.OPEN.REG >MLICALL MLIGETFILEINFO
bcc .2 Already Exists
bcs .10
lda IO.Open.TYPE Already Exists
beq .2
cmp K.MLI.PARAMS+S.FI.T
beq .2
lda #MLI.E.INCFF
sec
rts
bit IO.Open.FLAGS Create if not exists ?
.10 bit IO.Open.FLAGS Create if not exists ?
bpl .9 No, return MLI error
ldx #2 Yes, Create...