Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //This program has some error in it related to it can't find main.
- //it was 3 AM when I last looked at it. i fell asleep soon after. (lol)
- ////////////
- //Main File:
- ////////////
- #include <iostream>
- #include <ifstream>
- #include <ofstream>
- #include "SUBLCQ.h"
- using namescape std;
- int main(int argc, char* argv[])
- {
- Memory m = new Memory();
- fstream f(argv[0]);
- if(f.is_open())
- {
- //open a program here for execution here;
- }
- f.close();
- while(!m.Subleq());
- f.open(argv[1]);
- if(f.is_open())
- {
- //open a program for saving here;
- }
- f.close();
- return 0;
- }
- //////////////
- //class header
- //////////////
- #ifndef SUBLEQ_H
- #define SUBLEQ_H
- //Program Counter, Accumulator and Terminator
- #define PRC 0
- //making sure C++ doesn't think I am dealing with ASCII char arrays.
- typedef unsigned char byte;
- class Memory {
- private:
- byte mem[256];
- byte getPCV();
- void setPCV();
- void setPCVS();
- void setPCP();
- byte getVal(byte addr);
- public:
- Memory();
- byte Subleq();
- };
- #endif
- ////////////////////////////
- // class implementation file
- ////////////////////////////
- #include "SUBLEQ.h"
- byte Memory::getPCV()
- {
- return mem[PRC];
- }
- byte Memory::getVal(byte addr)
- {
- return mem[addr];
- }
- void Memory::setPCP()
- {
- mem[mem[PRC]]=mem[mem[PRC]+1]-mem[mem[PRC]];
- }
- void Memory::setPCVS()
- {
- mem[PRC]=mem[mem[PRC]+2];
- }
- void Memory::setPCV()
- {
- mem[PRC]=mem[PRC]+3;
- }
- Memory::Memory()
- {
- for(int i = 0;i<256;i++)
- mem[i]=0;//do not rely upon it being 0;
- mem[PRC]=1;//set program counter to first spot after it.
- }
- //returns the stop address.
- byte Memory::Subleq()
- {
- setPCP();
- if(getVal(getVal(PRC))>127)
- setPCV();
- else
- setPCVS();
- //detect the ascii string "\STOP"
- if(getVal(getVal(PRC))==92&&getVal(getVal(PRC)+1)==83&&getVal(getVal(PRC)+2)==84&&getVal(getVal(PRC)+3)==79&&getVal(getVal(PRC)+4)==80)
- {
- return getVal(PRC);
- }
- else
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement