mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-08 01:37:13 +00:00
Kernel 0.94
This commit is contained in:
parent
2ae41aa860
commit
74633bd4f5
Binary file not shown.
133
BIN/ATTR.S.txt
133
BIN/ATTR.S.txt
@ -25,6 +25,8 @@ ZPFullPath .BS 2
|
||||
|
||||
ArgIndex .BS 1
|
||||
bWrite .BS 1
|
||||
AttrAND .BS 1
|
||||
AttrORA .BS 1
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -58,7 +60,9 @@ L.MSG.ERR .DA MSG.ERR
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN inc ArgIndex
|
||||
CS.RUN dec AttrAND set mask = $ff
|
||||
|
||||
inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
@ -66,17 +70,13 @@ CS.RUN inc ArgIndex
|
||||
>STYA ZPPtr1
|
||||
lda (ZPPtr1)
|
||||
cmp #'-'
|
||||
beq .1
|
||||
|
||||
cmp #'+'
|
||||
bne .4
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
|
||||
ldx #OptionVars-OptionList-1
|
||||
|
||||
.2 cmp OptionList,x
|
||||
beq .3
|
||||
dex
|
||||
bpl .2
|
||||
.1 jsr CS.RUN.CheckSwitch
|
||||
bcc CS.RUN
|
||||
|
||||
.9 >PUSHW L.MSG.USAGE
|
||||
>PUSHBI 0
|
||||
@ -84,11 +84,6 @@ CS.RUN inc ArgIndex
|
||||
lda #E.SYN
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.3 ldy OptionVars,x
|
||||
lda #$80
|
||||
sta (pData),y
|
||||
bra CS.RUN
|
||||
*--------------------------------------
|
||||
.4 >LDA.G hSrcBasePath
|
||||
bne .9
|
||||
@ -204,9 +199,7 @@ CS.RUN.DIR lda (ZPFileName)
|
||||
>SYSCALL PrintF
|
||||
bcs .9
|
||||
|
||||
|
||||
|
||||
jsr CS.RUN.CheckErr
|
||||
jsr CS.RUN.SetAttr
|
||||
bcc .7
|
||||
|
||||
rts
|
||||
@ -243,12 +236,7 @@ CS.RUN.FILE jsr FilterMatch
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
jsr CS.RUN.CheckErr
|
||||
rts
|
||||
jmp CS.RUN.SetAttr
|
||||
|
||||
.2 >PUSHW L.MSG.FILEDUMP
|
||||
|
||||
@ -262,7 +250,17 @@ CS.RUN.FILE jsr FilterMatch
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CheckErr bcs .1
|
||||
CS.RUN.SetAttr >PUSHW ZPFullPath
|
||||
|
||||
ldy #S.STAT.P.ACCESS
|
||||
lda (ZPFileStat),y
|
||||
|
||||
and AttrAND
|
||||
ora AttrORA
|
||||
>PUSHA
|
||||
>SYSCALL SetAttr
|
||||
bcs .1
|
||||
|
||||
>LDYA L.MSG.OK
|
||||
>SYSCALL PutS
|
||||
rts
|
||||
@ -291,6 +289,75 @@ CS.RUN.GetFilePath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CheckSwitch
|
||||
ldy #2
|
||||
lda (ZPPtr1),y
|
||||
bne .4
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #'-'
|
||||
bne .9
|
||||
|
||||
dey
|
||||
lda (ZPPtr1),y
|
||||
|
||||
ldx #OptionVars-OptionList-1
|
||||
|
||||
.2 cmp OptionList,x
|
||||
beq .3
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
|
||||
.3 ldy OptionVars,x
|
||||
lda #$80
|
||||
sta (pData),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.4 iny
|
||||
lda (ZPPtr1),y
|
||||
bne .9
|
||||
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL strupr
|
||||
|
||||
ldx #AttrMask-AttrList2-1
|
||||
|
||||
.5 ldy #1
|
||||
lda (ZPPtr1),y
|
||||
cmp AttrList1,x
|
||||
bne .6
|
||||
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp AttrList2,x
|
||||
beq .7
|
||||
|
||||
.6 dex
|
||||
bpl .5
|
||||
sec
|
||||
rts
|
||||
|
||||
.7 sec
|
||||
ror bWrite
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #'-'
|
||||
beq .8
|
||||
|
||||
lda AttrMask,x
|
||||
tsb AttrORA
|
||||
clc
|
||||
rts
|
||||
|
||||
.8 lda AttrMask,x
|
||||
trb AttrAND
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Access2CSTR ldy #S.STAT.P.ACCESS
|
||||
lda (ZPFileStat),y
|
||||
|
||||
@ -344,6 +411,9 @@ CS.END
|
||||
*--------------------------------------
|
||||
OptionList .AS "CRcr"
|
||||
OptionVars .DA #bContinue,#bRecurse,#bContinue,#bRecurse
|
||||
AttrList1 .AS "DRBIWR"
|
||||
AttrList2 .AS "EENNRD"
|
||||
AttrMask .DA #S.FI.A.D,#S.FI.A.RN,#S.FI.A.B,#S.FI.A.I,#S.FI.A.W,#S.FI.A.R
|
||||
*--------------------------------------
|
||||
ATTRS .AS "DeReBn----InWrRd"
|
||||
*--------------------------------------
|
||||
@ -357,19 +427,6 @@ MSG.USAGE .AS "Usage : ATTR File(s) (*,? wildcards allowed)\r\n"
|
||||
.AS "+|-Wr : Write enable\r\n"
|
||||
.AZ "+|-Rd : Read enable\r\n"
|
||||
*--------------------------------------
|
||||
* 7 6 5 4 3 2 1 0
|
||||
* +--+--+--+--+--+--+--+--+
|
||||
* |D |RN|B |Reserved|W |R |
|
||||
* +--+--+--+--+--+--+--+--+
|
||||
*
|
||||
* D: Destroy enable bit
|
||||
* RN: Rename enable bit
|
||||
* B: Backup needed bit
|
||||
* W: Write enable bit
|
||||
* R: Read enable bit
|
||||
*
|
||||
* Bit 2 = Invisible Bit (TECH NOTE #23)
|
||||
*--------------------------------------
|
||||
MSG.OK .AZ "[OK]"
|
||||
MSG.ERR .AZ "[%h]\r\n"
|
||||
MSG.DIRDUMP .AZ "%s %s/\r\n"
|
||||
|
@ -12,7 +12,7 @@ NEW
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPSPtr .BS 2
|
||||
ZPPtr1 .BS 2
|
||||
Count .BS 1
|
||||
Index .BS 1
|
||||
ZS.END
|
||||
@ -38,16 +38,27 @@ CS.START cld
|
||||
.DA CS.RUN
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.MSG0 .DA MSG0
|
||||
L.MSGPS .DA MSGPS
|
||||
L.MSGDEV .DA MSGDEV
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN >PUSHW L.MSG0
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
CS.RUN jsr CS.RUN.PS
|
||||
|
||||
jsr CS.RUN.DEV
|
||||
|
||||
>PUSHBI 2
|
||||
|
||||
>PUSHBI 1 INITD
|
||||
>SYSCALL kill
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PS
|
||||
.10 stz Count
|
||||
|
||||
ldx #0
|
||||
@ -57,9 +68,9 @@ CS.RUN >PUSHW L.MSG0
|
||||
beq .7
|
||||
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPSPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPSPtr)
|
||||
lda (ZPPtr1)
|
||||
bmi .6 HOLD
|
||||
|
||||
ldy #S.PS.S
|
||||
@ -67,7 +78,7 @@ CS.RUN >PUSHW L.MSG0
|
||||
beq .6
|
||||
|
||||
ldy #S.PS.PID
|
||||
lda (ZPPSPtr),y
|
||||
lda (ZPPtr1),y
|
||||
beq .7
|
||||
|
||||
cmp #1
|
||||
@ -76,13 +87,13 @@ CS.RUN >PUSHW L.MSG0
|
||||
cmp (pPS),y don't kill myself
|
||||
beq .7
|
||||
|
||||
>PUSHW L.MSG0
|
||||
>PUSHW L.MSGPS
|
||||
ldy #S.PS.PID
|
||||
lda (ZPPSPtr),y
|
||||
lda (ZPPtr1),y
|
||||
>PUSHA
|
||||
|
||||
ldy #S.PS.hARGV
|
||||
lda (ZPPSPtr),y
|
||||
lda (ZPPtr1),y
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
|
||||
@ -92,7 +103,7 @@ CS.RUN >PUSHW L.MSG0
|
||||
>PUSHBI 2
|
||||
|
||||
ldy #S.PS.PID
|
||||
lda (ZPPSPtr),y
|
||||
lda (ZPPtr1),y
|
||||
>SYSCALL kill
|
||||
|
||||
.6 inc Count
|
||||
@ -106,13 +117,40 @@ CS.RUN >PUSHW L.MSG0
|
||||
|
||||
lda Count
|
||||
bne .10
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DEV ldx #1
|
||||
stx Index
|
||||
|
||||
.1 lda Dev.Table-1,x
|
||||
sta ZPPtr1
|
||||
lda Dev.Table,x
|
||||
sta ZPPtr1+1
|
||||
beq .7
|
||||
|
||||
.8 lda #0 tell Kernel that all done ok, but
|
||||
sec we do not want to stay in memory
|
||||
.9 rts
|
||||
>PUSHW L.MSGDEV
|
||||
>PUSHB Index
|
||||
|
||||
lda ZPPtr1
|
||||
clc
|
||||
adc #S.FD.DEV
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
adc /S.FD.DEV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 3
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
.7 inc Index
|
||||
inc index
|
||||
|
||||
.90 lda #E.SYN
|
||||
sec
|
||||
ldx Index
|
||||
cpx #K.DEV.MAX*2+1
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
@ -122,7 +160,8 @@ CS.QUIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
MSG0 .AZ "SHUTDOWN:Killing process %3d, %s\r\n"
|
||||
MSGPS .AZ "SHUTDOWN:Killing process %3d, %s\r\n"
|
||||
MSGDEV .AZ "SHUTDOWN:Closing device %3d, %s\r\n"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -43,7 +43,8 @@ CS.START cld
|
||||
.DA CS.QUIT
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.Filename .DA MSG.Filename
|
||||
L.MSG.Mode .DA MSG.Mode
|
||||
L.MSG.Access .DA MSG.Access
|
||||
L.MSG.Mod .DA MSG.Mod
|
||||
L.MSG.UIDGIDSIZE .DA MSG.UIDGIDSIZE
|
||||
L.FMT.DateTime .DA FMT.DateTime
|
||||
L.MSG.AMCTimes .DA MSG.AMCTimes
|
||||
@ -113,8 +114,14 @@ CS.RUN.DUMP lda ArgFile
|
||||
pla
|
||||
>SYSCALL FreeMem
|
||||
|
||||
jsr Access2CSTR
|
||||
>PUSHW L.MSG.Access
|
||||
>PUSHEA.G ATTR
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
|
||||
jsr Mod2CSTR
|
||||
>PUSHW L.MSG.Mode
|
||||
>PUSHW L.MSG.MOD
|
||||
>PUSHEA.G MOD
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
@ -131,6 +138,37 @@ CS.RUN.DUMP lda ArgFile
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
Access2CSTR ldy #S.STAT.P.ACCESS
|
||||
lda (pData),y
|
||||
|
||||
ldy #ATTR+15
|
||||
ldx #15
|
||||
|
||||
.1 lsr
|
||||
pha
|
||||
bcc .2
|
||||
|
||||
lda ATTRS,x
|
||||
sta (pData),y
|
||||
dex
|
||||
dey
|
||||
lda ATTRS,x
|
||||
sta (pData),y
|
||||
bra .3
|
||||
|
||||
.2 lda #'-'
|
||||
sta (pData),y
|
||||
dex
|
||||
dey
|
||||
sta (pData),y
|
||||
|
||||
.3 pla
|
||||
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
Mod2CSTR ldy #S.STAT.MODE+1
|
||||
lda (pData),y
|
||||
@ -252,6 +290,7 @@ CS.END
|
||||
*--------------------------------------
|
||||
OptionList .AS "Cc"
|
||||
OptionVars .DA #bFormatStr,#bFormatStr
|
||||
ATTRS .AS "DeReBn----InWrRd"
|
||||
TYPES .AS "-dbclssp"
|
||||
ACCESS .AS "xwrxwrxwr"
|
||||
MSG.NODATE .AZ "<No-Date>"
|
||||
@ -260,7 +299,8 @@ FMT.DateTime .AZ "%d-%b-%y %H:%M:%S"
|
||||
MSG.USAGE .AS "Usage : STAT File\r\n"
|
||||
.AZ " -C : Format\r\n"
|
||||
MSG.Filename .AZ "Filename : %s\r\n"
|
||||
MSG.Mode .AZ "Access : %s\r\n"
|
||||
MSG.Access .AZ "Access : %s\r\n"
|
||||
MSG.Mod .AZ "Mod : %s\r\n"
|
||||
MSG.UIDGIDSIZE .AS "UID : %10D\r\n"
|
||||
.AS "GID : %10D\r\n"
|
||||
.AS "Size : %10u\r\n"
|
||||
@ -273,6 +313,7 @@ MSG.AMCTimes .AS "Created : %s\r\n"
|
||||
.OR 0
|
||||
DS.START
|
||||
StatBuf .BS S.STAT
|
||||
ATTR .BS 17
|
||||
MOD .BS 11 drwxrwxrwx + \0
|
||||
TIME.Access .BS 20
|
||||
TIME.Mod .BS 20
|
||||
|
@ -236,7 +236,7 @@ SYS.SScanF .EQ $52
|
||||
* .EQ $58
|
||||
* .EQ $5A
|
||||
* .EQ $5C
|
||||
* .EQ $5E
|
||||
SYS.SetAttr .EQ $5E
|
||||
*--------------------------------------D2
|
||||
* MOUNT
|
||||
SYS.Mount .EQ $60
|
||||
|
@ -40,9 +40,23 @@ MLISETFILEINFOEX .EQ $D4
|
||||
MLIGETFILEINFOEX .EQ $D5
|
||||
MLIACL .EQ $D6
|
||||
*--------------------------------------
|
||||
* 7 6 5 4 3 2 1 0
|
||||
* +--+--+--+--+--+--+--+--+
|
||||
* |D |RN|B |Reserved|W |R |
|
||||
* +--+--+--+--+--+--+--+--+
|
||||
*
|
||||
* D: Destroy enable bit
|
||||
* RN: Rename enable bit
|
||||
* B: Backup needed bit
|
||||
* W: Write enable bit
|
||||
* R: Read enable bit
|
||||
*
|
||||
* Bit 2 = Invisible Bit (TECH NOTE #23)
|
||||
*--------------------------------------
|
||||
S.FI.A .EQ $03
|
||||
S.FI.A.R .EQ $01
|
||||
S.FI.A.W .EQ $02
|
||||
S.FI.A.I .EQ $04
|
||||
S.FI.A.B .EQ $20
|
||||
S.FI.A.RN .EQ $40
|
||||
S.FI.A.D .EQ $80
|
||||
@ -58,6 +72,18 @@ S.FI.ST .EQ $07
|
||||
S.FI.ST.STD .EQ $01
|
||||
S.FI.ST.DIR .EQ $0D
|
||||
S.FI.UBLKS .EQ $08
|
||||
*--------------------------------------
|
||||
* DATE:
|
||||
* 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
|
||||
* +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|
||||
* | Year | Month | Day |
|
||||
* +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|
||||
* TIME:
|
||||
* 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
|
||||
* +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|
||||
* |0 0 0| Hour | |0 0| Minute |
|
||||
* +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|
||||
*--------------------------------------
|
||||
S.FI.MDATE .EQ $0A
|
||||
S.FI.MTIME .EQ $0C
|
||||
S.FI.CDATE .EQ $0E
|
||||
|
@ -40,11 +40,12 @@ CS.START cld
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.MSG.CTRLR .DA MSG.CTRLR
|
||||
L.BINSH .DA BINSH
|
||||
L.ETCINIT .DA ETCINIT
|
||||
L.BINMEM .DA BINMEM
|
||||
L.BINPS .DA BINPS
|
||||
L.BINSHUTDOWN .DA BINSHUTDOWN
|
||||
L.CMDS .DA BINSH
|
||||
.DA BINMEM
|
||||
.DA BINPS
|
||||
.DA BINLSOF
|
||||
.DA BINSHUTDOWN
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@ -71,8 +72,8 @@ CS.RUN ldy #S.PS.PID
|
||||
>LDYA L.MSG.CTRLR
|
||||
>SYSCALL PutS
|
||||
|
||||
>LDYA L.BINSH
|
||||
jsr CS.RUN.EXEC.YA
|
||||
ldx #0
|
||||
jsr CS.RUN.EXEC.X
|
||||
|
||||
>SLEEP
|
||||
|
||||
@ -85,21 +86,28 @@ CS.RUN ldy #S.PS.PID
|
||||
cmp #C.CR Ctrl.M
|
||||
bne .3
|
||||
|
||||
>LDYA L.BINMEM
|
||||
jsr CS.RUN.EXEC.YA
|
||||
ldx #2
|
||||
jsr CS.RUN.EXEC.X
|
||||
bra .2
|
||||
|
||||
.3 cmp #16 Ctrl.P
|
||||
bne .4
|
||||
>LDYA L.BINPS
|
||||
jsr CS.RUN.EXEC.YA
|
||||
|
||||
ldx #4
|
||||
jsr CS.RUN.EXEC.X
|
||||
bra .2
|
||||
|
||||
.4 cmp #4 Ctrl.D
|
||||
.4 cmp #12 Ctrl.L
|
||||
bne .5
|
||||
|
||||
ldx #6
|
||||
jsr CS.RUN.EXEC.X
|
||||
|
||||
.5 cmp #4 Ctrl.D
|
||||
bne .2
|
||||
|
||||
>LDYA L.BINSHUTDOWN
|
||||
jsr CS.RUN.EXEC.YA
|
||||
ldx #8
|
||||
jsr CS.RUN.EXEC.X
|
||||
bcs .2
|
||||
|
||||
sec
|
||||
@ -154,7 +162,7 @@ CS.RUN.ETCINIT >LDYAI 256
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.EXEC.YA >PUSHYA
|
||||
CS.RUN.EXEC.X >PUSHW L.CMDS,x
|
||||
>PUSHBI S.PS.F.HOLD
|
||||
>SYSCALL ExecL
|
||||
rts
|
||||
@ -162,17 +170,28 @@ CS.RUN.EXEC.YA >PUSHYA
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT clc
|
||||
CS.QUIT lda #MLIQUIT
|
||||
sta .1
|
||||
jsr $BF00
|
||||
.1 lda MLI.PARAMS
|
||||
bcs *
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
MSG.CTRLR .AZ "INITD:Entering ROOT mode..."
|
||||
BINSH .AZ "${ROOT}bin/sh"
|
||||
ETCINIT .AZ "${ROOT}etc/init"
|
||||
BINSH .AZ "${ROOT}bin/sh"
|
||||
BINMEM .AZ "${ROOT}bin/mem"
|
||||
BINPS .AZ "${ROOT}bin/ps"
|
||||
BINLSOF .AZ "${ROOT}bin/lsof"
|
||||
BINSHUTDOWN .AZ "${ROOT}bin/shutdown"
|
||||
*--------------------------------------
|
||||
MLI.PARAMS .DA #4
|
||||
.DA #0
|
||||
.DA 0
|
||||
.DA #0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -55,7 +55,8 @@ ERRORX.GetErrorMessage
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------MLI
|
||||
ERRORX.Codes .DA #MLI.E.IO
|
||||
ERRORX.Codes .DA #MLI.E.BADCALL
|
||||
.DA #MLI.E.IO
|
||||
.DA #MLI.E.NODEV
|
||||
.DA #MLI.E.WRTPROT
|
||||
.DA #MLI.E.DSKSWIT
|
||||
@ -99,7 +100,8 @@ ERRORX.Codes .DA #MLI.E.IO
|
||||
*--------------------------------------
|
||||
ERRORX.Count .EQ *-ERRORX.Codes
|
||||
*--------------------------------------
|
||||
ERRORX.Messages .AT "I/O Error"
|
||||
ERRORX.Messages .AT "Bad MLI Call"
|
||||
.AT "I/O Error"
|
||||
.AT "No Device"
|
||||
.AT "Disk Write-Prot."
|
||||
.AT "Disk Switched"
|
||||
|
@ -57,7 +57,7 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA K.SetAttr
|
||||
*--------------------------------------
|
||||
* Bank 2
|
||||
*--------------------------------------
|
||||
|
@ -23,17 +23,17 @@ K.ChTyp.8 >MLICALL MLISETFILEINFO
|
||||
|
||||
K.ChTyp.9 >RET 3
|
||||
*/--------------------------------------
|
||||
* # Attr
|
||||
* # SetAttr
|
||||
* Change Attributes of a ProDOS File
|
||||
* ## C
|
||||
* `int attr(const char *filepath, short int attributes);`
|
||||
* `int setattr(const char *filepath, short int attributes);`
|
||||
* ## ASM
|
||||
* `>PUSHW filepath`
|
||||
* `>PUSHB attributes`
|
||||
* `>SYSCALL attr`
|
||||
* `>SYSCALL setattr`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.Attr jsr PFT.CheckPath1
|
||||
K.SetAttr jsr PFT.CheckPath1
|
||||
bcs K.ChTyp.9
|
||||
|
||||
>MLICALL MLIGETFILEINFO
|
||||
|
@ -210,13 +210,13 @@ K.FGetS jsr PFT.CheckNodeA
|
||||
sec
|
||||
bne .9 IO error
|
||||
|
||||
inc NO DATA -> BLOCKING
|
||||
.11 lda #0 BLOCKING
|
||||
rts
|
||||
|
||||
.2 lda K.IOBuf
|
||||
cmp #C.LF Discard any leading LF from a previous CR/LF
|
||||
* beq .8 returns as empty string
|
||||
beq .1
|
||||
beq .11 CS -> NODATA -> BLOCKING
|
||||
|
||||
cmp #C.CR
|
||||
beq .8 empty string
|
||||
|
Loading…
x
Reference in New Issue
Block a user