BASIC with Eliza demo (slow) by unbibium

BASIC interpreter running an old chat simulator called ELIZA.

Due the the slow clock speed of the DCPU, responses can take anywhere from ten seconds to two minutes, and probably beyond for long input. Optimizations are certainly possible, but ELIZA is a slow and inefficient program to begin with. Maybe there's some other demo that will work a little better.

To avoid the automatic LOAD and RUN, change the 5 in the first line to a 0.

https://github.com/unbibium/dcpu-cbmbasic

Views: 1466 - Submitted: 2 years ago - Forked from: i453i

Code

DCPU16 Quick Reference

Basic Opcodes

  • SET a, b sets a to b
  • ADD a, b sets a to a+b, sets O to 0x0001 if there's an overflow, 0x0 otherwise
  • SUB a, b sets a to a-b, sets O to 0xffff if there's an underflow, 0x0 otherwise
  • MUL a, b sets a to a*b, sets O to ((a*b)>>16)&0xffff
  • DIV a, b sets a to a/b, sets O to ((a<<16)/b)&0xffff. if b==0, sets a and O to 0 instead.
  • MOD a, b sets a to a%b. if b==0, sets a to 0 instead.
  • SHL a, b sets a to a<>b)&0xffff
  • SHR a, b sets a to a>>b, sets O to ((a<<16)>>b)&0xffff
  • AND a, b sets a to a&b
  • BOR a, b sets a to a|b
  • XOR a, b sets a to a^b
  • IFE a, b performs next instruction only if a==b
  • IFN a, b performs next instruction only if a!=b
  • IFG a, b performs next instruction only if a>b
  • IFB a, b performs next instruction only if (a&b)!=0

Non-basic Opcodes

  • JSR a pushes the address of the next instruction to the stack, then sets PC to a
  • BRK stops execution (non-standard)

Registers

  • A, B, C, X, Y, Z, I, J

Other Values

  • POP / [SP++]
  • PEEK / [SP]
  • PUSH / [--SP]
  • SP, PC, O

© Matt Bell (mappum) 2012 - DCPU16 code - Site code - Report bugs