From 307d56cff49aa27e24e1128738c44a2b6293716b Mon Sep 17 00:00:00 2001 From: Erick Gallesio Date: Thu, 22 Aug 2024 19:34:58 +0200 Subject: [PATCH 1/2] Added '!' as a shell escape command in the REPL --- lib/repl.stk | 33 +- src/boot.c | 1496 ++++++++++++++++++++++++++------------------------ 2 files changed, 782 insertions(+), 747 deletions(-) diff --git a/lib/repl.stk b/lib/repl.stk index 14e2b202..252b7de7 100644 --- a/lib/repl.stk +++ b/lib/repl.stk @@ -187,7 +187,13 @@ doc> (display (do-color 'normal)) (display "If not redefined by your program, the following variables are available\n") (display " - @1 (aka @), @2, @3, @4, @5 contain the last REPL's computed values\n") - (display " - @* contains a list of @1, @2, @3, @4 and @5 values\n")) + (display " - @* contains a list of @1, @2, @3, @4 and @5 values\n") + + ;; Print somme helps on the ! shell escape + (display (do-color (get-repl-color :help) "\nShell commands:\n")) + (display (do-color 'normal)) + (display "!cmd a1 a2 ... executes the command \"cmd\" with the arguments a1 a2...\n")) + (define (do-repl-command name) (define (search-repl-command name) @@ -227,24 +233,10 @@ doc> (repl-add-command 'cd "Change current directory" (lambda () (chdir (simple-trim (read-line))))) - ;; ==== pwd - (repl-add-command 'pwd - "Print working directory" - (lambda () (printf "~s~%" (getcwd)))) - - ;; ==== ls - (repl-add-command 'ls - "List directory content (usual 'ls' options accepted)" - (lambda () (system (string-append "ls " (read-line))))) - ;; ==== quit (repl-add-command '(quit q) "Exit STklos" (lambda () (exit 0))) - ;; ==== shell - (repl-add-command '(shell !) - "Run a shell command" - (lambda () (system (read-line)))) ;; ==== time (repl-add-command '(time t) "Print the time used to run the next expression" @@ -476,7 +468,16 @@ doc> (flush-output-port out)) ((and (pair? e) (eq? (car e) 'unquote)) - (do-repl-command (cadr e))) + ;; Spcial ,xxx commands + (do-repl-command (cadr e))) + + ((and (symbol? e) + (not (symbol-bound? e)) + (char=? (string-ref (symbol->string e) 0) #\!)) + ;; Shell command "!xxx arg1 arg2" + (let* ((end (read-line (current-input-port))) + (all (format "~a~a" e end))) + (system (substring all 1 (string-length all))))) (else (call-with-values diff --git a/src/boot.c b/src/boot.c index 284b2398..acf65f4d 100644 --- a/src/boot.c +++ b/src/boot.c @@ -2251,6 +2251,8 @@ char* STk_boot_consts = "#(" "\"If not redefined by your program, the following variables are available\\n\"" " " "\" - @1 (aka @), @2, @3, @4, @5 contain the last REPL's computed values\\n\"" " " "\" - @* contains a list of @1, @2, @3, @4 and @5 values\\n\"" " " +"\"\\nShell commands:\\n\"" " " +"\"!cmd a1 a2 ... executes the command \\\"cmd\\\" with the arguments a1 a2...\\n\"" " " "display-repl-command-help" " " "\"bad command name: '~s'.\\nType ',help' for some help.\\n\"" " " "peek-char" " " @@ -2265,16 +2267,8 @@ char* STk_boot_consts = "#(" "cd" " " "\"Change current directory\"" " " "chdir" " " -"pwd" " " -"\"Print working directory\"" " " -"\"~s~%\"" " " -"ls" " " -"\"List directory content (usual 'ls' options accepted)\"" " " -"\"ls \"" " " "(quit q)" " " "\"Exit STklos\"" " " -"(shell !)" " " -"\"Run a shell command\"" " " "(time t)" " " "\"Print the time used to run the next expression\"" " " "\"~w~%\"" " " @@ -2358,6 +2352,8 @@ char* STk_boot_consts = "#(" "G530" " " "G531" " " "\"\\n\"" " " +"#\\!" " " +"\"~a~a\"" " " "\";; ~A\\n\"" " " "repl" " " "%initialize-signals" " " @@ -61377,7 +61373,7 @@ STk_instr STk_boot_code [] = { 0xa, 0x7f, 0x2d, -0xa43, +0xa69, 0x25, 0x55, 0x89a, @@ -61743,7 +61739,7 @@ STk_instr STk_boot_code [] = { 0x1f, 0x8bb, 0x23, -0xbe, +0xdf, 0x0, 0x28, 0x2, @@ -61930,12 +61926,45 @@ STk_instr STk_boot_code [] = { 0x25, 0x55, 0x8c3, +0x56, +0x82, +0x1, +0x25, +0x25, +0x25, +0x55, +0x8af, +0x56, +0x8b9, +0x1, +0x21, +0x55, +0x8c4, +0x56, +0x43e, +0x2, +0x71, +0x82, +0x1, +0x25, +0x25, +0x55, +0x5fe, +0x56, +0x43e, +0x1, +0x71, +0x82, +0x1, +0x25, +0x55, +0x8c5, 0x6c, 0x82, 0x1, 0x24, 0x1f, -0x8c4, +0x8c6, 0x23, 0x85, 0x1, @@ -62003,7 +62032,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x55, -0x8c5, +0x8c7, 0x75, 0x200, 0x6c, @@ -62034,7 +62063,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x25, 0x56, -0x8c6, +0x8c8, 0x0, 0x21, 0x9, @@ -62072,26 +62101,26 @@ STk_instr STk_boot_code [] = { 0x1, 0x24, 0x1f, -0x8c7, +0x8c9, 0x25, 0x23, 0x14, 0x1, 0x25, 0x55, -0x8c8, +0x8ca, 0x25, 0x55, -0x8c9, +0x8cb, 0x65, 0x55, -0x8ca, +0x8cc, 0x56, 0x465, 0x3, 0x21, 0x55, -0x8cb, +0x8cd, 0x6c, 0x465, 0x3, @@ -62101,9 +62130,9 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x8cc, +0x8ce, 0x55, -0x8cd, +0x8cf, 0x23, 0xa, 0x0, @@ -62113,7 +62142,7 @@ STk_instr STk_boot_code [] = { 0x54, 0x6, 0x6c, -0x8ce, +0x8d0, 0x2, 0x24, 0x71, @@ -62121,9 +62150,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8cf, +0x8d1, 0x55, -0x8d0, +0x8d2, 0x23, 0x10, 0x0, @@ -62139,7 +62168,7 @@ STk_instr STk_boot_code [] = { 0x26, 0x1, 0x73, -0x8d1, +0x8d3, 0x1, 0x24, 0x71, @@ -62147,57 +62176,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8d2, -0x55, -0x8d3, -0x23, -0xc, -0x0, -0x25, -0x55, 0x8d4, -0x25, -0x56, -0x198, -0x0, -0x73, -0x44c, -0x2, -0x24, -0x71, -0x8bb, -0x3, -0x25, 0x55, 0x8d5, -0x55, -0x8d6, -0x23, -0x10, -0x0, -0x25, -0x25, -0x55, -0x8d7, -0x25, -0x56, -0x447, -0x0, -0x71, -0x61, -0x2, -0x73, -0x4b1, -0x1, -0x24, -0x71, -0x8bb, -0x3, -0x25, -0x55, -0x8d8, -0x55, -0x8d9, 0x23, 0x7, 0x0, @@ -62212,39 +62193,19 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8da, -0x55, -0x8db, -0x23, -0xa, -0x0, -0x25, -0x25, -0x56, -0x447, -0x0, -0x73, -0x4b1, -0x1, -0x24, -0x71, -0x8bb, -0x3, -0x25, -0x55, -0x8dc, +0x8d6, 0x55, -0x8dd, +0x8d7, 0x23, 0x16, 0x0, 0x25, 0x55, -0x8de, +0x8d8, 0x25, 0x25, 0x55, -0x8df, +0x8d9, 0x25, 0x56, 0x3b5, @@ -62264,9 +62225,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8e0, +0x8da, 0x55, -0x8e1, +0x8db, 0x23, 0xe, 0x0, @@ -62280,7 +62241,7 @@ STk_instr STk_boot_code [] = { 0x253, 0x1, 0x73, -0x8e2, +0x8dc, 0x1, 0x24, 0x71, @@ -62288,9 +62249,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8e3, +0x8dd, 0x55, -0x8e4, +0x8de, 0x23, 0xe, 0x0, @@ -62304,7 +62265,7 @@ STk_instr STk_boot_code [] = { 0x39e, 0x1, 0x73, -0x8e5, +0x8df, 0x1, 0x24, 0x71, @@ -62312,16 +62273,16 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8e6, +0x8e0, 0x55, -0x8e7, +0x8e1, 0x23, 0x10, 0x0, 0x25, 0x25, 0x55, -0x8e8, +0x8e2, 0x25, 0x56, 0x3b5, @@ -62338,9 +62299,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8e9, +0x8e3, 0x55, -0x8ea, +0x8e4, 0x23, 0xa, 0x0, @@ -62358,9 +62319,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8eb, +0x8e5, 0x55, -0x8ec, +0x8e6, 0x23, 0x27, 0x0, @@ -62371,15 +62332,15 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x9, -0x8ed, +0x8e7, 0x64, 0x4, 0x9, -0x8ee, +0x8e8, 0x1c, 0x2, 0x9, -0x8ef, +0x8e9, 0x21, 0x2b, 0x1, @@ -62387,14 +62348,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x8f0, +0x8ea, 0x25, 0x56, 0x447, 0x0, 0x21, 0x55, -0x8f1, +0x8eb, 0x56, 0x61, 0x4, @@ -62407,9 +62368,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8f2, +0x8ec, 0x55, -0x8f3, +0x8ed, 0x23, 0xa, 0x0, @@ -62427,9 +62388,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8f4, +0x8ee, 0x55, -0x8f5, +0x8ef, 0x23, 0xe, 0x0, @@ -62443,7 +62404,7 @@ STk_instr STk_boot_code [] = { 0x253, 0x1, 0x73, -0x8e2, +0x8dc, 0x1, 0x24, 0x71, @@ -62451,9 +62412,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8f6, +0x8f0, 0x55, -0x8f7, +0x8f1, 0x23, 0x10, 0x0, @@ -62477,9 +62438,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8f8, +0x8f2, 0x55, -0x8f9, +0x8f3, 0x23, 0x14, 0x0, @@ -62496,7 +62457,7 @@ STk_instr STk_boot_code [] = { 0x26, 0x1, 0x71, -0x8fa, +0x8f4, 0x1, 0x73, 0x449, @@ -62507,9 +62468,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8fb, +0x8f5, 0x55, -0x8fc, +0x8f6, 0x23, 0x1d, 0x0, @@ -62523,12 +62484,12 @@ STk_instr STk_boot_code [] = { 0x1, 0x65, 0x9, -0x8fd, +0x8f7, 0x64, 0x5, 0x25, 0x6c, -0x8c4, +0x8c6, 0x0, 0x24, 0x25, @@ -62538,7 +62499,7 @@ STk_instr STk_boot_code [] = { 0x3b6, 0x1, 0x73, -0x8fe, +0x8f8, 0x1, 0x24, 0x71, @@ -62546,15 +62507,15 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x8ff, +0x8f9, 0x55, -0x900, +0x8fa, 0x23, 0x10, 0x0, 0x25, 0x55, -0x901, +0x8fb, 0x25, 0x56, 0x1bf, @@ -62573,13 +62534,13 @@ STk_instr STk_boot_code [] = { 0x2c, 0x3, 0x1f, -0x902, +0x8fc, 0x23, 0x10, 0x1, 0x65, 0x6a, -0x902, +0x8fc, 0x23, 0x7, 0x2, @@ -62593,7 +62554,7 @@ STk_instr STk_boot_code [] = { 0x4, 0x24, 0x1f, -0x903, +0x8fd, 0x23, 0xa, 0x2, @@ -62601,13 +62562,13 @@ STk_instr STk_boot_code [] = { 0xc, 0x3b, 0x6f, -0x902, +0x8fc, 0x3b, 0x13, -0x902, +0x8fc, 0x24, 0x1f, -0x904, +0x8fe, 0x23, 0x4e, 0x4, @@ -62629,7 +62590,7 @@ STk_instr STk_boot_code [] = { 0xf, 0x25, 0x55, -0x905, +0x8ff, 0xc, 0x49, 0x14, @@ -62643,7 +62604,7 @@ STk_instr STk_boot_code [] = { 0x1c, 0x2, 0x9, -0x906, +0x900, 0x16, 0x25, 0x25, @@ -62655,7 +62616,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x6e, 0x55, -0x907, +0x901, 0x66, 0xc, 0x3d, @@ -62669,15 +62630,15 @@ STk_instr STk_boot_code [] = { 0x55, 0x5fe, 0x55, -0x908, +0x902, 0x55, 0x8b5, 0x55, -0x909, +0x903, 0x55, 0x5fe, 0x55, -0x90a, +0x904, 0x56, 0x43e, 0x8, @@ -62689,7 +62650,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x90b, +0x905, 0x23, 0xcc, 0x2, @@ -62741,7 +62702,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x56, -0x90b, +0x905, 0x4, 0xc, 0x13, @@ -62789,14 +62750,14 @@ STk_instr STk_boot_code [] = { 0x21, 0x65, 0x6c, -0x90c, +0x906, 0x2, 0x1c, 0x44, 0x25, 0x66, 0x6a, -0x90d, +0x907, 0x56, 0x3c9, 0x2, @@ -62806,7 +62767,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x55, -0x90e, +0x908, 0x56, 0x9a, 0x2, @@ -62816,7 +62777,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x90f, +0x909, 0x1, 0x25, 0x65, @@ -62829,14 +62790,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x910, +0x90a, 0x56, 0x60, 0x2, 0x25, 0x65, 0x55, -0x911, +0x90b, 0x25, 0x25, 0x66, @@ -62844,7 +62805,7 @@ STk_instr STk_boot_code [] = { 0x583, 0x1, 0x71, -0x912, +0x90c, 0x1, 0x71, 0x60, @@ -62852,7 +62813,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x913, +0x90d, 0x25, 0x66, 0x56, @@ -62866,7 +62827,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x56, -0x903, +0x8fd, 0x1, 0x21, 0x2b, @@ -62888,7 +62849,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x914, +0x90e, 0x75, 0x101, 0x6c, @@ -62897,11 +62858,11 @@ STk_instr STk_boot_code [] = { 0x24, 0x24, 0x1f, -0x90c, +0x906, 0x25, 0x25, 0x55, -0x915, +0x90f, 0x56, 0x6b, 0x1, @@ -62911,14 +62872,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x916, +0x910, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x916, +0x910, 0x25, 0x25, 0x4e, @@ -62931,14 +62892,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x917, +0x911, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x917, +0x911, 0x23, 0x5f, 0x1, @@ -62950,7 +62911,7 @@ STk_instr STk_boot_code [] = { 0xa, 0x25, 0x55, -0x918, +0x912, 0x6a, 0x89e, 0x56, @@ -62959,10 +62920,10 @@ STk_instr STk_boot_code [] = { 0x1c, 0x2, 0x9, -0x919, +0x913, 0x6e, 0x55, -0x91a, +0x914, 0x25, 0x65, 0x56, @@ -62977,7 +62938,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x56, -0x917, +0x911, 0x0, 0x1d, 0x2b, @@ -63018,7 +62979,7 @@ STk_instr STk_boot_code [] = { 0x4, 0x21, 0x55, -0x91b, +0x915, 0x56, 0x61, 0x3, @@ -63028,20 +62989,20 @@ STk_instr STk_boot_code [] = { 0x66, 0x65, 0x55, -0x91c, +0x916, 0x56, 0x61, 0x3, 0x73, -0x916, +0x910, 0x1, 0x24, 0x1f, -0x91d, +0x917, 0x25, 0x25, 0x6a, -0x91d, +0x917, 0x56, 0x6b, 0x1, @@ -63051,21 +63012,21 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x91e, +0x918, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x91e, +0x918, 0x23, 0x11, 0x1, 0x25, 0x25, 0x56, -0x916, +0x910, 0x0, 0x21, 0x65, @@ -63079,11 +63040,11 @@ STk_instr STk_boot_code [] = { 0x1, 0x24, 0x1f, -0x91f, +0x919, 0x25, 0x25, 0x6a, -0x91f, +0x919, 0x56, 0x6b, 0x1, @@ -63093,21 +63054,21 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x920, +0x91a, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x920, +0x91a, 0x25, 0x25, 0x25, 0x6a, 0x3b8, 0x55, -0x921, +0x91b, 0x4e, 0x56, 0x4b, @@ -63121,14 +63082,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x922, +0x91c, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x922, +0x91c, 0x25, 0x25, 0x6a, @@ -63142,14 +63103,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x923, +0x91d, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x923, +0x91d, 0x23, 0x51, 0xffff, @@ -63159,16 +63120,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x924, +0x91e, 0x55, -0x925, +0x91f, 0x56, 0x4b, 0x3, 0x15, 0x65, 0x9, -0x925, +0x91f, 0x62, 0x4, 0xa, @@ -63181,16 +63142,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x926, +0x920, 0x55, -0x927, +0x921, 0x56, 0x4b, 0x3, 0x17, 0x67, 0x9, -0x927, +0x921, 0x62, 0x4, 0xa, @@ -63203,16 +63164,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x928, +0x922, 0x55, -0x929, +0x923, 0x56, 0x4b, 0x3, 0x19, 0x69, 0x9, -0x929, +0x923, 0x62, 0x4, 0xa, @@ -63234,9 +63195,9 @@ STk_instr STk_boot_code [] = { 0x8a2, 0x24, 0x1f, -0x92a, +0x924, 0x23, -0x20d, +0x256, 0xffff, 0x2a, 0x6, @@ -63244,16 +63205,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x924, +0x91e, 0x55, -0x92b, +0x925, 0x56, 0x4b, 0x3, 0x15, 0x65, 0x9, -0x92b, +0x925, 0x62, 0x4, 0xa, @@ -63266,16 +63227,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x926, +0x920, 0x55, -0x92c, +0x926, 0x56, 0x4b, 0x3, 0x17, 0x67, 0x9, -0x92c, +0x926, 0x62, 0x4, 0xa, @@ -63288,16 +63249,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x928, +0x922, 0x55, -0x92d, +0x927, 0x56, 0x4b, 0x3, 0x19, 0x69, 0x9, -0x92d, +0x927, 0x62, 0x4, 0xa, @@ -63323,7 +63284,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x23, -0x1aa, +0x1f3, 0x0, 0x23, 0x9, @@ -63333,11 +63294,11 @@ STk_instr STk_boot_code [] = { 0x75, 0x405, 0x6c, -0x90c, +0x906, 0x2, 0x24, 0x2d, -0x190, +0x1d9, 0xa, 0x89d, 0x1d, @@ -63349,7 +63310,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x56, -0x91e, +0x918, 0x0, 0x26, 0x1, @@ -63358,7 +63319,7 @@ STk_instr STk_boot_code [] = { 0x305, 0x25, 0x56, -0x920, +0x91a, 0x0, 0x26, 0x1, @@ -63402,7 +63363,7 @@ STk_instr STk_boot_code [] = { 0x300, 0x25, 0x55, -0x92e, +0x928, 0x56, 0x82, 0x1, @@ -63419,7 +63380,7 @@ STk_instr STk_boot_code [] = { 0x44b, 0x1, 0x1c, -0x13c, +0x185, 0x25, 0x65, 0x56, @@ -63443,9 +63404,82 @@ STk_instr STk_boot_code [] = { 0x49, 0x6, 0x71, -0x8c7, +0x8c9, 0x1, 0x1c, +0x16a, +0x25, +0x65, +0x56, +0xa5, +0x1, +0x1d, +0x18, +0x25, +0x65, +0x56, +0x234, +0x1, +0x1e, +0x11, +0x25, +0x25, +0x65, +0x56, +0xd7, +0x1, +0x21, +0x5, +0x43, +0x21, +0x55, +0x929, +0x56, +0x203, +0x2, +0x1c, +0x1, +0x1, +0x1d, +0x27, +0x28, +0x2, +0x25, +0x25, +0x56, +0x0, +0x0, +0x71, +0x447, +0x1, +0x15, +0x25, +0x55, +0x92a, +0x75, +0x100, +0x65, +0x56, +0x60, +0x3, +0x16, +0x25, +0x25, +0x66, +0x52, +0x25, +0x66, +0x56, +0x168, +0x1, +0x71, +0x19a, +0x3, +0x71, +0x4b1, +0x1, +0x2c, +0x1c, 0x121, 0x25, 0x23, @@ -63499,7 +63533,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x6e, 0x55, -0x92f, +0x92b, 0xc, 0x49, 0x6, @@ -63763,13 +63797,13 @@ STk_instr STk_boot_code [] = { 0x0, 0x24, 0x1f, -0x930, +0x92c, 0x23, 0xde, 0x0, 0x25, 0x56, -0x931, +0x92d, 0x0, 0xa, 0x89d, @@ -63792,7 +63826,7 @@ STk_instr STk_boot_code [] = { 0x7, 0x25, 0x56, -0x922, +0x91c, 0x0, 0x1d, 0xab, @@ -63810,7 +63844,7 @@ STk_instr STk_boot_code [] = { 0x15, 0x25, 0x55, -0x932, +0x92e, 0x25, 0x56, 0x1bf, @@ -63824,14 +63858,14 @@ STk_instr STk_boot_code [] = { 0x3, 0x16, 0x9, -0x933, +0x92f, 0x17, 0x25, 0x55, -0x934, +0x930, 0x25, 0x56, -0x935, +0x931, 0x0, 0x6e, 0x56, @@ -63841,9 +63875,9 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x936, +0x932, 0x55, -0x937, +0x933, 0x56, 0x4b, 0x3, @@ -63852,17 +63886,17 @@ STk_instr STk_boot_code [] = { 0x1d, 0x4, 0x9, -0x938, +0x934, 0x1c, 0x2, 0x9, -0x939, +0x935, 0x71, 0x60, 0x5, 0x18, 0x9, -0x93a, +0x936, 0x19, 0x25, 0x55, @@ -63888,7 +63922,7 @@ STk_instr STk_boot_code [] = { 0x5, 0x21, 0x55, -0x93b, +0x937, 0x11, 0x6, 0x21, @@ -63909,7 +63943,7 @@ STk_instr STk_boot_code [] = { 0x5, 0x21, 0x55, -0x93c, +0x938, 0x11, 0x6, 0x21, @@ -63930,7 +63964,7 @@ STk_instr STk_boot_code [] = { 0x5, 0x21, 0x55, -0x93d, +0x939, 0x11, 0x6, 0x21, @@ -63951,7 +63985,7 @@ STk_instr STk_boot_code [] = { 0x5, 0x21, 0x55, -0x93e, +0x93a, 0x11, 0x6, 0x21, @@ -63974,22 +64008,22 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x56, -0x923, +0x91d, 0x0, 0x26, 0x0, 0x25, 0x56, -0x930, +0x92c, 0x0, 0x25, 0x51, 0x6c, -0x90f, +0x909, 0x1, 0x24, 0x1f, -0x93f, +0x93b, 0x25, 0x9, 0x7d, @@ -64011,7 +64045,7 @@ STk_instr STk_boot_code [] = { 0x22e, 0x25, 0x55, -0x940, +0x93c, 0x56, 0x7c, 0x1, @@ -64023,7 +64057,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x55, -0x941, +0x93d, 0x56, 0xde, 0x1, @@ -64039,28 +64073,28 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x55, -0x942, +0x93e, 0x56, 0xeb, 0x2, 0x1, 0x1f, -0x943, +0x93f, 0x1, 0x1f, -0x944, +0x940, 0x1, 0x1f, -0x945, +0x941, 0x1, 0x1f, -0x946, +0x942, 0x1, 0x1f, -0x947, +0x943, 0x1, 0x1f, -0x948, +0x944, 0x23, 0x50, 0xffff, @@ -64070,7 +64104,7 @@ STk_instr STk_boot_code [] = { 0x1d, 0x4, 0x9, -0x949, +0x945, 0x1c, 0xd, 0x25, @@ -64112,7 +64146,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x943, +0x93f, 0x1, 0x21, 0x2b, @@ -64126,7 +64160,7 @@ STk_instr STk_boot_code [] = { 0x7, 0x65, 0x9, -0x94a, +0x946, 0x47, 0x1e, 0x1, @@ -64136,7 +64170,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x944, +0x940, 0x1, 0x1c, 0x1, @@ -64144,7 +64178,7 @@ STk_instr STk_boot_code [] = { 0xc, 0x24, 0x1f, -0x94b, +0x947, 0x23, 0xb0, 0x1, @@ -64158,11 +64192,11 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x55, -0x94c, +0x948, 0x55, -0x94d, +0x949, 0x55, -0x94e, +0x94a, 0x65, 0x56, 0x61d, @@ -64194,7 +64228,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x94f, +0x94b, 0x1, 0x21, 0x2b, @@ -64203,18 +64237,18 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x56, -0x950, +0x94c, 0x1, 0xc, 0x24, 0x24, 0x13, -0x943, +0x93f, 0x25, 0x55, -0x951, +0x94d, 0x55, -0x952, +0x94e, 0x55, 0x62e, 0x75, @@ -64223,89 +64257,89 @@ STk_instr STk_boot_code [] = { 0x61d, 0x4, 0x13, -0x944, +0x940, 0x25, 0x55, -0x953, +0x94f, 0x55, -0x954, +0x950, 0x55, -0x955, +0x951, 0x75, 0x100, 0x56, 0x61d, 0x4, 0x13, -0x945, +0x941, 0x25, 0x55, -0x956, +0x952, 0x55, -0x957, +0x953, 0x55, -0x955, +0x951, 0x75, 0x100, 0x56, 0x61d, 0x4, 0x13, -0x946, +0x942, 0x25, 0x55, -0x958, +0x954, 0x55, -0x959, +0x955, 0x56, -0x95a, +0x956, 0x2, 0x1d, 0x1a, 0x25, 0x55, -0x95b, +0x957, 0x55, -0x95c, +0x958, 0x55, -0x955, +0x951, 0x75, 0x100, 0x56, 0x61d, 0x4, 0x13, -0x948, +0x944, 0x25, 0x55, -0x95d, +0x959, 0x75, 0x100, 0x56, -0x95a, +0x956, 0x2, 0x13, -0x947, +0x943, 0x1c, 0x1, 0x7, 0x25, 0x25, 0x55, -0x95e, +0x95a, 0x55, -0x95f, +0x95b, 0x56, -0x95a, +0x956, 0x2, 0x1d, 0x4, 0x9, -0x960, +0x95c, 0x1c, 0x2, 0x9, -0x943, +0x93f, 0x21, 0x29, 0x1, @@ -64313,7 +64347,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x936, +0x932, 0x65, 0x56, 0x4f, @@ -64324,7 +64358,7 @@ STk_instr STk_boot_code [] = { 0x2e, 0x24, 0x1f, -0x961, +0x95d, 0x23, 0x4d, 0x1, @@ -64405,11 +64439,11 @@ STk_instr STk_boot_code [] = { 0x24, 0x24, 0x1f, -0x962, +0x95e, 0x25, 0x25, 0x6a, -0x962, +0x95e, 0x56, 0x6b, 0x1, @@ -64419,14 +64453,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x963, +0x95f, 0x56, 0x6c, 0x2, 0xc, 0x2c, 0x1f, -0x963, +0x95f, 0x25, 0x4f, 0x29, @@ -64441,7 +64475,7 @@ STk_instr STk_boot_code [] = { 0x66, 0x25, 0x56, -0x963, +0x95f, 0x0, 0x26, 0x1, @@ -64475,7 +64509,7 @@ STk_instr STk_boot_code [] = { 0x24, 0x2c, 0x1f, -0x964, +0x960, 0x7, 0x23, 0x47, @@ -64484,7 +64518,7 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x56, -0x965, +0x961, 0x0, 0x15, 0x25, @@ -64495,26 +64529,26 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x55, -0x966, +0x962, 0x65, 0x56, 0x61, 0x2, 0x71, -0x961, +0x95d, 0x1, 0x1e, 0xe, 0x25, 0x25, 0x55, -0x967, +0x963, 0x65, 0x56, 0x61, 0x2, 0x71, -0x961, +0x95d, 0x1, 0x1e, 0x1, @@ -64526,7 +64560,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x55, -0x968, +0x964, 0x66, 0x56, 0x61, @@ -64541,9 +64575,9 @@ STk_instr STk_boot_code [] = { 0x8, 0x25, 0x6a, -0x964, +0x960, 0x56, -0x969, +0x965, 0x1, 0x1c, 0x1, @@ -64551,7 +64585,7 @@ STk_instr STk_boot_code [] = { 0xe, 0x24, 0x1f, -0x96a, +0x966, 0x25, 0x9, 0x7d, @@ -64562,7 +64596,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x53, 0x55, -0x940, +0x93c, 0x56, 0xbf, 0x2, @@ -64573,7 +64607,7 @@ STk_instr STk_boot_code [] = { 0x192, 0x25, 0x55, -0x96b, +0x967, 0x56, 0x7c, 0x1, @@ -64585,7 +64619,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x55, -0x96c, +0x968, 0x56, 0xde, 0x1, @@ -64601,7 +64635,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x55, -0x96d, +0x969, 0x56, 0xeb, 0x2, @@ -64611,11 +64645,11 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x56, -0x91e, +0x918, 0x0, 0x6e, 0x55, -0x96e, +0x96a, 0x56, 0x6e9, 0x1, @@ -64623,7 +64657,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x936, +0x932, 0x4d, 0x56, 0x4b, @@ -64633,13 +64667,13 @@ STk_instr STk_boot_code [] = { 0x3, 0x65, 0x9, -0x960, +0x95c, 0x62, 0x7, 0x25, 0x4d, 0x56, -0x917, +0x911, 0x1, 0x1c, 0x1e, @@ -64649,9 +64683,9 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x96f, +0x96b, 0x55, -0x970, +0x96c, 0x56, 0x429, 0x2, @@ -64663,30 +64697,30 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x971, +0x96d, 0x55, -0x972, +0x96e, 0x6c, 0x429, 0x2, 0x24, 0x71, -0x91e, +0x918, 0x1, 0x25, 0x23, 0x4, 0x1, 0x9, -0x973, +0x96f, 0x24, 0x71, -0x920, +0x91a, 0x1, 0x25, 0x66, 0x56, -0x945, +0x941, 0x1, 0x25, 0x23, @@ -64696,16 +64730,16 @@ STk_instr STk_boot_code [] = { 0x75, 0x101, 0x6c, -0x946, +0x942, 0x1, 0x24, 0x71, -0x974, +0x970, 0x1, 0x2a, 0x4, 0x9, -0x975, +0x971, 0x15, 0x4, 0x16, @@ -64716,10 +64750,10 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x56, -0x916, +0x910, 0x0, 0x71, -0x94b, +0x947, 0x1, 0x21, 0x2b, @@ -64737,7 +64771,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x976, +0x972, 0x1, 0x1b, 0x200, @@ -64746,10 +64780,10 @@ STk_instr STk_boot_code [] = { 0x201, 0x25, 0x55, -0x977, +0x973, 0x25, 0x6a, -0x916, +0x910, 0x56, 0x4c, 0x1, @@ -64781,7 +64815,7 @@ STk_instr STk_boot_code [] = { 0x1d, 0xa, 0x9, -0x978, +0x974, 0x1b, 0x300, 0x4, @@ -64806,7 +64840,7 @@ STk_instr STk_boot_code [] = { 0x1b, 0x301, 0x9, -0x979, +0x975, 0x1c, 0x36, 0x25, @@ -64860,7 +64894,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x6c, -0x97a, +0x976, 0x1, 0x24, 0x24, @@ -64911,14 +64945,14 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x924, +0x91e, 0x68, 0x6c, -0x92a, +0x924, 0x2, 0x24, 0x1f, -0x97b, +0x977, 0x23, 0x23, 0x0, @@ -64927,7 +64961,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x97c, +0x978, 0x4e, 0x56, 0x4b, @@ -64940,7 +64974,7 @@ STk_instr STk_boot_code [] = { 0x6, 0x25, 0x56, -0x96a, +0x966, 0x0, 0x1c, 0x1, @@ -64949,15 +64983,15 @@ STk_instr STk_boot_code [] = { 0x7, 0x25, 0x6a, -0x97b, +0x977, 0x6c, -0x923, +0x91d, 0x1, 0x24, 0x7, 0x24, 0x1f, -0x97d, +0x979, 0x25, 0x9, 0x7d, @@ -64968,23 +65002,23 @@ STk_instr STk_boot_code [] = { 0x25, 0x53, 0x55, -0x96b, +0x967, 0x56, 0xbf, 0x2, 0x2e, 0x25, 0x55, -0x97e, +0x97a, 0x55, -0x97f, +0x97b, 0x23, 0x7, 0xffff, 0x25, 0x65, 0x6c, -0x980, +0x97c, 0x1, 0x24, 0x21, @@ -64996,19 +65030,19 @@ STk_instr STk_boot_code [] = { 0x26, 0x4, 0x1f, -0x97e, +0x97a, 0x25, 0x55, -0x981, +0x97d, 0x55, -0x982, +0x97e, 0x23, 0x7, 0xffff, 0x25, 0x65, 0x6c, -0x983, +0x97f, 0x1, 0x24, 0x21, @@ -65020,12 +65054,12 @@ STk_instr STk_boot_code [] = { 0x26, 0x4, 0x1f, -0x981, +0x97d, 0x25, 0x55, -0x984, +0x980, 0x55, -0x985, +0x981, 0x23, 0x8, 0xfffe, @@ -65033,7 +65067,7 @@ STk_instr STk_boot_code [] = { 0x66, 0x65, 0x6c, -0x986, +0x982, 0x2, 0x24, 0x21, @@ -65045,12 +65079,12 @@ STk_instr STk_boot_code [] = { 0x26, 0x4, 0x1f, -0x984, +0x980, 0x25, 0x55, -0x987, +0x983, 0x55, -0x988, +0x984, 0x23, 0x9, 0xffff, @@ -65059,7 +65093,7 @@ STk_instr STk_boot_code [] = { 0xc, 0x3b, 0x73, -0x989, +0x985, 0x1, 0x24, 0x21, @@ -65071,17 +65105,17 @@ STk_instr STk_boot_code [] = { 0x26, 0x4, 0x1f, -0x987, +0x983, 0x25, 0x55, -0x98a, +0x986, 0x55, -0x98b, +0x987, 0x23, 0xb, 0xfffe, 0x55, -0x987, +0x983, 0xc, 0x3b, 0x21, @@ -65099,43 +65133,43 @@ STk_instr STk_boot_code [] = { 0x26, 0x4, 0x1f, -0x98a, +0x986, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x8e2, +0x8dc, 0x2b, 0x1, 0x25, 0x55, -0x98c, +0x988, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x8e2, +0x8dc, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x8e2, +0x8dc, 0x55, -0x98c, +0x988, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x8e2, +0x8dc, 0x75, 0x100, 0x6c, @@ -65143,43 +65177,175 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x8e2, +0x8dc, 0x23, 0x28, 0xffff, 0x25, 0x6a, +0x985, +0x2b, +0x1, +0x25, +0x55, +0x98a, +0x4d, +0x56, +0x343, +0x2, +0x65, +0xa, +0x985, +0x62, +0xd, +0x25, +0x55, +0x723, +0x55, 0x989, +0x55, +0x985, +0x55, +0x98a, +0x6c, +0x4e, +0x4, +0x24, +0x25, +0x6a, +0x985, +0x75, +0x100, +0x6c, +0x3d, +0x2, +0x24, +0x1f, +0x985, +0x23, +0x28, +0xffff, +0x25, +0x6a, +0x982, 0x2b, 0x1, 0x25, 0x55, -0x98e, +0x98b, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, +0x982, +0x62, +0xd, +0x25, +0x55, +0x723, +0x55, 0x989, +0x55, +0x982, +0x55, +0x98b, +0x6c, +0x4e, +0x4, +0x24, +0x25, +0x6a, +0x982, +0x75, +0x100, +0x6c, +0x3d, +0x2, +0x24, +0x1f, +0x982, +0x23, +0x28, +0xffff, +0x25, +0x6a, +0x98c, +0x2b, +0x1, +0x25, +0x55, +0x98b, +0x4d, +0x56, +0x343, +0x2, +0x65, +0xa, +0x98c, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, +0x989, +0x55, +0x98c, +0x55, +0x98b, +0x6c, +0x4e, +0x4, +0x24, +0x25, +0x6a, +0x98c, +0x75, +0x100, +0x6c, +0x3d, +0x2, +0x24, +0x1f, +0x98c, +0x23, +0x28, +0xffff, +0x25, +0x6a, +0x97c, +0x2b, +0x1, +0x25, +0x55, 0x98d, +0x4d, +0x56, +0x343, +0x2, +0x65, +0xa, +0x97c, +0x62, +0xd, +0x25, +0x55, +0x723, 0x55, 0x989, 0x55, -0x98e, +0x97c, +0x55, +0x98d, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x989, +0x97c, 0x75, 0x100, 0x6c, @@ -65187,43 +65353,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x989, +0x97c, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x986, +0x97f, 0x2b, 0x1, 0x25, 0x55, -0x98f, +0x98d, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x986, +0x97f, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x986, +0x97f, 0x55, -0x98f, +0x98d, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x986, +0x97f, 0x75, 0x100, 0x6c, @@ -65231,13 +65397,13 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x986, +0x97f, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x990, +0x98e, 0x2b, 0x1, 0x25, @@ -65249,16 +65415,16 @@ STk_instr STk_boot_code [] = { 0x2, 0x65, 0xa, -0x990, +0x98e, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x990, +0x98e, 0x55, 0x98f, 0x6c, @@ -65267,7 +65433,7 @@ STk_instr STk_boot_code [] = { 0x24, 0x25, 0x6a, -0x990, +0x98e, 0x75, 0x100, 0x6c, @@ -65275,43 +65441,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x990, +0x98e, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x980, +0x8df, 0x2b, 0x1, 0x25, 0x55, -0x991, +0x98f, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x980, +0x8df, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x980, +0x8df, 0x55, -0x991, +0x98f, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x980, +0x8df, 0x75, 0x100, 0x6c, @@ -65319,43 +65485,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x980, +0x8df, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x983, +0x8f4, 0x2b, 0x1, 0x25, 0x55, -0x991, +0x990, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x983, +0x8f4, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x983, +0x8f4, 0x55, -0x991, +0x990, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x983, +0x8f4, 0x75, 0x100, 0x6c, @@ -65363,43 +65529,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x983, +0x8f4, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x992, +0x991, 0x2b, 0x1, 0x25, 0x55, -0x993, +0x990, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x992, +0x991, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x992, +0x991, 0x55, -0x993, +0x990, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x992, +0x991, 0x75, 0x100, 0x6c, @@ -65407,43 +65573,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x992, +0x991, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x8e5, +0x992, 0x2b, 0x1, 0x25, 0x55, -0x993, +0x990, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x8e5, +0x992, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x8e5, +0x992, 0x55, -0x993, +0x990, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x8e5, +0x992, 0x75, 0x100, 0x6c, @@ -65451,43 +65617,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x8e5, +0x992, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x8fa, +0x8f8, 0x2b, 0x1, 0x25, 0x55, -0x994, +0x993, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x8fa, +0x8f8, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x8fa, +0x8f8, 0x55, -0x994, +0x993, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x8fa, +0x8f8, 0x75, 0x100, 0x6c, @@ -65495,43 +65661,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x8fa, +0x8f8, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x995, +0x994, 0x2b, 0x1, 0x25, 0x55, -0x994, +0x995, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x995, +0x994, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, -0x55, -0x995, +0x989, 0x55, 0x994, +0x55, +0x995, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x995, +0x994, 0x75, 0x100, 0x6c, @@ -65539,7 +65705,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x995, +0x994, 0x23, 0x28, 0xffff, @@ -65550,7 +65716,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x994, +0x997, 0x4d, 0x56, 0x343, @@ -65564,11 +65730,11 @@ STk_instr STk_boot_code [] = { 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, 0x996, 0x55, -0x994, +0x997, 0x6c, 0x4e, 0x4, @@ -65589,7 +65755,7 @@ STk_instr STk_boot_code [] = { 0xffff, 0x25, 0x6a, -0x8fe, +0x998, 0x2b, 0x1, 0x25, @@ -65601,16 +65767,16 @@ STk_instr STk_boot_code [] = { 0x2, 0x65, 0xa, -0x8fe, +0x998, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, -0x8fe, +0x998, 0x55, 0x997, 0x6c, @@ -65619,7 +65785,7 @@ STk_instr STk_boot_code [] = { 0x24, 0x25, 0x6a, -0x8fe, +0x998, 0x75, 0x100, 0x6c, @@ -65627,43 +65793,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x8fe, +0x998, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x998, +0x999, 0x2b, 0x1, 0x25, 0x55, -0x999, +0x99a, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x998, +0x999, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, -0x55, -0x998, +0x989, 0x55, 0x999, +0x55, +0x99a, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x998, +0x999, 0x75, 0x100, 0x6c, @@ -65671,43 +65837,43 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x998, +0x999, 0x23, 0x28, 0xffff, 0x25, 0x6a, -0x99a, +0x99b, 0x2b, 0x1, 0x25, 0x55, -0x99b, +0x99a, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x99a, +0x99b, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, -0x55, -0x99a, +0x989, 0x55, 0x99b, +0x55, +0x99a, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x99a, +0x99b, 0x75, 0x100, 0x6c, @@ -65715,7 +65881,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x99a, +0x99b, 0x23, 0x28, 0xffff, @@ -65726,7 +65892,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x99b, +0x99d, 0x4d, 0x56, 0x343, @@ -65740,11 +65906,11 @@ STk_instr STk_boot_code [] = { 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, 0x99c, 0x55, -0x99b, +0x99d, 0x6c, 0x4e, 0x4, @@ -65765,37 +65931,37 @@ STk_instr STk_boot_code [] = { 0xffff, 0x25, 0x6a, -0x99d, +0x99e, 0x2b, 0x1, 0x25, 0x55, -0x99e, +0x99d, 0x4d, 0x56, 0x343, 0x2, 0x65, 0xa, -0x99d, +0x99e, 0x62, 0xd, 0x25, 0x55, 0x723, 0x55, -0x98d, -0x55, -0x99d, +0x989, 0x55, 0x99e, +0x55, +0x99d, 0x6c, 0x4e, 0x4, 0x24, 0x25, 0x6a, -0x99d, +0x99e, 0x75, 0x100, 0x6c, @@ -65803,7 +65969,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x99d, +0x99e, 0x23, 0x28, 0xffff, @@ -65814,7 +65980,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x99e, +0x99d, 0x4d, 0x56, 0x343, @@ -65828,11 +65994,11 @@ STk_instr STk_boot_code [] = { 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, 0x99f, 0x55, -0x99e, +0x99d, 0x6c, 0x4e, 0x4, @@ -65858,7 +66024,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x9a1, +0x99d, 0x4d, 0x56, 0x343, @@ -65872,11 +66038,11 @@ STk_instr STk_boot_code [] = { 0x55, 0x723, 0x55, -0x98d, +0x989, 0x55, 0x9a0, 0x55, -0x9a1, +0x99d, 0x6c, 0x4e, 0x4, @@ -65892,138 +66058,6 @@ STk_instr STk_boot_code [] = { 0x24, 0x1f, 0x9a0, -0x23, -0x28, -0xffff, -0x25, -0x6a, -0x9a2, -0x2b, -0x1, -0x25, -0x55, -0x9a1, -0x4d, -0x56, -0x343, -0x2, -0x65, -0xa, -0x9a2, -0x62, -0xd, -0x25, -0x55, -0x723, -0x55, -0x98d, -0x55, -0x9a2, -0x55, -0x9a1, -0x6c, -0x4e, -0x4, -0x24, -0x25, -0x6a, -0x9a2, -0x75, -0x100, -0x6c, -0x3d, -0x2, -0x24, -0x1f, -0x9a2, -0x23, -0x28, -0xffff, -0x25, -0x6a, -0x9a3, -0x2b, -0x1, -0x25, -0x55, -0x9a1, -0x4d, -0x56, -0x343, -0x2, -0x65, -0xa, -0x9a3, -0x62, -0xd, -0x25, -0x55, -0x723, -0x55, -0x98d, -0x55, -0x9a3, -0x55, -0x9a1, -0x6c, -0x4e, -0x4, -0x24, -0x25, -0x6a, -0x9a3, -0x75, -0x100, -0x6c, -0x3d, -0x2, -0x24, -0x1f, -0x9a3, -0x23, -0x28, -0xffff, -0x25, -0x6a, -0x9a4, -0x2b, -0x1, -0x25, -0x55, -0x9a1, -0x4d, -0x56, -0x343, -0x2, -0x65, -0xa, -0x9a4, -0x62, -0xd, -0x25, -0x55, -0x723, -0x55, -0x98d, -0x55, -0x9a4, -0x55, -0x9a1, -0x6c, -0x4e, -0x4, -0x24, -0x25, -0x6a, -0x9a4, -0x75, -0x100, -0x6c, -0x3d, -0x2, -0x24, -0x1f, -0x9a4, 0x25, 0x25, 0x56, @@ -66031,7 +66065,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x55, -0x9a5, +0x9a1, 0x56, 0xde, 0x1, @@ -66091,7 +66125,7 @@ STk_instr STk_boot_code [] = { 0x80e, 0x25, 0x55, -0x9a6, +0x9a2, 0x56, 0x7c, 0x1, @@ -66103,7 +66137,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x55, -0x9a7, +0x9a3, 0x56, 0xde, 0x1, @@ -66114,9 +66148,9 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x9a8, +0x9a4, 0x55, -0x9a9, +0x9a5, 0x23, 0x17, 0xffff, @@ -66144,14 +66178,14 @@ STk_instr STk_boot_code [] = { 0x24, 0x21, 0x55, -0x9a6, +0x9a2, 0x9, 0x71, 0xa9, 0x26, 0x4, 0x1f, -0x9a8, +0x9a4, 0x7, 0x1f, 0xa4, @@ -66160,7 +66194,7 @@ STk_instr STk_boot_code [] = { 0x1ef, 0x7, 0x1f, -0x9aa, +0x9a6, 0x7, 0x1f, 0x267, @@ -66311,9 +66345,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9aa, +0x9a6, 0x6a, -0x9aa, +0x9a6, 0x56, 0x254, 0x2, @@ -66415,17 +66449,17 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9ab, +0x9a7, 0x6a, -0x9ab, +0x9a7, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9ac, +0x9a8, 0x6a, -0x9ac, +0x9a8, 0x56, 0x254, 0x2, @@ -66559,41 +66593,41 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9ad, +0x9a9, 0x6a, -0x9ad, +0x9a9, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9ae, +0x9aa, 0x6a, -0x9ae, +0x9aa, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9af, +0x9ab, 0x6a, -0x9af, +0x9ab, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9b0, +0x9ac, 0x6a, -0x9b0, +0x9ac, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9b1, +0x9ad, 0x6a, -0x9b1, +0x9ad, 0x56, 0x254, 0x2, @@ -66607,17 +66641,17 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b2, +0x9ae, 0x6a, -0x9b2, +0x9ae, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9b3, +0x9af, 0x6a, -0x9b3, +0x9af, 0x56, 0x254, 0x2, @@ -66655,9 +66689,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b4, +0x9b0, 0x6a, -0x9b4, +0x9b0, 0x56, 0x254, 0x2, @@ -66743,9 +66777,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b5, +0x9b1, 0x6a, -0x9b5, +0x9b1, 0x56, 0x254, 0x2, @@ -66847,9 +66881,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b6, +0x9b2, 0x6a, -0x9b6, +0x9b2, 0x56, 0x254, 0x2, @@ -66959,17 +66993,17 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b7, +0x9b3, 0x6a, -0x9b7, +0x9b3, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9b8, +0x9b4, 0x6a, -0x9b8, +0x9b4, 0x56, 0x254, 0x2, @@ -67023,9 +67057,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9b9, +0x9b5, 0x6a, -0x9b9, +0x9b5, 0x56, 0x254, 0x2, @@ -67047,9 +67081,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x97a, +0x976, 0x6a, -0x97a, +0x976, 0x56, 0x254, 0x2, @@ -67071,9 +67105,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9ba, +0x9b6, 0x6a, -0x9ba, +0x9b6, 0x56, 0x254, 0x2, @@ -67295,9 +67329,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9bb, +0x9b7, 0x6a, -0x9bb, +0x9b7, 0x56, 0x254, 0x2, @@ -67359,25 +67393,25 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9bc, +0x9b8, 0x6a, -0x9bc, +0x9b8, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9bd, +0x9b9, 0x6a, -0x9bd, +0x9b9, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9be, +0x9ba, 0x6a, -0x9be, +0x9ba, 0x56, 0x254, 0x2, @@ -67391,9 +67425,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9bf, +0x9bb, 0x6a, -0x9bf, +0x9bb, 0x56, 0x254, 0x2, @@ -67447,9 +67481,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x8c6, +0x8c8, 0x6a, -0x8c6, +0x8c8, 0x56, 0x254, 0x2, @@ -67543,9 +67577,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c0, +0x9bc, 0x6a, -0x9c0, +0x9bc, 0x56, 0x254, 0x2, @@ -67655,17 +67689,17 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c1, +0x9bd, 0x6a, -0x9c1, +0x9bd, 0x56, 0x254, 0x2, 0x25, 0x55, -0x9c2, +0x9be, 0x6a, -0x9c2, +0x9be, 0x56, 0x254, 0x2, @@ -67695,9 +67729,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c3, +0x9bf, 0x6a, -0x9c3, +0x9bf, 0x56, 0x254, 0x2, @@ -67719,9 +67753,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c4, +0x9c0, 0x6a, -0x9c4, +0x9c0, 0x56, 0x254, 0x2, @@ -67887,9 +67921,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c5, +0x9c1, 0x6a, -0x9c5, +0x9c1, 0x56, 0x254, 0x2, @@ -67919,9 +67953,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c6, +0x9c2, 0x6a, -0x9c6, +0x9c2, 0x56, 0x254, 0x2, @@ -67951,9 +67985,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c7, +0x9c3, 0x6a, -0x9c7, +0x9c3, 0x56, 0x254, 0x2, @@ -67991,9 +68025,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c8, +0x9c4, 0x6a, -0x9c8, +0x9c4, 0x56, 0x254, 0x2, @@ -68015,9 +68049,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9c9, +0x9c5, 0x6a, -0x9c9, +0x9c5, 0x56, 0x254, 0x2, @@ -68095,9 +68129,9 @@ STk_instr STk_boot_code [] = { 0x2, 0x25, 0x55, -0x9ca, +0x9c6, 0x6a, -0x9ca, +0x9c6, 0x56, 0x254, 0x2, @@ -68132,7 +68166,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x55, -0x9cb, +0x9c7, 0x56, 0xeb, 0x2, @@ -68146,14 +68180,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x53, 0x55, -0x9a6, +0x9a2, 0x56, 0xbf, 0x2, 0x2e, 0x25, 0x55, -0x9cc, +0x9c8, 0x56, 0x70c, 0x1, @@ -68163,7 +68197,7 @@ STk_instr STk_boot_code [] = { 0x41, 0x25, 0x55, -0x9cd, +0x9c9, 0x56, 0x7c, 0x1, @@ -68207,7 +68241,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x21, 0x55, -0x9ce, +0x9ca, 0x56, 0xeb, 0x2, @@ -68221,14 +68255,14 @@ STk_instr STk_boot_code [] = { 0x25, 0x53, 0x55, -0x9cd, +0x9c9, 0x56, 0xbf, 0x2, 0x2e, 0x25, 0x55, -0x9cf, +0x9cb, 0x56, 0x70c, 0x1, @@ -68250,7 +68284,7 @@ STk_instr STk_boot_code [] = { 0x0, 0x6e, 0x55, -0x9d0, +0x9cc, 0x56, 0xde, 0x1, @@ -68261,7 +68295,7 @@ STk_instr STk_boot_code [] = { 0x3, 0x25, 0x55, -0x9d1, +0x9cd, 0x56, 0x438, 0x1, @@ -68273,7 +68307,7 @@ STk_instr STk_boot_code [] = { 0x7a, 0x0, 0x71, -0x9d2, +0x9ce, 0x1, 0x1c, 0x1, @@ -68296,11 +68330,11 @@ STk_instr STk_boot_code [] = { 0xa, 0xc0, 0x1f, -0x9d3, +0x9cf, 0xa, 0xc0, 0x1f, -0x9d4, +0x9d0, 0x23, 0xfc, 0x2, @@ -68364,7 +68398,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x55, -0x9d5, +0x9d1, 0x56, 0x438, 0x1, @@ -68412,7 +68446,7 @@ STk_instr STk_boot_code [] = { 0x16, 0x25, 0x55, -0x9d6, +0x9d2, 0x25, 0x25, 0x75, @@ -68465,7 +68499,7 @@ STk_instr STk_boot_code [] = { 0x24, 0x25, 0x55, -0x9d7, +0x9d3, 0x75, 0x100, 0x56, @@ -68488,7 +68522,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x9d8, +0x9d4, 0x1, 0x1c, 0x8, @@ -68496,7 +68530,7 @@ STk_instr STk_boot_code [] = { 0x1e, 0x4, 0x9, -0x9d9, +0x9d5, 0x1c, 0x1, 0xc, @@ -68515,7 +68549,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x55, -0x9da, +0x9d6, 0xc, 0x49, 0x6, @@ -68556,7 +68590,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x24, 0x1f, -0x8ce, +0x8d0, 0x23, 0x9e, 0x2, @@ -68594,7 +68628,7 @@ STk_instr STk_boot_code [] = { 0x1d, 0x6, 0x55, -0x9db, +0x9d7, 0x4d, 0x3f, 0x2, @@ -68614,7 +68648,7 @@ STk_instr STk_boot_code [] = { 0x49, 0x2, 0x71, -0x9d8, +0x9d4, 0x1, 0x21, 0x2b, @@ -68629,7 +68663,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x55, -0x9dc, +0x9d8, 0x56, 0x467, 0x2, @@ -68732,7 +68766,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x6a, -0x90d, +0x907, 0x56, 0x3c9, 0x2, @@ -68745,7 +68779,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x55, -0x90e, +0x908, 0x56, 0x9a, 0x2, @@ -68755,7 +68789,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x65, 0x56, -0x90f, +0x909, 0x1, 0x25, 0x65, @@ -68778,7 +68812,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x55, -0x9dd, +0x9d9, 0x75, 0x103, 0x75, @@ -68827,7 +68861,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x101, 0x55, -0x9de, +0x9da, 0xc, 0x3d, 0x71, @@ -68842,7 +68876,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x101, 0x55, -0x9df, +0x9db, 0xc, 0x49, 0x14, @@ -68879,7 +68913,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x55, -0x9e0, +0x9dc, 0x25, 0x75, 0x101, @@ -68910,7 +68944,7 @@ STk_instr STk_boot_code [] = { 0x75, 0x100, 0x56, -0x8ce, +0x8d0, 0x2, 0x1c, 0x1, @@ -68918,7 +68952,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x66, 0x55, -0x9e1, +0x9dd, 0x56, 0x60, 0x2, @@ -68930,7 +68964,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x24, 0x1f, -0x9e2, +0x9de, 0x25, 0x25, 0x56, @@ -68944,7 +68978,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e3, +0x9df, 0x4d, 0x56, 0x4b, @@ -68953,7 +68987,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e4, +0x9e0, 0x4d, 0x56, 0x4b, @@ -68962,7 +68996,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e5, +0x9e1, 0x4d, 0x56, 0x4b, @@ -68971,7 +69005,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e6, +0x9e2, 0x4d, 0x56, 0x4b, @@ -68980,7 +69014,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e7, +0x9e3, 0x4d, 0x56, 0x4b, @@ -68989,7 +69023,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e8, +0x9e4, 0x4d, 0x56, 0x4b, @@ -69007,7 +69041,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9e9, +0x9e5, 0x4d, 0x56, 0x4b, @@ -69016,7 +69050,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9ea, +0x9e6, 0x4f, 0x56, 0x4b, @@ -69025,7 +69059,7 @@ STk_instr STk_boot_code [] = { 0x6a, 0x3b8, 0x55, -0x9eb, +0x9e7, 0x4f, 0x56, 0x4b, @@ -69187,7 +69221,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x9ec, +0x9e8, 0x75, 0x100, 0x6c, @@ -69213,7 +69247,7 @@ STk_instr STk_boot_code [] = { 0x25, 0x25, 0x55, -0x9ed, +0x9e9, 0x56, 0x6e9, 0x1, @@ -69232,14 +69266,14 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x9ee, +0x9ea, 0x75, 0x108, 0x65, 0x54, 0x7, 0x6c, -0x9e2, +0x9de, 0x4, 0x24, 0x2d, @@ -69263,7 +69297,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x9ef, +0x9eb, 0x75, 0x106, 0x25, @@ -69276,7 +69310,7 @@ STk_instr STk_boot_code [] = { 0x54, 0x2, 0x6c, -0x9e2, +0x9de, 0x4, 0x24, 0x2d, @@ -69299,14 +69333,14 @@ STk_instr STk_boot_code [] = { 0x0, 0x3b, 0x71, -0x9d4, +0x9d0, 0x1, 0x21, 0x29, 0x1, 0x25, 0x56, -0x9d3, +0x9cf, 0x0, 0x25, 0x65, @@ -69332,14 +69366,14 @@ STk_instr STk_boot_code [] = { 0x1, 0x25, 0x55, -0x9f0, +0x9ec, 0x75, 0x105, 0x65, 0x54, 0x4, 0x6c, -0x9e2, +0x9de, 0x4, 0x24, 0x2d, @@ -69360,11 +69394,11 @@ STk_instr STk_boot_code [] = { 0x8, 0x25, 0x56, -0x97d, +0x979, 0x0, 0x25, 0x56, -0x93f, +0x93b, 0x0, 0x2c, 0x2f}; From 1307c6393ca16f4d5bdb0f11b196f0a9b1f67858 Mon Sep 17 00:00:00 2001 From: Erick Gallesio Date: Thu, 22 Aug 2024 19:57:14 +0200 Subject: [PATCH 2/2] Added documentation about '!' in REPL --- doc/HTML/stklos-ref.html | 25 +++++++++----- doc/refman/custom.adoc | 23 ++++++++++--- lib/repl.stk | 8 ++--- src/boot.c | 72 ++++++++++++++++++++-------------------- 4 files changed, 74 insertions(+), 54 deletions(-) diff --git a/doc/HTML/stklos-ref.html b/doc/HTML/stklos-ref.html index bc40c24b..2fe4d7a2 100644 --- a/doc/HTML/stklos-ref.html +++ b/doc/HTML/stklos-ref.html @@ -25649,18 +25649,9 @@

10.3.1. REPL commands

,cd: Change current directory

  • -

    ,pwd: Print working directory

    -
  • -
  • -

    ,ls: List directory content

    -
  • -
  • ,quit (or ,q): Exit STklos

  • -

    ,shell (or ,!): Run a shell command

    -
  • -
  • ,time (or ,t ): Print the time used to run the next expression

  • @@ -25697,6 +25688,22 @@

    10.3.1. REPL commands

    +

    Furthermore, the '!' character can also be used to execute an +external command using sh(1). For instance,

    +
    +
    +
    +
    stklos> !pwd
    +/tmp/test
    +stklos> !emacs foo.stk &   ;; to launch emacs on file foo.stk
    +stklos> (define !pwd 100)
    +;; !pwd
    +stklos> !pwd               ;; now !pwd overrides pwd(1)
    +100
    +stklos>
    +
    +
    +

    diff --git a/doc/refman/custom.adoc b/doc/refman/custom.adoc index f4bdc1e7..29577cb7 100644 --- a/doc/refman/custom.adoc +++ b/doc/refman/custom.adoc @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GFDL-1.3-or-later // -// Copyright © 2000-2023 Erick Gallesio +// Copyright © 2000-2024 Erick Gallesio // // Author: Erick Gallesio [eg@unice.fr] // Creation date: 26-Nov-2000 18:19 (eg) @@ -66,10 +66,7 @@ of available commands is given below. - **,backtrace** (or **,bt**): Show the stack when last error occurred - **,cd**: Change current directory -- **,pwd**: Print working directory -- **,ls**: List directory content - **,quit** (or **,q**): Exit STklos -- **,shell** (or **,!**): Run a shell command - **,time** (or **,t** ): Print the time used to run the next expression - **,describe** (or **,d**): Describe an object - **,expand** (or **,e**): Pretty print the macro expansion of a form @@ -83,6 +80,23 @@ of available commands is given below. - **,help** (or **,?** or **,h*): Show help on REPL command with parameter. With a parameter, display the help of this parameter +Furthermore, the **'!'** character can also be used to execute an +external command using *sh(1)*. For instance, + +```scheme +stklos> !pwd +/tmp/test +stklos> !emacs foo.stk & ;; to launch emacs on file foo.stk +stklos> (define !pwd 100) +;; !pwd +stklos> !pwd ;; now !pwd overrides pwd(1) +100 +stklos> +``` + + + + {{insertdoc 'repl-add-command}} ==== REPL variables @@ -115,4 +129,3 @@ The following parameter objects can be used to customize the REPL: {{insertdoc 'repl-theme}} {{insertdoc 'repl-show-startup-message}} - diff --git a/lib/repl.stk b/lib/repl.stk index 252b7de7..a8a6ce73 100644 --- a/lib/repl.stk +++ b/lib/repl.stk @@ -281,6 +281,10 @@ doc> (repl-add-command '(apropos a) "Search for symbols containing a given string" (lambda () (print (apropos (simple-trim (read-line)))))) + ;; == version + (repl-add-command '(version v) + "Show version" + (lambda () (printf "~a ~a~%" (version) (%push-id)))) ;; ==== help (repl-add-command '(help ? h) @@ -291,10 +295,6 @@ doc> (display-repl-command-help) (help (read-from-string arg)))))) - ;; == version - (repl-add-command '(version v) - "Show version" - (lambda () (printf "~a ~a~%" (version) (%push-id)))) ) ;; end of REPL commands ;; ---------------------------------------------------------------------- diff --git a/src/boot.c b/src/boot.c index acf65f4d..5d89ceab 100644 --- a/src/boot.c +++ b/src/boot.c @@ -2300,13 +2300,13 @@ char* STk_boot_consts = "#(" "(apropos a)" " " "\"Search for symbols containing a given string\"" " " "apropos" " " +"(version v)" " " +"\"Show version\"" " " +"\"~a ~a~%\"" " " "(help ? h)" " " "\"This help if no parameter, or help on its argument\"" " " "\"\"" " " "help" " " -"(version v)" " " -"\"Show version\"" " " -"\"~a ~a~%\"" " " "%other-error-handlers" " " "%try-matching-condition" " " "%add-error-to-repl-handler" " " @@ -62472,6 +62472,32 @@ STk_instr STk_boot_code [] = { 0x55, 0x8f6, 0x23, +0x10, +0x0, +0x25, +0x55, +0x8f7, +0x25, +0x56, +0x1bf, +0x0, +0x6e, +0x56, +0x4c2, +0x0, +0x73, +0x44c, +0x3, +0x24, +0x71, +0x8bb, +0x3, +0x25, +0x55, +0x8f8, +0x55, +0x8f9, +0x23, 0x1d, 0x0, 0x25, @@ -62484,7 +62510,7 @@ STk_instr STk_boot_code [] = { 0x1, 0x65, 0x9, -0x8f7, +0x8fa, 0x64, 0x5, 0x25, @@ -62499,34 +62525,8 @@ STk_instr STk_boot_code [] = { 0x3b6, 0x1, 0x73, -0x8f8, -0x1, -0x24, -0x71, -0x8bb, -0x3, -0x25, -0x55, -0x8f9, -0x55, -0x8fa, -0x23, -0x10, -0x0, -0x25, -0x55, 0x8fb, -0x25, -0x56, -0x1bf, -0x0, -0x6e, -0x56, -0x4c2, -0x0, -0x73, -0x44c, -0x3, +0x1, 0x24, 0x71, 0x8bb, @@ -65623,7 +65623,7 @@ STk_instr STk_boot_code [] = { 0xffff, 0x25, 0x6a, -0x8f8, +0x8fb, 0x2b, 0x1, 0x25, @@ -65635,7 +65635,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x65, 0xa, -0x8f8, +0x8fb, 0x62, 0xd, 0x25, @@ -65644,7 +65644,7 @@ STk_instr STk_boot_code [] = { 0x55, 0x989, 0x55, -0x8f8, +0x8fb, 0x55, 0x993, 0x6c, @@ -65653,7 +65653,7 @@ STk_instr STk_boot_code [] = { 0x24, 0x25, 0x6a, -0x8f8, +0x8fb, 0x75, 0x100, 0x6c, @@ -65661,7 +65661,7 @@ STk_instr STk_boot_code [] = { 0x2, 0x24, 0x1f, -0x8f8, +0x8fb, 0x23, 0x28, 0xffff,