From: ian Date: Tue, 6 Dec 2005 23:48:12 +0000 (+0000) Subject: qq stuff - write to a buffer we can read X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=b5cc611298e9cc1080e95552081b5c7da0cc740a;p=trains.git qq stuff - write to a buffer we can read --- diff --git a/detpic/i2clib.asm b/detpic/i2clib.asm index 10f6f70..930a2f5 100644 --- a/detpic/i2clib.asm +++ b/detpic/i2clib.asm @@ -475,7 +475,7 @@ s_event_bad_intr ;---------- s_event_idle_addrrecvread bs_f st, st_awaiting - call i2csu_read_begin ; 26cy until 1st insn of read_begin + call QQ_i2csu_read_begin ; 26cy until 1st insn of read_begin retfie_r ;---------- @@ -485,7 +485,7 @@ s_event_reading mov_fw SSPSTAT xor_lw 0xac ; D,!P, S,R,!BF bra_nz s_event_reading_not_another - call i2csu_read_another + call QQ_i2csu_read_another ; 24cy until 1st insn of i2csu_read_another s_event_reading_datanack retfie_r diff --git a/detpic/i2clib.inc b/detpic/i2clib.inc index 6bcfd73..6454b6f 100644 --- a/detpic/i2clib.inc +++ b/detpic/i2clib.inc @@ -1,3 +1,6 @@ + extern QQ_i2csu_read_begin + extern QQ_i2csu_read_another + ;###################################################################### ; i2clib.inc - I2C LIBRARY - DECLARATIONS AND DOCUMENTATION ; diff --git a/detpic/points.asm b/detpic/points.asm index 1514b6a..5efca99 100644 --- a/detpic/points.asm +++ b/detpic/points.asm @@ -87,6 +87,7 @@ point_set_pin_h bra_z point_nonexistent mov_ff INDF0, FSR0L ; W = bit, FSR0L -> LAT* set_f FSR0H ; FSR0 -> LAT*, W = bit (still) + mov_ff BSR,FSR0H;qq ior_wff INDF0 ; pin = H return @@ -95,6 +96,7 @@ point_set_pin_l com_fw POSTINC0 ; W = ~bit, FSR0 -> &LAT* mov_ff INDF0, FSR0L ; W = ~bit, FSR0L -> LAT* set_f FSR0H ; FSR0 -> LAT*, W = bit (still) + mov_ff BSR,FSR0H;qq ior_wff INDF0 ; pin = H point_set_pin_hl tst_f_ifnz FSR0L ; err, did we just write to 0xf00 ? @@ -168,7 +170,8 @@ points_init_ifnot_point mov_lfsr ptix2bitlat, 0 ; FSR0 -> this bit and LAT* mov_lfsr bitnum2bit+7, 1 ; FSR1 -> bitnum2bit+7 - set_f FSR2 ; FSR2 -> some SFR, will point to LAT/TRIS + set_f FSR2H ; FSR2 -> some SFR, will point to LAT/TRIS + mov_ff BSR,FSR2H;qq mov_lw bkptix2portnumbitnum & 0xff bt_f_if0 idloc1,idloc1_boarddet @@ -195,7 +198,7 @@ points_init_portbit_if_used swap_fw TABLAT ; W = bitnum4 || portnum4 and_lw 0x0f ; W = portnum4 - add_lw LATA & 0xff ; W = LAT* + add_lw qqLATA & 0xff ; W = LAT* mov_wf POSTDEC0 ; LAT*[this] := LAT, FSR0 -> bit[this] mov_wf FSR2L ; FSR2 -> LAT* @@ -205,7 +208,7 @@ points_init_portbit_if_used and_wff INDF2 ; LAT* &= ~bit, ie pin set to L (still Z) pin_vh pall_pt0reverse ; but pt0 pin is backwards, set to H ; (still Z, unless we've done this already) - mov_lw TRISA-LATA + mov_lw qqTRISA-qqLATA add_wff FSR2L ; FSR2 -> TRIS* com_fw INDF1 ; W = ~bit and_wff INDF2 ; TRIS* &= ~bit, ie pin set to not Z diff --git a/detpic/reverse.asm b/detpic/reverse.asm index 894b36b..410280d 100644 --- a/detpic/reverse.asm +++ b/detpic/reverse.asm @@ -35,19 +35,19 @@ polarity_local_do ; mov_wf t ; t = PP PP v3 v0 v2 v1 v5 v4 - mov_wf LATE ; W = kk kk kk kk kk kk o5 o4 + mov_wf qqLATE ; W = kk kk kk kk kk kk o5 o4 xor_wfw t ; W = ?? ?? ?? ?? ?? ?? d5 d4 and_wfw maske ; W = zz zz zz zz zz zz d5 d4 - xor_wff LATE ; LATA = kk kk kk kk kk kk v5 v4 + xor_wff qqLATE ; LATA = kk kk kk kk kk kk v5 v4 bc_f t,2 ; t = SS SS v3 v0 v2 v1 zz v4 bt_f_if1 t,4 ; t : .. .. .. v0 .. .. .. .. bs_f t,2 ; t = SS SS v3 v0 v2 v1 v0 v4 - mov_wf LATA ; W = kk kk o3 kk o2 o1 o0 kk + mov_wf qqLATA ; W = kk kk o3 kk o2 o1 o0 kk xor_wfw t ; W = ?? ?? d3 ?? d2 d1 d0 ?? and_wfw maska ; W = zz zz d3 zz d2 d1 d0 zz - xor_wff LATA ; LATA = kk kk v3 kk v2 v1 v0 kk + xor_wff qqLATA ; LATA = kk kk v3 kk v2 v1 v0 kk ; where kk is a bit we must keep ; o is old reverse bit @@ -71,10 +71,10 @@ polarity_local_init rcall polarity_local_do com_fw maska - and_wff TRISA + and_wff qqTRISA com_fw maske - and_wff TRISE + and_wff qqTRISE return