mirror of
https://github.com/bobbimanners/EightBall.git
synced 2024-06-12 19:30:58 +00:00
v0.78: VM performance improvement, removed debug printout on error
This commit is contained in:
parent
8765cfce25
commit
86e517a6eb
BIN
bin/8ball20.prg
BIN
bin/8ball20.prg
Binary file not shown.
BIN
bin/8ball64.prg
BIN
bin/8ball64.prg
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/disass
BIN
bin/disass
Binary file not shown.
BIN
bin/disass20.prg
BIN
bin/disass20.prg
Binary file not shown.
BIN
bin/disass64.prg
BIN
bin/disass64.prg
Binary file not shown.
BIN
bin/eightball
BIN
bin/eightball
Binary file not shown.
BIN
bin/eightballvm
BIN
bin/eightballvm
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -400,9 +400,6 @@ void error(unsigned char errcode)
|
||||||
{
|
{
|
||||||
printchar('?');
|
printchar('?');
|
||||||
print(errmsgs[errcode - ERR_FIRST]);
|
print(errmsgs[errcode - ERR_FIRST]);
|
||||||
print(" \"");
|
|
||||||
print(txtPtr);
|
|
||||||
print("\"\n");
|
|
||||||
}
|
}
|
||||||
#ifdef A2E
|
#ifdef A2E
|
||||||
#pragma code-name (pop)
|
#pragma code-name (pop)
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#define VERSIONSTR "0.77"
|
#define VERSIONSTR "0.78"
|
||||||
|
|
||||||
void print(char *str);
|
void print(char *str);
|
||||||
|
|
||||||
|
|
232
eightballvm.c
232
eightballvm.c
|
@ -180,9 +180,6 @@ unsigned char *memory = 0;
|
||||||
#define CHECKSTACKOVERFLOW(bytes)
|
#define CHECKSTACKOVERFLOW(bytes)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Handler for unsupported bytecode */
|
|
||||||
#define UNSUPPORTED() unsupported()
|
|
||||||
|
|
||||||
#ifdef STACKCHECKS
|
#ifdef STACKCHECKS
|
||||||
/*
|
/*
|
||||||
* Check for evaluation stack underflow.
|
* Check for evaluation stack underflow.
|
||||||
|
@ -1153,7 +1150,195 @@ vm_prch,
|
||||||
vm_prstr,
|
vm_prstr,
|
||||||
vm_prmsg,
|
vm_prmsg,
|
||||||
vm_kbdch,
|
vm_kbdch,
|
||||||
vm_kbdln};
|
vm_kbdln,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported,
|
||||||
|
unsupported /* Should be at least 255 lines long */
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fetch, decode and execute a VM instruction.
|
* Fetch, decode and execute a VM instruction.
|
||||||
|
@ -1255,7 +1440,46 @@ void execute()
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef A2E
|
||||||
jumptbl[MEM(pc)]();
|
jumptbl[MEM(pc)]();
|
||||||
|
#else
|
||||||
|
#if 0
|
||||||
|
/* Slight speedup versus the code emitted by cc65 */
|
||||||
|
__asm__("ml: lda (_pc)");
|
||||||
|
__asm__(" stz tmp1");
|
||||||
|
__asm__(" asl a");
|
||||||
|
__asm__(" rol tmp1");
|
||||||
|
__asm__(" clc");
|
||||||
|
__asm__(" adc #<(_jumptbl)");
|
||||||
|
__asm__(" sta ptr1");
|
||||||
|
__asm__(" lda tmp1");
|
||||||
|
__asm__(" adc #>(_jumptbl)");
|
||||||
|
__asm__(" sta ptr1+1");
|
||||||
|
__asm__(" ldy #$01");
|
||||||
|
__asm__(" lda (ptr1),y");
|
||||||
|
__asm__(" tax");
|
||||||
|
__asm__(" lda (ptr1)");
|
||||||
|
__asm__(" jsr callax");
|
||||||
|
__asm__(" bra ml");
|
||||||
|
#else
|
||||||
|
/* This version assumes (_pc) < 128, saves a few more cycles */
|
||||||
|
/* Slight speedup versus the code emitted by cc65 */
|
||||||
|
__asm__("ml: lda (_pc)");
|
||||||
|
__asm__(" asl a");
|
||||||
|
__asm__(" clc");
|
||||||
|
__asm__(" adc #<(_jumptbl)");
|
||||||
|
__asm__(" sta ptr1");
|
||||||
|
__asm__(" lda #$00");
|
||||||
|
__asm__(" adc #>(_jumptbl)");
|
||||||
|
__asm__(" sta ptr1+1");
|
||||||
|
__asm__(" ldy #$01");
|
||||||
|
__asm__(" lda (ptr1),y");
|
||||||
|
__asm__(" tax");
|
||||||
|
__asm__(" lda (ptr1)");
|
||||||
|
__asm__(" jsr callax");
|
||||||
|
__asm__(" bra ml");
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user