NEW AUTO 3,1 .LIST OFF *-------------------------------------- HIS.Init >LDYAI HISTORY.MAX Get a buffer for History >SYSCALL GetMem0 bcs .9 txa >STA.G HIS.hBuf lda #0 >STA.G HIS.Count >STA.G HIS.Index .9 rts *-------------------------------------- HIS.Quit >LDA.G HIS.hBuf beq .9 >SYSCALL FreeMem .9 rts *-------------------------------------- HIS.Add >LDA.G HIS.hBuf beq .9 >SYSCALL GetMemPtr >STYA ZPPTR1 .10 lda #$ff jsr HIS.GetA Y=ending 0 phy tya sec add len+1 >ADC.G CL.Len CmdBuffer length pla bcc .2 enough room jsr GetPtr1LenY get len of oldest string tya * sec adc ZPPTR1 sta ZPPTR2 lda ZPPTR1+1 adc #0 sta ZPPTR2+1 ldy #$FF .1 iny lda (ZPPTR2),y move back until String ending 0 found sta (ZPPTR1),y bne .1 iny lda (ZPPTR2),y move back until Array ending 0 found sta (ZPPTR1),y bne .1 >DEC.G HIS.Count bra .10 retry.... .2 jsr AddAPtr1 A = ending O offset ldy #$ff .4 iny lda (ZPCLBuf),y sta (ZPPTR1),y bne .4 iny sta (ZPPTR1),y set new array ending 0 * lda #0 >STA.G HIS.Index Reset Index >INC.G HIS.Count .9 rts *-------------------------------------- HIS.GetPrev >LDA.G HIS.hBuf beq HISTORY.RTS >SYSCALL GetMemPtr >STYA ZPPTR1 >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do >LDA.G HIS.Index bne .1 >LDA.G HIS.Count .1 dec >STA.G HIS.Index bra HIS.SetA History.RTS rts *-------------------------------------- HIS.GetNext >LDA.G HIS.hBuf beq HISTORY.RTS >SYSCALL GetMemPtr >STYA ZPPTR1 >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do >LDA.G HIS.Index inc >CMP.G HIS.Count bne .1 lda #0 >STA.G HIS.Index jmp CL.CLR .1 >STA.G HIS.Index *-------------------------------------- HIS.SetA jsr HIS.GetA tya jsr AddAPtr1 jsr CL.CLR ldy #$ff .2 iny lda (ZPPTR1),y sta (ZPCLBuf),y bne .2 tya >STA.G CL.Ptr >STA.G CL.Len jmp CL.PrintCLBuf *-------------------------------------- HIS.GetA ldy #0 tax beq .80 lda (ZPPTR1),y beq .9 .1 iny lda (ZPPTR1),y bne .1 dex beq .8 iny lda (ZPPTR1),y bne .1 .9 sec Found ending 0.... rts .8 iny .80 clc rts *-------------------------------------- MAN SAVE USR/SRC/BIN/SH.S.HIS LOAD USR/SRC/BIN/SH.S ASM