A2osX/SBIN/LOGIN.S.txt

218 lines
3.9 KiB
Plaintext
Raw Normal View History

2015-06-03 18:30:57 +00:00
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
2015-06-03 18:30:57 +00:00
.LIST OFF
.OP 65C02
.OR $2000
2018-07-20 05:43:11 +00:00
.TF SBIN/LOGIN
2015-06-03 18:30:57 +00:00
*--------------------------------------
2018-07-20 05:43:11 +00:00
.INB INC/MACROS.I
.INB INC/A2OSX.I
*--------------------------------------
ZPPTR1 .EQ ZPBIN
2015-06-03 18:30:57 +00:00
*--------------------------------------
INPUT.BufPtr.SIZE .EQ 16
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
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #64 SS
.DA #2 ZP SS
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
L.SHELL .DA SHELL
.DA 0
*--------------------------------------
CS.INIT lda (pPs)
2015-06-03 18:30:57 +00:00
ora #S.PS.F.EVENT Now accept events
sta (pPs)
clc Tell TskMgr To stay in memory
.9 rts
*--------------------------------------
CS.RUN lda #0
ldy #hUSERNAME
sta (pData),y
ldy #hPASSWORD
sta (pData),y
2018-08-22 15:23:27 +00:00
>PUSHBI 0
2015-06-03 18:30:57 +00:00
>LDYA L.MSG.LOGIN
2018-06-21 15:12:10 +00:00
>SYSCALL printf
bcs .9
2015-06-03 18:30:57 +00:00
lda #0 Echo all caracters
jsr INPUT.RESET
.1 >SLEEP
>SYSCALL GetChar
bcc .11
tax
beq .1 no char
bra .9
.11 jsr INPUT.CHARIN
2015-06-03 18:30:57 +00:00
jsr INPUT.LINEIN
bcc .1
2018-08-22 15:23:27 +00:00
>PUSHBI 0
2015-06-03 18:30:57 +00:00
>LDYA L.MSG.PASSWORD
2018-06-21 15:12:10 +00:00
>SYSCALL printf
bcs .9
2015-06-03 18:30:57 +00:00
lda #'*'
jsr INPUT.RESET
.2 >SLEEP
>SYSCALL GetChar
bcc .22
tax
beq .2 no char
bra .9
.22 jsr INPUT.CHARIN
2015-06-03 18:30:57 +00:00
jsr INPUT.LINEIN
bcc .2
lda #13
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
bcs .9
lda #10
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
bcs .9
2015-06-03 18:30:57 +00:00
2016-08-17 06:25:58 +00:00
>LDYA L.SHELL
2018-07-18 15:30:42 +00:00
>SYSCALL ExpandStr
bcs .9
phx
2018-07-18 15:30:42 +00:00
>SYSCALL ExecPS
2015-06-03 18:30:57 +00:00
plx
php
pha
txa
2018-07-18 15:30:42 +00:00
>SYSCALL FreeMem
pla
plp
2015-06-03 18:30:57 +00:00
.9 rts
2015-06-03 18:30:57 +00:00
*--------------------------------------
2017-01-12 17:43:45 +00:00
CS.DOEVENT
sec
2015-06-03 18:30:57 +00:00
rts
*--------------------------------------
2016-08-17 06:25:58 +00:00
CS.QUIT clc
2015-06-03 18:30:57 +00:00
rts
*--------------------------------------
* PRIVATE
*--------------------------------------
INPUT.RESET ldy #INPUT.PassChar
2015-06-03 18:30:57 +00:00
sta (pData),y
lda #0
ldy #INPUT.BufPtr
sta (pData),y
ldy #INPUT.Status
2015-06-03 18:30:57 +00:00
sta (pData),y
rts
*--------------------------------------
2017-01-12 17:43:45 +00:00
INPUT.CHARIN tax save char...
ldy #INPUT.Status
2015-06-03 18:30:57 +00:00
lda (pData),y
bmi .9
lda #INPUT.BufPtr
2015-06-03 18:30:57 +00:00
clc
adc pData
sta ZPPTR1
2015-06-03 18:30:57 +00:00
lda pData+1
adc /INPUT.BufPtr
sta ZPPTR1+1
2015-06-03 18:30:57 +00:00
cpx #$20 Control Char?
bcc .2
lda (ZPPTR1)
2015-06-03 18:30:57 +00:00
cmp #INPUT.BufPtr.SIZE Buffer full?
2015-06-03 18:30:57 +00:00
beq .9
inc
sta (ZPPTR1)
2015-06-03 18:30:57 +00:00
tay
txa
sta (ZPPTR1),y
2015-06-03 18:30:57 +00:00
ldy #INPUT.PassChar
2015-06-03 18:30:57 +00:00
lda (pData),y
bne .1
txa
2018-07-18 15:30:42 +00:00
.1 >SYSCALL PutChar
rts
2015-06-03 18:30:57 +00:00
.2 cpx #13 CR
bne .3
ldy #INPUT.Status
lda (pData),y
2015-06-03 18:30:57 +00:00
bne .9
inc
sta (pData),y
rts
.3 cpx #10 LF
bne .4
ldy #INPUT.Status
lda (pData),y
beq .31
2015-06-03 18:30:57 +00:00
lda #$80
sta (pData),y
rts
.31
.4
2015-06-03 18:30:57 +00:00
.9 rts
*--------------------------------------
INPUT.LINEIN ldy #INPUT.Status
2015-06-03 18:30:57 +00:00
lda (pData),y
asl CS if a line is in the buffer
2015-06-03 18:30:57 +00:00
rts
*--------------------------------------
CS.END
MSG.LOGIN .AZ "\r\nlogin:"
MSG.PASSWORD .AZ "\r\npassword:"
SHELL .AZ "${A2OSX}SBIN/SHELL"
*--------------------------------------
2015-06-03 18:30:57 +00:00
.DUMMY
.OR 0
DS.START
INPUT.BufPtr .BS INPUT.BufPtr.SIZE+1
INPUT.Status .BS 1
INPUT.PassChar .BS 1
2015-06-03 18:30:57 +00:00
hUSERNAME .BS 1
hPASSWORD .BS 1
DS.END
.ED
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SBIN/LOGIN.S
2015-06-03 18:30:57 +00:00
ASM