All cursor movements working without args

This commit is contained in:
jaseg 2021-06-18 21:46:22 +02:00
parent 9208a874e4
commit 9b7aa959a4
5 changed files with 100 additions and 60 deletions

View file

@ -42,7 +42,7 @@
<Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
<Option Name="EnableBDX" Val="FALSE"/>
<Option Name="WTXSimLaunchSim" Val="355"/>
<Option Name="WTXSimLaunchSim" Val="375"/>
<Option Name="WTModelSimLaunchSim" Val="0"/>
<Option Name="WTQuestaLaunchSim" Val="0"/>
<Option Name="WTIesLaunchSim" Val="0"/>

View file

@ -44,9 +44,11 @@ reg cursor_movement_x_neg;
reg cursor_movement_y_pos;
reg cursor_movement_y_neg;
reg esc_inval;
reg num_start;
always @(posedge clk) begin
in_byte_ack <= 0;
glyph_buffer_w_valid <= 0;
if (rst) begin
parser_state <= ST_PARSE_TEXT;
@ -55,6 +57,7 @@ always @(posedge clk) begin
parser_action <= 0;
glyph_x <= 0;
glyph_y <= 0;
num_start <= 0;
end else if (!parser_valid && in_byte_valid) begin
in_byte_ack <= 1;
@ -82,8 +85,8 @@ always @(posedge clk) begin
(ST_PARSE_ESC): begin
if (in_byte == 8'h5b) begin /* [ */
parser_state <= ST_PARSE_CSI;
num_buf[NUM_BUF_SZ*12-1:12] <= {{0}};
num_buf[11:0] <= 12'hfff;
num_buf <= {{0}};
num_start <= 1;
end else begin
parser_state <= ST_PARSE_INVAL;
@ -92,12 +95,18 @@ always @(posedge clk) begin
(ST_PARSE_CSI), (ST_PARSE_SEP): begin
if (in_byte >= 8'h30 && in_byte <= 8'h39) begin /* 0-9 */
num_buf <= {num_buf[NUM_BUF_SZ*12-1:12], num_buf[7:0], ~in_byte[3:0]};
if (num_start) begin
num_start <= 0;
num_buf <= {num_buf[NUM_BUF_SZ*12-1:12], 8'hff, ~in_byte[3:0]};
end else begin
num_buf <= {num_buf[NUM_BUF_SZ*12-1:12], num_buf[7:0], ~in_byte[3:0]};
end
parser_state = ST_PARSE_CSI;
end else if (in_byte == 8'h3b) begin /* ; */
num_buf <= {num_buf[NUM_BUF_SZ*12-1-12:0], 12'hfff};
parser_state <= ST_PARSE_SEP;
num_start <= 1;
end else if (in_byte >= 8'h40 && in_byte <= 8'h7e) begin
parser_action <= in_byte;
@ -128,6 +137,7 @@ end
function [11:0] bcd12_inc;
input [11:0] in;
begin
bcd12_inc = in;
if (in[3:0] != 4'h9) begin
bcd12_inc[3:0] = in[3:0]+1;
end else begin
@ -165,7 +175,7 @@ always @(posedge clk) begin
if (cursor_movement_x_pos || cursor_movement_x_neg || cursor_movement_y_pos || cursor_movement_y_neg) begin
csi_act_ctr <= bcd12_inc(csi_act_ctr);
if (!csi_act_ctr == ~num_buf_last) begin
if (csi_act_ctr != ~num_buf_last) begin
if (cursor_movement_x_pos) begin
if (glyph_x != GLYPHMEM_W-1) glyph_x <= glyph_x + 1;
end else if (cursor_movement_x_neg) begin
@ -188,44 +198,48 @@ always @(posedge clk) begin
end else if (parser_action == 8'h41 && !esc_inval) begin /* A; Cursor up */
cursor_movement_y_neg <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h42 && !esc_inval) begin /* B; Cursor down */
cursor_movement_y_pos <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h43 && !esc_inval) begin /* C; Cursor forward */
cursor_movement_x_pos <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h44 && !esc_inval) begin /* D; Cursor back */
cursor_movement_x_neg <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h45 && !esc_inval) begin /* E; Cursor next line */
glyph_x <= 0;
cursor_movement_y_pos <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h46 && !esc_inval) begin /* F: Cursor previous line */
glyph_x <= 0;
cursor_movement_y_neg <= 1;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
end else if (parser_action == 8'h47 && !esc_inval) begin /* G: Cursor horizontal absolute */
glyph_x <= 0;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] != 0) begin
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] <= num_buf[11:0];
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] != 0) begin
cursor_movement_x_pos <= 1;
end else begin
parser_valid <= 0;
end
end else if (parser_action == 8'h48 && !esc_inval) begin /* H: Cursor x/y absolute */
glyph_x <= 0;
glyph_y <= 0;
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-24] <= num_buf[23:0];
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] != 0) begin
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-24] <= num_buf[23:0];
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-12] != 0) begin
cursor_movement_x_pos <= 1;
cursor_movement_y_pos <= 1;
end else begin
parser_valid <= 0;
end
end else if (parser_action == 8'h6d && !esc_inval) begin /* m; CSI SGR */

View file

@ -11,9 +11,9 @@
</db_ref>
</db_ref_list>
<zoom_setting>
<ZoomStartTime time="0fs"></ZoomStartTime>
<ZoomEndTime time="3804001fs"></ZoomEndTime>
<Cursor1Time time="3602108fs"></Cursor1Time>
<ZoomStartTime time="8950000fs"></ZoomStartTime>
<ZoomEndTime time="9370001fs"></ZoomEndTime>
<Cursor1Time time="9236000fs"></Cursor1Time>
</zoom_setting>
<column_width_setting>
<NameColumnWidth column_width="175"></NameColumnWidth>
@ -23,6 +23,7 @@
<wvobject fp_name="/term_emu_tb/testcase_id" type="array">
<obj_property name="ElementShortName">testcase_id[31:0]</obj_property>
<obj_property name="ObjectShortName">testcase_id[31:0]</obj_property>
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
</wvobject>
<wvobject fp_name="/term_emu_tb/term_emu_dut/clk" type="logic">
<obj_property name="ElementShortName">clk</obj_property>

View file

@ -2,8 +2,8 @@
"cells": [
{
"cell_type": "code",
"execution_count": 280,
"id": "super-tunisia",
"execution_count": 356,
"id": "corrected-briefs",
"metadata": {},
"outputs": [],
"source": [
@ -25,8 +25,8 @@
},
{
"cell_type": "code",
"execution_count": 281,
"id": "scenic-jungle",
"execution_count": 357,
"id": "relative-curve",
"metadata": {},
"outputs": [],
"source": [
@ -35,8 +35,8 @@
},
{
"cell_type": "code",
"execution_count": 282,
"id": "secondary-thunder",
"execution_count": 358,
"id": "abroad-wound",
"metadata": {},
"outputs": [],
"source": [
@ -58,13 +58,21 @@
" 'fg_newline': 'Foobar\\033[35mbaz\\nthis \\033[1mis\\033[22m a test', # magenta fg\n",
" 'color_palette': ''.join(f'\\033[{c}m//' for c in range(30, 38)) + ' ' + ''.join(f'\\033[{c}m//' for c in range(90, 98)) + '\\n'\n",
" +''.join(f'\\033[{c}m//' for c in range(40, 48)) + '\\033[0m ' + ''.join(f'\\033[{c}m//' for c in range(100, 108)) + '\\n',\n",
" 'cur_u': 'Foobar\\nbaz>\\033[91m\\033[Atest',\n",
" 'cur_d': 'Foobar\\nbaz>\\033[91m\\033[Btest',\n",
" 'cur_l': 'Foobar\\nbaz>\\033[91m\\033[Dtest',\n",
" 'cur_r': 'Foobar\\nbaz>\\033[91m\\033[Ctest',\n",
" 'cur_n': 'Foobar\\nbaz>\\033[91m\\033[Etest',\n",
" 'cur_p': 'Foobar\\nbaz>\\033[91m\\033[Ftest',\n",
" 'cur_hh': 'Foobar\\nbaz>\\033[91m\\033[Gtest',\n",
" 'cur_h': 'Foobar\\nbaz>\\033[91m\\033[Htest',\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 283,
"id": "imported-complaint",
"execution_count": 359,
"id": "ambient-assault",
"metadata": {},
"outputs": [
{
@ -73,7 +81,7 @@
"'0xf6f'"
]
},
"execution_count": 283,
"execution_count": 359,
"metadata": {},
"output_type": "execute_result"
}
@ -84,8 +92,8 @@
},
{
"cell_type": "code",
"execution_count": 284,
"id": "imported-currency",
"execution_count": 360,
"id": "competent-monster",
"metadata": {},
"outputs": [],
"source": [
@ -106,8 +114,8 @@
},
{
"cell_type": "code",
"execution_count": 285,
"id": "governmental-legislation",
"execution_count": 361,
"id": "regional-handle",
"metadata": {},
"outputs": [],
"source": [
@ -121,8 +129,8 @@
},
{
"cell_type": "code",
"execution_count": 286,
"id": "resident-broadcasting",
"execution_count": 362,
"id": "understanding-things",
"metadata": {},
"outputs": [
{
@ -142,7 +150,15 @@
"Testcase 10: complex\n",
"Testcase 11: reset\n",
"Testcase 12: fg_newline\n",
"Testcase 13: color_palette\n"
"Testcase 13: color_palette\n",
"Testcase 14: cur_u\n",
"Testcase 15: cur_d\n",
"Testcase 16: cur_l\n",
"Testcase 17: cur_r\n",
"Testcase 18: cur_n\n",
"Testcase 19: cur_p\n",
"Testcase 20: cur_hh\n",
"Testcase 21: cur_h\n"
]
}
],
@ -185,8 +201,8 @@
},
{
"cell_type": "code",
"execution_count": 287,
"id": "interested-postage",
"execution_count": 363,
"id": "southeast-proportion",
"metadata": {},
"outputs": [],
"source": [
@ -225,8 +241,8 @@
},
{
"cell_type": "code",
"execution_count": 288,
"id": "electronic-china",
"execution_count": 364,
"id": "confidential-exhibition",
"metadata": {},
"outputs": [
{
@ -234,7 +250,7 @@
"output_type": "stream",
"text": [
"\u001b[22;24;40;30m/\u001b[22;24;40;30m/\u001b[22;24;40;31m/\u001b[22;24;40;31m/\u001b[22;24;40;32m/\u001b[22;24;40;32m/\u001b[22;24;40;33m/\u001b[22;24;40;33m/\u001b[22;24;40;34m/\u001b[22;24;40;34m/\u001b[22;24;40;35m/\u001b[22;24;40;35m/\u001b[22;24;40;36m/\u001b[22;24;40;36m/\u001b[22;24;40;37m/\u001b[22;24;40;37m/\u001b[22;24;40;37m \u001b[22;24;40;37m \u001b[22;24;40;90m/\u001b[22;24;40;90m/\u001b[22;24;40;91m/\u001b[22;24;40;91m/\u001b[22;24;40;92m/\u001b[22;24;40;92m/\u001b[22;24;40;93m/\u001b[22;24;40;93m/\u001b[22;24;40;94m/\u001b[22;24;40;94m/\u001b[22;24;40;95m/\u001b[22;24;40;95m/\u001b[22;24;40;96m/\u001b[22;24;40;96m/\u001b[22;24;40;97m/\u001b[22;24;40;97m/\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
"\u001b[22;24;40;97m/\u001b[22;24;40;97m/\u001b[22;24;41;97m/\u001b[22;24;41;97m/\u001b[22;24;42;97m/\u001b[22;24;42;97m/\u001b[22;24;43;97m/\u001b[22;24;43;97m/\u001b[22;24;44;97m/\u001b[22;24;44;97m/\u001b[22;24;45;97m/\u001b[22;24;45;97m/\u001b[22;24;46;97m/\u001b[22;24;46;97m/\u001b[22;24;47;97m/\u001b[22;24;47;97m/\u001b[22;24;47;97m \u001b[22;24;47;97m \u001b[22;24;100;97m/\u001b[22;24;100;97m/\u001b[22;24;101;97m/\u001b[22;24;101;97m/\u001b[22;24;102;97m/\u001b[22;24;102;97m/\u001b[22;24;103;97m/\u001b[22;24;103;97m/\u001b[22;24;104;97m/\u001b[22;24;104;97m/\u001b[22;24;105;97m/\u001b[22;24;105;97m/\u001b[22;24;106;97m/\u001b[22;24;106;97m/\u001b[22;24;107;97m/\u001b[22;24;107;97m/\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
"\u001b[22;24;40;97m/\u001b[22;24;40;97m/\u001b[22;24;41;97m/\u001b[22;24;41;97m/\u001b[22;24;42;97m/\u001b[22;24;42;97m/\u001b[22;24;43;97m/\u001b[22;24;43;97m/\u001b[22;24;44;97m/\u001b[22;24;44;97m/\u001b[22;24;45;97m/\u001b[22;24;45;97m/\u001b[22;24;46;97m/\u001b[22;24;46;97m/\u001b[22;24;47;97m/\u001b[22;24;47;97m/\u001b[22;24;40;37m \u001b[22;24;40;37m \u001b[22;24;100;37m/\u001b[22;24;100;37m/\u001b[22;24;101;37m/\u001b[22;24;101;37m/\u001b[22;24;102;37m/\u001b[22;24;102;37m/\u001b[22;24;103;37m/\u001b[22;24;103;37m/\u001b[22;24;104;37m/\u001b[22;24;104;37m/\u001b[22;24;105;37m/\u001b[22;24;105;37m/\u001b[22;24;106;37m/\u001b[22;24;106;37m/\u001b[22;24;107;37m/\u001b[22;24;107;37m/\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
@ -247,8 +263,8 @@
},
{
"cell_type": "code",
"execution_count": 289,
"id": "blessed-slide",
"execution_count": 365,
"id": "compressed-operator",
"metadata": {},
"outputs": [],
"source": [
@ -257,8 +273,8 @@
},
{
"cell_type": "code",
"execution_count": 290,
"id": "genetic-participation",
"execution_count": 366,
"id": "becoming-growth",
"metadata": {},
"outputs": [
{
@ -279,8 +295,8 @@
},
{
"cell_type": "code",
"execution_count": 291,
"id": "limiting-benefit",
"execution_count": 367,
"id": "sticky-novel",
"metadata": {},
"outputs": [],
"source": [
@ -289,8 +305,8 @@
},
{
"cell_type": "code",
"execution_count": 292,
"id": "asian-internet",
"execution_count": 368,
"id": "endless-lecture",
"metadata": {},
"outputs": [
{
@ -311,8 +327,8 @@
},
{
"cell_type": "code",
"execution_count": 293,
"id": "tough-pillow",
"execution_count": 369,
"id": "latter-blowing",
"metadata": {},
"outputs": [
{
@ -333,8 +349,8 @@
},
{
"cell_type": "code",
"execution_count": 294,
"id": "appropriate-collect",
"execution_count": 370,
"id": "criminal-documentation",
"metadata": {},
"outputs": [
{
@ -355,8 +371,8 @@
},
{
"cell_type": "code",
"execution_count": 295,
"id": "norwegian-warren",
"execution_count": 371,
"id": "colored-assumption",
"metadata": {},
"outputs": [
{
@ -377,8 +393,8 @@
},
{
"cell_type": "code",
"execution_count": 296,
"id": "civic-elder",
"execution_count": 372,
"id": "quiet-mailing",
"metadata": {},
"outputs": [
{
@ -399,8 +415,8 @@
},
{
"cell_type": "code",
"execution_count": 297,
"id": "gentle-mount",
"execution_count": 373,
"id": "proved-madagascar",
"metadata": {},
"outputs": [
{
@ -421,8 +437,8 @@
},
{
"cell_type": "code",
"execution_count": 298,
"id": "complete-fellow",
"execution_count": 374,
"id": "original-zimbabwe",
"metadata": {},
"outputs": [
{

View file

@ -46,7 +46,16 @@ if __name__ == '__main__':
'complex',
'reset',
'fg_newline',
'color_palette']:
'color_palette',
'cur_u',
'cur_d',
'cur_l',
'cur_r',
'cur_n',
'cur_p',
'cur_hh',
'cur_h',
]:
print()
print(f'\033[0m=== Testcase {tc} ===')
show_tc(tc)