mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
fe193891d1
commit
8c89a474c3
|
@ -540,11 +540,11 @@ CS : not found
|
|||
# GetPWUID
|
||||
|
||||
## C
|
||||
`int getpwuid(short int uid, S.PW* passwd );`
|
||||
`int getpwuid(short int uid, S.PW *passwd);`
|
||||
|
||||
## ASM
|
||||
`PUSHB uid`
|
||||
`>PUSHW passwd`
|
||||
`lda uid`
|
||||
`>SYSCALL getpwuid`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -552,11 +552,11 @@ CS : not found
|
|||
# GetPWName
|
||||
|
||||
## C
|
||||
`int getpwname(const char* name, S.PW* passwd );`
|
||||
`int getpwname(const char* name, S.PW *passwd);`
|
||||
|
||||
## ASM
|
||||
`>PUSHW name`
|
||||
`>PUSHW passwd`
|
||||
`>LDYA name`
|
||||
`>SYSCALL getpwname`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -567,11 +567,46 @@ CS : not found
|
|||
`int putpw( S.PW* passwd );`
|
||||
|
||||
## ASM
|
||||
`>LDYA passwd`
|
||||
`>PUSHW passwd`
|
||||
`>SYSCALL putpw`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# GetGRGID
|
||||
|
||||
## C
|
||||
`int getgrgid(short int gid, S.GRP *group);`
|
||||
|
||||
## ASM
|
||||
`>PUSHB gid`
|
||||
`>PUSHW group`
|
||||
`>SYSCALL getpwname`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# GetGRName
|
||||
|
||||
## C
|
||||
`int getgrgid(const char* name, S.GRP *group);`
|
||||
|
||||
## ASM
|
||||
`>PUSHW name`
|
||||
`>PUSHW group`
|
||||
`>SYSCALL getpwname`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# PutGR
|
||||
|
||||
## C
|
||||
`int putgr(S.GRP *group);`
|
||||
|
||||
## ASM
|
||||
`>PUSHW group`
|
||||
`>SYSCALL putgr`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# SListGetData
|
||||
|
||||
## ASM
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -381,9 +381,10 @@ CS.RUN.PushGidUid
|
|||
|
||||
.2 >PUSHYA
|
||||
|
||||
>PUSHW ZPPW
|
||||
ldy #S.STAT.UID
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
>PUSHW ZPPW
|
||||
>SYSCALL GetPWUID
|
||||
bcs .3
|
||||
|
||||
|
|
|
@ -85,8 +85,9 @@ CS.RUN >LDYAI S.PW
|
|||
>STYA ZPStrPtr
|
||||
stx ZPhStr
|
||||
|
||||
>PUSHW ZPPWPtr
|
||||
lda #0
|
||||
>PUSHA
|
||||
>PUSHW ZPPWPtr
|
||||
>SYSCALL GetPWUID
|
||||
bcc .1
|
||||
|
||||
|
@ -109,9 +110,6 @@ CS.RUN >LDYAI S.PW
|
|||
>SYSCALL putpw
|
||||
bcs .99
|
||||
|
||||
>SYSCALL FlushEtcPasswd
|
||||
bcs .99
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
|
@ -165,9 +163,6 @@ CS.RUN.ROOT ldy #0
|
|||
>SYSCALL putpw
|
||||
bcs .9
|
||||
|
||||
>SYSCALL FlushEtcPasswd
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
sec
|
||||
.9 rts
|
||||
|
|
|
@ -80,9 +80,6 @@ CS.RUN >LDYAI S.PW
|
|||
>SYSCALL putpw
|
||||
bcs .99
|
||||
|
||||
>SYSCALL FlushEtcPasswd
|
||||
bcs .99
|
||||
|
||||
jsr CS.RUN.RmDir
|
||||
bcs .99
|
||||
|
||||
|
|
|
@ -0,0 +1,339 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF drv/mkboard.drv
|
||||
*--------------------------------------
|
||||
S.DCB.SND .EQ 16
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/MLI.E.I
|
||||
*--------------------------------------
|
||||
ZPArgPtr .EQ ZPBIN
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
CS.START cld
|
||||
jmp Dev.Detect cld,jmp abs=DRV
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 DRV Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
*--------------------------------------
|
||||
L.MSG.DETECT.OK .DA MSG.DETECT.OK
|
||||
L.MSG.DETECT.KO .DA MSG.DETECT.KO
|
||||
L.DRV.CS.START .DA DRV.CS.START
|
||||
L.FD.DEV .DA FD.DEV
|
||||
L.FD.DEV.NAME .DA FD.DEV.NAME
|
||||
.DA 0 End Of Reloc Table
|
||||
*--------------------------------------
|
||||
Dev.Detect >STYA ARGS
|
||||
|
||||
stz ZPArgPtr
|
||||
lda #$C1
|
||||
sta ZPArgPtr+1
|
||||
|
||||
.1 and #$0f
|
||||
tay
|
||||
lda A2osX.S,y
|
||||
bne .3
|
||||
|
||||
ldy #4
|
||||
|
||||
sec
|
||||
lda (ZPArgPtr),y
|
||||
sbc (ZPArgPtr),y
|
||||
cmp #5
|
||||
beq .4
|
||||
|
||||
.3 inc FD.DEV.NAME+3
|
||||
inc ZPArgPtr+1 no match, try next slot....
|
||||
lda ZPArgPtr+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
>LDYA L.MSG.DETECT.KO
|
||||
>SYSCALL puts
|
||||
|
||||
lda #MLI.E.NODEV Not Found in any slot, exiting
|
||||
sec
|
||||
rts
|
||||
|
||||
.4 lda ZPArgPtr+1
|
||||
and #$0F
|
||||
pha
|
||||
tay
|
||||
lda #A2osX.S.SND
|
||||
sta A2osX.S,y
|
||||
pla
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
clc
|
||||
adc #$8F
|
||||
sta DEVSLOTn08F
|
||||
jsr Dev.ParseArgs
|
||||
bcs .9
|
||||
|
||||
.8 >PUSHW L.MSG.DETECT.OK
|
||||
>PUSHW L.FD.DEV.NAME
|
||||
>PUSHBI 2
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHWI DRV.END
|
||||
>PUSHWI DRV.CS.END-DRV.CS.START
|
||||
>PUSHWI DRV.CS.START
|
||||
>LDYA L.DRV.CS.START
|
||||
>SYSCALL InsDrv
|
||||
bcs .9
|
||||
|
||||
>STYA FD.DEV+S.FD.DEV.DRVPTR
|
||||
>PUSHW L.FD.DEV.NAME
|
||||
>LDYA L.FD.DEV
|
||||
>SYSCALL MKDEV
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Dev.ParseArgs >LDYA ARGS
|
||||
>STYA ZPArgPTR
|
||||
lda (ZPArgPTR)
|
||||
bne .1
|
||||
clc
|
||||
rts
|
||||
|
||||
.1
|
||||
|
||||
.92 lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
MSG.DETECT.OK .AZ "MockingBoard Installed As Device : %s\r\n"
|
||||
MSG.DETECT.KO .AZ "HW Not Found."
|
||||
ARGS .BS 2
|
||||
*--------------------------------------
|
||||
FD.DEV .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
.DA 0 BUSPTR
|
||||
.BS 2 DRVPTR
|
||||
.DA 0 DCBPTR
|
||||
.DA 0 BUFPTR
|
||||
FD.DEV.NAME .AZ "snd1"
|
||||
*--------------------------------------
|
||||
* Driver Code
|
||||
*--------------------------------------
|
||||
ZPIOCTL .EQ ZPDRV
|
||||
ZPBufPtr .EQ ZPDRV+2
|
||||
ZPCount .EQ ZPDRV+4
|
||||
*--------------------------------------
|
||||
DRV.CS.START cld
|
||||
jmp (.1,x)
|
||||
.1 .DA STATUS
|
||||
.DA A2osX.BADCALL
|
||||
.DA A2osX.BADCALL
|
||||
.DA A2osX.BADCALL
|
||||
.DA CONTROL
|
||||
.DA A2osX.BADCALL
|
||||
.DA OPEN
|
||||
.DA CLOSE
|
||||
.DA READ
|
||||
.DA WRITE
|
||||
.DA IRQ
|
||||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
.1 ldy #3
|
||||
|
||||
.2 lda DIB,y
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
bpl .2
|
||||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.SND-1
|
||||
.2 lda DCB,y
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
clc
|
||||
rts
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
and #S.DIB.S.OPENED
|
||||
beq OPEN.E
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
STATUS.9 lda #MLI.E.BADCTL
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
bne STATUS.9
|
||||
ldy #S.DCB.SND-1
|
||||
.2 lda (ZPBufPtr),y
|
||||
sta DCB,y
|
||||
dey
|
||||
bpl .2
|
||||
*--------------------------------------
|
||||
OPEN lda DIB+S.DIB.S
|
||||
bit #S.DIB.S.OPENED
|
||||
beq OPEN.1
|
||||
|
||||
OPEN.E lda #MLI.E.OPEN
|
||||
sec
|
||||
rts
|
||||
|
||||
OPEN.1 php
|
||||
sei
|
||||
ldx DEVSLOTn08F
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lda #S.DIB.S.OPENED
|
||||
tsb DIB+S.DIB.S
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLOSE php
|
||||
sei
|
||||
ldx DEVSLOTn08F
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lda #S.DIB.S.OPENED
|
||||
trb DIB+S.DIB.S
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
READ php
|
||||
sei
|
||||
|
||||
.8 plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #MLI.E.IO
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.99 lda #E.NODATA
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
WRITE php
|
||||
sei
|
||||
|
||||
.8 plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #MLI.E.IO
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.99 lda #E.NODATA
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
READ.WRITE.Init ldx DEVSLOTn08F
|
||||
|
||||
STATUS.CONTROL.Init
|
||||
>STYA ZPIOCTL
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr
|
||||
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
iny #S.IOCTL.BYTECNT
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount
|
||||
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
* IRQ Handler
|
||||
* on exit, CC if handled
|
||||
*--------------------------------------
|
||||
IRQ ldx DEVSLOTn08F
|
||||
|
||||
|
||||
bra .9
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.CS.END
|
||||
DEVSLOTn08F .BS 1
|
||||
*--------------------------------------
|
||||
DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.IRQ
|
||||
.DA #0,#0,#0
|
||||
>PSTR "MockingBoard "
|
||||
.DA #S.DIB.T.CHAR
|
||||
.DA #0
|
||||
.DA K.VER
|
||||
*--------------------------------------
|
||||
DCB .DA #S.DCB.T.SND
|
||||
.DA #0 FLAGS
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
DRV.END
|
||||
MAN
|
||||
SAVE USR/SRC/DRV/MKBOARD.DRV.S
|
||||
ASM
|
|
@ -91,6 +91,7 @@ A2osX.S.COM .EQ $E0
|
|||
A2osX.S.XY .EQ $E1
|
||||
A2osX.S.NIC .EQ $E2
|
||||
A2osX.S.CLK .EQ $E3
|
||||
A2osX.S.SND .EQ $E4
|
||||
A2osX.S.DISABLE .EQ $FF
|
||||
*--------------------------------------
|
||||
* NON BLOCKING Entry point (From libs)
|
||||
|
@ -221,17 +222,16 @@ SYS.SScanF .EQ $52
|
|||
* .EQ $5A
|
||||
* .EQ $5C
|
||||
* .EQ $5E
|
||||
|
||||
*--------------------------------------D2
|
||||
* .EQ $60
|
||||
* .EQ $62
|
||||
* .EQ $64
|
||||
* .EQ $66
|
||||
|
||||
* .EQ $68
|
||||
* .EQ $6A
|
||||
* .EQ $6C
|
||||
* ARG
|
||||
SYS.Shift .EQ $68
|
||||
SYS.ArgV .EQ $6A
|
||||
SYS.ArgVDup .EQ $6C
|
||||
* .EQ $6E
|
||||
*--------------------------------------D2
|
||||
* STDLIB
|
||||
SYS.AToF .EQ $70
|
||||
SYS.AToI .EQ $72
|
||||
|
@ -269,12 +269,12 @@ SYS.LoadFile .EQ $A8
|
|||
SYS.LoadTxtFile .EQ $AA
|
||||
SYS.FileSearch .EQ $AC
|
||||
SYS.GetMemStat .EQ $AE
|
||||
* ARG
|
||||
SYS.Shift .EQ $B0
|
||||
SYS.ArgV .EQ $B2
|
||||
SYS.ArgVDup .EQ $B4
|
||||
* .EQ $B6
|
||||
*--------------------------------------E0/AUX
|
||||
* STRV / STRVX
|
||||
SYS.StrVShift .EQ $B0
|
||||
SYS.StrVGet .EQ $B2
|
||||
SYS.StrVAdd .EQ $B4
|
||||
* .EQ $B6
|
||||
* ENV / ENVX
|
||||
SYS.PutEnv .EQ $B8
|
||||
SYS.SetEnv .EQ $BA
|
||||
|
@ -294,33 +294,32 @@ SYS.MD5Finalize .EQ $CE
|
|||
SYS.GetPWUID .EQ $D0
|
||||
SYS.GetPWName .EQ $D2
|
||||
SYS.PutPW .EQ $D4
|
||||
SYS.FlushEtcPasswd .EQ $D6
|
||||
* STRV / STRVX
|
||||
SYS.StrVShift .EQ $D8
|
||||
SYS.StrVGet .EQ $DA
|
||||
SYS.StrVAdd .EQ $DC
|
||||
SYS.GetGRGID .EQ $D6
|
||||
SYS.GetGRName .EQ $D8
|
||||
SYS.PutGR .EQ $DA
|
||||
* .EQ $DC
|
||||
* .EQ $DE
|
||||
*--------------------------------------E0
|
||||
* MEM
|
||||
SYS.GetMem .EQ $E0
|
||||
SYS.Realloc .EQ $E2
|
||||
SYS.GetMemPtr .EQ $E4
|
||||
SYS.FreeMem .EQ $E6
|
||||
|
||||
SYS.NewStkObj .EQ $E8
|
||||
SYS.LoadStkObj .EQ $EA
|
||||
SYS.GetStkObjPtr .EQ $EC
|
||||
SYS.FreeStkObj .EQ $EE
|
||||
* SLISTX
|
||||
SYS.SListGetData .EQ $F0
|
||||
SYS.SListAddData .EQ $F2
|
||||
SYS.SListSetData .EQ $F4
|
||||
SYS.SListGetByID .EQ $F6
|
||||
SYS.SListGetData .EQ $E0
|
||||
SYS.SListAddData .EQ $E2
|
||||
SYS.SListSetData .EQ $E4
|
||||
SYS.SListGetByID .EQ $E6
|
||||
|
||||
SYS.SListNewKey .EQ $F8
|
||||
SYS.SListLookup .EQ $FA
|
||||
SYS.SListNew .EQ $FC
|
||||
SYS.SListFree .EQ $FE
|
||||
SYS.SListNewKey .EQ $E8
|
||||
SYS.SListLookup .EQ $EA
|
||||
SYS.SListNew .EQ $EC
|
||||
SYS.SListFree .EQ $EE
|
||||
*--------------------------------------F0
|
||||
* MEM
|
||||
SYS.GetMem .EQ $F0
|
||||
SYS.Realloc .EQ $F2
|
||||
SYS.GetMemPtr .EQ $F4
|
||||
SYS.FreeMem .EQ $F6
|
||||
|
||||
SYS.NewStkObj .EQ $F8
|
||||
SYS.LoadStkObj .EQ $FA
|
||||
SYS.GetStkObjPtr .EQ $FC
|
||||
SYS.FreeStkObj .EQ $FE
|
||||
*--------------------------------------
|
||||
* MEM STRUCT
|
||||
*--------------------------------------
|
||||
|
@ -397,6 +396,7 @@ S.DCB.T .EQ 0
|
|||
S.DCB.T.NIC .EQ $81
|
||||
S.DCB.T.COM .EQ $82
|
||||
S.DCB.T.GFX .EQ $83
|
||||
S.DCB.T.SND .EQ $84
|
||||
*--------------------------------------
|
||||
S.DIB.S .EQ 0
|
||||
S.DIB.S.BLOCK .EQ %10000000
|
||||
|
@ -432,7 +432,7 @@ S.DIB.T.NIC .EQ $12 Network Interface Card
|
|||
S.DIB.T.XY .EQ $13 X,Y Pointing Device
|
||||
S.DIB.T.CHAR .EQ $14
|
||||
S.DIB.T.GFX .EQ $15
|
||||
*S.DIB.T.SND .EQ $17
|
||||
S.DIB.T.SND .EQ $16
|
||||
S.DIB.ST .EQ 22
|
||||
S.DIB.ST.EXT .EQ $80
|
||||
S.DIB.ST.DSKSW .EQ $40
|
||||
|
@ -642,6 +642,10 @@ S.PW.SHELL .EQ 182 64+1
|
|||
*
|
||||
S.PW .EQ 247
|
||||
*--------------------------------------
|
||||
S.GRP.GID .EQ 0
|
||||
S.GRP.NAME .EQ 1 16+1
|
||||
S.GRP.MEMBERS .EQ 18
|
||||
*--------------------------------------
|
||||
S.SESSION.P .EQ 0
|
||||
S.SESSION.P.ROOT .EQ %10000000
|
||||
S.SESSION.P.SYSADMIN .EQ %01000000
|
||||
|
|
|
@ -2,11 +2,24 @@ NEW
|
|||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
IO.IIC.RDVBLMSK .EQ $C041 R, B7=1: VBL interrupts enabled
|
||||
*--------------------------------------
|
||||
* The action taken for the soft switches
|
||||
* from $C058 ... $C05F is only taken if access
|
||||
* has first been enabled by writing to IOUDISOFF ($C07F).]
|
||||
* has first been enabled by writing to IOUDISOFF ($C07F)
|
||||
*--------------------------------------
|
||||
* Apple IIc Tech Note #9 : Detecting VBL
|
||||
* Written by Dan Strnad (November 1989)
|
||||
* This Technical Note describes how the VBLInt flag at $C019 behaves differently
|
||||
* than documented in the Apple IIc Technical Reference Manual, Second Edition, when being polled.
|
||||
* The Apple IIc Technical Reference Manual, Second Edition, claims that reading
|
||||
* $C019 reads and resets the VBLInt flag. This is not correct.
|
||||
*
|
||||
* After reading $C019 once the high bit has been set to flag VBL,
|
||||
* the high bit remains set. A program polling VBL at $C019 would have to access
|
||||
* either PTrig at $C070 or RdIOUDis at $C07E to reset the high-bit for $C019.
|
||||
* Note that IOUDis must have been turned off by writing to $C07F
|
||||
* then ENVBL accessed at $C05B in order to poll for $C019 on the IIc.
|
||||
*--------------------------------------
|
||||
IO.IIC.RDVBLMSK .EQ $C041 R, B7=1: VBL interrupts enabled
|
||||
*--------------------------------------
|
||||
IO.IIC.DISVBL .EQ $C05A W, Disable VBL interrupts
|
||||
IO.IIC.ENVBL .EQ $C05B W, Enable VBL interrupts
|
||||
|
|
|
@ -83,8 +83,9 @@ CS.RUN >LDYAI 33 Enough for HASH
|
|||
>LDYA L.ETCISSUE
|
||||
jsr CS.RUN.DUMPFILE
|
||||
|
||||
lda #0
|
||||
>PUSHA ROOT user
|
||||
>PUSHWZ Dry Run, no output
|
||||
* lda #0 ROOT user
|
||||
>SYSCALL GetPWUID
|
||||
bcc CS.RUN.AUTH
|
||||
|
||||
|
@ -218,8 +219,10 @@ CS.RUN.CHECKPWD rol ZPbValidUser
|
|||
>STYA ZPPWPtr
|
||||
stx ZPhPW
|
||||
|
||||
pha
|
||||
>PUSHB ZPUID
|
||||
pla
|
||||
>PUSHYA
|
||||
lda ZPUID
|
||||
>SYSCALL GetPWUID
|
||||
bcs CS.RUN.CHECK.9
|
||||
|
||||
|
|
|
@ -456,29 +456,34 @@ CPU.Init.6502 >PUSHWI MSG.CPU
|
|||
bne .1
|
||||
|
||||
sec
|
||||
.1 ror ZPPtr1 save //c flag
|
||||
.1 ror ZPPtr1 save //c flag
|
||||
|
||||
bpl .11
|
||||
|
||||
sta CLRIOUDIS
|
||||
lda IO.IIC.RDVBLMSK
|
||||
sta ZPPtr1+1 Save VBLIRQ enable
|
||||
sta ZPPtr1+1 Save VBLIRQ enable
|
||||
|
||||
sta IO.IIC.ENVBL
|
||||
|
||||
.11 bit VBL
|
||||
bpl .11
|
||||
|
||||
bit ZPPtr1 //c ?
|
||||
bpl .2
|
||||
|
||||
lda IO.IIC.CLRVBLIRQ yes, clear IRQ
|
||||
|
||||
.2 lda VBL
|
||||
bmi .2
|
||||
|
||||
ldx #2
|
||||
|
||||
.20 bit ZPPtr1 //c ?
|
||||
.20 bit ZPPtr1 //c ?
|
||||
bpl .3
|
||||
|
||||
lda IO.IIC.CLRVBLIRQ yes, clear IRQ
|
||||
lda #0 wait for UP again
|
||||
lda IO.IIC.CLRVBLIRQ yes, clear IRQ
|
||||
lda #0 wait for UP again
|
||||
|
||||
.3 ldy #4 (2)
|
||||
|
||||
|
@ -999,9 +1004,9 @@ TskMgrInit >LDYAI MSG.TSK
|
|||
>SYSCALL2 puts
|
||||
|
||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||
ldx #SYS.NewStkObj
|
||||
jsr K.SYSCALL2.AUX Buffer in AUX mem
|
||||
>SYSCALL NewStkObj Buffer in AUX mem
|
||||
bcs EvtMgrInit.RTS
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
txa
|
||||
|
@ -1119,7 +1124,7 @@ MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
|
|||
MSG.PRODOSFX .AZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\n"
|
||||
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n"
|
||||
*--------------------------------------
|
||||
SYSSCREEN.TOP .AZ "A2osX 0.93 Console"
|
||||
SYSSCREEN.TOP .AZ "A2osX 0.94 Console"
|
||||
MSG.Init3 .AS "A2osX[Stage3]:Init"
|
||||
.AZ "\r\n*** Press Ctrl-R for ROOT Mode ***\r\n"
|
||||
MSG.DEV .AZ "Device Manager..."
|
||||
|
|
|
@ -58,18 +58,18 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
|||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
|
||||
*--------------------------------------
|
||||
* Bank 2
|
||||
*--------------------------------------
|
||||
.DA 0 $60
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA K.Shift $68 : ARG
|
||||
.DA K.ArgV
|
||||
.DA K.ArgVDup
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Bank 2
|
||||
*--------------------------------------
|
||||
|
||||
.DA K.AToF $70 : STDLIB
|
||||
.DA K.AToI
|
||||
.DA K.AToL
|
||||
|
@ -105,23 +105,23 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
|||
.DA K.LoadTxtFile
|
||||
.DA K.FileSearch
|
||||
.DA K.GetMemStat
|
||||
|
||||
.DA K.Shift $B0 : ARG
|
||||
.DA K.ArgV
|
||||
.DA K.ArgVDup
|
||||
.DA 0
|
||||
.DA K.PutEnv ENV
|
||||
.DA K.SetEnv
|
||||
.DA K.GetEnv
|
||||
.DA K.UnsetEnv
|
||||
*--------------------------------------
|
||||
* AUX
|
||||
*--------------------------------------
|
||||
.DA K.StrVShift $B0 : STRV
|
||||
.DA K.StrVGet
|
||||
.DA K.StrVAdd
|
||||
.DA 0
|
||||
.DA K.PutEnv $B8 : ENV
|
||||
.DA K.SetEnv
|
||||
.DA K.GetEnv
|
||||
.DA K.UnsetEnv
|
||||
|
||||
.DA K.Time $C0 : TIME
|
||||
.DA K.StrFTime
|
||||
.DA K.PTime2Time
|
||||
.DA K.CTime2Time
|
||||
.DA K.MD5
|
||||
.DA K.MD5 $C8 : MD5
|
||||
.DA K.MD5Init
|
||||
.DA K.MD5Update
|
||||
.DA K.MD5Finalize
|
||||
|
@ -129,25 +129,13 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
|||
.DA K.GetPWUID $D0 : PWD
|
||||
.DA K.GetPWName
|
||||
.DA K.PutPW
|
||||
.DA K.FlushEtcPasswd
|
||||
.DA K.StrVShift
|
||||
.DA K.StrVGet
|
||||
.DA K.StrVAdd
|
||||
.DA K.GetGRGID
|
||||
.DA K.GetGRName
|
||||
.DA K.PutGR
|
||||
.DA 0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* $E000
|
||||
*--------------------------------------
|
||||
.DA K.GetMem $E0
|
||||
.DA K.Realloc
|
||||
.DA K.GetMemPtr
|
||||
.DA K.FreeMem
|
||||
|
||||
.DA K.GetMem K.NewStkObj
|
||||
.DA K.LoadStkObj
|
||||
.DA K.GetMemPtr K.GetStkObjPtr
|
||||
.DA K.FreeMem K.FreeStkObj
|
||||
*--------------------------------------
|
||||
.DA K.SListGetData $F0
|
||||
.DA K.SListGetData $E0 : SLIST
|
||||
.DA K.SListAddData
|
||||
.DA K.SListSetData
|
||||
.DA K.SListGetByID
|
||||
|
@ -157,131 +145,143 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
|||
.DA K.SListNew
|
||||
.DA K.SListFree
|
||||
*--------------------------------------
|
||||
* $E000
|
||||
*--------------------------------------
|
||||
.DA K.GetMem $F0
|
||||
.DA K.Realloc
|
||||
.DA K.GetMemPtr
|
||||
.DA K.FreeMem
|
||||
|
||||
.DA K.GetMem K.NewStkObj
|
||||
.DA K.LoadStkObj
|
||||
.DA K.GetMemPtr K.GetStkObjPtr
|
||||
.DA K.FreeMem K.FreeStkObj
|
||||
*--------------------------------------
|
||||
* LO Byte :
|
||||
* #RRAMWRAMBNK1,#RRAMWRAMBNK2
|
||||
* HI Byte :
|
||||
* Flags (ROOT....)
|
||||
*--------------------------------------
|
||||
K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK1 $10
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK1 $20
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK1 $30
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK1 $40
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK1 $50
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
|
||||
.DA #RRAMWRAMBNK1 $60
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK1
|
||||
.DA #$80
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
.DA #RRAMWRAMBNK2 $70
|
||||
.DA #RRAMWRAMBNK2 $60
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2 $68 : ARG
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK2 $70 : STDLIB
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
|
@ -298,65 +298,65 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
|||
.DA #RRAMWRAMBNK2
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK2 $80
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2 $80 : STRING
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK2 $90
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2 $90 : DEV
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2 $98 : BIN
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK2 $A0
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2 $A0 : PS
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #RRAMWRAMBNK2 $B0
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #RRAMWRAMBNK2
|
||||
.DA #$80
|
||||
.DA #0 $B0 : STRV
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 $B8 : ENV
|
||||
.DA #0
|
||||
.DA #0
|
||||
|
@ -367,32 +367,31 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
|||
.DA #0
|
||||
|
||||
.DA #0 $C0 : TIME
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 $C8 : MD5
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
|
||||
.DA #$C0 $D0 : PWDX
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$C0 PWDX
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$C0 PWDX
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #0 PWD
|
||||
.DA #$80
|
||||
.DA #0
|
||||
|
||||
.DA #0 $D8 : StrV
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
|
@ -400,40 +399,41 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
|||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
|
||||
.DA #$C0 $E0 : SLIST
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
.DA #$C0
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
.DA #0 $E0 : MemMgr at $E000
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #$C0 NewStkObj
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$80
|
||||
.DA #0 LoadStkObj
|
||||
.DA #0
|
||||
.DA #$C0 GetStkObjPtr
|
||||
.DA #$80
|
||||
.DA #0
|
||||
.DA #$C0 FreeStkObj
|
||||
.DA #$80
|
||||
*--------------------------------------
|
||||
.DA #$C0 $F0 : SLIST
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #$C0
|
||||
.DA #$80
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
* K.SYSCALL2 : From KERNEL (MAIN,AUX), LIB
|
||||
*--------------------------------------
|
||||
|
@ -488,9 +488,14 @@ K.SYSCALL.JMPX sta SETREADAUX
|
|||
sta CLRWRITEAUX
|
||||
rts
|
||||
|
||||
.1 jmp (.2-SYS.PutEnv,x)
|
||||
.1 jmp (.2-SYS.StrVShift,x)
|
||||
|
||||
.2 .DA ENVX.PutEnv
|
||||
.2 .DA STRVX.StrVShift
|
||||
.DA STRVX.StrVGet
|
||||
.DA STRVX.StrVAdd
|
||||
.DA 0
|
||||
|
||||
.DA ENVX.PutEnv
|
||||
.DA ENVX.SetEnv
|
||||
.DA ENVX.GetEnv
|
||||
.DA ENVX.UnsetEnv
|
||||
|
@ -508,11 +513,9 @@ K.SYSCALL.JMPX sta SETREADAUX
|
|||
.DA PWDX.GetPWUID
|
||||
.DA PWDX.GetPWName
|
||||
.DA PWDX.PutPW
|
||||
.DA 0 FlushEtcPasswd
|
||||
|
||||
.DA STRVX.StrVShift
|
||||
.DA STRVX.StrVGet
|
||||
.DA STRVX.StrVAdd
|
||||
.DA PWDX.GetGRGID
|
||||
.DA PWDX.GetGRName
|
||||
.DA PWDX.PutGR
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.JMP
|
||||
|
|
|
@ -3,44 +3,47 @@ NEW
|
|||
*/--------------------------------------
|
||||
* # GetPWUID
|
||||
* ## C
|
||||
* `int getpwuid(short int uid, S.PW* passwd );`
|
||||
* `int getpwuid(short int uid, S.PW *passwd);`
|
||||
* ## ASM
|
||||
* `PUSHB uid`
|
||||
* `>PUSHW passwd`
|
||||
* `lda uid`
|
||||
* `>SYSCALL getpwuid`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.GetPWUID sta ZPPtr1+1
|
||||
>PULLW ZPPtr2
|
||||
K.GetPWUID
|
||||
K.GetGRGID >PULLW FORPNT
|
||||
>PULLB ZPPtr1+1
|
||||
|
||||
jmp K.SYSCALL.JMPX
|
||||
*/--------------------------------------
|
||||
* # GetPWName
|
||||
* ## C
|
||||
* `int getpwname(const char* name, S.PW* passwd );`
|
||||
* `int getpwname(const char* name, S.PW *passwd);`
|
||||
* ## ASM
|
||||
* `>PUSHW name`
|
||||
* `>PUSHW passwd`
|
||||
* `>LDYA name`
|
||||
* `>SYSCALL getpwname`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.GetPWName >STYA TXTPTR
|
||||
>PULLW ZPPtr2
|
||||
|
||||
K.GetPWName
|
||||
K.GetGRName >PULLW FORPNT
|
||||
>PULLW TXTPTR
|
||||
|
||||
jmp K.SYSCALL.JMPX
|
||||
*/--------------------------------------
|
||||
* # PutPW
|
||||
* ## C
|
||||
* `int putpw( S.PW* passwd );`
|
||||
* ## ASM
|
||||
* `>LDYA passwd`
|
||||
* `>PUSHW passwd`
|
||||
* `>SYSCALL putpw`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.PutPW >STYA ZPPtr2
|
||||
>STYA TXTPTR
|
||||
K.PutPW >PULLW TXTPTR
|
||||
|
||||
jmp K.SYSCALL.JMPX
|
||||
jsr K.SYSCALL.JMPX
|
||||
bcc K.FlushEtcPasswd
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.FlushEtcPasswd
|
||||
>LDYA PWD.DBSize
|
||||
|
@ -50,7 +53,7 @@ K.FlushEtcPasswd
|
|||
|
||||
stx .8+1
|
||||
|
||||
>PUSHWI PWD.FILE
|
||||
>PUSHWI PWD.PWFILE
|
||||
>PUSHBI O.WRONLY+O.CREATE
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHWZ Aux type
|
||||
|
@ -85,11 +88,48 @@ K.FlushEtcPasswd
|
|||
|
||||
.8 lda #$ff
|
||||
jmp K.freemem SELF MODIFIED
|
||||
*/--------------------------------------
|
||||
* # GetGRGID
|
||||
* ## C
|
||||
* `int getgrgid(short int gid, S.GRP *group);`
|
||||
* ## ASM
|
||||
* `>PUSHB gid`
|
||||
* `>PUSHW group`
|
||||
* `>SYSCALL getpwname`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
*/--------------------------------------
|
||||
* # GetGRName
|
||||
* ## C
|
||||
* `int getgrgid(const char* name, S.GRP *group);`
|
||||
* ## ASM
|
||||
* `>PUSHW name`
|
||||
* `>PUSHW group`
|
||||
* `>SYSCALL getpwname`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
*/--------------------------------------
|
||||
* # PutGR
|
||||
* ## C
|
||||
* `int putgr(S.GRP *group);`
|
||||
* ## ASM
|
||||
* `>PUSHW group`
|
||||
* `>SYSCALL putgr`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.PutGR >PULLW TXTPTR
|
||||
|
||||
jsr K.SYSCALL.JMPX
|
||||
bcc K.FlushEtcGroup
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.FlushEtcGroup rts
|
||||
*--------------------------------------
|
||||
PWD.hDB .BS 1
|
||||
PWD.DBPtr .BS 2
|
||||
PWD.DBSize .BS 2
|
||||
PWD.FILE .AZ "${ROOT}etc/passwd"
|
||||
PWD.PWFILE .AZ "${ROOT}etc/passwd"
|
||||
PWD.GRFILE .AZ "${ROOT}etc/group"
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.PWD
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
* ZPPtr1 : UID / pName (Input)
|
||||
* ZPPtr2 : pPW (Output)
|
||||
* ZPPtr1 : UID
|
||||
* TXTPTR : pName (Input)
|
||||
* FORPNT : pPW (Output)
|
||||
* ZPPtr3 : pDB
|
||||
* USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
||||
* ....\CR
|
||||
|
@ -28,7 +29,7 @@ PWDX.GetPWUID lda PWD.hDB
|
|||
jsr PWD.NextLine
|
||||
bra .1
|
||||
|
||||
PWD.GetPW.8 ldx ZPPtr2+1
|
||||
PWD.GetPW.8 ldx FORPNT+1
|
||||
beq .8 Dry run, no output
|
||||
jmp PWD.Record2PW
|
||||
|
||||
|
@ -70,7 +71,7 @@ PWDX.GetPWName lda PWD.hDB
|
|||
cmp #':'
|
||||
bne .3
|
||||
|
||||
ldx ZPPtr2+1
|
||||
ldx FORPNT+1
|
||||
beq .8
|
||||
|
||||
jmp PWD.Record2PW
|
||||
|
@ -79,7 +80,7 @@ PWDX.GetPWName lda PWD.hDB
|
|||
jsr PWD.NextString skip PASSWORD
|
||||
jmp PWD.GetByte get UID
|
||||
*--------------------------------------
|
||||
* ZPPtr2 : pPW (Input)
|
||||
* FORPNT : pPW (Output)
|
||||
* ZPPtr3 : pDB
|
||||
*--------------------------------------
|
||||
PWDX.PutPW lda PWD.hDB
|
||||
|
@ -166,6 +167,14 @@ PWDX.PutPW lda PWD.hDB
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWDX.GetGRGID
|
||||
|
||||
*--------------------------------------
|
||||
PWDX.GetGRName
|
||||
|
||||
*--------------------------------------
|
||||
PWDX.PutGR
|
||||
*--------------------------------------
|
||||
* PRIVATE
|
||||
*--------------------------------------
|
||||
PWD.GetUID >LDYA PWD.DBPtr
|
||||
|
@ -225,9 +234,6 @@ PWD.DeleteRecord
|
|||
PWD.FindRecord >LDYA PWD.DBPtr
|
||||
>STYA ZPPtr3
|
||||
|
||||
>LDYA ZPPtr2
|
||||
>STYA TXTPTR
|
||||
|
||||
.2 lda (ZPPtr3)
|
||||
beq .9 End of DB
|
||||
|
||||
|
@ -267,9 +273,7 @@ PWD.NextLine iny
|
|||
inc ZPPtr3+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
PWD.Record2PW sta CLRWRITEAUX
|
||||
|
||||
ldy #0
|
||||
PWD.Record2PW ldy #0
|
||||
|
||||
ldx #0 NAME
|
||||
|
||||
|
@ -277,11 +281,11 @@ PWD.Record2PW sta CLRWRITEAUX
|
|||
iny
|
||||
cmp #':'
|
||||
beq .2
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .1
|
||||
.2 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
cpx #S.PW.PASSWD
|
||||
bne .2
|
||||
|
@ -291,21 +295,21 @@ PWD.Record2PW sta CLRWRITEAUX
|
|||
cmp #':'
|
||||
beq .4
|
||||
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .3
|
||||
|
||||
.4 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
cpx #S.PW.UID
|
||||
bne .4
|
||||
|
||||
jsr PWD.GetByte UID
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
|
||||
jsr PWD.GetByte GID
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
|
||||
ldx #S.PW.GECOS
|
||||
|
||||
|
@ -313,11 +317,11 @@ PWD.Record2PW sta CLRWRITEAUX
|
|||
iny
|
||||
cmp #':'
|
||||
beq .6
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .5
|
||||
.6 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
cpx #S.PW.DIR
|
||||
bne .6
|
||||
|
@ -326,11 +330,11 @@ PWD.Record2PW sta CLRWRITEAUX
|
|||
iny
|
||||
cmp #':'
|
||||
beq .8
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .7
|
||||
.8 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
cpx #S.PW.SHELL
|
||||
bne .8
|
||||
|
@ -339,12 +343,12 @@ PWD.Record2PW sta CLRWRITEAUX
|
|||
iny
|
||||
cmp #C.CR
|
||||
beq .10
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .9
|
||||
.10 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
sta SETWRITEAUX
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -599,6 +599,11 @@ ENV.GetSession ldy #S.PS.hSID
|
|||
lda S.Table.hSession-1,y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr3
|
||||
|
||||
* ldy #S.SESSION.UID
|
||||
* lda (ZPPtr3),y
|
||||
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
ENV.AddYAToBuf >STYA ZPPtr3
|
||||
|
|
|
@ -45,11 +45,11 @@ A2osX.AUX .DA #0
|
|||
|
||||
A2osX.AUX.B .PH Mem.XHiMem
|
||||
.INB USR/SRC/SYS/KERNEL.S.TERMX
|
||||
.INB USR/SRC/SYS/KERNEL.S.STRVX
|
||||
.INB USR/SRC/SYS/KERNEL.S.ENVX
|
||||
.INB USR/SRC/SYS/KERNEL.S.TIMEX
|
||||
.INB USR/SRC/SYS/KERNEL.S.MD5X
|
||||
.INB USR/SRC/SYS/KERNEL.S.PWDX
|
||||
.INB USR/SRC/SYS/KERNEL.S.STRVX
|
||||
.INB USR/SRC/SYS/KERNEL.S.SLISTX
|
||||
.EP
|
||||
A2osX.AUX.S .EQ *-A2osX.AUX.B
|
||||
|
@ -82,12 +82,12 @@ A2osX.D2 .DA #0
|
|||
|
||||
A2osX.D2.B .PH $D000
|
||||
.DA #RRAMWRAMBNK2
|
||||
.INB USR/SRC/SYS/KERNEL.S.ARG
|
||||
.INB USR/SRC/SYS/KERNEL.S.STDLIB
|
||||
.INB USR/SRC/SYS/KERNEL.S.STRING
|
||||
.INB USR/SRC/SYS/KERNEL.S.DEV
|
||||
.INB USR/SRC/SYS/KERNEL.S.BIN
|
||||
.INB USR/SRC/SYS/KERNEL.S.PS
|
||||
.INB USR/SRC/SYS/KERNEL.S.ARG
|
||||
.EP
|
||||
A2osX.D2.S .EQ *-A2osX.D2.B
|
||||
|
||||
|
@ -99,13 +99,13 @@ A2osX.E0.B .PH $E000
|
|||
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
||||
.INB USR/SRC/SYS/KERNEL.S.SHARED
|
||||
.INB USR/SRC/SYS/KERNEL.S.MATH
|
||||
|
||||
.INB USR/SRC/SYS/KERNEL.S.TERM
|
||||
|
||||
.INB USR/SRC/SYS/KERNEL.S.STRV
|
||||
.INB USR/SRC/SYS/KERNEL.S.ENV
|
||||
.INB USR/SRC/SYS/KERNEL.S.TIME
|
||||
.INB USR/SRC/SYS/KERNEL.S.MD5
|
||||
.INB USR/SRC/SYS/KERNEL.S.PWD
|
||||
.INB USR/SRC/SYS/KERNEL.S.STRV
|
||||
.INB USR/SRC/SYS/KERNEL.S.MEM
|
||||
* go to A2osX.D1
|
||||
.INB USR/SRC/SYS/KERNEL.S.PIPE
|
||||
|
|
Loading…
Reference in New Issue