Commit 79d00aff by malcolm

added more functions

parent c068d5cb
Showing with 37 additions and 0 deletions
...@@ -54,6 +54,17 @@ void csub() ...@@ -54,6 +54,17 @@ void csub()
cpush(a-b); cpush(a-b);
} }
void crsub()
{
if(cstack_size<2)
return;
int a=cpeek();
cpop();
int b=cpeek();
cpop();
cpush(b-a);
}
void cdiv() void cdiv()
{ {
if(cstack_size<2) if(cstack_size<2)
...@@ -64,3 +75,14 @@ void cdiv() ...@@ -64,3 +75,14 @@ void cdiv()
cpop(); cpop();
cpush(a/b); cpush(a/b);
} }
void crdiv()
{
if(cstack_size<2)
return;
int a=cpeek();
cpop();
int b=cpeek();
cpop();
cpush(b/a);
}
...@@ -7,5 +7,7 @@ int cpeek(); ...@@ -7,5 +7,7 @@ int cpeek();
void cadd(); void cadd();
void cmult(); void cmult();
void csub(); void csub();
void crsub();
void cdiv(); void cdiv();
void crdiv();
#endif #endif
...@@ -72,12 +72,25 @@ void io_process(char* s, int ss) ...@@ -72,12 +72,25 @@ void io_process(char* s, int ss)
terminal_writeint(cpeek()); terminal_writeint(cpeek());
terminal_putchar('\n'); terminal_putchar('\n');
} }
else if(strncmp(s,"rsub",3)==0)
{
crsub();
terminal_writeint(cpeek());
terminal_putchar('\n');
}
else if(strncmp(s,"div",3)==0) else if(strncmp(s,"div",3)==0)
{ {
cdiv(); cdiv();
terminal_writeint(cpeek()); terminal_writeint(cpeek());
terminal_putchar('\n'); terminal_putchar('\n');
} }
else if(strncmp(s,"rdiv",3)==0)
{
crdiv();
terminal_writeint(cpeek());
terminal_putchar('\n');
}
} }
void kbd_irq() void kbd_irq()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment