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 cmp $2004
bne .8 bne .8
ldx $280
* $2005 = BufSize
* $2006 = PathLen
* $2007... Path
.8 jmp $2000 .8 jmp $2000

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
NEW NEW
AUTO 4,1 AUTO 3,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* PRODOS Constants * PRODOS Constants
@ -65,6 +65,10 @@ S.FI.T .EQ $04
S.FI.T.TXT .EQ $04 S.FI.T.TXT .EQ $04
S.FI.T.BIN .EQ $06 S.FI.T.BIN .EQ $06
S.FI.T.DIR .EQ $0F 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.T.SYS .EQ $FF
S.FI.AUXTYPE .EQ $05 S.FI.AUXTYPE .EQ $05
S.FI.TBLKS .EQ $05 S.FI.TBLKS .EQ $05

View File

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

View File

@ -557,7 +557,55 @@ CIFS.CallBack bit CIFS.Status
*-------------------------------------- *--------------------------------------
.INB usr/src/lib/libcifs.io.s .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 ProDOS2TypeLess tax
beq .8 beq .8

View File

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

View File

@ -2,9 +2,19 @@ NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
FS.OPEN.REG >MLICALL MLIGETFILEINFO 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 bpl .9 No, return MLI error
ldx #2 Yes, Create... ldx #2 Yes, Create...