A2osX/SBIN/LOGIN.S.txt

208 lines
3.9 KiB
Plaintext
Raw Normal View History

2015-06-03 18:30:57 +00:00
PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BOOT/SBIN/LOGIN
*--------------------------------------
.INB /A2OSX.DEV/INC/MACROS.I
.INB /A2OSX.DEV/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 Code Length To Relocate
.DA DS.END-DS.START Data Segment to Allocate
.DA 0
.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
*--------------------------------------
2016-08-17 06:25:58 +00:00
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
>LDYA L.MSG.LOGIN
>SYSCALL CPrintFYA
bcs .9
2015-06-03 18:30:57 +00:00
lda #0 Echo all caracters
jsr INPUT.RESET
.1 >SYSCALL Sleep
2017-01-12 17:43:45 +00:00
>SYSCALL GetC
bcs .1 no char
jsr INPUT.CHARIN
2015-06-03 18:30:57 +00:00
jsr INPUT.LINEIN
bcc .1
>LDYA L.MSG.PASSWORD
>SYSCALL CPrintFYA
bcs .9
2015-06-03 18:30:57 +00:00
lda #'*'
jsr INPUT.RESET
.2 >SYSCALL Sleep
2017-01-12 17:43:45 +00:00
>SYSCALL GetC
bcs .2 no char
jsr INPUT.CHARIN
2015-06-03 18:30:57 +00:00
jsr INPUT.LINEIN
bcc .2
lda #13
2017-01-12 17:43:45 +00:00
>SYSCALL PutCA
bcs .9
lda #10
>SYSCALL PutCA
bcs .9
2015-06-03 18:30:57 +00:00
2016-08-17 06:25:58 +00:00
>LDYA L.SHELL
>SYSCALL ExpandPStrYA
bcs .9
stx .3+1
>SYSCALL ExecProcessNewEnvYA
2015-06-03 18:30:57 +00:00
php
pha
.3 lda #$ff Self Modified
>SYSCALL FreeMemA
pla
plp
rts
2015-06-03 18:30:57 +00:00
.8 clc
.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
2017-01-12 17:43:45 +00:00
.1 >SYSCALL PutCA
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 >CSTR "\r\nlogin:"
MSG.PASSWORD >CSTR "\r\npassword:"
SHELL >PSTR "${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 SBIN/LOGIN.S
ASM