A2osX/BIN/EDIT.S.FILE.txt

435 lines
6.2 KiB
Plaintext
Raw Normal View History

2019-11-06 13:14:42 +00:00
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
2019-12-16 13:14:11 +00:00
FILE.New jsr BUF.ResetSel
2019-12-17 12:28:49 +00:00
jsr SCRN.UpdateStatusBar
2019-12-16 13:14:11 +00:00
>LDYA L.MSG.NEWFILE
2020-02-14 07:21:56 +00:00
FILE.New.1 >PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
2019-12-16 13:14:11 +00:00
bcs .9
txa
>STA.G hFileName
2020-01-26 19:36:49 +00:00
>LDYAI 1024
2019-11-12 16:39:22 +00:00
>STYA BufLen
>SYSCALL GetMem
bcs .9
2019-11-17 14:39:55 +00:00
>STYA BufPtr
2019-11-15 16:15:43 +00:00
>STYA.G BufBase
2019-11-12 16:39:22 +00:00
txa
2020-01-23 14:48:22 +00:00
>STA.G hBuf FileLen already set to 0
2019-11-12 16:39:22 +00:00
lda #0
sta (BufPtr)
stz FileLen
2019-11-06 13:14:42 +00:00
stz FileLen+1
2019-11-27 16:47:13 +00:00
2019-12-17 12:28:49 +00:00
jsr SCRN.Home
clc
2019-11-12 16:39:22 +00:00
.9 rts
2019-11-06 13:14:42 +00:00
*--------------------------------------
2019-11-12 16:39:22 +00:00
FILE.Load jsr BUF.ResetSel
2019-12-17 12:28:49 +00:00
jsr SCRN.UpdateStatusBar
2019-12-16 13:14:11 +00:00
2019-11-06 13:14:42 +00:00
>LDA.G hFileName
>SYSCALL GetMemPtr
2020-02-14 07:21:56 +00:00
>PUSHYA
>PUSHEA.G STATBUF
2019-11-06 16:25:00 +00:00
>SYSCALL stat
2019-12-16 13:14:11 +00:00
bcc .1
>LDA.G hFileName
>SYSCALL GetMemPtr
2020-02-14 07:21:56 +00:00
jmp FILE.New.1
2019-11-12 16:39:22 +00:00
2020-02-12 14:42:07 +00:00
.1 >LDYAI 256
>SYSCALL GetMem
bcs .9
2019-11-06 13:14:42 +00:00
2020-02-12 14:42:07 +00:00
>STYA ZPPTR1
stx TmpByte
>LDA.G STATBUF+S.STAT.P.TYPE
cmp #S.FI.T.TXT
bne .2
jsr FILE.Load.TXT
bra .8
2019-11-06 13:14:42 +00:00
2020-02-12 14:42:07 +00:00
.2 cmp #$FA S-C/ASM?
beq .3
lda #MLI.E.INCFF
2019-11-06 13:14:42 +00:00
sec
rts
2020-02-12 14:42:07 +00:00
.3 jsr FILE.Load.ASM
.8 php
pha
lda TmpByte
>SYSCALL freemem
pla
plp
.9 rts
2019-11-12 16:39:22 +00:00
*--------------------------------------
FILE.Load.TXT stz FileLen
stz FileLen+1
2019-11-06 13:14:42 +00:00
2019-12-17 12:28:49 +00:00
jsr SCRN.Home
2019-11-12 16:39:22 +00:00
stz TmpIndex hFile
2019-11-06 13:14:42 +00:00
2019-11-12 16:39:22 +00:00
>STZ.G FileType
2019-11-06 13:14:42 +00:00
2020-02-11 16:32:33 +00:00
ldx #S.FI.T.TXT
jsr FILE.OpenTypeX
2020-01-27 16:33:11 +00:00
bcs .99
2019-11-06 16:25:00 +00:00
2019-11-12 16:39:22 +00:00
sta TmpIndex
2020-02-14 07:21:56 +00:00
>PUSHA
2020-01-27 16:33:11 +00:00
>PUSHEA.G STATBUF
2020-02-14 07:21:56 +00:00
2020-01-27 16:33:11 +00:00
>SYSCALL fstat
bcs .99
2019-11-17 14:39:55 +00:00
2020-01-27 16:33:11 +00:00
jsr FILE.GetBuffer
.99 bcs .9
2019-11-12 16:39:22 +00:00
.1 >PUSHWI 254
>PUSHW ZPPTR1
lda TmpIndex
>SYSCALL fread
2019-11-17 14:39:55 +00:00
bcs .7
2019-11-12 16:39:22 +00:00
lda #0
sta (ZPPTR1),y Y = line len
2020-01-27 16:33:11 +00:00
2019-11-17 14:39:55 +00:00
ldx #0
ldy #0
2020-01-27 16:33:11 +00:00
2019-11-12 16:39:22 +00:00
lda (ZPPTR1)
2019-11-17 14:39:55 +00:00
beq .8
2019-11-12 16:39:22 +00:00
eor #C.LF
bne .2
2019-11-06 16:25:00 +00:00
2019-11-17 14:39:55 +00:00
phy
2019-11-12 16:39:22 +00:00
lda #2
>STA.G FileType
2019-11-06 16:25:00 +00:00
2019-11-17 14:39:55 +00:00
ply
iny
2019-11-12 16:39:22 +00:00
2019-11-17 14:39:55 +00:00
.2 lda (ZPPTR1),y
beq .4
sta (BufPtr)
inc BufPtr
bne .3
inc BufPtr+1
.3 inx
iny
bra .2
.4 txa
clc
adc FileLen
sta FileLen
bcc .1
inc FileLen+1
2019-11-12 16:39:22 +00:00
bra .1
2019-11-17 14:39:55 +00:00
.7 cmp #MLI.E.EOF
2019-11-12 16:39:22 +00:00
bne .9
2019-11-17 14:39:55 +00:00
.8 lda #0
sta (BufPtr)
2019-11-12 16:39:22 +00:00
clc
2019-11-17 14:39:55 +00:00
.HS B0 BCS
.9 sec
jmp FILE.Close
2019-11-06 13:14:42 +00:00
*--------------------------------------
2020-02-11 16:32:33 +00:00
FILE.Load.ASM stz FileLen
stz FileLen+1
lda #4
>STA.G FileType
lda #8
jsr FILE.GetBufferA 2k buffer
bcs .9
ldx #$FA
jsr FILE.OpenTypeX
bcs .99
sta TmpIndex
.1 >PUSHWI 3
>PUSHW ZPPTR1
lda TmpIndex
>SYSCALL fread
bcs .7
lda #0
>PUSHA
lda (ZPPTR1)
dec
dec
dec
>PUSHA
>PUSHW ZPPTR1
lda TmpIndex
>SYSCALL fread
bcs .7
jsr FILE.Load.ASM.Decode
bcc .1
.7 cmp #MLI.E.EOF
bne .9
lda #0
sta (BufPtr)
clc
.HS B0 BCS
.9 sec
jmp FILE.Close
.99 rts
*--------------------------------------
FILE.Load.ASM.Decode
ldy #0
.1 lda (ZPPtr1),y
beq .8
iny
tax
bmi .2
jsr FILE.Load.ASM.2Buf
bcc .1
2020-02-12 14:42:07 +00:00
.9 rts
2020-02-11 16:32:33 +00:00
.2 cmp #$C0 REPEAT char?
bne .5
lda (ZPPtr1),y Get Repeat Count
iny
tax
lda (ZPPtr1),y Get Repeat Char
iny
.4 jsr FILE.Load.ASM.2Buf
2020-02-12 14:42:07 +00:00
bcs .9
2020-02-11 16:32:33 +00:00
dex
bne .4
bra .1
.5 and #$3F Compute blank count
tax
lda #C.SPACE
.6 jsr FILE.Load.ASM.2Buf
2020-02-12 14:42:07 +00:00
bcs .9
2020-02-11 16:32:33 +00:00
dex
bne .6
bra .1
.8 lda #C.CR
*--------------------------------------
FILE.Load.ASM.2Buf
phy
phx
sta (BufPtr)
inc BufPtr
bne .1
inc BufPtr+1
.1 inc FileLen
bne .8
inc FileLen+1
lda FileLen+1
cmp BufLen+1
bne .8
2020-02-12 14:42:07 +00:00
2020-02-11 16:32:33 +00:00
jsr BUF.BufPtr.Realloc
bcs .9
>LDA.G BufBase
* clc
adc FileLen
sta BufPtr
iny
lda (pData),y
adc FileLen+1
sta BufPtr+1
.8 clc
.9 plx
ply
rts
*--------------------------------------
2020-02-14 07:21:56 +00:00
FILE.OpenTypeX tax
2020-02-11 16:32:33 +00:00
>LDA.G hFileName
>SYSCALL GetMemPtr
2020-02-14 07:21:56 +00:00
>PUSHYA
>PUSHBI O.RDONLY
txa
>PUSHA
>PUSHWZ Aux type
2020-02-11 16:32:33 +00:00
>SYSCALL fopen
2019-11-06 13:14:42 +00:00
rts
*--------------------------------------
2019-11-17 14:39:55 +00:00
FILE.Save >LDYAI 256
>SYSCALL GetMem
2019-12-16 13:14:11 +00:00
bcs FILE.Save.9
2019-11-17 14:39:55 +00:00
>STYA ZPPTR1
stx TmpByte
2019-11-12 16:39:22 +00:00
2019-11-17 14:39:55 +00:00
>LDA.G FileType
tax
2019-11-12 16:39:22 +00:00
2019-11-17 14:39:55 +00:00
jmp (J.SAVE,x)
2019-12-16 13:14:11 +00:00
FILE.Save.9 rts
2019-11-12 16:39:22 +00:00
*--------------------------------------
2019-11-17 14:39:55 +00:00
FILE.Save.CR clc
.HS B0 BCS
FILE.Save.CRLF sec
ror TmpIndex+1
2019-12-16 13:14:11 +00:00
stz TmpIndex hFile
2019-11-17 14:39:55 +00:00
2019-11-06 13:14:42 +00:00
>LDA.G hFileName
>SYSCALL GetMemPtr
2020-02-14 07:21:56 +00:00
>PUSHYA
>PUSHBI O.CREATE+O.WRONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
2019-11-06 13:14:42 +00:00
>SYSCALL FOpen
2019-12-16 13:14:11 +00:00
bcs FILE.Save.9
2019-11-06 13:14:42 +00:00
2019-11-17 14:39:55 +00:00
sta TmpIndex
>LDYA.G BufBase
>STYA BufPtr
.1 lda (BufPtr)
beq .8
ldy #$ff
2019-11-06 13:14:42 +00:00
2019-11-17 14:39:55 +00:00
.2 iny
lda (BufPtr),y
sta (ZPPTR1),y
beq .3
cmp #C.CR
bne .2
iny
bit TmpIndex+1
bpl .3
iny
lda #C.LF
sta (ZPPTR1),y
.3 tya
beq .8
clc
adc BufPtr
sta BufPtr
bcc .4
inc BufPtr+1
.4 lda #0
>PUSHYA
>PUSHW ZPPTR1
lda TmpIndex
>SYSCALL FWrite
2019-12-17 12:28:49 +00:00
bcs FILE.Close
2019-11-06 13:14:42 +00:00
2019-11-17 14:39:55 +00:00
bra .1
2019-12-16 13:14:11 +00:00
2019-12-17 12:28:49 +00:00
.8 >STZ.G bUnSaved
*--------------------------------------
FILE.Close php
pha
lda TmpByte
beq .1
>SYSCALL freemem
2019-12-16 13:14:11 +00:00
2019-12-17 12:28:49 +00:00
.1 lda TmpIndex
beq .2
2019-12-16 13:14:11 +00:00
2019-12-17 12:28:49 +00:00
>SYSCALL fclose
2019-12-16 13:14:11 +00:00
2019-12-17 12:28:49 +00:00
.2 pla
plp
rts
2019-11-17 14:39:55 +00:00
*--------------------------------------
FILE.Save.ASM
clc
rts
2019-11-06 13:14:42 +00:00
*--------------------------------------
2019-11-12 16:39:22 +00:00
FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
dey
ora (pData),y
2020-02-11 16:32:33 +00:00
bne FILE.GetBuffer.9
2019-11-12 16:39:22 +00:00
dey
lda (pData),y Size HI
2020-01-27 16:33:11 +00:00
inc
inc
2020-02-11 16:32:33 +00:00
FILE.GetBufferA ldy #0 Size LO
2019-11-12 16:39:22 +00:00
>STYA BufLen
>SYSCALL GetMem
bcs .99
2019-11-15 16:15:43 +00:00
2019-11-17 14:39:55 +00:00
>STYA BufPtr
>STYA.G BufBase
2019-11-12 16:39:22 +00:00
txa
2020-01-23 14:48:22 +00:00
>STA.G hBuf
2020-02-11 16:32:33 +00:00
.99 rts
2019-11-12 16:39:22 +00:00
2020-02-11 16:32:33 +00:00
FILE.GetBuffer.9
lda #E.FTB
2019-11-12 16:39:22 +00:00
sec
2020-02-11 16:32:33 +00:00
rts
2019-11-06 13:14:42 +00:00
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.FILE
LOAD USR/SRC/BIN/EDIT.S
ASM