Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //_mem[] is a uint8_t[] for RAM allocation
- //_pMem is a moveable pointer to _mem[]
- //NextByte() retreives the next byte from EEPROM
- //Before this is if-else statements catching ranges of similar op codes
- ...
- //This one catches similar math functions (mem op= num1):
- } else if (op >= 0x20 || op <= 0x2F) {
- uint8_t num1 = _mem[NextByte()];
- if (op == 0x20) *_pMem += num1; //1A
- else if (op == 0x21) *_pMem -= num1; //1S
- //For all other op codes:
- } else {
- //These can mostly be ignored
- switch (op) {
- case 0x00: J(*_pMem); break; //J_
- case 0x01: _o = NextWord(); break; //JA
- case 0x0A: ++_pMem; break; //MI
- case 0x0B: --_pMem; break; //MD
- case 0x0C: _pMem += NextByte(); break; //MA
- case 0x0D: _pMem -= NextByte(); break; //MS
- case 0x10: *_pMem = NextByte(); break; //S_
- case 0x11: _mem[NextByte()] = _mem[NextByte()]; break; //CP
- case 0x12: *_pMem = _mem[NextByte()]; break; //V_
- case 0x13: _mem[NextByte()] = *_pMem; break; //_V
- case 0x80: SV(); break; //SV
- case 0xFF: noHalt = false; break; //HT
- }
- //the if-else statement for 0x20 and 0x21 is completely removed
- ...
- case 0x13: _mem[NextByte()] = *_pMem; break; //_V
- case 0x20: *_pMem += _mem[NextByte()]; break; //1A
- case 0x21: *_pMem -= _mem[NextByte()]; break; //1S
- case 0x80: SV(); break; //SV
- ...
Add Comment
Please, Sign In to add comment