accepting numbers, text, and other symbols as user input

This commit is contained in:
Thiago Auler dos Santos 2017-11-22 23:28:49 -02:00
parent bac269c9c2
commit 1deb00495d
2 changed files with 8 additions and 3 deletions

View File

@ -16,7 +16,9 @@ void input()
{ {
int ch = getch(); int ch = getch();
if (ch == '\n') { ch = '\r'; } if (ch == '\n') { ch = '\r'; }
if (ch == '\r' || (ch >= '0' && ch <= '9')) if (ch == '\r' || ch == '.' || ch == ':' ||
(ch >= '0' && ch <= '9') ||
(ch >= 'A' && ch <= 'Z'))
{ {
keyboard_buffer = ch | 0x80; keyboard_buffer = ch | 0x80;
keyboard_control = 0xFF; keyboard_control = 0xFF;

View File

@ -95,7 +95,7 @@ void fetch_operand()
void adjustNZ(db r) void adjustNZ(db r)
{ {
if (r == 0) { Z_SET; } else { Z_UNSET;} if (r == 0) { Z_SET; } else { Z_UNSET; }
r = r >> 7; r = r >> 7;
if (r == 1) { N_SET; } else { N_UNSET; } if (r == 1) { N_SET; } else { N_UNSET; }
} }
@ -110,7 +110,7 @@ db adder(db a, db b)
db z = (a + b + C_IS_SET) >> 7; db z = (a + b + C_IS_SET) >> 7;
db v = c ^ z; db v = c ^ z;
if (c == 1) { C_SET; } else { C_UNSET;} if (c == 1) { C_SET; } else { C_UNSET; }
if (v == 1) { V_SET; } else { V_UNSET; } if (v == 1) { V_SET; } else { V_UNSET; }
adjustNZ(r); adjustNZ(r);
@ -307,6 +307,7 @@ void clv()
void cmp() void cmp()
{ {
// compare memory with accumulator // compare memory with accumulator
C_SET;
fetch_operand(); fetch_operand();
operand = operand ^ 0xFF; operand = operand ^ 0xFF;
adder(ac, operand); adder(ac, operand);
@ -315,6 +316,7 @@ void cmp()
void cpx() void cpx()
{ {
// compare memory and index x // compare memory and index x
C_SET;
fetch_operand(); fetch_operand();
operand = operand ^ 0xFF; operand = operand ^ 0xFF;
adder(x, operand); adder(x, operand);
@ -323,6 +325,7 @@ void cpx()
void cpy() void cpy()
{ {
// compare memory and index y // compare memory and index y
C_SET;
fetch_operand(); fetch_operand();
operand = operand ^ 0xFF; operand = operand ^ 0xFF;
adder(y, operand); adder(y, operand);