inst_ldb.asm (930B)
1tpu X0 Y0 2 ## ${ADDR_INST_LDB} 3 4 mov UP, DOWN 5 mov UP, NIL 6 mov UP, ACC 7 mov UP, DOWN 8 9 # read reg src 10 mov ${ADDR_GPR}, RIGHT 11 mov ${ADDR_INST_LDB}, RIGHT 12 mov ${MEM_OP_READ}, RIGHT 13 mov ACC, RIGHT 14 mov ${OP_NIL}, RIGHT 15 16 # get ack 17 mov UP, NIL 18 mov UP, NIL 19 mov UP, ACC 20 mov UP, NIL 21 22 # read memory [src] 23 sav 24 shr 6 25 add ${ADDR_MEMORY_BASE} 26 mov ACC, RIGHT 27 swp 28 mov ${ADDR_INST_LDB}, RIGHT 29 mov ${MEM_OP_READ}, RIGHT 30 mov ACC, RIGHT 31 mov ${OP_NIL}, RIGHT 32 33 # get ack 34 mov UP, NIL 35 mov UP, NIL 36 mov UP, ACC 37 mov UP, NIL 38 39 # write reg dst 40 mov ${ADDR_GPR}, RIGHT 41 mov ${ADDR_INST_LDB}, RIGHT 42 mov ${MEM_OP_WRITE}, RIGHT 43 mov DOWN, RIGHT 44 mov ACC, RIGHT 45 46 # get ack 47 mov UP, NIL 48 mov UP, NIL 49 mov UP, NIL 50 mov UP, NIL 51 52 # send ack 53 mov DOWN, RIGHT 54 mov ${ADDR_INST_LDB}, RIGHT 55 mov ${OP_ACK}, RIGHT 56 mov ${OP_NIL}, RIGHT 57 mov ${OP_NIL}, RIGHT 58end 59 60tpu X1 Y0 61 mov LEFT, UP 62end 63 64tpu X0 Y1 65 mov UP, ACC 66 mov UP, UP 67 mov ACC, UP 68end