michel@es.ele.tue.nl (Michel Berkelaar) (03/05/91)
The oneko version I took from alt.sources dumps core on Apollo workstations and an Alliant FX/8 computer in our group, whether compiled with cc or gcc. It looks as if it can only work with compilers which allow NULL pointer dereferencing ... Or else something is going wrong completely. Here is the traceback: Program /users/michel/src/oneko/oneko Status 00040004: reference to illegal address (OS/MST manager) In routine "DrawNeko" line 584 Called from "NekoThinkDraw" line 834 Called from "ProcessNeko" line 1046 Called from "main" line 1221 Called from "unix_$main" line 114 Called from "_start" line 51 Any comments anybody? -- ------------------------------------------------------------------------------- Michel Berkelaar | Email: michel@ele.tue.nl Eindhoven University of Technology | Dept. of Electrical Engineering | Design Automation Section | P.O. Box 513 | Phone: ... - 31 - 40 - 473345 NL-5600 MB Eindhoven | Fax: ... - 31 - 40 - 448375 The Netherlands | -------------------------------------------------------------------------------
mzw_t@hpujsda.HP.COM (Matsuzawa Takashi) (03/07/91)
Hope this helps... #### From mzw_t Mon Mar 4 13:19:03 1991 Relay-Version: version Notes 2.8.4 1990/05/09; site hpujsda.HP.COM From: mzw_t@hpujsda.HP.COM (Matsuzawa Takashi) Date: Mon, 4 Mar 1991 04:19:03 GMT Date-Received: Mon, 4 Mar 1991 04:19:03 GMT Subject: Re: New Oneko w/ larger kitties!! Message-ID: <330002@hpujsda.HP.COM> Organization: YHP Japan Country Products - Tokyo Path: hpujsda!mzw_t Newsgroups: hp.sources Posting-Version: version Notes 2.8.4 1990/05/09; site hpujsda.HP.COM References: <103320033@hpcvlx.cv.hp.com> Hi, In order to compile Oneko in ANSI C compatible mode, you will have to apply following patch to oneko.c file. I compiled it under Domain/C 6.8 sometime ago and it is working well. I believe GCC will do with this patch (I have not tried it yet, though). Takashi Matsuzawa, Japan CPO. ------------- < cut here > ----------- 190,225c190,225 < { &Mati2GC, &Mati2Msk }, < { &Mati2GC, &Mati2Msk }, /* NekoState == NEKO_STOP */ < { &Jare2GC, &Jare2Msk }, < { &Mati2GC, &Mati2Msk }, /* NekoState == NEKO_JARE */ < { &Kaki1GC, &Kaki1Msk }, < { &Kaki2GC, &Kaki2Msk }, /* NekoState == NEKO_KAKI */ < { &Mati3GC, &Mati3Msk }, < { &Mati3GC, &Mati3Msk }, /* NekoState == NEKO_AKUBI */ < { &Sleep1GC, &Sleep1Msk }, < { &Sleep2GC, &Sleep2Msk }, /* NekoState == NEKO_SLEEP */ < { &AwakeGC, &AwakeMsk }, < { &AwakeGC, &AwakeMsk }, /* NekoState == NEKO_AWAKE */ < { &Up1GC, &Up1Msk }, < { &Up2GC, &Up2Msk }, /* NekoState == NEKO_U_MOVE */ < { &Down1GC, &Down1Msk }, < { &Down2GC, &Down2Msk }, /* NekoState == NEKO_D_MOVE */ < { &Left1GC, &Left1Msk }, < { &Left2GC, &Left2Msk }, /* NekoState == NEKO_L_MOVE */ < { &Right1GC, &Right1Msk }, < { &Right2GC, &Right2Msk }, /* NekoState == NEKO_R_MOVE */ < { &UpLeft1GC, &UpLeft1Msk }, < { &UpLeft2GC, &UpLeft2Msk }, /* NekoState == NEKO_UL_MOVE */ < { &UpRight1GC, &UpRight1Msk }, < { &UpRight2GC, &UpRight2Msk }, /* NekoState == NEKO_UR_MOVE */ < { &DownLeft1GC, &DownLeft1Msk }, < { &DownLeft2GC, &DownLeft2Msk }, /* NekoState == NEKO_DL_MOVE */ < { &DownRight1GC, &DownRight1Msk }, < { &DownRight2GC, &DownRight2Msk }, /* NekoState == NEKO_DR_MOVE */ < { &UpTogi1GC, &UpTogi1Msk }, < { &UpTogi2GC, &UpTogi2Msk }, /* NekoState == NEKO_U_TOGI */ < { &DownTogi1GC, &DownTogi1Msk }, < { &DownTogi2GC, &DownTogi2Msk }, /* NekoState == NEKO_D_TOGI */ < { &LeftTogi1GC, &LeftTogi1Msk }, < { &LeftTogi2GC, &LeftTogi2Msk }, /* NekoState == NEKO_L_TOGI */ < { &RightTogi1GC, &RightTogi1Msk }, < { &RightTogi2GC, &RightTogi2Msk }, /* NekoState == NEKO_R_TOGI */ --- > {{ &Mati2GC, &Mati2Msk }, > { &Mati2GC, &Mati2Msk }}, /* NekoState == NEKO_STOP */ > {{ &Jare2GC, &Jare2Msk }, > { &Mati2GC, &Mati2Msk }}, /* NekoState == NEKO_JARE */ > {{ &Kaki1GC, &Kaki1Msk }, > { &Kaki2GC, &Kaki2Msk }}, /* NekoState == NEKO_KAKI */ > {{ &Mati3GC, &Mati3Msk }, > { &Mati3GC, &Mati3Msk }}, /* NekoState == NEKO_AKUBI */ > {{ &Sleep1GC, &Sleep1Msk }, > { &Sleep2GC, &Sleep2Msk }}, /* NekoState == NEKO_SLEEP */ > {{ &AwakeGC, &AwakeMsk }, > { &AwakeGC, &AwakeMsk }}, /* NekoState == NEKO_AWAKE */ > {{ &Up1GC, &Up1Msk }, > { &Up2GC, &Up2Msk }}, /* NekoState == NEKO_U_MOVE */ > {{ &Down1GC, &Down1Msk }, > { &Down2GC, &Down2Msk }}, /* NekoState == NEKO_D_MOVE */ > {{ &Left1GC, &Left1Msk }, > { &Left2GC, &Left2Msk }}, /* NekoState == NEKO_L_MOVE */ > {{ &Right1GC, &Right1Msk }, > { &Right2GC, &Right2Msk }}, /* NekoState == NEKO_R_MOVE */ > {{ &UpLeft1GC, &UpLeft1Msk }, > { &UpLeft2GC, &UpLeft2Msk }}, /* NekoState == NEKO_UL_MOVE */ > {{ &UpRight1GC, &UpRight1Msk }, > { &UpRight2GC, &UpRight2Msk }}, /* NekoState == NEKO_UR_MOVE */ > {{ &DownLeft1GC, &DownLeft1Msk }, > { &DownLeft2GC, &DownLeft2Msk }}, /* NekoState == NEKO_DL_MOVE */ > {{ &DownRight1GC, &DownRight1Msk }, > { &DownRight2GC, &DownRight2Msk }}, /* NekoState == NEKO_DR_MOVE */ > {{ &UpTogi1GC, &UpTogi1Msk }, > { &UpTogi2GC, &UpTogi2Msk }}, /* NekoState == NEKO_U_TOGI */ > {{ &DownTogi1GC, &DownTogi1Msk }, > { &DownTogi2GC, &DownTogi2Msk }}, /* NekoState == NEKO_D_TOGI */ > {{ &LeftTogi1GC, &LeftTogi1Msk }, > { &LeftTogi2GC, &LeftTogi2Msk }}, /* NekoState == NEKO_L_TOGI */ > {{ &RightTogi1GC, &RightTogi1Msk }, > { &RightTogi2GC, &RightTogi2Msk }}, /* NekoState == NEKO_R_TOGI */
nazgul@alphalpha.com (Kee Hinckley) (03/07/91)
In article <MICHEL.91Mar5164822@eutes3.es.ele.tue.nl> michel@es.ele.tue.nl (Michel Berkelaar) writes: > >The oneko version I took from alt.sources dumps core on Apollo workstations >and an Alliant FX/8 computer in our group, whether compiled with cc or gcc. >It looks as if it can only work with compilers which allow NULL pointer >dereferencing ... Or else something is going wrong completely. The declaration Animation AnimationPattern[][2] = looks bogus to me. Although I'm not sure why the compiler didn't complain. If you put in actual lengths there you'll get a complaint because the bracketed structures ought to be double bracketed in pairs for each subarray. I changed it to Animation AnimationPattern[] = Then change the references to: if (NekoState != NEKO_SLEEP) { DrawNeko(NekoX, NekoY, AnimationPattern[(NekoTickCount & 0x1) + NekoState*2]); } else { DrawNeko(NekoX, NekoY, AnimationPattern[((NekoTickCount >> 2) & 0x1) + NekoState*2]); Now, can anyone figure out a way to get the cat to show up without a white box around her, or does that require the SHAPE extension? -- Alfalfa Software, Inc. | Poste: The EMail for Unix nazgul@alfalfa.com | Send Anything... Anywhere 617/646-7703 (voice/fax) | info@alfalfa.com I'm not sure which upsets me more: that people are so unwilling to accept responsibility for their own actions, or that they are so eager to regulate everyone else's.