A2osX/SBIN/LOGIN.S.txt

360 lines
6.0 KiB
Plaintext
Raw Normal View History

2015-06-03 18:30:57 +00:00
NEW
2019-04-15 05:40:13 +00:00
AUTO 3,1
2015-06-03 18:30:57 +00:00
.LIST OFF
.OP 65C02
.OR $2000
2019-12-05 15:09:38 +00:00
.TF sbin/login
2015-06-03 18:30:57 +00:00
*--------------------------------------
2020-08-20 13:20:33 +00:00
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/kernel.i
.INB inc/mli.i
*--------------------------------------
2018-12-18 14:37:07 +00:00
.DUMMY
.OR ZPBIN
ZS.START
2019-06-06 06:37:30 +00:00
ZPhBuf .BS 1
ZPBufPtr .BS 2
2019-04-15 05:40:13 +00:00
ZPRetryCnt .BS 1
ZPbValidUser .BS 1
2019-06-06 15:45:40 +00:00
ZPUID .BS 1
2019-04-15 05:40:13 +00:00
ZPGetLinePtr .BS 2
ZPbGetLineSecret .BS 1
2019-04-29 15:47:17 +00:00
ZPbEsc .BS 1
2019-04-15 05:40:13 +00:00
ZPGetLineLen .BS 1
ZPGetLineMax .BS 1
2019-04-16 15:54:56 +00:00
2020-02-04 16:27:37 +00:00
ZPNewSID .BS 1
ZPOldSID .BS 1
2019-04-16 15:54:56 +00:00
2020-03-12 16:44:11 +00:00
ZPNewSession .BS 1
ZPOldSession .BS 1
2019-04-16 15:54:56 +00:00
ZPhFile .BS 1
ZS.END .ED
2015-06-03 18:30:57 +00:00
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
2018-09-19 15:25:42 +00:00
.DA #S.PS.F.EVENT S.PS.F
.DA #0
2018-12-18 14:37:07 +00:00
.DA CS.END-CS.START Code Size (without Constants)
2019-05-05 17:15:37 +00:00
.DA DS.END-DS.START Data Segment Size
.DA #16 Stack Size
2018-12-18 14:37:07 +00:00
.DA #ZS.END-ZS.START Zero Page Size
2015-06-03 18:30:57 +00:00
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.LOGIN .DA MSG.LOGIN
L.MSG.PASSWORD .DA MSG.PASSWORD
2019-04-15 05:40:13 +00:00
L.MSG.BAD .DA MSG.BAD
L.MSG.BS .DA MSG.BS
L.MSG.CRLF .DA MSG.CRLF
L.ETCNOAUTH .DA ETCNOAUTH
2019-04-16 15:54:56 +00:00
L.ETCISSUE .DA ETCISSUE
L.ETCMOTD .DA ETCMOTD
L.SHELL .DA SHELL
2015-06-03 18:30:57 +00:00
.DA 0
*--------------------------------------
CS.QUIT
*--------------------------------------
2018-09-19 15:25:42 +00:00
CS.INIT clc
2019-04-16 15:54:56 +00:00
CS.INIT.RTS rts
2015-06-03 18:30:57 +00:00
*--------------------------------------
2020-07-08 15:26:23 +00:00
CS.RUN >LDYA L.ETCISSUE
2020-08-20 13:20:33 +00:00
jsr CS.RUN.DumpFile
2019-04-16 15:54:56 +00:00
2020-02-17 16:55:02 +00:00
lda #0
>PUSHA ROOT user
2020-03-12 16:44:11 +00:00
>PUSHA
>PUSHA Dry Run, no output
2019-03-12 14:41:55 +00:00
>SYSCALL GetPWUID
2019-06-06 15:45:40 +00:00
bcc CS.RUN.AUTH
2020-03-12 16:44:11 +00:00
*--------------------------------------
>LDYA L.ETCNOAUTH
jsr CS.RUN.DumpFile
2020-07-08 15:26:23 +00:00
jsr CS.RUN.EXECPS
2019-06-06 15:45:40 +00:00
bcs .9
ldy #S.PS.RC
lda (pPS),y
2019-10-19 20:54:59 +00:00
sec
2019-10-03 06:25:27 +00:00
.9 rts
2019-04-12 15:41:05 +00:00
*--------------------------------------
2020-01-24 15:54:31 +00:00
CS.RUN.AUTH lda #3
2019-04-15 05:40:13 +00:00
sta ZPRetryCnt
2019-11-20 10:08:49 +00:00
.1 >LDYA L.MSG.LOGIN
jsr CS.RUN.printf
bcs .9
2019-11-20 10:08:49 +00:00
2020-08-20 13:20:33 +00:00
>LEA.G Username
2020-07-08 15:26:23 +00:00
ldx #16
2019-04-15 05:40:13 +00:00
clc
jsr CS.RUN.GetLine
2019-02-20 16:07:43 +00:00
bcs .9
2019-06-11 05:52:24 +00:00
2015-06-03 18:30:57 +00:00
>LDYA L.MSG.PASSWORD
jsr CS.RUN.printf
bcs .9
2020-07-08 15:26:23 +00:00
>LDYA pData >LEA.G Password
ldx #32
2019-04-15 05:40:13 +00:00
sec
jsr CS.RUN.GetLine
2019-02-20 16:07:43 +00:00
bcs .9
2019-06-11 05:52:24 +00:00
2019-04-15 05:40:13 +00:00
>LDYA L.MSG.CRLF
>SYSCALL PutS
bcs .9
2020-07-08 15:26:23 +00:00
>PUSHW pData >PUSHEA.G Password
>PUSHW pData >PUSHEA.G Password
>SYSCALL MD5
2020-07-09 15:13:30 +00:00
jsr CS.RUN.EXEC
bcc .9
2019-10-19 20:54:59 +00:00
2020-07-08 15:26:23 +00:00
>LDYA L.MSG.BAD
2020-02-28 07:21:46 +00:00
>SYSCALL PutS
2019-04-15 05:40:13 +00:00
bcs .9
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
dec ZPRetryCnt
2020-07-08 15:26:23 +00:00
bne .1
2019-10-19 20:54:59 +00:00
2020-07-08 15:26:23 +00:00
lda #E.IUSR
2019-10-03 06:25:27 +00:00
sec
2019-04-15 05:40:13 +00:00
.9 rts
*--------------------------------------
2020-07-08 15:26:23 +00:00
CS.RUN.EXEC >PUSHEA.G Username
>PUSHW pData >PUSHEA.G Password
2019-06-06 15:45:40 +00:00
2020-07-08 15:26:23 +00:00
>SYSCALL OpenSession
bcs .9
2020-03-13 16:10:36 +00:00
2020-07-08 15:26:23 +00:00
sta ZPNewSID
2020-03-13 16:10:36 +00:00
2020-07-08 15:26:23 +00:00
ldx #1
2020-03-13 16:10:36 +00:00
2023-10-18 05:41:12 +00:00
.1 lda USRs.hSID-1,x
2020-07-08 15:26:23 +00:00
beq .2
2020-02-04 14:35:48 +00:00
2020-07-08 15:26:23 +00:00
inx
cpx #K.USR.MAX+1
bne .1
2020-02-04 14:35:48 +00:00
2020-07-08 15:26:23 +00:00
lda #E.OOH
* sec
rts
2019-10-19 20:54:59 +00:00
2020-07-08 15:26:23 +00:00
.2 stx ZPNewSession
ldy #S.PS.hSession
lda (pPS),y
sta ZPOldSession
txa
sta (pPS),y
2019-06-06 15:45:40 +00:00
2020-07-08 15:26:23 +00:00
lda ZPNewSID
2023-10-18 05:41:12 +00:00
sta USRs.hSID-1,x
2019-10-19 20:54:59 +00:00
2020-07-08 15:26:23 +00:00
ldy #S.PS.hStdIn
lda (pPS),y
2023-10-18 05:41:12 +00:00
sta USRs.hFile-1,x
2020-07-08 15:26:23 +00:00
jsr CS.RUN.EXECPS
2020-02-04 16:27:37 +00:00
2020-07-08 15:26:23 +00:00
lda ZPNewSID
2020-03-12 16:44:11 +00:00
2020-07-08 15:26:23 +00:00
>SYSCALL CloseSession
2020-03-12 16:44:11 +00:00
2020-07-08 15:26:23 +00:00
stz ZPNewSID
2020-03-12 16:44:11 +00:00
2020-07-08 15:26:23 +00:00
.8 ldx ZPNewSession
2023-10-18 05:41:12 +00:00
stz USRs.hSID-1,x
stz USRs.hFile-1,x
2020-03-12 16:44:11 +00:00
2020-07-08 15:26:23 +00:00
ldy #S.PS.hSession
lda ZPOldSession
sta (pPS),y
2020-02-04 16:27:37 +00:00
ldy #S.PS.RC
lda (pPS),y
sec
.9 rts
*--------------------------------------
CS.RUN.EXECPS >LDYA L.ETCMOTD
jsr CS.RUN.DumpFile
>PUSHW L.SHELL
>PUSHBI S.PS.F.HOLD
>SYSCALL ExecL
bcs .9
>SLEEP
* clc
2019-06-06 15:45:40 +00:00
.9 rts
*--------------------------------------
2020-07-08 15:26:23 +00:00
CS.RUN.GetLine >STYA ZPGetLinePtr
stx ZPGetLineMax
2019-04-15 05:40:13 +00:00
ror ZPbGetLineSecret
2020-07-08 15:26:23 +00:00
2019-04-15 05:40:13 +00:00
stz ZPGetLineLen
2019-04-29 15:47:17 +00:00
stz ZPbEsc
2019-10-19 20:54:59 +00:00
2020-08-20 13:20:33 +00:00
.1 >SYSCALL GetChar
2019-04-15 05:40:13 +00:00
bcs .9
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
bit ZPbEsc
bpl .11
2019-10-19 20:54:59 +00:00
2019-05-04 21:13:50 +00:00
* clc
2019-04-29 15:47:17 +00:00
ror ZPbEsc
cmp #'D'
bne .1
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
bra .3
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
.11 cmp #C.DEL
beq .3
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
cmp #C.SPACE
2015-06-03 18:30:57 +00:00
bcc .2
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
ldy ZPGetLineLen
cpy ZPGetLineMax
beq .1
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
sta (ZPGetLinePtr),y
2019-04-29 15:47:17 +00:00
inc ZPGetLineLen
2019-04-15 05:40:13 +00:00
bit ZPbGetLineSecret
bmi .1
2019-10-19 20:54:59 +00:00
2020-08-20 13:20:33 +00:00
>SYSCALL PutChar
2019-04-15 05:40:13 +00:00
bra .1
2018-12-04 13:20:35 +00:00
2019-04-15 05:40:13 +00:00
.2 cmp #3 Ctrl-C
beq .9
cmp #C.CR
beq .8
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
cmp #C.ESC
2019-04-15 05:40:13 +00:00
bne .1
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
* sec
ror ZPbEsc
bra .1
2019-10-19 20:54:59 +00:00
2019-04-29 15:47:17 +00:00
.3 ldy ZPGetLineLen
2018-12-04 13:20:35 +00:00
beq .1
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
dec ZPGetLineLen
bit ZPbGetLineSecret
bmi .1
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
>LDYA L.MSG.BS
jsr CS.RUN.printf
2019-04-15 05:40:13 +00:00
bra .1
2019-10-19 20:54:59 +00:00
2019-04-15 05:40:13 +00:00
.8 ldy ZPGetLineLen
lda #0
sta (ZPGetLinePtr),y
clc
.9 rts
2015-06-03 18:30:57 +00:00
*--------------------------------------
CS.RUN.printf >PUSHYA
2019-11-20 10:08:49 +00:00
>PUSHBI 0
>SYSCALL PrintF
2019-11-20 10:08:49 +00:00
rts
*--------------------------------------
2020-02-14 07:21:56 +00:00
CS.RUN.DumpFile >PUSHYA
2019-04-16 15:54:56 +00:00
>PUSHBI O.RDONLY+O.TEXT
2020-02-14 07:21:56 +00:00
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
2019-04-16 15:54:56 +00:00
>SYSCALL FOpen
bcs .99
2019-11-20 10:08:49 +00:00
2019-04-16 15:54:56 +00:00
stx ZPhFile
2019-06-06 06:37:30 +00:00
>LDYAI 256
2020-02-28 07:21:46 +00:00
>SYSCALL GetMem
bcs .9
2019-06-06 06:37:30 +00:00
>STYA ZPBufPtr
stx ZPhBuf
2019-11-20 10:08:49 +00:00
2020-12-23 14:54:57 +00:00
.1 >PUSHB ZPhFile
jsr .7
>PUSHWI 255
2020-08-20 13:20:33 +00:00
>SYSCALL FGetS
bcs .8
2019-11-20 10:08:49 +00:00
jsr .7
jsr .7
2020-01-17 11:23:11 +00:00
>SYSCALL Expand
2019-10-18 11:41:27 +00:00
>LDYA ZPBufPtr
2020-02-28 07:21:46 +00:00
>SYSCALL PutS
2019-04-16 15:54:56 +00:00
bra .1
2019-10-18 11:41:27 +00:00
.8 lda ZPhBuf
2020-02-28 07:21:46 +00:00
>SYSCALL FreeMem
* clc
2019-10-18 11:41:27 +00:00
.9 php
pha
lda ZPhFile
2020-02-28 07:21:46 +00:00
>SYSCALL FClose
pla
plp
.99 rts
.7 >PUSHW ZPBufPtr
rts
2019-04-16 15:54:56 +00:00
*--------------------------------------
CS.DOEVENT sec
2019-04-16 15:54:56 +00:00
rts
*--------------------------------------
2015-06-03 18:30:57 +00:00
CS.END
2019-04-12 15:41:05 +00:00
*--------------------------------------
MSG.LOGIN .CZ "\r\nlogin:"
MSG.PASSWORD .CZ "\r\npassword:"
*--------------------------------------
2019-11-15 14:40:48 +00:00
MSG.BAD .AZ "Bad user or password"
MSG.BS .DA #C.BS,#C.SPACE,#C.BS
MSG.CRLF .HS 00
ETCNOAUTH .AZ "${ROOT}etc/noauth"
2019-12-05 15:09:38 +00:00
ETCISSUE .AZ "${ROOT}etc/issue"
ETCMOTD .AZ "${ROOT}etc/motd"
2019-04-16 15:54:56 +00:00
SHELL .AZ "${SHELL}"
*--------------------------------------
2015-06-03 18:30:57 +00:00
.DUMMY
.OR 0
2020-07-08 15:26:23 +00:00
DS.START
Password .BS 33
Username .BS 17
2019-10-19 20:54:59 +00:00
DS.END .ED
2015-06-03 18:30:57 +00:00
*--------------------------------------
MAN
2020-08-20 13:20:33 +00:00
SAVE usr/src/sbin/login.s
2015-06-03 18:30:57 +00:00
ASM