On Nov 15, 1:43pm, tsut...@ceres.dti.ne.jp (Izumi Tsutsui) wrote: -- Subject: Re: CVS commit: src/sys/arch/atari/stand/installboot
| How about this one? (cksum seems updated properly on the real machine) That looks nicer, go for it! christos | | --- installboot/installboot.c 2014-11-14 13:21:10.000000000 +0900 | +++ installboot/installboot.c 2014-11-14 23:03:28.000000000 +0900 | @@ -467,7 +467,10 @@ | struct disklabel *label, u_int magic) | { | int fd; | - uint16_t sum; | + union { | + struct bootblock *bbp; | + uint16_t *word; /* to fill cksum word */ | + } bbsec; | | memset(bb, 0, sizeof(*bb)); | | @@ -499,10 +502,9 @@ | setIDEpar(bb->bb_xxboot, sizeof(bb->bb_xxboot)); | | /* set AHDI checksum */ | - sum = 0; | - memcpy(bb->bb_xxboot + 255 * sizeof(sum), &sum, sizeof(sum)); | - sum = 0x1234 - abcksum(bb->bb_xxboot); | - memcpy(bb->bb_xxboot + 255 * sizeof(sum), &sum, sizeof(sum)); | + bbsec.bbp = bb; | + bbsec.word[255] = 0; | + bbsec.word[255] = 0x1234 - abcksum(bb->bb_xxboot); | | if (verbose) { | printf("Primary boot loader: %s\n", xxb); | | --- | Izumi Tsutsui -- End of excerpt from Izumi Tsutsui