Implemented G instruction

This commit is contained in:
Luxferre
2022-08-11 09:29:05 +03:00
parent 23b39f036a
commit c0ee893f25
2 changed files with 6 additions and 1 deletions
+5 -1
View File
@@ -182,6 +182,7 @@ enum EquiInstructions {
INS_JUMP='J',
INS_IF='I',
INS_EXPOINT='X', /* locate execution point */
INS_GPDSTART='G', /* locate GPD area start */
INS_GT='>',
INS_LT='<',
INS_EQ='=',
@@ -436,6 +437,9 @@ void equi_main_loop() {
case INS_EXPOINT: /* Locate execution point */
pushMain(ram.pc + 1);
break;
case INS_GPDSTART: /* Locate GPD area start */
pushMain(ram.gpd_start);
break;
case INS_GT: /* ( a b -- a>b ) */
pushMain((popMain() < popMain()) ? 1u : 0u);
break;
@@ -536,7 +540,7 @@ int main(int argc, char* argv[]) {
/* Start both execution and input buffering from the start of command buffer (-1 because we use prefix increment) */
ram.pc = ram.ibp = 65535U;
printf("Welcome to Equi v" EQUI_VER " by Luxferre, 2022\n\nCLT: 0x%X (%d bytes)\nGPD: 0x%X (%d bytes)\nCommand buffer: 0x%X (%d bytes)\nEqui ready\n\n",
printf("Welcome to Equi v" EQUI_VER " by Luxferre, 2022\n\nCLT: 0x%04X (%d bytes)\nGPD: 0x%04X (%d bytes)\nCommand buffer: 0x%04X (%d bytes)\nEqui ready\n\n",
(unsigned int) ((uchar *)&ram.clt - (uchar *)&ram.main_stack),
(unsigned int) ((uchar *)&ram.gpd - (uchar *)&ram.clt),
ram.gpd_start,