mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-04 18:32:56 +00:00
CIFS/EDIT fix Part1
This commit is contained in:
parent
45d654382a
commit
369df00095
Binary file not shown.
Binary file not shown.
@ -71,7 +71,11 @@ A2osX.QC.Start1 sei
|
||||
cmp $2004
|
||||
bne .8
|
||||
|
||||
ldx $280
|
||||
|
||||
* $2005 = BufSize
|
||||
* $2006 = PathLen
|
||||
* $2007... Path
|
||||
|
||||
|
||||
.8 jmp $2000
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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...
|
||||
|
Loading…
x
Reference in New Issue
Block a user