diff --git a/osCLI.go b/osCLI.go index 3af9850..3bfa042 100644 --- a/osCLI.go +++ b/osCLI.go @@ -40,6 +40,7 @@ var cliCommands = []string{ "SPOOL", "TAPE", "TV", + "TYPE", } func execOSCLI(env *environment) { @@ -116,24 +117,7 @@ func execOSCLI(env *environment) { } case "CAT": - // *CAT filename - filename := "" - _, filename, valid = parseFilename(line, pos) - if !valid { - env.raiseError(254, "Bad Command") - break - } - - if filename != "" { - data, err := os.ReadFile(filename) - if err != nil { - env.raiseError(errorTodo, err.Error()) - break - } - for _, ch := range data { - env.vdu.write(ch) - } - } + env.con.write("\n") case "CODE": execOSCLIfx(env, 0x88, line, pos) @@ -387,6 +371,26 @@ func execOSCLI(env *environment) { case "TV": execOSCLIfx(env, 0x90, line, pos) + case "TYPE": + // *TYPE filename + filename := "" + _, filename, valid = parseFilename(line, pos) + if !valid { + env.raiseError(254, "Bad Command") + break + } + + if filename != "" { + data, err := os.ReadFile(filename) + if err != nil { + env.raiseError(errorTodo, err.Error()) + break + } + for _, ch := range data { + env.vdu.write(ch) + } + } + default: unhandled = true } diff --git a/osCLI_test.go b/osCLI_test.go index 7723e2d..7cd0544 100644 --- a/osCLI_test.go +++ b/osCLI_test.go @@ -41,7 +41,7 @@ func Test_OSCLI_FX_spaces(t *testing.T) { } } -func Test_OSCLI_CAT(t *testing.T) { +func Test_OSCLI_TYPE(t *testing.T) { source := "Hi []{}" printed := "Hi ←→¼¾>" @@ -58,21 +58,11 @@ func Test_OSCLI_CAT(t *testing.T) { } out := integrationTestBasic([]string{ - "*CAT " + file.Name(), + "*TYPE " + file.Name(), }) if !strings.Contains(out, printed) { t.Log(out) - t.Error("*CAT error") + t.Error("*TYPE error") } - - out2 := integrationTestBasic([]string{ - "*CAT " + file.Name(), - }) - - if !strings.Contains(out2, printed) { - t.Log(out) - t.Error("*. error") - } - }