diff --git a/vt100.key.S b/vt100.key.S index 198e468..92d0c1f 100644 --- a/vt100.key.S +++ b/vt100.key.S @@ -49,7 +49,7 @@ keypress ent * control char w/o control bit. * ie, arrow key / return / tab - +* no cmp / sbc needed asl tax lsr ; restore @@ -77,6 +77,8 @@ keypad blt :rts cmp #:MAX+1 bcs :rts + sec + sbc #:MIN asl tax jmp (:table,x) diff --git a/vt100.main.S b/vt100.main.S index a8d0f51..cff7f83 100644 --- a/vt100.main.S +++ b/vt100.main.S @@ -13,6 +13,7 @@ ext write_modem,read_modem,init_modem,keypress ext disable_cursor,enable_cursor ext erase_screen + ext init_tabs SET80VID equ $c00d SETALTCHAR equ $c00f @@ -85,6 +86,7 @@ init jsr erase_screen jsr init_modem + jsr init_tabs rts @@ -240,7 +242,7 @@ ctrl_0c ; form feed. :lf lda y cmp #DECBM - blt :simple + bne :simple * lda #" " ; needs to factor in reverse video * sta cursor_saved_char diff --git a/vt100.tabs.S b/vt100.tabs.S index 46f4616..6e9ff8c 100644 --- a/vt100.tabs.S +++ b/vt100.tabs.S @@ -23,7 +23,7 @@ init_tabs ent bpl :loop rts -:table db 8*1,8*2,8*3,8*4,8*5,8*6,8*7,8*8*,8*9 +:table db 8*1,8*2,8*3,8*4,8*5,8*6,8*7,8*8,8*9 set_tab ent * input x = x