A2osX/BIN/SH.S.HIS.txt

150 lines
2.4 KiB
Plaintext
Raw Normal View History

NEW
2019-06-02 08:58:46 +00:00
AUTO 3,1
2021-04-29 11:56:34 +00:00
.LIST OFF
2015-10-19 20:35:00 +00:00
*--------------------------------------
2019-04-01 06:07:56 +00:00
HIS.Init >LDYAI HISTORY.MAX Get a buffer for History
2021-04-29 11:56:34 +00:00
>SYSCALL StrVNew
2015-10-19 20:35:00 +00:00
bcs .9
>STA.G HIS.hBuf
2020-02-02 18:24:40 +00:00
>STZ.G HIS.Count
>STA.G HIS.Index
2021-04-29 11:56:34 +00:00
>STA.G HIS.LRU
2015-10-19 20:35:00 +00:00
.9 rts
*--------------------------------------
HIS.Add >LDA.G HIS.hBuf
2015-10-19 20:35:00 +00:00
beq .9
2020-01-28 16:42:51 +00:00
2021-04-29 11:56:34 +00:00
>LDA.G HIS.Count
cmp #HIS.MAX
bcc .2
>LDA.G HIS.LRU
tax
inc
cmp #HIS.MAX
bne .1
lda #0
.1 >STA.G HIS.LRU
bra .7
.2 tax
>INC.G HIS.Count
.7 >PUSHB.G HIS.hBuf
>PUSHBI 0
txa
2020-02-02 14:58:01 +00:00
>PUSHA
>PUSHW ZPCLBuf
2021-04-29 11:56:34 +00:00
>SYSCALL StrVSet
>STZ.G HIS.Index Reset Index
.9 rts
*--------------------------------------
HIS.Select >LDA.G HIS.Count
beq .8
>STZ.G HIS.Index
.1 jsr HIS.GetIndex
bcs .9
>PUSHW L.MSG.HISTORY
>PUSHB.G HIS.Index
>PUSHW ZPCLBuf
>PUSHBI 3
>SYSCALL PrintF
bcs .9
>INC.G HIS.Index
>CMP.G HIS.Count
bne .1
2020-02-02 14:58:01 +00:00
2021-04-29 11:56:34 +00:00
>PUSHW L.MSG.HISTORYPROMPT
>PUSHBI 0
>SYSCALL PrintF
2020-02-02 14:58:01 +00:00
2021-04-29 11:56:34 +00:00
>SYSCALL GetChar
bcs HIS.Select.RTS
* >PUSHW L.MSG.ECHOCRLF
* >PUSHBI 0
* >SYSCALL PrintF
jsr CL.PrintPrompt
bcs .9
bra HIS.Reset
.8 clc
2020-02-07 12:53:46 +00:00
.9
2021-04-29 11:56:34 +00:00
HIS.Select.RTS rts
2015-10-19 20:35:00 +00:00
*--------------------------------------
HIS.GetPrev >LDA.G HIS.hBuf
2021-04-29 11:56:34 +00:00
beq HIS.Select.RTS
2020-02-02 14:58:01 +00:00
>LDA.G HIS.Count
2021-04-29 11:56:34 +00:00
beq HIS.Select.RTS empty history,nothing to do
2020-02-02 14:58:01 +00:00
>LDA.G HIS.Index
bne .1
2020-02-02 14:58:01 +00:00
>LDA.G HIS.Count
2021-04-29 11:56:34 +00:00
.1 dec
2021-04-29 11:56:34 +00:00
bra HIS.GetToCL
2015-10-19 20:35:00 +00:00
*--------------------------------------
HIS.GetNext >LDA.G HIS.hBuf
2021-04-29 11:56:34 +00:00
beq HIS.Select.RTS
2015-10-19 20:35:00 +00:00
>LDA.G HIS.Count
2021-04-29 11:56:34 +00:00
beq HIS.Select.RTS empty history,nothing to do
2020-02-02 14:58:01 +00:00
>LDA.G HIS.Index
inc
>CMP.G HIS.Count
2021-04-29 11:56:34 +00:00
bne HIS.GetToCL
2020-02-02 14:58:01 +00:00
2021-04-29 11:56:34 +00:00
HIS.Reset >STZ.G HIS.Index
jmp CL.CLR
*--------------------------------------
2021-04-29 11:56:34 +00:00
HIS.GetToCL >STA.G HIS.Index
2019-07-31 15:10:59 +00:00
jsr CL.CLR
2020-02-02 14:58:01 +00:00
2021-04-29 11:56:34 +00:00
jsr HIS.GetIndex
bcs .9
2020-02-02 14:58:01 +00:00
2020-02-02 15:56:46 +00:00
ldy #$ff
2021-04-29 11:56:34 +00:00
2020-02-02 15:56:46 +00:00
.1 iny
lda (ZPCLBuf),y
bne .1
2021-04-29 11:56:34 +00:00
2020-02-02 15:56:46 +00:00
tya
2021-04-29 11:56:34 +00:00
2020-02-02 15:56:46 +00:00
>STA.G CL.Ptr
2018-11-10 14:30:09 +00:00
>STA.G CL.Len
2019-01-26 21:46:39 +00:00
jmp CL.PrintCLBuf
2021-04-29 11:56:34 +00:00
.9 rts
*--------------------------------------
HIS.GetIndex >PUSHB.G HIS.hBuf
>PUSHBI 0
>PUSHB.G HIS.Index
>PUSHW ZPCLBuf
>SYSCALL StrVGet
rts
2015-10-19 20:35:00 +00:00
*--------------------------------------
MAN
2020-05-26 14:23:09 +00:00
SAVE usr/src/bin/sh.s.his
LOAD usr/src/bin/sh.s
2015-10-19 20:35:00 +00:00
ASM