Your emulator fails two tests, I think. This bug report is for the first failure.
Not true - second issue is a non-issue - I thought you were behaving incorrectly by terminating input of function 10: Read Console Buffer when the buffer is full, but I think on reflection that if the input size is 10 bytes you should return when the user enters 10 characters - without the need for RETURN. I guess I did the wrong thing in mine :)
I think reading the documentation that Function 3 / A_READ should not echo input. I'm basing that upon reading this guide:
So I think my behaviour is correct, but I appreciate this might be a matter of interpretation.
Output from my emulator:
./cpmulator samples/intest.com
Simple input-test program, by Steve.
C_READ Test:
This test allows you to enter FIVE characters, one by one.
The characters SHOULD be echoed as you type them.
12345
Test complete - you entered '12345'.
A_READ Test:
This test allows you to enter FIVE characters, one by one.
The characters should NOT be echoed as you type them.
Test complete - you entered '12345'.
C_RAWIO Test:
This uses polling to read characters.
Echo should NOT be enabled.
Press 'q' to proceed/complete this test.
+
Output from yours:
$ ./target/debug/iz-cpm /home/skx/Repos/github.com/skx/cpmulator/samples/intest.com
Simple input-test program, by Steve.
C_READ Test:
This test allows you to enter FIVE characters, one by one.
The characters SHOULD be echoed as you type them.
12345
Test complete - you entered '12345'.
A_READ Test:
This test allows you to enter FIVE characters, one by one.
The characters should NOT be echoed as you type them.
12345 Test complete - you entered '12345'.
C_RAWIO Test:
This uses polling to read characters.
Echo should NOT be enabled.
Press 'q' to proceed/complete this test.
+
Note the echo'd characters in the section section.
I put together a simple input-testing binary, because I spent a lot of time fighting with console input, the source and binary can be found here:
Not true - second issue is a non-issue - I thought you were behaving incorrectly by terminating input of function 10: Read Console Buffer when the buffer is full, but I think on reflection that if the input size is 10 bytes you should return when the user enters 10 characters - without the need for RETURN. I guess I did the wrong thing in mine :)
I think reading the documentation that Function 3 / A_READ should not echo input. I'm basing that upon reading this guide:
Here we see:
Specifically note that in the second entry there is no reference to "echo".
Similarly in the bigger manual, http://www.gaby.de/cpm/manuals/archive/cpm22htm/ch5.htm#Section_5.2 we see a similar writeup. There is a reference to echo in C_READ but not in A_READ.
So I think my behaviour is correct, but I appreciate this might be a matter of interpretation.
Output from my emulator:
Output from yours:
Note the echo'd characters in the section section.