Ignore this message. I was using %d instead of %ld to check my results. Doh! On Tue, Nov 22, 2011 at 5:56 PM, Egan Ford <egan@sense.net> wrote: > I am not sure what I am doing wrong here. > > Below is my timer.s code. �It just increments a 32bit unsigned little > endian int while waiting for a key press. > > My c code: > > extern unsigned long count; > extern unsigned char key; > > I can read "key", but I always get 0 for count. �If I change long > count to char count[4], then I can read each byte. > > I need to be able to say count = 0 and have all four bytes set to 0, > and when reading count get a number from 0 to 2^32-1. > > Thanks. > > timer.s: > > � � � �.export _timer > � � � �.export _count > � � � �.export _key > > KBDCR � = � � � $D011 > KBDDATA = � � � $D010 > > _count: .byte � 0,0,0,0 > _key: � .byte � 0 > > _timer: LDA � � KBDCR � � � � � ; cycles 4 � � �got key? > � � � �BMI � � DONE � � � � � �; cycles 2 � � �if neg, got key goto DONE > � � � �CLC � � � � � � � � � � ; cycles 2 � � �clear carry > � � � �LDA � � #1 � � � � � � �; cycles 2 � � �A = 1 > � � � �ADC � � _count � � � � �; cycles 4 � � �LSB += A > � � � �STA � � _count � � � � �; cycles 4 > � � � �LDA � � #0 � � � � � � �; cycles 2 � � �A = 0 > � � � �ROL � � A � � � � � � � ; cycles 2 � � �A = carry, carry = 0 > � � � �ADC � � _count+1 � � � �; cycles 4 > � � � �STA � � _count+1 � � � �; cycles 4 > � � � �LDA � � #0 � � � � � � �; cycles 2 � � �A = 0 > � � � �ROL � � A � � � � � � � ; cycles 2 � � �A = carry, carry = 0 > � � � �ADC � � _count+2 � � � �; cycles 4 > � � � �STA � � _count+2 � � � �; cycles 4 > � � � �LDA � � #0 � � � � � � �; cycles 2 � � �A = 0 > � � � �ROL � � A � � � � � � � ; cycles 2 � � �A = carry, carry = 0 > � � � �ADC � � _count+3 � � � �; cycles 4 > � � � �STA � � _count+3 � � � �; cycles 4 > � � � �CLC � � � � � � � � � � ; cycles 2 � � �clear carry > � � � �BCC � � _timer � � � � �; cycles 2 + 1 �back to checking for key > � � � � � � � � � � � � � � � �; total = 59 > DONE: � LDA � � KBDDATA � � � � ; get key value > � � � �STA � � _key � � � � � �; store in _key > � � � �RTS > ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo@musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.Received on Wed Nov 23 09:34:44 2011
This archive was generated by hypermail 2.1.8 : 2011-11-23 09:34:48 CET