cpu.asm (875B)
1tpu X0 Y0 2 ## ${ADDR_CPU} 3 4 # read rip 5 mov ${ADDR_RIP}, RIGHT 6 mov ${ADDR_CPU}, RIGHT 7 mov ${MEM_OP_READ}, RIGHT 8 mov 0x00, RIGHT 9 mov ${OP_NIL}, RIGHT 10 11 # get ack 12 mov UP, NIL 13 mov UP, NIL 14 mov UP, ACC 15 mov UP, NIL 16 17 # read inst 18 sav 19 shr 6 20 add ${ADDR_MEMORY_BASE} 21 mov ACC, RIGHT 22 swp 23 mov ${ADDR_CPU}, RIGHT 24 mov ${MEM_OP_READ}, RIGHT 25 mov ACC, RIGHT 26 mov ${OP_NIL}, RIGHT 27 28 # get ack 29 swp 30 mov UP, NIL 31 mov UP, NIL 32 mov UP, ACC 33 mov UP, NIL 34 swp 35 36 # write rip+1 37 add 1 38 mov ${ADDR_RIP}, RIGHT 39 mov ${ADDR_CPU}, RIGHT 40 mov ${MEM_OP_WRITE}, RIGHT 41 mov 0x00, RIGHT 42 mov ACC, RIGHT 43 44 # get ack 45 mov UP, NIL 46 mov UP, NIL 47 mov UP, NIL 48 mov UP, NIL 49 swp 50 51 # run inst 52 mov ${ADDR_DECODER}, RIGHT 53 mov ${ADDR_CPU}, RIGHT 54 mov ACC, RIGHT 55 mov ${OP_NIL}, RIGHT 56 mov ${OP_NIL}, RIGHT 57 58 # get ack 59 mov UP, NIL 60 mov UP, NIL 61 mov UP, NIL 62 mov UP, NIL 63end 64 65tpu X1 Y0 66 mov LEFT, UP 67end