// MicroProg.cpp - WRITE THE MICROCONTROLLER PROGRAM // // MAINTENANCE HISTORY // DATE PROGRAMMER AND DETAILS // 21-09-06 JS Original // 31-10-06 YHD Added a return, 0x42 // 31-10-06 YHD Changed no9 instruction from 0x10 to 0x11 // //----------------------------------------------------------------------------- #include #include using namespace std; //----------------------------------------------------------------------------- char PROG_ARR[] = { 0x12, 0xf0, // LD SP,#0xf0 0x11, 0xf0, // L0: LD A,0xf0 0x13, 0xf0, // ST 0xf0,A 0x10, 0x01, // LD A,#0x01 0x13, 0x10, // ST 0x10,A 0x11, 0xf1, // LD A,0xf1 0x20, 0x10, // ADD A,0x10 0x13, 0xf1, // ST 0xf1,A 0x30, 0x11, // BRA L4 0x10, 0x40, // L3: LD A,#0x40 0x20, 0x11, // ADD A,0x11 0x13, 0x11, // ST 0x11,A 0x31, 0x04, // BCS L1 0x10, 0x00, // LD A,#0x00 0x30, 0x02, // BRA L2 0x10, 0x01, // L1: LD A,#0x01 0x13, 0xf2, // L2: ST 0xf2,A 0x42, // RET 0x10, 0xff, // L4: LD A,#0xff 0x13, 0x12, // ST 0x12,A 0x11, 0xf2, // LD A,0xf2 0x20, 0x12, // ADD A,0x12 0x31, 0x06, // BCS L6 0x10, 0x00, // LD A,#0x00 0x13, 0x13, // ST 0x13,A 0x30, 0x0d, // BRA L5 0x11, 0x13, // L6: LD A,0x13 0x20, 0x12, // ADD A,0x12 0x31, 0x07, // BCS L5 0x10, 0x01, // LD A,0x01 0x13, 0x13, // ST 0x13,A 0x41, 0x00, 0x12, // CALL L3 0x40, 0x00, 0x02, // JMP L0 }; static const size_t PROG_CNT = sizeof(PROG_ARR) / sizeof(PROG_ARR[0]); //----------------------------------------------------------------------------- int main () { cout.write (PROG_ARR, PROG_CNT); return 0; }