diff --git a/vt.equ.S b/vt.equ.S index 374d32a..f0ad152 100644 --- a/vt.equ.S +++ b/vt.equ.S @@ -1,6 +1,7 @@ cas se +BUILD equ 100 ; 52, 100, 102 st_vt52 equ 0 st_vt52_esc equ 2 @@ -42,6 +43,12 @@ DECCOLM ds 2 ; character per line (80/132) LNM ds 2 ; new line SGR ds 2 ; graphics, bit 1 = bold, 4 = underscore, 5 = blink, 7 = inverse + + do BUILD=102 +SRM ds 2 ; local echo aka send-receive mode +IRM ds 2 ; insertion-replacement mode + fin + * not supported *CHARSET ds 2 ; diff --git a/vt100.csi.S b/vt100.csi.S index 48e0f41..05d53bc 100644 --- a/vt100.csi.S +++ b/vt100.csi.S @@ -355,7 +355,7 @@ mode_common dw mode_DECCKM dw mode_DECANM dw mode_DECCOLM ; DECCOLM - dw :rts ; DECSCLM + dw mode_4 ; DECSCLM dw mode_DECSCNM dw mode_DECOM dw mode_DECAWM @@ -363,7 +363,7 @@ mode_common dw :rts ; DECINLM dw :rts ; 10 dw :rts ; 11 - dw :rts ; 12 + dw mode_12 ; 12 dw :rts ; 13 dw :rts ; 14 dw :rts ; 15 @@ -417,6 +417,7 @@ mode_DECCOLM stz x stz y +* TODO - does this also reset the origin mode? phy jsr recalc_cursor jsr erase_screen_2 @@ -424,11 +425,40 @@ mode_DECCOLM :rts rts + +mode_4 +* ? 4 = DECSCLM +* 4 = IRM (vt102) + do BUILD=102 + + bit pmod + bmi :rts +:irm + sty IRM + + fin + +:rts rts + + +mode_12 +* ? 12 = unused +* 12 = SRM (vt102) + do BUILD=102 + bit pmod + bmi :rts + sty SRM + fin + +:rts rts + + + mode_DECSCNM bit pmod bpl :rts -* todo - invert on-screen characters? +* todo - invert on-screen characters? swap foreground/background colors in control panel? sty DECSCNM :rts rts @@ -866,7 +896,12 @@ csi_c ; what are you? plp rts + do BUILD=100 :response asc 1b,'[?1;0c',00 ; No options. + fin + do BUILD=102 +:response asc 1b,'[?1;6c',00 ; No options. + fin csi_y ; invoke confidence test * ???