IPS(Interpreter for Process Structures) for mbed
Dependencies: ConfigFile FATFileSystem mbed
IPS port from linux/unix version.
mbed_blinky.ips
0 VAR led1 " LED1 " DigitalOut led1 ! : main ANFANG 1 JA? 1 led1 @ write 200 wait_ms 0 led1 @ write 200 wait_ms DANN/NOCHMAL ; main
- ips-02.tgz - ips for linux/unix
- ipsdoc.zip - document
- https://bitbucket.org/va009039/ips/
Diff: BaseIPS.h
- Revision:
- 2:908338b1151a
- Parent:
- 1:e74530ad6b9e
--- a/BaseIPS.h Wed May 13 18:39:01 2015 +0900 +++ b/BaseIPS.h Sat May 23 16:50:59 2015 +0900 @@ -1,4 +1,4 @@ -// BaseIPS.h 2015/5/6 +// BaseIPS.h 2015/5/22 #pragma once /* data types */ @@ -33,9 +33,15 @@ void load_image(const u8* image, int size); void command(const char* s); + void push_ps(u16 w); + u16 pull_ps(); + virtual uint8_t mem_peek(uint16_t a) = 0; + virtual void mem_poke(uint16_t a, uint8_t b) = 0; + + uint8_t peekB(u16 a) { return mem_peek(a); } + void pokeB(uint16_t a, uint8_t b) { mem_poke(a, b); } + protected: - virtual u8 peekB(u16 a) = 0; - virtual void pokeB(u16 a, u8 b) = 0; void poke(u16 a, u16 w); u16 peek(u16 a); virtual void do_io() = 0; @@ -45,6 +51,7 @@ virtual void file_putc(int c, void* handle) {} virtual bool file_close(void* handle) { return false; } virtual void trace(u32 cycle, u16 ppc, u16 hp, u16 cpc, u16 ps, u16 rs) {} + virtual void usercode(uint16_t cpc) = 0; int input_ptr; private: @@ -54,8 +61,6 @@ int depth; int redraw; int idle; - void push_ps(u16 w); - u16 pull_ps(); void push_rs(u16 w); u16 pull_rs(); void* inputfile; @@ -69,8 +74,8 @@ void c_retex(void); // 4 void c_get(void); // 5 void c_getB(void); // 6 - void c_put(void); // 7 - void c_putB(void); // 8 + void c_put(void); // 7 + void c_putB(void); // 8 void c_1bliteral(void); // 9 void c_2bliteral(void); // 10 void c_bronz(void); // 11 @@ -102,7 +107,7 @@ void c_sbit(void); // 37 void c_tbit(void); // 38 void loop_sharedcode(int i); - void c_jeex(void); // 39 + void c_jeex(void); // 39 void c_loopex(void); // 40 void c_plusloopex(void); // 41 void c_fieldtrans(void); // 42 @@ -116,7 +121,7 @@ void c_cyc2(void); // 50 void c_close(void); // 51 void c_open(void); // 52 - void c_oscli(void); // 53 + void c_oscli(void); // 53 void c_load(void); // 54 void c_save(void); // 55 void c_setkbptr(void); // 56 @@ -128,7 +133,7 @@ void c_defchar(void); // 62 void c_pplus(void); // 63 void c_pminus(void); // 64 - void c_sleepifidle(void); // 80 }; +