2019-04-09 15:47:33 +00:00
|
|
|
|
NEW
|
|
|
|
|
AUTO 3,1
|
|
|
|
|
*--------------------------------------
|
2019-04-26 15:07:22 +00:00
|
|
|
|
* ZPPtr1 : UID / pName (Input)
|
|
|
|
|
* ZPPtr2 : pPW (Output)
|
2019-04-11 15:59:57 +00:00
|
|
|
|
* ZPPtr3 : pDB
|
|
|
|
|
* USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
|
|
|
|
* ....\CR
|
|
|
|
|
* \0
|
2019-04-09 15:47:33 +00:00
|
|
|
|
*--------------------------------------
|
2019-07-29 15:38:55 +00:00
|
|
|
|
*/--------------------------------------
|
|
|
|
|
* # GetPWUID
|
|
|
|
|
* ## C
|
|
|
|
|
* `int getpwuid(short int uid, S.PW* passwd );`
|
|
|
|
|
* ## ASM
|
|
|
|
|
* `>PUSHW passwd`
|
|
|
|
|
* `lda uid`
|
|
|
|
|
* `>SYSCALL getpwuid`
|
|
|
|
|
* ## RETURN VALUE
|
|
|
|
|
*\--------------------------------------
|
|
|
|
|
K.GetPWUID sta ZPPtr1+1
|
|
|
|
|
jsr SHARED.PullYA
|
|
|
|
|
>STYA ZPPtr2
|
|
|
|
|
|
|
|
|
|
lda PWD.hDB
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.9
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
|
|
|
|
jsr K.GetmemPtr
|
|
|
|
|
>STYA ZPPtr3
|
|
|
|
|
|
|
|
|
|
.1 lda (ZPPtr3)
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.99 EOF
|
2019-04-12 15:41:05 +00:00
|
|
|
|
ldy #0
|
2019-06-06 15:45:40 +00:00
|
|
|
|
jsr PWD.NextString skip USERNAME
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
jsr PWD.NextString skip PASSWORD
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
2019-04-25 15:33:56 +00:00
|
|
|
|
jsr PWD.GetByte get UID
|
2019-04-12 15:41:05 +00:00
|
|
|
|
cmp ZPPtr1+1
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.8
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-25 15:33:56 +00:00
|
|
|
|
jsr PWD.NextLine
|
2019-04-12 15:41:05 +00:00
|
|
|
|
bra .1
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
PWD.GetPW.8 ldx ZPPtr2+1
|
|
|
|
|
beq .8 Dry run, no output
|
2019-06-06 06:37:30 +00:00
|
|
|
|
jmp PWD.Record2PW
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
.8 clc a = UID
|
2019-06-06 06:37:30 +00:00
|
|
|
|
rts
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
PWD.GetPW.9 lda #E.IPWDDB
|
2019-10-11 13:06:33 +00:00
|
|
|
|
.HS 2C BIT ABS
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
PWD.GetPW.99 lda #E.IUSR
|
2019-04-12 15:41:05 +00:00
|
|
|
|
sec
|
2019-10-03 06:25:27 +00:00
|
|
|
|
PWD.GetPW.RTS rts
|
2019-07-29 15:38:55 +00:00
|
|
|
|
*/--------------------------------------
|
|
|
|
|
* # GetPWName
|
|
|
|
|
* ## C
|
|
|
|
|
* `int getpwname(const char* name, S.PW* passwd );`
|
|
|
|
|
* ## ASM
|
|
|
|
|
* `>PUSHW passwd`
|
|
|
|
|
* `>LDYA name`
|
|
|
|
|
* `>SYSCALL getpwname`
|
|
|
|
|
* ## RETURN VALUE
|
|
|
|
|
*\--------------------------------------
|
|
|
|
|
K.GetPWName >STYA TXTPTR
|
|
|
|
|
jsr SHARED.PullYA
|
|
|
|
|
>STYA ZPPtr2
|
|
|
|
|
|
|
|
|
|
lda PWD.hDB
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.9
|
2019-04-09 15:47:33 +00:00
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr K.GetmemPtr
|
|
|
|
|
>STYA ZPPtr3
|
2019-04-15 05:40:13 +00:00
|
|
|
|
|
|
|
|
|
ldy #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.99
|
2019-04-29 05:59:01 +00:00
|
|
|
|
|
2019-04-15 05:40:13 +00:00
|
|
|
|
.1 lda (ZPPtr3)
|
2019-06-06 15:45:40 +00:00
|
|
|
|
beq PWD.GetPW.99
|
2019-04-15 05:40:13 +00:00
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
ldy #$ff
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.2 iny
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-04-12 15:41:05 +00:00
|
|
|
|
beq .4
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
cmp (ZPPtr3),y
|
|
|
|
|
beq .2
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-25 15:33:56 +00:00
|
|
|
|
.3 jsr PWD.NextLine
|
2019-04-12 15:41:05 +00:00
|
|
|
|
bra .1
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
.4 lda (ZPPtr3),y
|
|
|
|
|
cmp #':'
|
2019-10-11 13:06:33 +00:00
|
|
|
|
bne .3
|
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
ldx ZPPtr2+1
|
|
|
|
|
beq .8
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
jmp PWD.Record2PW
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-06-06 15:45:40 +00:00
|
|
|
|
.8 iny
|
|
|
|
|
jsr PWD.NextString skip PASSWORD
|
|
|
|
|
jmp PWD.GetByte get UID
|
2019-07-29 15:38:55 +00:00
|
|
|
|
*/--------------------------------------
|
|
|
|
|
* # PutPW
|
|
|
|
|
* ## C
|
|
|
|
|
* `int putpw( S.PW* passwd );`
|
|
|
|
|
* ## ASM
|
|
|
|
|
* `>LDYA passwd`
|
|
|
|
|
* `>SYSCALL putpw`
|
|
|
|
|
* ## RETURN VALUE
|
|
|
|
|
*\--------------------------------------
|
|
|
|
|
K.PutPW >STYA ZPPtr2
|
|
|
|
|
>STYA TXTPTR
|
2019-04-09 15:47:33 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-26 15:07:22 +00:00
|
|
|
|
* ZPPtr2 : pPW (Input)
|
|
|
|
|
* ZPPtr3 : pDB
|
|
|
|
|
*--------------------------------------
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda PWD.hDB
|
|
|
|
|
bne .1
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-11 15:59:57 +00:00
|
|
|
|
ldy #S.PW.UID
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-06-06 15:45:40 +00:00
|
|
|
|
bne PWD.GetPW.RTS Must be ROOT user
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-25 15:33:56 +00:00
|
|
|
|
jsr PWD.GetRecordLen
|
|
|
|
|
tay
|
|
|
|
|
lda #0
|
|
|
|
|
>STYA PWD.DBSize
|
|
|
|
|
|
|
|
|
|
jsr K.getmem
|
2019-06-06 15:45:40 +00:00
|
|
|
|
bcs PWD.GetPW.RTS
|
2019-04-25 15:33:56 +00:00
|
|
|
|
>STYA ZPPtr3
|
|
|
|
|
>STYA PWD.DBPtr
|
|
|
|
|
stx PWD.hDB
|
2019-04-29 15:47:17 +00:00
|
|
|
|
jmp .8
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-23 15:47:40 +00:00
|
|
|
|
.1 jsr K.GetmemPtr
|
|
|
|
|
>STYA PWD.DBPtr
|
2019-04-19 05:42:43 +00:00
|
|
|
|
|
2019-04-29 05:59:01 +00:00
|
|
|
|
ldy #S.PW.PASSWD
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-04-29 05:59:01 +00:00
|
|
|
|
bne .12
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-29 15:47:17 +00:00
|
|
|
|
jsr PWD.DeleteRecord
|
|
|
|
|
bcc .80
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-29 15:47:17 +00:00
|
|
|
|
rts
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-29 05:59:01 +00:00
|
|
|
|
.12 jsr PWD.DeleteRecord
|
2019-04-25 15:33:56 +00:00
|
|
|
|
bcc .11 user exits..
|
2019-04-26 15:07:22 +00:00
|
|
|
|
jsr PWD.GetUID new user, get UID
|
|
|
|
|
bcs .99
|
|
|
|
|
ldy #S.PW.UID
|
|
|
|
|
sta CLRWRITEAUX
|
|
|
|
|
sta (TXTPTR),y
|
|
|
|
|
sta SETWRITEAUX
|
|
|
|
|
|
2019-04-25 15:33:56 +00:00
|
|
|
|
.11 jsr PWD.GetRecordLen
|
2019-04-23 15:47:40 +00:00
|
|
|
|
|
2019-04-19 05:42:43 +00:00
|
|
|
|
clc
|
|
|
|
|
adc PWD.DBSize
|
2019-04-23 15:47:40 +00:00
|
|
|
|
sta PWD.DBSize
|
|
|
|
|
bcc .2
|
|
|
|
|
inc PWD.DBSize+1
|
|
|
|
|
.2 >LDYA PWD.DBPtr
|
|
|
|
|
>STYA ZPPtr4
|
|
|
|
|
>LDYA PWD.DBSize
|
2019-04-19 05:42:43 +00:00
|
|
|
|
|
2019-04-23 15:47:40 +00:00
|
|
|
|
jsr K.Getmem
|
|
|
|
|
bcs .99
|
|
|
|
|
>STYA ZPPtr3
|
|
|
|
|
>STYA PWD.DBPtr
|
|
|
|
|
ldy #0
|
|
|
|
|
.3 lda (ZPPtr4),y
|
|
|
|
|
sta (ZPPtr3),y
|
|
|
|
|
beq .4
|
|
|
|
|
iny
|
|
|
|
|
bne .3
|
|
|
|
|
inc ZPPtr4
|
|
|
|
|
inc ZPPtr3
|
|
|
|
|
bra .3
|
|
|
|
|
.4 tya
|
|
|
|
|
clc
|
|
|
|
|
adc ZPPtr3
|
|
|
|
|
sta ZPPtr3
|
|
|
|
|
bcc .5
|
|
|
|
|
inc ZPPtr3+1
|
2019-04-24 15:34:11 +00:00
|
|
|
|
.5 lda PWD.hDB
|
|
|
|
|
stx PWD.hDB
|
|
|
|
|
jsr K.Freemem
|
2019-04-25 15:33:56 +00:00
|
|
|
|
|
|
|
|
|
.8 jsr PWD.StoreRecord
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
|
|
|
|
.80 clc
|
2019-04-25 15:33:56 +00:00
|
|
|
|
.99 rts
|
2019-10-11 13:06:33 +00:00
|
|
|
|
|
2019-04-11 15:59:57 +00:00
|
|
|
|
.9 lda #E.IPWDDB
|
|
|
|
|
sec
|
2019-04-25 15:33:56 +00:00
|
|
|
|
rts
|
2019-04-11 15:59:57 +00:00
|
|
|
|
*--------------------------------------
|
2019-07-29 15:38:55 +00:00
|
|
|
|
* PRIVATE
|
2019-04-25 15:33:56 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-26 15:07:22 +00:00
|
|
|
|
PWD.GetUID >LDYA PWD.DBPtr
|
2019-04-11 15:59:57 +00:00
|
|
|
|
>STYA ZPPtr3
|
2019-04-26 15:07:22 +00:00
|
|
|
|
stz .8+1
|
|
|
|
|
.1 lda (ZPPtr3)
|
|
|
|
|
beq .8 End of DB
|
|
|
|
|
ldy #0
|
2019-06-06 15:45:40 +00:00
|
|
|
|
jsr PWD.NextString skip name
|
|
|
|
|
jsr PWD.NextString skip password
|
2019-04-26 15:07:22 +00:00
|
|
|
|
jsr PWD.GetByte
|
|
|
|
|
cmp .8+1
|
|
|
|
|
bcc .4
|
|
|
|
|
sta .8+1
|
|
|
|
|
.4 jsr PWD.NextLine
|
|
|
|
|
bra .1
|
|
|
|
|
.8 lda #$ff SELF MODIFIED
|
|
|
|
|
inc
|
|
|
|
|
beq .9
|
2019-04-25 15:33:56 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
2019-04-26 15:07:22 +00:00
|
|
|
|
.9 lda #E.IUSR
|
|
|
|
|
sec
|
|
|
|
|
rts
|
2019-04-19 05:42:43 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
PWD.DeleteRecord
|
2019-04-23 15:47:40 +00:00
|
|
|
|
jsr PWD.FindRecord
|
|
|
|
|
bcs .9
|
|
|
|
|
.1 iny
|
|
|
|
|
lda (ZPPtr3),y
|
|
|
|
|
cmp #C.CR
|
|
|
|
|
bne .1
|
2019-04-30 16:08:47 +00:00
|
|
|
|
sty .3+1
|
2019-04-23 15:47:40 +00:00
|
|
|
|
tya
|
|
|
|
|
sec
|
|
|
|
|
adc ZPPtr3
|
|
|
|
|
sta ZPPtr4
|
|
|
|
|
lda ZPPtr3+1
|
|
|
|
|
adc #0
|
|
|
|
|
sta ZPPtr4+1
|
|
|
|
|
ldy #$ff
|
|
|
|
|
.2 iny
|
|
|
|
|
lda (ZPPtr4),y
|
|
|
|
|
sta (ZPPtr3),y
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
lda PWD.DBSize
|
|
|
|
|
sec
|
2019-04-30 16:08:47 +00:00
|
|
|
|
.3 sbc #$ff SELF MODIFIED
|
2019-04-23 15:47:40 +00:00
|
|
|
|
sta PWD.DBSize
|
2019-04-30 16:08:47 +00:00
|
|
|
|
bcs .8
|
2019-04-23 15:47:40 +00:00
|
|
|
|
dec PWD.DBSize+1
|
2019-04-30 16:08:47 +00:00
|
|
|
|
.8 clc
|
2019-04-23 15:47:40 +00:00
|
|
|
|
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.9 rts
|
2019-04-23 15:47:40 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
PWD.FindRecord >LDYA PWD.DBPtr
|
2019-04-19 05:42:43 +00:00
|
|
|
|
>STYA ZPPtr3
|
|
|
|
|
|
2019-04-23 15:47:40 +00:00
|
|
|
|
>LDYA ZPPtr2
|
2019-04-19 05:42:43 +00:00
|
|
|
|
>STYA TXTPTR
|
|
|
|
|
|
|
|
|
|
.2 lda (ZPPtr3)
|
|
|
|
|
beq .9 End of DB
|
|
|
|
|
|
|
|
|
|
ldy #$ff
|
|
|
|
|
.3 iny
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-04-23 15:47:40 +00:00
|
|
|
|
beq .4
|
2019-04-19 05:42:43 +00:00
|
|
|
|
cmp (ZPPtr3),y
|
2019-04-23 15:47:40 +00:00
|
|
|
|
beq .3
|
2019-04-25 15:33:56 +00:00
|
|
|
|
.5 jsr PWD.NextLine
|
|
|
|
|
bra .2
|
2019-04-29 15:47:17 +00:00
|
|
|
|
.4 lda (ZPPtr3),y
|
|
|
|
|
cmp #':'
|
|
|
|
|
bne .5
|
2019-04-25 15:33:56 +00:00
|
|
|
|
|
2019-04-29 15:47:17 +00:00
|
|
|
|
clc
|
2019-04-25 15:33:56 +00:00
|
|
|
|
rts
|
2019-04-29 05:59:01 +00:00
|
|
|
|
.9 lda #E.IUSR
|
|
|
|
|
sec
|
2019-04-25 15:33:56 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-06-06 15:45:40 +00:00
|
|
|
|
PWD.NextString lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
bne PWD.NextString
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-04-25 15:33:56 +00:00
|
|
|
|
PWD.NextLine iny
|
2019-04-23 15:47:40 +00:00
|
|
|
|
lda (ZPPtr3),y
|
|
|
|
|
cmp #C.CR
|
2019-04-25 15:33:56 +00:00
|
|
|
|
bne PWD.NextLine
|
2019-04-23 15:47:40 +00:00
|
|
|
|
tya
|
|
|
|
|
sec
|
|
|
|
|
adc ZPPtr3
|
|
|
|
|
sta ZPPtr3
|
2019-04-25 15:33:56 +00:00
|
|
|
|
bcc .8
|
2019-04-23 15:47:40 +00:00
|
|
|
|
inc ZPPtr3+1
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.8 rts
|
2019-04-19 05:42:43 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-23 15:47:40 +00:00
|
|
|
|
PWD.Record2PW sta CLRWRITEAUX
|
2019-04-15 05:40:13 +00:00
|
|
|
|
|
|
|
|
|
ldy #0
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
|
|
|
|
ldx #0 NAME
|
|
|
|
|
|
|
|
|
|
.1 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
beq .2
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
bra .1
|
|
|
|
|
.2 lda #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
cpx #S.PW.PASSWD
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
.3 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
beq .4
|
|
|
|
|
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
bra .3
|
|
|
|
|
|
|
|
|
|
.4 lda #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
cpx #S.PW.UID
|
|
|
|
|
bne .4
|
|
|
|
|
|
|
|
|
|
jsr PWD.GetByte UID
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
|
|
|
|
jsr PWD.GetByte GID
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
|
|
|
|
ldx #S.PW.GECOS
|
|
|
|
|
|
|
|
|
|
.5 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
beq .6
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
bra .5
|
|
|
|
|
.6 lda #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
cpx #S.PW.DIR
|
|
|
|
|
bne .6
|
|
|
|
|
|
|
|
|
|
.7 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
beq .8
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
bra .7
|
|
|
|
|
.8 lda #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
cpx #S.PW.SHELL
|
|
|
|
|
bne .8
|
|
|
|
|
|
|
|
|
|
.9 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #C.CR
|
|
|
|
|
beq .10
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-12 15:41:05 +00:00
|
|
|
|
inx
|
|
|
|
|
bra .9
|
|
|
|
|
.10 lda #0
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.PutCharPtr2
|
2019-04-15 05:40:13 +00:00
|
|
|
|
sta SETWRITEAUX
|
2019-04-12 15:41:05 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-04-26 15:07:22 +00:00
|
|
|
|
PWD.GetByte stz ZPPtr4
|
2019-04-12 15:41:05 +00:00
|
|
|
|
|
|
|
|
|
.1 lda (ZPPtr3),y
|
|
|
|
|
iny
|
|
|
|
|
cmp #':'
|
|
|
|
|
beq .8
|
|
|
|
|
and #$f
|
|
|
|
|
pha
|
2019-04-26 15:07:22 +00:00
|
|
|
|
lda ZPPtr4
|
2019-04-12 15:41:05 +00:00
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
clc
|
2019-04-26 15:07:22 +00:00
|
|
|
|
adc ZPPtr4
|
2019-04-12 15:41:05 +00:00
|
|
|
|
asl
|
2019-04-26 15:07:22 +00:00
|
|
|
|
sta ZPPtr4
|
2019-04-12 15:41:05 +00:00
|
|
|
|
pla
|
|
|
|
|
clc
|
2019-04-26 15:07:22 +00:00
|
|
|
|
adc ZPPtr4
|
|
|
|
|
sta ZPPtr4
|
2019-04-12 15:41:05 +00:00
|
|
|
|
bra .1
|
2019-04-26 15:07:22 +00:00
|
|
|
|
.8 lda ZPPtr4
|
2019-06-11 05:52:24 +00:00
|
|
|
|
clc
|
2019-04-12 15:41:05 +00:00
|
|
|
|
rts
|
2019-04-09 15:47:33 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-11 15:59:57 +00:00
|
|
|
|
PWD.StoreRecord sec
|
|
|
|
|
.HS 90 BCC
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PWD.GetRecordLen
|
|
|
|
|
clc
|
|
|
|
|
ldx #0
|
|
|
|
|
ldy #S.PW.NAME-1
|
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreString
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
ldy #S.PW.PASSWD-1
|
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreString
|
|
|
|
|
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
|
|
|
|
|
ldy #S.PW.UID
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-04-11 15:59:57 +00:00
|
|
|
|
jsr PWD.StoreByte
|
|
|
|
|
|
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
2019-10-16 20:42:21 +00:00
|
|
|
|
|
|
|
|
|
ldy #S.PW.GID
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-04-11 15:59:57 +00:00
|
|
|
|
jsr PWD.StoreByte
|
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
|
2019-10-16 20:42:21 +00:00
|
|
|
|
ldy #S.PW.GECOS-1
|
2019-04-11 15:59:57 +00:00
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreString
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
|
|
|
|
|
ldy #S.PW.DIR-1
|
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreString
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda #':'
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
|
|
|
|
|
ldy #S.PW.SHELL-1
|
|
|
|
|
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreString
|
2019-04-11 15:59:57 +00:00
|
|
|
|
lda #C.CR
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
|
|
|
|
|
txa
|
2019-10-03 06:25:27 +00:00
|
|
|
|
PWD.GetRecordLen.RTS
|
2019-04-11 15:59:57 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-04-12 15:41:05 +00:00
|
|
|
|
PWD.StoreString iny
|
2019-07-28 20:39:30 +00:00
|
|
|
|
jsr SHARED.TXTPTR.GetY
|
2019-06-24 15:32:22 +00:00
|
|
|
|
beq PWD.GetRecordLen.RTS
|
2019-04-12 15:41:05 +00:00
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
bra PWD.StoreString
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PWD.StoreByte php
|
2019-04-11 15:59:57 +00:00
|
|
|
|
phx
|
2019-07-10 15:39:02 +00:00
|
|
|
|
jsr MATH.A2STR10NP
|
2019-04-11 15:59:57 +00:00
|
|
|
|
plx
|
2019-04-12 15:41:05 +00:00
|
|
|
|
plp
|
2019-06-24 15:32:22 +00:00
|
|
|
|
ldy #0
|
2019-07-03 15:25:07 +00:00
|
|
|
|
.1 lda A2osX.NumStrBuf,y
|
2019-06-24 15:32:22 +00:00
|
|
|
|
beq PWD.GetRecordLen.RTS
|
|
|
|
|
iny
|
|
|
|
|
jsr PWD.StoreChar
|
|
|
|
|
bra .1
|
2019-04-11 15:59:57 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
PWD.StoreChar inx
|
2019-04-12 15:41:05 +00:00
|
|
|
|
bcc .9 Dry run, no store
|
2019-04-11 15:59:57 +00:00
|
|
|
|
sta (ZPPtr3)
|
|
|
|
|
inc ZPPtr3
|
|
|
|
|
bne .9
|
|
|
|
|
inc ZPPtr3+1
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.9 rts
|
2019-04-11 15:59:57 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-09 15:47:33 +00:00
|
|
|
|
MAN
|
|
|
|
|
SAVE USR/SRC/SYS/KERNEL.S.PWDX
|
|
|
|
|
LOAD USR/SRC/SYS/KERNEL.S
|
|
|
|
|
ASM
|