941225: ~~~~~~~ * Skrev färdigt C versionen av testprogrammet. Började fixa alla buggar (fler än i första versionen av asm-ver av testprogrammet). * Slösade resten av dagen på att hitta en konstig bugg som gjorde att hotkeyarna slutade repetera efter att de hade repeterat 4 gånger. Hittade felet då jag startade MemSnapII och märkte att programmet allokerade ca 1k minne varje sekund. ListView gadgeten sätter IDCMP_INTUITICKS flaggan (genom LISTVIEWIDCMP) och programmet fick då ett meddelande 50 ggr/s. Jag hade använt fel ROM rutin för att skicka tillbaka meddelandet: ReplyMsg i stället för GT_ReplyIMsg. Konstigt att jag inte märkte det 7 timmar tidigare... (det var den sista raden i hela testprogrammet förutom alla ([}{]) tecken som används i C). * Gjorde två små rutiner för C-versionen av testprogrammet för att kunna blinka med ljudfiltret. * Det verkar som att C-kompilatorerna inte kan läsa ett longword från två word variablar direkt efter varandra. Det gick att ordna på ett konstigt sätt som borde fungera med alla C-kompilatorer. long coords; coords = (LONG)imsg->MouseX << 16 | imsg->MouseY; motsvarar i assembler (om imsg finns i A0 och coords sparas i D0): moveq.l #0,d0 ; coords = 0 move.w im_MouseX(a0),d0 ; coords = MouseX lsl.l #16,d0 ; << 16 or.w im_MouseY(a0),d0 ; | MouseY eller lite optimerat: move.w im_MouseX(a0),d0 ; coords = MouseX swap d0 ; x coord i övre wordet move.w im_MouseY(a0),d0 ; y coord i nedre wordet eller helt optimerat: move.l im_MouseX(a0),d0 ; X coord i övre, Y coord i nedre word
Converted on 19 Jul 1996 with RexxDoesAmigaGuide2HTML by Michael Ranner.