Guest User

Untitled

a guest
Dec 15th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. //_mem[] is a uint8_t[] for RAM allocation
  2. //_pMem is a moveable pointer to _mem[]
  3. //NextByte() retreives the next byte from EEPROM
  4.  
  5. //Before this is if-else statements catching ranges of similar op codes
  6. ...
  7. //This one catches similar math functions (mem op= num1):
  8. } else if (op >= 0x20 || op <= 0x2F) {
  9. uint8_t num1 = _mem[NextByte()];
  10. if (op == 0x20) *_pMem += num1; //1A
  11. else if (op == 0x21) *_pMem -= num1; //1S
  12.  
  13. //For all other op codes:
  14. } else {
  15.  
  16. //These can mostly be ignored
  17.  
  18. switch (op) {
  19. case 0x00: J(*_pMem); break; //J_
  20. case 0x01: _o = NextWord(); break; //JA
  21. case 0x0A: ++_pMem; break; //MI
  22. case 0x0B: --_pMem; break; //MD
  23. case 0x0C: _pMem += NextByte(); break; //MA
  24. case 0x0D: _pMem -= NextByte(); break; //MS
  25. case 0x10: *_pMem = NextByte(); break; //S_
  26. case 0x11: _mem[NextByte()] = _mem[NextByte()]; break; //CP
  27. case 0x12: *_pMem = _mem[NextByte()]; break; //V_
  28. case 0x13: _mem[NextByte()] = *_pMem; break; //_V
  29. case 0x80: SV(); break; //SV
  30. case 0xFF: noHalt = false; break; //HT
  31. }
  32.  
  33. //the if-else statement for 0x20 and 0x21 is completely removed
  34. ...
  35. case 0x13: _mem[NextByte()] = *_pMem; break; //_V
  36. case 0x20: *_pMem += _mem[NextByte()]; break; //1A
  37. case 0x21: *_pMem -= _mem[NextByte()]; break; //1S
  38. case 0x80: SV(); break; //SV
  39. ...
Add Comment
Please, Sign In to add comment